Namelist changes from CAM tag cam3_3_15 and beyond

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).

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:

OLDNEW
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_monttly 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
Valid options:
startup = Use initial files
continue = Use restart files to continue simulation
branch = Use restart files to branch simulation
ccsm_inparm
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 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
timemgr_inparm
restart_n Driver level restart frequency value timemgr_inparm
stop_option Driver level restart frequency type 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
timemgr_inparm
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.