Changes to Building and Running in WACCM 3.5.07 Tag06 from 3.1.9 Tag12



Since WACCM/CAM 3.5.07 Tag06 is significantly different from 3.1.9 Tag12 when it comes
to building and running, I am summarizing the differences I have detected between the
two versions of the model.

The 3.5.07T06 build script is very similar to the previous build script. The following
are the differences:

1) Build script case name specified is sent through to the name list as the case name
used when running.

2) There is now a script called 'build_namelist' which is run after compilation and
linking and creates five name list files, one each for atmosphere, land,ocean, and ice
and a driver name list. One possible input to this script is a user name list file
which can be used to customize any name list variable. The name lists are, by default,
put into the the 'nml_dir' subdirectory of the directory where the build script is run.

From 3.5.07 to 3.5.48, it became a requirement to include the name list variable
'gw_drag_file' to specify the gravity wave spectra? for the model.

An example build script is on blueice:

/blhome/joemci/wa3/model/2x/bld_waccm_3507T06_dev.csh

And an example input user name list is:

/blhome/joemci/wa3/model/2x/WA3507.ti.nml

The run script for 3.5.07 is also similar to 3.1.9 but with some significant differences
as follows:

1) The name list files need to be copied from the current directory to the run directory

2) A file named 'counter' located in the run directory is used to count jobs in a
series of continuation runs in the same way the 'RESUBMIT' file was used in 3.1.9.

4) Based on the value of the 'limit' variable, the driver name list file is copied to
the run directory. If 'limit' is zero, the 'init' drv name list file is copied. If
'limit' greater than zero, the 'rest' file is copied. The 'rest' file will need to be
created from the 'init' drv file for continuation runs with 'startup' substituted by
'continue' for the 'start_type' name list variable.

3) The output of a run does not go to the '.log' file in the current directory but ends
up in a file in the run directory called run_*.out where the * is zero for an initial
run or is the zero based number of the run in a series of continuation runs

4) The pointer files for continuation runs are not only in the home directory but also
are in the run directory and called 'rpointer.*'.

The following are some name list variables that changed between WACCM 3.1.9 Tag12 and
3.5.07 Tag06:

case_id replaced by case_name
iyear_ad replaced by orb_iyear_ad
nelapse replaced by stop_option with stop_n
nrefrq replaced by no_restart with restart_*
nsrest replaced by start_type

Between 3.5.07 and 3.5.48 the name list variable mss_irt was eliminated. The archiving
of history files is now done through two scripts included in the run script and are
executed after each run to store the data.

Below are the notes from the ChangeLog about some name list differences since WACCM
3.1.9.

Tag name: cam3_3_15
Originator(s): Erik Kluzek
Date: Thu Jul 13 21:17:44 MDT 2006
One-line Summary:

Purpose of changes: Put in top level initialization and clock objects at driver level
for moving forward with sequential CCSM.

This separates out the driver from the internals of the CAM time-manager. Making
the top level driver separable from CAM itself, and moves it toward a Sequential
CCSM where the sub-components can be swapped for other CCSM components (such
as the CCSM data models or active ice and active ocean models).

Bugs fixed (include bugzilla ID): 153

Fix bug in test_driver.sh where if BL_ROOT was NOT set – it would erase the
entire contents of your /ptmp/$USER directory after it was finished.

Describe any changes made to build system: Add csm_share/eshr directory to Filepath

Describe any changes made to the namelist: Split into 4 namelists.

ccsm_inparm ----- Sequential CCSM driver level initialization information
(passed to all subcomponent models: atm, lnd, ice, ocn)
timemgr_inparm – Sequential CCSM driver level clock information
(passed to all subcomponent models: atm, lnd, ice, ocn)
cam_inparm ------ CAM specific namelist
clm_inparm ------ CLM specific namelist

The ccsm_inparm namelist is managed by the shr_inputInfo_mod.F90 module and objects.
The timemgr_inparm namelist is managed by the eshr_timemgr_mod.F90 module and objects.
These are both sequential CCSM top level driver objects that are passed into
sub-components (atmosphere, land, sea-ice, and ocean) to manage information that is
shared between sub-components.

