YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

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


Related Documents