dart tutorial sec’on 2: the dart directory tree · dart tutorial sec’on 2: the dart directory...

13
The Na’onal Center for Atmospheric Research is sponsored by the Na’onal Science Founda’on. Any opinions, findings and conclusions or recommenda’ons expressed in this publica’on are those of the author(s) and do not necessarily reflect the views of the Na’onal Science Founda’on. ©UCAR DART Tutorial Sec’on 2: The DART Directory Tree

Upload: others

Post on 26-Sep-2020

42 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

TheNa'onalCenterforAtmosphericResearchissponsoredbytheNa'onalScienceFounda'on.Anyopinions,findingsandconclusionsorrecommenda'onsexpressedinthispublica'onarethoseoftheauthor(s)anddonotnecessarilyreflecttheviewsoftheNa'onalScienceFounda'on.

©UCAR

DARTTutorialSec'on2:TheDARTDirectoryTree

Page 2: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

TheDARTCodeTree

MuchofDARTisimplementedasFortran-90modulesandprograms.DARTalsocontains:•  Documenta'on(really!),•  Namelistcontrolfiles,•  Compila'ontools,•  Shellscriptsformanaginglargeapplica'ons,and•  Diagnos'ctools.

DARTTutorialSec'on2:Slide2

Page 3: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTTop-leveldirectorystructure

DART/

models/

Others…

observa'ons/

assimila'on_code/

documenta'on/ diagnos'cs/

build_templates/

CHANGELOG/

README/

PeruseyourDARTsubdirectories!DARTTutorialSec'on2:Slide3

Page 4: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTmodelsdirectory:

DART/models/

lorenz_63/

Manyothersmodels

lorenz_96/

u'li'es/

model_mod_tools/ template/

wrf/

POP/

cam-fv/

Containsacode‘template’foraddingnewmodels.

DARTTutorialSec'on2:Slide4

Page 5: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

ExampleDARTmodeldirectorydetail:

lorenz_96/

work

matlab/

tests/

shell_scripts/

Wherealltheac*onhappens!

model_mod.f90

model_mod.nml

model_mod.html

variousinputfiles…

Model-specificscripts.None‘required’.

Op'onal.Notrequired.

Model-specificfunc'onstoaidanalysis,ifany.

Anythingwiththisbackgroundisop'onal. DARTTutorialSec'on2:Slide5

Page 6: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTmodel/workdirectorydetails:

work/ Executablesarebuiltandruninmodelworkdirectories.Makefilesandcompileroutputfilesresidehere.Inputandoutputfilesgenerallyresidehere.Lotsofotherjunkfilestendtoaccumulatehere.Checkoutcontentsofmodels/lorenz_63/work.

mkmf_xxxxxx filesthatcontrolwhatcompilerisused,compilerop'ons, etc.–forprogramxxxxxx

path_names_xxxxxx filesthatcontrolwhatsourcecodefilesareneededfor

programxxxxxxinput.nml fileusedbyallDARTprogramsforusercontrolworkshop_setup.csh scriptusedtorun‘set’experimentsforsomeworkshopexercises.

Notallmodelsrunworkshopexperiments.quickbuild.csh scriptusedtocompileALLapplicableDARTprogramsforthismodel.

Feelfreetotakeapeek,butnoneedtounderstandthedetails.obs_seq.out.xxxxxx Sequenceofobserva'onstobeassimilatedforcasexxxxxx

DARTTutorialSec'on2:Slide6

Page 7: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTmodulefiles:

Codeformodulecov_cutoff_mod

Documenta'onformodule

Run-'mecontrolformodule

cov_cutoff_mod.f90

cov_cutoff_mod.html

cov_cutoff_mod.nml

DARTFortran-90codecomesascode,documenta'on,andrun-'mecontrolfiles.Forinstance,thedirectoryassimila7on_code/modules/assimila7on/containsthefollowingthreefilesthatimplementlocaliza'on(moreonthislater).

DARTTutorialSec'on2:Slide7

Page 8: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTobserva'onsdirectory:

DART/observa'ons/

u'li'es/

forward_operators/ obs_converters/

Codeandbuildtoolsforu'li'esthatmanipulateobserva'onsequencefiles.Availableforlow-ordermodels(oned/)andlargemodels(threed_sphere/).

Codetocomputerforwardoperatorsformanytypesofinstrumentsandforsomeidealizedmodels.

Directoriescontainingcodeandbuildtoolsforprogramsthatcreateobserva'onsequencefilesfrommanydatasources.

DARTTutorialSec'on2:Slide8

Page 9: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTdocumenta'ondirectory:

DART/documenta'on/

DART_LAB/

Manyothers…

tutorial/ index.html

html/

Interac'vematlabintrotoensembleassimila'on.

DiscussionsofaspectsofDARTdesign.

DARTtutorial.Whatyou’relookingatnow.

Headerforhtmldocumenta'on.

DARTTutorialSec'on2:Slide9

Page 10: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTassimila'on_code/directory:

DART/assimila'on_code/

programs/

scripts/ loca'on/

modules/

CodeforallDARTprogramsincludingfilterthatdoesensembleassimila'on.

AllDARTassimila'oncodethatisnotamainprogram.

Somescriptsforspecializedtasks.

Modulesthatdefineageometryforanassimila'on.Mostbigproblemsusethreed_sphere/.Simplemodelsuseoned/.

DARTTutorialSec'on2:Slide10

Page 11: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

DARTassimila'on_code/modules/directory:

assimila'on_code/modules

assimila'on/

io/ u'li'es/

observa'ons/

Modulesassociatedwithensemblesolveralgorithms,includesfilter_mod.f90.

Modulesthatdogenericforwardoperatorsandmanageobserva'ons.

Modulesforgekngdatain/outofDARTfilters.

ModulesthatmanageDARTdatastructures,parallelprocessing,'meandcalendars,etc.

DARTTutorialSec'on2:Slide11

Page 12: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

Lookatensembleadjustmentfilterobserva'onincrementsubrou'ne.Inassimila7on_code/modules/assimila7on/assim_tools_mod.f90searchforthestring‘subroutine obs_increment_eakf’.obs_increment_eakf()computesupdatedmeaninatemporaryvariablenamednew_mean.Computesra'oofupdatedstandarddevia'ontoprior.Comparetotutorialslidesinsec'on1.

Codingstyle:

DARTTutorialSec'on2:Slide12

Page 13: DART Tutorial Sec’on 2: The DART Directory Tree · DART Tutorial Sec’on 2: The DART Directory Tree The DART Code Tree Much of DART is implemented as Fortran-90 modules and programs

1.   FilteringForaOneVariableSystem2.   TheDARTDirectoryTree3.   DARTRunAmeControlandDocumentaAon4.   HowshouldobservaAonsofastatevariableimpactanunobservedstatevariable?

MulAvariateassimilaAon.5.   ComprehensiveFilteringTheory:Non-IdenAtyObservaAonsandtheJointPhaseSpace6.   OtherUpdatesforAnObservedVariable7.   SomeAddiAonalLow-OrderModels8.   DealingwithSamplingError9.   MoreonDealingwithError;InflaAon10.   RegressionandNonlinearEffects11.   CreaAngDARTExecutables12.   AdapAveInflaAon13.   HierarchicalGroupFiltersandLocalizaAon14.   QualityControl15.   DARTExperiments:ControlandDesign16.   DiagnosAcOutput17.   CreaAngObservaAonSequences18.   LostinPhaseSpace:TheChallengeofNotKnowingtheTruth19.   DART-CompliantModelsandMakingModelsCompliant20.   ModelParameterEsAmaAon21.   ObservaAonTypesandObservingSystemDesign22.   ParallelAlgorithmImplementaAon23.  Loca'onmoduledesign(notavailable)24.  Fixedlagsmoother(notavailable)25.   Asimple1DadvecAonmodel:TracerDataAssimilaAon

DARTTutorialIndextoSec'ons

DARTTutorialSec'on2:Slide13