CHANGE SO THAT THE NAMELIST IS NO LONGER READ FROM STDIN – THE NAMELIST NAME IS
ASSUMED AND THE FILE OPENED EXPLICITLY. When namelists read the file is opened, and
namelists are read until the correct one is found, then the file is closed. If the
needed namelist does not exist – OR THERE IS AN ERROR IN IT – the program will abort
with an error.

The interface to build-namelist still uses the input namelists of: camexp and clmexp
and will divide the relevant namelist items to the appropriate namelists.

Option added to build-namelist: -ignore_ic_date

by default build-namelist will match the start date/time (start_ymd,start_tod) for
initial condition datasets. If a suitable dataset with the correct starting date
(as well as resolution and other matching criteria) isn't found – an initial condition
dataset will NOT be provided.

If you use the -ignore_ic_date option is used datasets will be matched without
examining the starting date/time of the dataset.

Namelist items removed:

restart_nsteps --> use restart_option and restart_n
restart_nhours --> use restart_option and restart_n
restart_ndays ---> use restart_option and restart_n
restart_monthly -> use restart_option and restart_n
restart_yearly --> use restart_option and restart_n
no_restart ------> use restart_option and restart_n
nelapse ---------> use stop_option and stop_n
nestep ----------> Functionality removed
nsrest ----------> Use start_type

Namelist items moved to different namelist:

Old namelist item New namelist used in
================= ====================
archive_dir ccsm_inparm (now refers to the top level archive directory)
aqua_planet ccsm_inparm
brnch_retain_casename ccsm_inparm
mss_irt ccsm_inparm
mss_wpass ccsm_inparm
calendar timemgr_inparm
stop_ymd timemgr_inparm
stop_tod timemgr_inparm
start_ymd timemgr_inparm
start_tod timemgr_inparm
ref_ymd timemgr_inparm
ref_tod timemgr_inparm
perpetual_run timemgr_inparm
perpetual_ymd timemgr_inparm

Namelist items that changed names:

Old namelist item New namelist item name New namelist used in
================= ====================== ====================
eccen orb_eccen timemgr_inparm
obliq orb_obliq timemgr_inparm
mvelp orb_mvelp timemgr_inparm
iyear_AD orb_iyear_AD timemgr_inparm
ctitle case_desc ccsm_inparm
caseid case_name ccsm_inparm
adiabatic atm_adiabatic ccsm_inparm
ideal_phys atm_ideal_phys ccsm_inparm

Namelist items added:

Namelist item Description New namelist used in
========================= ====================================== ====================
start_type ---------------> How simulation will startup ccsm_inparm
Valid options:

startup = Use initial files
continue = Use restart files to continue simulation
branch = Use restart files to branch simulation

restart_pfile ------------> Driver level restart pointer file name ccsm_inparm
restart_file -------------> Driver level restart file name ccsm_inparm
restart_file_override ----> Override list of items from restart file ccsm_inparm **
restart_file_TGRoverride -> Override list of items from restart file ccsm_inparm **
restart_option -----------> Driver level restart frequency type timemgr_inparm
Valid options:

nsteps ---- Write restarts every restart_n time-steps
ndays ----- Write restarts every restart_n days
nmonths — Write restarts every restart_n months
nyears ---- Write restarts every restart_n years
monthly — Write restarts at beginning of each month
yearly ---- Write restarts at beginning of the year
end ------- Write restarts only at end of simulation
none ------ Don't write any restarts

restart_n ----------------> Driver level restart frequency value timemgr_inparm
stop_option --------------> Driver level restart frequency type timemgr_inparm
Valid options:

nsteps ---- Stop after stop_n time-steps
ndays ----- Stop after stop_n days
nmonths — Stop after stop_n months
nyears ---- Stop after stop_n years
date ------ Stop at stop_ymd/stop_tod date/time

stop_n -------------------> Driver level restart frequency value timemgr_inparm
stop_final_ymd -----------> The final date to run to (YYYYMMDD format) timemgr_inparm
atm_cpl_dt ---------------> Atmosphere coupling frequency (sec) timemgr_inparm

