Top Banner
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
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.

Sep 26, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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