Top Banner
CESM2 Tutorial: Basic Modifications Christine Shields August 15, 2017
53

CESM2 Tutorial: Basic Modifications

Oct 16, 2021

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: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications

ChristineShieldsAugust15,2017

Page 2: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Review

1. WewillusetheCESMcodelocatedlocallyonCheyenne,noneedtocheckoutordownloadanyinputdata.

2.Wewillrunwithresolutionf19_g17:(atm/lnd =FV1.9x2.5ocn/ice=gx1v7)

3. Defaultscriptswillautomatically beconfiguredforyouusingthecode/scriptbaseprepareduniquelyforthistutorial.

4. ForOn-siteTutorialONLY:Pleaseusecomputenodesforcompilingandloginnodesforallotherwork,includingsubmission.PleasedoNOTcompileunlessyouhaveacompilecard.Tomakethetutorialrunsmoothlyforall,weneedtoregulatethemodelcompiles.Whenyourunfromhome,youdon’tneedtocompileonthecomputenodes.

TutorialCodeandscriptbase:

/glade/p/cesm/tutorial/cesm2_0_alpha07c/

Page 3: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Review

1. LogintoCheyenne2. Executecreate_newcase3. Executecase.setup4. Logontocomputenode(compile_node.csh)

5. Compilemodel(case.build)6. Exitcomputenode(type“exit”)7. Runmodel(case.submit)

Page 4: CESM2 Tutorial: Basic Modifications

ThistutorialcontainsstepbystepinstructionsapplicabletoCESM2(whichhasnotbeenofficiallyreleasedyet).

Documentation:Underconstruction!http://www.cesm.ucar.edu/models/cesm2.0/

QuickStartGuide:Underconstruction!http://cesm-development.github.io/cime/doc/build/html/index.html

Forolderreleases,pleaseseepasttutorials.

Page 5: CESM2 Tutorial: Basic Modifications

~/cases/b.day1.0 B1850f19_g17(FV 2deg coupled to gx1 ocean)

What is the casename ?

Which resolution?

CESM2Tutorial:BasicModifications:Review: Creatinganewcase

Which model configuration ?Which set of components ?

MCTDriver/

Mediator

RiverDROF

MOSARTMCT

LandIceCISMMCT

SeaIceDICECICE5MCTOceanDOCNPOP2MCT

WAVEDWAVWW3MCT

ESPDESPDARTMCT

ATMDATMCAM6

MCT LandDLNDCLM5

MCT

Page 6: CESM2 Tutorial: Basic Modifications

create_newcase --case ~/cases/b.day1.0 --res f19_g17 --compsetB1850

create_newcase --help (full list of arguments)

Other arguments you may need when you get home: --project < > (project number; this is not used by default and job would be charged to your default project number)

~/cases/b.day1.0 B1850f19_g17(FV 2deg coupled to gx1 ocean)

What is the casename ?

Which resolution?

CESM2Tutorial:BasicModifications:Review: Creatinganewcase

Which model configuration ?Which set of components ?

MCTDriver/

Mediator

RiverDROF

MOSARTMCT

LandIceCISMMCT

SeaIceDICECICE5MCTOceanDOCNPOP2MCT

WAVEDWAVWW3MCT

ESPDESPDARTMCT

ATMDATMCAM6

MCT LandDLNDCLM5

MCT

Page 7: CESM2 Tutorial: Basic Modifications

Documentation for CESM2 is UNDER CONSTRUCTION, This will CHANGE!

Grid naming conventionhttp://www.cesm.ucar.edu/models/cesm2.0/cesm/grids.html

CESM2Tutorial:BasicModifications:Review: Documentation

Page 8: CESM2 Tutorial: Basic Modifications

Documentation for CESM2 is UNDER CONSTRUCTION, This will CHANGE!Compset naming convention: http://www.cesm.ucar.edu/models/cesm2.0/cesm/compsets.html

B1850= 1850_CAM60_CLM50%BGC_CICE_POP2%ECO_MOSART_CISM2%NOEVOLVE_WW3_BGC%BDRD

CESM2Tutorial:BasicModifications:Review: Documentation

ComponentVersionMode/Physics

ATM = CAM6.0LND = CLM5.0ICE = CICE5OCN = POP2.0ROF = MOSARTWAV = Wave Watch3BGC = diagnostic

Page 9: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Review: Creatinganewcase

EXERCISE.0: Createandconfigureanout-of-the-boxcase(setofscripts)called“b.day2.0”onCheyenneusingFV2degatm/lnd coupledto1degocean/iceandcompset B1850.Reviewstepsbutdonotbuildorrun.