Example creation of the old and new namelist using build-namelist:

With cam3_3_14:

build-namelist -runtype initial -namelist "&camexp nelapse=-1, restart_monthly=.true., iyear_AD=1990/ "

with cam3_3_15:

build-namelist -runtype startup -namelist "&camexp stop_option='ndays', stop_n=1, restart_option='monthly' ,
orb_iyear_AD=1990 /"

So build-namelist figures out that all of the above options belong in the timemgr_inparm namelist
and deal with it appropriately. And results in the following namelist:

&ccsm_inparm
case_name = 'camrun'
start_type = "startup"
/
&timemgr_inparm
atm_cpl_dt = 1200
orb_iyear_ad = 1950
restart_option = 'monthly'
start_ymd = 901
stop_n = 1
stop_option = 'ndays'
/
&cam_inparm
absems_data = '/fs/cgd/csm/inputdata/atm/cam/rad/abs_ems_factors_fastvx.c030508.nc'
aeroptics = '/fs/cgd/csm/inputdata/atm/cam/rad/AerosolOptics_c050419.nc'
bnd_topo = '/fs/cgd/csm/inputdata/atm/cam/topo/USGS-gtopo30_64x128_c050520.nc'
bndtvaer = '/fs/cgd/csm/inputdata/atm/cam/rad/AerosolMass_V_64x128_clim_c031022.nc'
bndtvo = '/fs/cgd/csm/inputdata/atm/cam/ozone/pcmdio3.r8.64x1_L60_clim_c970515.nc'
bndtvs = '/fs/cgd/csm/inputdata/atm/cam/sst/sst_HadOIBl_bc_64x128_clim_c020411.nc'
dtime = 1200
ncdata = '/fs/cgd/csm/inputdata/atm/cam/inic/gaus/cami_0000-09-01_64x128_L26_c030918.nc'
/
&clm_inparm
fpftcon = '/fs/cgd/csm/inputdata/lnd/clm2/pftdata/pft-physiology-cn16.c040719'
fsurdat = '/fs/cgd/csm/inputdata/lnd/clm2/srfdata/cam/clms_3.1_64x128_c050523.nc'
/

How to override information on the restart file from the namelist: **

By default for a continue or branch type of simulation – driver information is
read from the restart file and namelist information is ignored. In order to explicitly
use driver level restart information you have to do the following:

1.) Set given namelist item(s) you want to override.
2.) Set restart_file_override (or restart_file_TGRoverride for timemgr_inparm namelist)
to include the colon delimited list of items you want to override on the namelist.
3.) To override the case_name – set the brnch_retain_casename namelist item to true.

List of ccsm_inparm items that can be overridden: mss_irt, mss_wpass, and case_desc
(and case_name is brnch_retain_casename is set to true)
List of timemgr_inparm items that can be overridden: restart_option, restart_n

Examples

build-namelist -runtype continue -namelist \
"&camexp mss_irt=45, mss_wpass='example', restart_file_override='mss_irt:mss_wpass' /"

The above example will override the values of mss_irt, mss_wpass from the restart file
with those given on the namelist. Note if restart_file_override were missing, the
values on the restart file would be used an the values on the namelist ignored.

build-namelist -runtype continue -namelist \
"&camexp restart_option='nyears', restart_n=2, restart_file_TGRoverride='restart_option:restart_n' /"

The above example will override the values of restart_option, and restart_n from
the restart file with those given on the namelist. Note if restart_file_override
were missing, the values on the restart file would be used an the values on the
namelist ignored.

The namelist variables nrefrq and itsst have been eliminated.

New namelist variables added:
logical :: no_restart ! true => turn off all restart writes (default: false)
integer :: restart_nsteps ! restart interval in steps
integer :: restart_nhours ! restart interval in hours
integer :: restart_ndays ! restart interval in days
logical :: restart_monthly ! true => write restart at begining of each month (default: true)
logical :: restart_yearly ! true => write restart at begining of each year

  • No labels