1. Changedirectories,(“cd”)totutorialcodebasescriptsdirectory(onslide2).2. Viewcompset andgridchoices.Viewcreate_newcase helppage(hint:goto

webpageslistedinslides4,5and6).3. Createinitialscripts.(Wewillusethesame“cases”subdirectoryasday1).4. “cd”toyourcasedir.5. Setupyourcase.6. Exploreyourdirectories

Page 10: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Review: Creatinganewcase

EXERCISE.0: Createandconfigureanout-of-the-boxcase(setofscripts)called“b.day2.0”oncheyenne usingf19_g17andcompset B1850.Reviewstepsbutdonotbuildorrun.

1. cd /glade/p/cesm/tutorial/cesm2_0_alpha07c/cime/scripts2. ./create_newcase --help(webpagescanbeviewedinbrowser)3. ./create_newcase --case~/cases/b.day2.0--resf19_g17--compset B18504.cd ~/cases/b.day2.05../case.setup6. Lookoverdocumentationgeneratedbyscripts7. Whatarethenextstepsifyouweretocompileandrun?

Page 11: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Review: Creatinganewcase

EXERCISE.0: Createandconfigureanout-of-the-boxsetofscriptscalled“b.day2.0”oncheyenne usingFV1.9x2.5_gx1v7andcompset B1850.Reviewstepsbutdonotbuildorrun.

1. cd/glade/p/cesm/tutorial/cesm2_0_alpha07c/cime/scripts2. ./create_newcase --help(webpagescanbeviewedinbrowser)3. ./create_newcase --case~/cases/b.day2.0--resf19_g17--compset B18504.cd ~/cases/b.day2.05../case.setup6. Lookoverdocumentationgeneratedbyscripts7. ./case.build8. ./case.submit

Page 12: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Review: QueuesandJobs

1. SubmittingCESM2jobs:Type./case.submit

2. Checkingjobs:Typeqstat -u<username>

3.Killingjobs:a.Typeqstat |grep<username> tofindyourJOBIDb. b.Typeqdel <JOBID>,example:qdel 1547261

Cheyenne

Page 13: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Review: README

Inyourcasedirectory,inadditiontoyourscripts,youwillfindautomaticallygenerateddocumentationfiles.

1. README.case file:informationonyourcompset,grid,andphysicsmodes

2. CaseDocs/:namelist configurationsforyoucomponents(donotmodify)

3. software_environment.txt:softwareinformation4. CaseStatus:documentsyourxmlchange commands,builds,

submissions,andcompletions(includingerrors)withtimestamps.

README.case, we highly recommend YOU document any changes you make to the default scripts. It is YOUR paper trail and opportunity to list modifications.

Page 14: CESM2 Tutorial: Basic Modifications

Thecreate_clone utilitycreatesanEXACT copyofapreviouslycreatedcase.

Thecreate_clone utilityisveryhandywhentheuserwishestorunaslightlymodifiedversionofapreviousexperiment.

a.Invokecreate_clone tocreateanexactcopyofanoldcasebytypingthefollowingonthecommandline:

create_clone --case<newcase>--clone<casetoclone>

b.Implementdesiredmodificationsbeforebuildingandrunning.(Wewilllearnnumerouswaytomodifythescriptsduringthispresentation).

c.EditandDOCUMENTchangesinREADME.case

CESM2Tutorial:BasicModifications:create_clone

Page 15: CESM2 Tutorial: Basic Modifications

EditandDOCUMENTchangesinREADME.case.

OtherwiseyourREADME.case filewilllookexactlylikeyouroriginalcaseanditwillbemuchhardertobacktrackyourmethodswhentroubleshooting.

CAVEATSforCREATE_CLONE:youneedtouse….1)samemodeltag2)samemachine3)samecompset4)sameresolution5)samerun-type(slide25)

CESM2Tutorial:BasicModifications:create_clone

Page 16: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications: Modelcontrolfiles

We control how we compile and run the model with env_*.xml files.

These files are created with create_newcase.

We modify env_run.xml according to our experimental design. We will practice this in the coming exercises.

We control what we ask of the model components with namelist files,user_nl_<model>.

These files are created after case.setup is invoked.

We modify the model component namelists according to our experimental design. We will practice some basic examples here, and more complex examples on Thursday.

Page 17: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:EditingMethods/Tools

Recommended:Whenmodifying“xml”files,theusermayalsousethetool,xmlchange.However,theuserisfreetouseher/hiseditorofchoice,i.e.

viemacs

1. Forhelp,type./xmlchange --help2. Example:Singlevariablemodification,original(long)method:

YouwanttomanuallyresubmittinganinitialcasethatpreviouslyhadaRESUBMITvalueof0,(i.e.youdidnotinitiallyresubmittherun).

Editenv_run.xmlviathexmlchange tool,type./xmlchange --fileenv_run.xml --idCONTINUE_RUN--val TRUE

Page 18: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:EditingMethods/Tools

Forhelp,typexmlchange --help

3. Example:Multiple(orlist)variablemodificationmethod:*:

Youmaywanttochangemorethanoneitematatime,ortousethisabbreviated“list”methodforasinglemodification.Tomanuallyresubmitthemodel,plustellthescriptstoautomaticallydothistwicemore…

a.Editenv_run.xmlviathexmlchange tool,type

./xmlchange CONTINUE_RUN=TRUE,RESUBMIT=2

*Noteformostcomponentnamelist variables,thesinglemodificationmethodisnecessary.

Page 19: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:EditingMethods/Tools

Forhelp,typexmlchange –help

4.Example:usingSubgroups

Forchangingvariablesinenv filesthathavemultipleinstances,werecommendyouusetheSubgroupfunctionalityinxmlchange tospecifywhichinstanceyouwanttochange.

TochangethedefaultWALLCLOCKtimefrom12hoursto1hourfortheshorttermarchiversubgroup,i.e.<groupid="case.st_archive">,typethefollowingonthecommandline:

./xmlchange --subgroupcase.st_archive JOB_WALLCLOCK_TIME=01:00:00

Page 20: CESM2 Tutorial: Basic Modifications

Namelist variablescanbechangedusing:

user_nl_<model> (e.g.user_nl_cam,user_nl_pop2,etc)

Foracompletelistofnamelists,pleaseseetheon-linedocumentationforeachcomponentmodel.(Moreonthislater)…

http://www.cesm.ucar.edu/models/cesm2.0/namelists/index.html

CESM2Tutorial:BasicModifications:Namelist variables

Page 21: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Runtimevariables:env_run.xml

Runtimevariablescanbechangedinenv_run.xmlatanypointduringtherunandcontrolthemechanicsoftherun,i.e length,resbumits,andarchiving.

Commonvariablestochangeinclude

1.RESUBMIT à setsthenumberoftimestoresubmittherun

2.STOP_OPTIONà setstherunlengthtimeintervaltype,i.e.nmonths,ndays,nyears oraspecificdate

3.STOP_N à setsthenumberofintervals(setbySTOP_OPTION)torunthemodelduringthespecifiedwallclock time.Wallclock timeissetinyour*.runfileandisameasureoftheactualtime.

STOP_OPTIONandSTOP_Ncontrolthelengthoftherunpercomputerjobsubmission.Atypicalsimulationiscomprisedofmanyjobsubmissions.(Youcanonlystayinthecomputerqueueforaspecifiedtime.Thisqueuetimelimitisoftenshorterthanthedesiredsimulationlength.

Page 22: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Runtimevariables:env_run.xml

1.RESUBMIT à setsthenumberoftimestoresubmittherun2.STOP_OPTIONà nmonths,ndays,nyears oraspecificdate3.STOP_N à setsthenumberofintervals(setbySTOP_OPTION)torun

Question:ThetutorialversionofFV~2deg_gx1CESMoncheyenne simulates~10 modelyearsperwallclock day.

Maximumwallclock requestis12hours.

Ifyouwanttorun100years,whatvaluesshouldbesetforSTOP_OPTION,STOP_N,andRESUBMIT?

Page 23: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Runtimevariablesenv_run.xml

Question:Ifyouwanttorun100years,whatvaluesshouldbesetforSTOP_OPTION,STOP_N,andRESUBMIT?

Answer:Assume2jobssubmissionsperday,(212-hrjobs).Modelruns10yrs/day,so10/2=5 modelyearsperjobsubmission.

STOP_OPTION=nyears,STOP_N=5 ,RESUBMIT=19Initialrunof5yrs+(19resubmits*5 yearsperjob)=100years

Page 24: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Runtimevariablesenv_run.xml

env_run.xmlcontinued…morecommonruntimevariablestochangeinclude

4.CONTINUE_RUNà ifTRUE,impliesaCONTINUErun.Note:ifRESUBMITis>0anditisaninitialrun(i.e.CONTINUE_RUN=FALSE),CONTINUE_RUNwillautomaticallyupdatetoTRUEuponcompletionofinitialrun.

5.INFO_DBUGà setslevelofstdout (standardout)printstatements.Ifdebugging,ahighervaluemaybeset.

6.DOUT_Sà turnsonshort-termarchiving.DOUT_SisTRUEbydefault.

7.HIST_OPTIONà coupler(”driver”)historyfilespecification.Note:Allothermodelcomponentsspecifyhistoryfileinformationwithinthemodelcomponentnamelists!

8.CCSM_CO2_PPMVà CO2 valuetobepropagatedtoPOPandCLM

Page 25: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Run-TYPEvariables:env_run.xml

Run-typevariablesdefinetypeofrun(startup,hybrid)andphysicalcontrols(namelist parameters).Samplevariablesspecifiedinthisfileinclude:

1. RUN_TYPEà startup,hybrid,branch

2. RUN_REFCASEà ifbranch/hybrid,casenameyouarestartingfrom

3. RUN_REFDATEà if““,datestampofreferencecaseyouarestartingfrom

4. GET_REFCASEà default=FALSE;forTRUE,dataneedstobepre-stagedinexecutabledirectory(thisisdifferentfromCESM1).

Page 26: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Run-TYPEvariablesenv_run.xml

CESMhasfour“types”ofruns:

STARTUP: Allmodelcomponentsareinitializedfrombasicdefaultinitialconditions.

HYBRID: - Theatmosphereisinitializedfrominitialconditionfilesgeneratedbyauser-specifiedCESMsimulation.

- Theland,oceanandiceareinitializedfromrestartfilesgeneratedbyauser-specifiedCESMsimulation.

- Nocouplerfileisneeded- Initialconditionsandrestartfilesusethesamereferencecaseandreferencedate.

BRANCH: Allmodelcomponentsareinitializedfromrestartfilesgeneratedbyauser-specifiedCESMsimulation.

CONTINUE: Continuationrunsforallruntypes.

Page 27: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Run-TYPEvariables:BranchvsHybrid

Branchandhybridrunsareusefulif youhaveanexperimentwhichonlyslightlydiffersfromyourcontrol,butyouwanttomakeaslightmodification,addhistoryoutput,orstartyoursimulationfromaCESMspun-upinitialstate.

Useahybridrun: formostapplicationswhereyoudoNOTneedbitforbitrestart.YouCANspecifyanewstartdateforyourmodelrun.

Usebranchrun:onlyforapplicationswhichrequireexactrestart.YouCANNOTspecifyanewstartdateforyourmodelrun.Itwillbeassignedbythereferencecase(RUN_REFDATE). (Example,ifyouwanttochangethehistoryoutputstreammid-run,youwillneedtobranch).

Page 28: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:env_run.xml

EXERCISE.1: Createanewfullycoupledstartupcasefrom1850conditionsandincreasetheamountofstandardoutproducedbythemodel.Changethedefaultlocationforthelogfilestoadirectoryon/glade/scratch.Run1month.

1. fromscriptsdirectory,createyourcasescripts:./create_newcase --case~/cases/b.day2.1--resf19_g17--compset B1850

2. fromcasedirectory,changeyourruntimevariables:./xmlchange INFO_DBUG=2,STOP_N=1,STOP_OPTION=nmonths./xmlchange –-subgroup case.run JOB_QUEUE=R1578615 ß tutorial only

./xmlchange –-subgroup case.st_archive JOB_QUEUE=R1578615

./xmlchange JOB_WALLCLOCK_TIME=2:00:00

3.Inenv_run file,specifyanewlogdirectoryonyourscratchspace(warning:don’tcopyandpastehere,addyourusername.Also,cutandpastcharactersmaynottranslate).

./xmlchange --fileenv_run.xml --idLOGDIR--val “/glade/scratch/$LOGNAME/logs/b.day2.1”

Continuednextpage

Page 29: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:env_run.xml

EXERCISE.1continued:

4../case.setup5.ManuallyupdateyourREADME.case filetodocumentyourchanges(Hint:type“history”

onthecommandlineandyouwillseeallcommandlinemodificationsyouhavemade).6. /glade/p/cesm/tutorial/compile_node.csh (on-sitetutorialonly)tologontocompute

nodeforcompilation)7. ./case.build8. Exitcomputenode.9. Reviewcase.run forinformationalpurposes(normally,youdon’tneedtotouchthis).10../case.submit

Review log files to familiarize yourself with standard out. Start looking at your history files. Checkyour CaseDocs/*_in files. Were your changes applied?

Page 30: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:HOMEWORK

Setupnowbutdon’tsubmituntilthelast15minutesofclass!

Assumingyourb.day2.1exerciseransuccessfullyinclass….ContinueExercise1toproducetotalof38months.Youhavealreadyrun1month.Thiswillrunovernightinthecheyenne queues.YourdatawillbeusedforthePracticalSessiontomorrowonDiagnosticsandOutput.Inenv_run.xml:1. SetCONTINUE_RUN to “TRUE”2.KeepSTOP_OPTION setto “nmonths”3. SetSTOP_Nto“37”4. Set INFO_DBUGto 15. Changebacktotheregularqueue(oryourjobwillnotrunovernight)

./xmlchange –-subgroup case.run JOB_QUEUE=regular do NOT cut and paste

./xmlchange –-subgroup case.st_archive JOB_QUEUE=regular

./xmlchange JOB_WALLCLOCK_TIME=12:00:00

6.Submit(./case.submit)fromyourb.day2.1casedirectory

Page 31: CESM2 Tutorial: Basic Modifications

CESM1Tutorial:BasicModifications:Ex1:ExampleREADME.case

.

Page 32: CESM2 Tutorial: Basic Modifications

•Not all changes can be made in env_run.xml.

•user_nl_<model> files appear in the case directory after ./case.setup has been invoked), i.e.

user_nl_cam atmosphere

user_nl_cice sea ice

user_nl_cism land ice

user_nl_clm land

user_nl_cpl coupler (driver)

user_nl_mosart river runoff

user_nl_pop ocean

user_nl_ww wave (ocean)

CESM2Tutorial:BasicModifications:Namelist variables:user_nl_<model>

Page 33: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Namelist tool:preview_namelists

•Insert namelist syntax for desired variable change into the appropriate file. To find the proper syntax and see all default namelist values, use preview_namelists to create the resolved namelists the model will use at runtime in your run directory (i.e. /glade/scratch/<user>/<case>/run/ ).

•In your case directory, type ./preview_namelists•cd to your run directory and view *_in files:

user_nl_cam modifies atm_inuser_nl_cice modifies ice_inuser_nl_cism modifies cism_inuser_nl_clm modifies lnd_inuser_nl_cpl modifies drv_inuser_nl_mosart modifies mosart_inuser_nl_pop modifies pop_inuser_nl_ww modifies wav_in

Page 34: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Namelist tool:preview_namelists

Example: Decrease timestep in the ocean model by increasing dt_count from 24 steps per day to 48 steps per day.

1. Edit (vi or emacs) user_nl_pop

2. Insert correct syntax as a new line at the end of the comment section in the form of: namelist_var = new_namelist_value

i.e., dt_count = 48

3. Invoke preview_namelists again to verify change in your run directory and update the documentation pop_in file in CaseDocs.

Note: POP2 is now coupling every hour, rather than once per day (as in CESM1.2), so choice of dt_count is restricted to multiples of 24. CESM2 POP2 documentation is under construction, for syntax, see the CESM1.2 webpage, however, consult the bulletin board for further details on changing POP timestep.http://www.cesm.ucar.edu/models/cesm1.2/pop2/doc/faq/#nml_general_change_dt

Page 35: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Exercise2

EXERCISE.2: BRANCH fromtheendofExercise1anddoubleCO2 foratmosphere,land,andocean.Doublemethanefortheatmosphere.Run1month.Restart1month.Checkyourresolvednamelists inyourrundirectory.

1. ./create_newcase --case~/cases/b.day2.2-resf19_g17--compset B1850

2. cd~/cases/b.day2.2

3. ./xmlchange RUN_TYPE=branch,RUN_REFCASE=b.day2.1,RUN_REFDATE=0001-02-01,STOP_OPTION=nmonths,STOP_N=1,RESUBMIT=1,CCSM_CO2_PPMV=569.4(Notes:nospacesbetweenarguments;CCSM_CO2_PPMVchangeslandandoceanonly)../xmlchange –-subgroup case.run JOB_QUEUE=R1578615 ß tutorial only./xmlchange –-subgroup case.st_archive JOB_QUEUE=R1578615./xmlchange JOB_WALLCLOCK_TIME=2:00:00

4../case.setup

5.Placeacopyyourrestartfilesfromyourbday2.1shorttermarchivespacetoyourbday2.2rundirectory.cp /glade/scratch/$LOGNAME/archive/b.day2.1/rest/0001-02-01-00000/*(space)/glade/scratch/$LOGNAME/b.day2.2/run/

Continuednextpage

Page 36: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Exercise2

EXERCISE.2:continued

6. ./preview_namelists

7.CheckCaseDocs/atm_in forco2vmrsyntax(andseedefaultvalues).Cutandpastefromatm_in file,(ortype)intouser_nl_cam:

co2vmr =569.4e-6ch4vmr =1583.2e-9

8../preview_namelists(checkatm_in,lnd_in,andpop_intomakesureyourchangeswereimplemented)

9./glade/p/cesm/tutorial/compile_node.csh./case.buildexit

Continuednextpage

Page 37: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:Exercise2

EXERCISE.2:continued

10../case.submit

11. Reviewqueuesandlogfiles.Whereareyourlogsfiles(wherearethey)?Howfastdoesthefirstmonthrun(timingfilesareinthecasedirectoryandtherundirectory)?Wasthesecondmonthresubmitted?Whatisthevalueof“CONTINUE_RUN”initially?(Checkbeforethemodelfinishesthefirstmonth).Whatisthevalueafterresubmission?Readtheenv_run.xml documentationforexplanation!(Hint:see”RESUBMIT_SETS_CONTINUE_RUN”).

12.Afterthejobcompletes,gototheshorttermarchivespaceandexplore.

Page 38: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:env_run.xmlvs.user_nl_<model>

Whatmethodisbestforchanges?

env_run.xml:• Run_type specification(startup,hybrid,branch,continue)• Runtimevariables(stop_option,resubmits,etc.)• CO2changesforlandandocean

user_nl_<model>:• Swappingoutadefaultinputdata setforahome-growndataset• Namelist changesforcomponentmodels

Page 39: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:env_run.xmlvs.user_nl_<model>

Atruntime,thescriptswillautomaticallyre-populateyourresolvednamelistsbasedonenv_run andtheuser_nl_<model>files,however,itisalwaysgoodtodocumentandcheckyourchangesBEFOREruntime.

Alwayscheckyourresolved*_infiles(rundirectory,i.e./glade/scratch)tomakesureyourchangeshavebeenapplied.

Page 40: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:PhysicsTimeStepChanges

WhereandWhentoChangeTimeSteps

Whenthemodelcrashesduetolarge,temporaryinstabilities,onemethodtoovercometheproblemistochangethetimestep.

Thisistypicallydoneineithertheatmosphereoroceancomponents.

CAM/CLM:ATM_NCPLinenv_run.xml.

POP:dt_count inPOPnamelist.Editandchangetheuser_nl_pop file.

Page 41: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:PhysicsTimeStepChanges

1.CAM6timestepissetbyATM_NCPL inenv_run.xml andspecifiesthenumberofcouplingintervalsperdaybetweentheatmosphere/landandthecoupledsystem.BasedonATM_NCPL,thescriptswillautomaticallycomputethetimestepfortheatmosphereandland(DTIME)andpopulatethenamelist filesaccordingly.

2. CLM5timestep=CAM6timestep;thisisautomaticallysetwiththeCAMtimestepviaATM_NCPL.Youcannotsetthisseparately.

3. POP2timestepischangedintheuser_nl_pop fileandisbasedonOCN_NCPL(foundinenv_run.xml),“dt_count”,and“dt_option”.Thedefaultdt_option is“steps_per_day”.

4. CICE5timestepissetbythecouplingintervalvariableICE_NCPLfoundinenv_run.xml.NotethatICE_NCPL=ATM_NCL.

Page 42: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:MoreExercises

Exercise.3: HybridstartafullycoupledforPre-Industrialconditions.Usefilesfromspecifieddirectoryforyourreferencecase.Changeyourorbitalparameterstouseconditionfromthe1600ADandchangethephysicstimestepintheatmosphereandlandto1200seconds(defaultis1800).(Note:thisisanexerciseanddoesnotrepresentanyhistoricalperiod).Run5days(default).

1. ./create_newcase --case~/cases/b.day2.3--resf19_g17--compset B1850

2.cd~/cases/b.day2.3

3. ./xmlchange RUN_TYPE=hybrid,RUN_REFCASE=b.day2.hybridstart,RUN_REFDATE=0002-01-01,ATM_NCPL=72(WhyisATM_NCPL=72,dothemath).

./xmlchange –-subgroup case.run JOB_QUEUE=R1578615ß tutorialonly

./xmlchange –-subgroup case.st_archive JOB_QUEUE=R1578615./xmlchange JOB_WALLCLOCK_TIME=2:00:00

4../case.setup

5.Placeacopyofthespecifiedrestartfilesfromyourbday2.1shorttermarchivespacetoyourbday2.2rundirectory.(Thesearefileswecreatedforyoutopracticeahybridstart).

cp /glade/scratch/shields/archive/b.day2.hybridstart/rest/0002-01-01-00000/*(space)/glade/scratch/$LOGNAME/b.day2.3/run/. Continuednextpage

Page 43: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:MoreExercises

Exercise.3:Continued:

6. ./preview_namelists(Whatisthedifferencebetweenthecamandclm initialfilesinthisExerciseversusthebranchfilesinExercise2?Hint:Checkncdata andcam_branch_file inatm_in andfinidat andnrevsn inlnd_in).

7.Edituser_nl_cpl,aftercomments,addline:orb_iyear=1600(Hint,checkdrv_in).UpdateREADME.case

8. Optional:./preview_namelists

9./glade/p/cesm/tutorial/compile_node.cshcase.buildexit

10. ./case.submit

11. Checklogsfiles.Thecouplerlogfileshouldconfirmyourorbitalchanges.

Page 44: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:MoreExercises

Exercise.4:ClonecasefromExercise.3.Insteadofspecifyingorbitalyear,assignindividualparameters(eccentricity=0,obliquity=23.,andprecession=0.)IncludenewmodificationtouseadifferentshortwaveabsorptionparameterizationinPOPcalled“jerlov”.(Thedefaultsw absorptionparameterizationisgeography-specificandcalled“chlorophyll”.“Jerlov”istypicallyusedforpaleoclimate simulationswherethegeographyisdifferentfrompresentday).TurnofftheUrbanparamterization inCLM.Run5days(default).

1../create_clone --case~/cases/b.day2.4--clone~/cases/b.day2.32.Edituser_nl_cpl andchangethefollowing:

a.Removeorb_iyearb.Addorb_mode =‘fixed_parameters’c.Addorb_eccen =0.d.Addorb_mvelp =0.e.Addorb_obliq =23.

3. ./xmlchange –-subgroup case.run JOB_QUEUE=R1578615ß tutorialonly./xmlchange –-subgroup case.st_archive JOB_QUEUE=R1578615./xmlchange JOB_WALLCLOCK_TIME=2:00:00

Continuednextpage

Page 45: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:MoreExercises

Exercise.4:continued

4.Edituser_nl_pop andadd:sw_absorption_type ='jerlov‘5.Edituser_nl_clm andadd:urban_hac =‘OFF’6.UpdateyourREADME.case filetodocumentyourchanges.7../case.setup8.cp /glade/scratch/shields/archive/b.day2.hybridstart/rest/0002-01-01-00000/*(space)/glade/scratch/$LOGNAME/b.day2.4/run/9../preview_namelists

Becauseyouclonedthiscaseyoualreadyhadyouruser_nl_<model>fileinyourcasecasedirectory,butyouhavechangedthemandthereforeneedtoinvokepreview_namelist toupdateyourCaseDocs.10.Logontocomputenode,then,.case.build, thenexitcomputenode.11../case.submit12.Ifyouwant,youcanstarttolookatthehistoryoutput.Onlytheocn willhavedailyoutputtoview,thedefaultismonthlyformostmodelcomponents.(Usencview).Tousencview,youwillneedtotype“moduleloadncview”onyourcommandline.Whereistheshorttermhistoryoutputlocated?Gobacktoearlierexercisestoexploremonthlyhistoryfiles.13.Compareb.day2.4ocn historydatatob.day2.3data.(Usencdiff).Tousencdiff,youwillneedtotype“moduleloadnco”onyourcommandline.

Page 46: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:MoreExercises

Exercise:Onyourown…

ContinueExercise.4(restart)butreducethesnowalbedoes intheicemodelbyhalf.(Thisisdoneinuser_nl_cice).Youdonotneedtorecompile.Usetherestartfilesthatarealreadyintherundirectory andrun5moredays.

Knowwhatyouarechanging.Lookupinformationonnamelist variablesinthedocumentation.https://ncar.github.io/CICE/doc/build/html/users_guide/ice_nml_var.html?highlight=snow%20albedo

BesuretoupdateyourREADME.case filetokeeptrackofyourchanges.Themodelwillrunregardlessofwhetherornotyourremembertoincludeallofyourchanges.Checkyourresolvednamelist files($RUNDIR/<model>_infiles)tomakesureallchangesareincluded.Ifyoulike,resubmitandcontinuetherunfor1moremonth,experimentwithothernamelist variableschanges,andcomparehistoryfiles.

Page 47: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:BottomLine

Whatuser-modifiedfilesareactuallyusedatruntime?./case.setup (or./preview_namelists) $RUNDIR/atm_in

$RUNDIR/lnd_in$RUNDIR/pop_in$RUNDIR/ice_in$RUNDIR/drv_in

BottomLine:Usermodificationsshouldbeimplementedintheenv_run.xmlortheuser_nl_<model>files.

Whatfilesarefordocumentationpurposes?Buildconf/*.input_data_list,software_environment.txtCaseDocs,CaseStatus,LockedFiles,README.case

Note:Buildconf/*confdirectoriesarecreatedaftercase.setup.TheuserdoesNOTneedtotouchthesefiles.

Page 48: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:env_batch.xml

Tofindyourtotalwallclock timeafterrunning,eitherchecktimingfileoryourstandardoutputfile(i.e,b.day2.run.onnnnnnn) inyourcasedirectory.

env_batch.xml is where you can change the CESM2 default values related to job batch submissions.

After the tutorial when you are running at your home institution, you may want to change the default queues, wallclock time, or control the project number after you have set up a case.

Wallclock time: <entry id="JOB_WALLCLOCK_TIME" value="12:00:00">note: use subgroup <group id="case.run">

Job queue: <entry id="JOB_QUEUE" value="regular">

Project number: <entry id="PROJECT" value="UESM0005">

Page 49: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:LogFiles

LogFiles:

Duringmodelexecution:Aftermodelcompletion:

atm.log.yyddmm-nnnnnn.gzlnd.log.yyddmm-nnnnnn.gzocn.log.yyddmm-nnnnnn.gzice.log.yyddmm-nnnnnn.gzcpl.log.yyddmm-nnnnnn.gzrof.log.yyddmm-nnnnnn.gzcesm.log.yyddmm-nnnnnn.gz

Model runtimestandardoutput

$RUNDIR/*$LOGDIR/*

Files aregzipped aftermodelcompletion.Restore bytypinggunzip <logfile>.

yyddmm =year,month,daynnnnnn =time idstamp

Page 50: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:OtherTips

CHECK yourresolvednamelists!• Beforeyousubmityourjob,itisalwaysgoodtodoublecheckyour

$RUNDIR/<model>_innamelist files.Thesearethefilesthemodelwillactuallyuseatruntimeandarebasedonyourenv_run.xmlanduser_nl_<model>files.

• Verifythatthemodelisusingwhatyouthinkitisusing!

DOCUMENT everythingyoudo!• Apapertrailofyourproceduresandthoughtsisgoodscientificpractice.

TheREADME.case fileistheperfectplacetowritenotes.Youwillthankyourselfmonths(years)later,whenyouaretryingtofigureoutwhatyoudidoh-so-longago!

Page 51: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:PostRunTips

Checklogs• Checkyourlogfilestomakesuretherearenohiddenproblemsandtoverifythemodelis

runningsmoothlyandasyouexpect.Thelogfilesmayalsohelpyouverifyyourmodificationswereincludedinyourrun.

Checkoutput• Checkyourhistoryfiles.Itisagoodideatorunasmalltestsampleofyourexperiment

beforelaunchingyourfullproductionrun.Forexample,ifyouwanttoruna500yearcontrolwithvariousmodifications,firstrun10years.Checkthehistoryoutputfilesandverifythemodelisrunningasyoudesignedbeforecontinuingwiththefull500years.Itisalwaysbesttofinderrorsearly,ratherthanlater,intherun.

Checktimings• Checkyourtimings.Aftermodelcompletion,atimingsubdirectorywillbeplacedinyour

scriptsdirectory.Checkthetimingsafterseveraljobcompletionstoverifythatthemodelisrunningefficientlyandasexpected.DoublecheckyourtimingswiththeCESMdefaulttimingsforyourspecificmodelresolutionandmachine.DefaulttimingsforCESM2canbefoundat:http://www.cesm.ucar.edu/models/cesm2.0/timing/index.html

Page 52: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications:HELP!

FindingHelp…

1. Documentation:http://www.cesm.ucar.edu/models/cesm2.0/

2. DiscussCESM: http://bb.cgd.ucar.edu

Page 53: CESM2 Tutorial: Basic Modifications

CESM2Tutorial:BasicModifications

HaveFun!!!