[Dart-dev] [6548] DART/trunk/models/cam/shell_scripts: The user_nl_cam sections now support the use of prescribed aerosols,

nancy at ucar.edu nancy at ucar.edu
Thu Oct 24 16:09:03 MDT 2013


Revision: 6548
Author:   thoar
Date:     2013-10-24 16:09:02 -0600 (Thu, 24 Oct 2013)
Log Message:
-----------
The user_nl_cam sections now support the use of prescribed aerosols,
and are able to run through Dec 2008. 

FYI: it is still REQUIRED to create a (compact) CLM history file,
which these scripts do. The previous commit solved one bug, but caused
another.

Modified Paths:
--------------
    DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_hybrid
    DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_pmo

-------------- next part --------------
Modified: DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_hybrid
===================================================================
--- DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_hybrid	2013-10-24 17:29:54 UTC (rev 6547)
+++ DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_hybrid	2013-10-24 22:09:02 UTC (rev 6548)
@@ -452,6 +452,7 @@
 ./xmlchange RTM_MODE='NULL'
 
 # level of debug output, 0=minimum, 1=normal, 2=more, 3=too much, valid values: 0,1,2,3 (integer)
+
 ./xmlchange DEBUG=FALSE
 ./xmlchange INFO_DBUG=0
 
@@ -587,22 +588,46 @@
    echo " nhtfrq        = -$stop_n "                      >> ${fname}
    echo " mfilt         = 1 "                             >> ${fname}
 
-   # Files specified below are because the 'default' files only
-   # contain data through 2005 and we may be interested in timeframes after that.
+   # Some of the files specified here are because the default files only
+   # contain data through 2005 and we are interested in timeframes after that.
 
+   # CAM5 does prognostic aerosols by default (which is expensive).
+   # Specifying the following causes CAM to use prescribed aerosols, which is cheaper.
+   # Prescribed aerosols on the timescales of interest to assimilation are acceptable.
+
    set chem_datapath = "${cesm_datadir}/atm/cam/chem/trop_mozart_aero"
 
-   # CAM5 does prognostic aerosols by default. If you want to prescribe them,
-   # use the following variables with your own settings ...
-   # Filenames with 'clim' in their names should specify aerodep_flx_type      = 'CYCLICAL'.
-   # Other values are 'CYCLICAL', 'SERIAL', 'INTERP_MISSING_MONTHS', or 'FIXED'.
+   echo " bndtvghg              = '${cesm_datadir}/atm/cam/ggas/ghg_hist_1765-2009_c100902.nc'" >> ${fname}
+   echo " prescribed_ozone_file = 'ozone_1.9x2.5_L26_1850-2015_rcp45_c101108.nc'"               >> ${fname}
+   echo " tracer_cnst_file      =  'oxid_1.9x2.5_L26_1850-2015_rcp45_c101108.nc'"               >> ${fname}
 
-   echo "aerodep_flx_datapath = '${chem_datapath}/aero'"                                   >> ${fname}
-   echo "aerodep_flx_file     = 'aerosoldep_rcp4.5_monthly_1849-2104_0.9x1.25_c100407.nc'" >> ${fname}
-   echo "aerodep_flx_type     = 'CYCLICAL' "                                               >> ${fname}
-   # Set if aerodep_flx_type = 'CYCLICAL'
-   echo "aerodep_flx_cycle_yr = 2000 "                                                     >> ${fname}
+   echo "aerodep_flx_datapath   = '${chem_datapath}/aero'"                                      >> ${fname}
+   echo "aerodep_flx_file       = 'aerosoldep_rcp4.5_monthly_1849-2104_0.9x1.25_c100407.nc'"    >> ${fname}
+   echo "aerodep_flx_type       = 'CYCLICAL'"                                                   >> ${fname}
+   echo "aerodep_flx_cycle_yr   = 2000"                                                         >> ${fname}
 
+   echo " ext_frc_specifier     = "                                                             >> ${fname}
+   echo " 'SO2    -> ${chem_datapath}/emis/ar5_mam3_so2_elev_1850-2010_c20100902_v12.nc',"      >> ${fname}
+   echo " 'bc_a1  -> ${chem_datapath}/emis/ar5_mam3_bc_elev_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'num_a1 -> ${chem_datapath}/emis/ar5_mam3_num_a1_elev_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'num_a2 -> ${chem_datapath}/emis/ar5_mam3_num_a2_elev_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'pom_a1 -> ${chem_datapath}/emis/ar5_mam3_oc_elev_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'so4_a1 -> ${chem_datapath}/emis/ar5_mam3_so4_a1_elev_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'so4_a2 -> ${chem_datapath}/emis/ar5_mam3_so4_a2_elev_1850-2010_c20100902_v12.nc'"    >> ${fname}
+
+   echo " srf_emis_specifier    = "                                                             >> ${fname}
+   echo " 'DMS    -> ${chem_datapath}/emis/aerocom_mam3_dms_surf_1849-2010_c20100902.nc',"      >> ${fname}
+   echo " 'SO2    -> ${chem_datapath}/emis/ar5_mam3_so2_surf_1850-2010_c20100902_v12.nc',"      >> ${fname}
+   echo " 'SOAG   -> ${chem_datapath}/emis/ar5_mam3_soag_1.5_surf_1850-2010_c20100902_v12.nc'," >> ${fname}
+   echo " 'bc_a1  -> ${chem_datapath}/emis/ar5_mam3_bc_surf_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'num_a1 -> ${chem_datapath}/emis/ar5_mam3_num_a1_surf_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'num_a2 -> ${chem_datapath}/emis/ar5_mam3_num_a2_surf_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'pom_a1 -> ${chem_datapath}/emis/ar5_mam3_oc_surf_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'so4_a1 -> ${chem_datapath}/emis/ar5_mam3_so4_a1_surf_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'so4_a2 -> ${chem_datapath}/emis/ar5_mam3_so4_a2_surf_1850-2010_c20100902_v12.nc'"    >> ${fname}
+
+   echo " solar_data_file = '${cesm_datadir}/atm/cam/solar/spectral_irradiance_Lean_1610-2009_ann_c100405.nc'" >> ${fname}
+
    # ===========================================================================
    set fname = "user_nl_clm${inst_string}"
    # ===========================================================================
@@ -617,24 +642,24 @@
    # http://www.cesm.ucar.edu/models/cesm1.1/clm/models/lnd/clm/doc/UsersGuide/clm_ug.pdf
    #
    # Every 6 hours
-   # echo "hist_mfilt  = 1"              >> $fname
-   # echo "hist_nhtfrq = -$stop_n"       >> $fname
+   # echo "hist_mfilt  = 1"              >> ${fname}
+   # echo "hist_nhtfrq = -$stop_n"       >> ${fname}
    # Every month
-   # echo "hist_mfilt  = 1"              >> $fname
-   # echo "hist_nhtfrq = 0"              >> $fname
+   # echo "hist_mfilt  = 1"              >> ${fname}
+   # echo "hist_nhtfrq = 0"              >> ${fname}
 
-   echo "hist_empty_htapes = .true."   >> $fname
-   echo "hist_fincl1 = 'TSA'"          >> $fname
-   echo "hist_nhtfrq = -$stop_n"       >> $fname
-   echo "hist_mfilt  = 1"              >> $fname
-   echo "hist_avgflag_pertape = 'A'"   >> $fname
+   echo "hist_empty_htapes = .true."   >> ${fname}
+   echo "hist_fincl1 = 'TSA'"          >> ${fname}
+   echo "hist_nhtfrq = -$stop_n"       >> ${fname}
+   echo "hist_mfilt  = 1"              >> ${fname}
+   echo "hist_avgflag_pertape = 'A'"   >> ${fname}
 
    # ===========================================================================
    set fname = "user_nl_cice${inst_string}"
    # ===========================================================================
    # CICE Namelists
 
-   echo "ice_ic = '${run_refcase}.cice${inst_string}.r.${run_refdate}-${run_reftod}.nc'" >> $fname
+   echo "ice_ic = '${run_refcase}.cice${inst_string}.r.${run_refdate}-${run_reftod}.nc'" >> ${fname}
 
    @ inst ++
 end

Modified: DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_pmo
===================================================================
--- DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_pmo	2013-10-24 17:29:54 UTC (rev 6547)
+++ DART/trunk/models/cam/shell_scripts/CESM1_1_1_setup_pmo	2013-10-24 22:09:02 UTC (rev 6548)
@@ -102,9 +102,10 @@
 # define machines and directories
 #
 # mach            Computer name
-# cesmroot        Location of the cesm code base
+# cesm_datadir    Location of some supporting CESM data files.
+# cesmroot        Location of the CESM code base
 #                 For cesm1_1_1 on yellowstone
-# caseroot        Your (future) cesm case directory, where this CESM+DART will be built.
+# caseroot        Your (future) CESM case directory, where this CESM+DART will be built.
 #                    Preferably not a frequently scrubbed location.
 #                    This script will delete any existing caseroot, so this script,
 #                    and other useful things should be kept elsewhere.
@@ -208,7 +209,7 @@
 
 setenv ACCOUNT      P8685xxxx
 setenv queue        economy
-setenv timewall     0:20
+setenv timewall     0:10
 
 # ==============================================================================
 # set these standard commands based on the machine you are running on.
@@ -421,11 +422,6 @@
 ./xmlchange NCPL_BASE_PERIOD=day
 ./xmlchange ATM_NCPL=48
 
-# TJH FIXME ... any reason to turn ON the biogeochemistry in CLM when atmos only?
-# There is no compset that has everything we want,
-# so we are also turning on the CLM biogeochemistry.
-#./xmlchange CLM_CONFIG_OPTS='-bgc cn'
-
 if ($short_term_archiver == 'off') then
    ./xmlchange DOUT_S=FALSE
 else
@@ -497,7 +493,7 @@
 endsw
 
 # This is the part that modifies the run script to allow CESM to advance
-# correctly given the modifications necessary for CAM. It also copies several
+# correctly given the modifications of CAM for DART. It also copies several
 # required DART files to the caseroot directory.
 
 ./CESM_DART_config
@@ -548,17 +544,17 @@
 endif
 
 # ==============================================================================
-# Modify namelist templates for each instance. This is a bit of a nuisance in
-# that we are pulling in restart and initial files from 'all over the place'
-# and each model component has a different strategy.
+# Modify namelist templates for each instance.
+# CAM SourceMods force CAM to ALWAYS read INITIAL files specified by namelist var 'ncdata'
 #
-# In a hybrid run with CONTINUE_RUN = FALSE (i.e. just starting up):
+# When CONTINUE_RUN = FALSE (i.e. just starting up):
 #
-# CAM has been forced to read initial files - specified by namelist var:ncdata
 # CICE reads from namelist variable 'ice_ic'
 # CLM builds its own 'finidat' value from the REFCASE variables but in CESM1_1_1
 #     it does not use the instance string. There is a patch for clm.buildnml.csh
 #
+# When CONTINUE_RUN = TRUE, CICE and CLM read from pointer files. 
+#
 # All of these must later on be staged with these same filenames.
 # OR - all these namelists can be changed to match whatever has been staged.
 # MAKE SURE THE STAGING SECTION OF THIS SCRIPT MATCHES THESE VALUES.
@@ -585,22 +581,46 @@
    echo " nhtfrq        = -$stop_n "                      >> ${fname}
    echo " mfilt         = 1 "                             >> ${fname}
 
-   # A lot of the files specified here are because the 'default' files only
+   # Some of the files specified here are because the default files only
    # contain data through 2005 and we are interested in timeframes after that.
 
+   # CAM5 does prognostic aerosols by default (which is expensive).
+   # Specifying the following causes CAM to use prescribed aerosols, which is cheaper.
+   # Prescribed aerosols on the timescales of interest to assimilation are acceptable.
+
    set chem_datapath = "${cesm_datadir}/atm/cam/chem/trop_mozart_aero"
 
-   # CAM5 does prognostic aerosols by default. If you want to prescribe them,
-   # use the following variables with your own settings ...
-   # Filenames with 'clim' in their names should specify aerodep_flx_type      = 'CYCLICAL'.
-   # Other values are 'CYCLICAL', 'SERIAL', 'INTERP_MISSING_MONTHS', or 'FIXED'.
+   echo " bndtvghg              = '${cesm_datadir}/atm/cam/ggas/ghg_hist_1765-2009_c100902.nc'" >> ${fname}
+   echo " prescribed_ozone_file = 'ozone_1.9x2.5_L26_1850-2015_rcp45_c101108.nc'"               >> ${fname}
+   echo " tracer_cnst_file      =  'oxid_1.9x2.5_L26_1850-2015_rcp45_c101108.nc'"               >> ${fname}
 
-   echo "aerodep_flx_datapath = '${chem_datapath}/aero'"                                   >> ${fname}
-   echo "aerodep_flx_file     = 'aerosoldep_rcp4.5_monthly_1849-2104_0.9x1.25_c100407.nc'" >> ${fname}
-   echo "aerodep_flx_type     = 'CYCLICAL' "                                               >> ${fname}
-   # Set if aerodep_flx_type = 'CYCLICAL'
-   echo "aerodep_flx_cycle_yr = 2000 "                                                     >> ${fname}
+   echo "aerodep_flx_datapath   = '${chem_datapath}/aero'"                                      >> ${fname}
+   echo "aerodep_flx_file       = 'aerosoldep_rcp4.5_monthly_1849-2104_0.9x1.25_c100407.nc'"    >> ${fname}
+   echo "aerodep_flx_type       = 'CYCLICAL'"                                                   >> ${fname}
+   echo "aerodep_flx_cycle_yr   = 2000"                                                         >> ${fname}
 
+   echo " ext_frc_specifier     = "                                                             >> ${fname}
+   echo " 'SO2    -> ${chem_datapath}/emis/ar5_mam3_so2_elev_1850-2010_c20100902_v12.nc',"      >> ${fname}
+   echo " 'bc_a1  -> ${chem_datapath}/emis/ar5_mam3_bc_elev_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'num_a1 -> ${chem_datapath}/emis/ar5_mam3_num_a1_elev_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'num_a2 -> ${chem_datapath}/emis/ar5_mam3_num_a2_elev_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'pom_a1 -> ${chem_datapath}/emis/ar5_mam3_oc_elev_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'so4_a1 -> ${chem_datapath}/emis/ar5_mam3_so4_a1_elev_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'so4_a2 -> ${chem_datapath}/emis/ar5_mam3_so4_a2_elev_1850-2010_c20100902_v12.nc'"    >> ${fname}
+
+   echo " srf_emis_specifier    = "                                                             >> ${fname}
+   echo " 'DMS    -> ${chem_datapath}/emis/aerocom_mam3_dms_surf_1849-2010_c20100902.nc',"      >> ${fname}
+   echo " 'SO2    -> ${chem_datapath}/emis/ar5_mam3_so2_surf_1850-2010_c20100902_v12.nc',"      >> ${fname}
+   echo " 'SOAG   -> ${chem_datapath}/emis/ar5_mam3_soag_1.5_surf_1850-2010_c20100902_v12.nc'," >> ${fname}
+   echo " 'bc_a1  -> ${chem_datapath}/emis/ar5_mam3_bc_surf_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'num_a1 -> ${chem_datapath}/emis/ar5_mam3_num_a1_surf_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'num_a2 -> ${chem_datapath}/emis/ar5_mam3_num_a2_surf_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'pom_a1 -> ${chem_datapath}/emis/ar5_mam3_oc_surf_1850-2010_c20100902_v12.nc',"       >> ${fname}
+   echo " 'so4_a1 -> ${chem_datapath}/emis/ar5_mam3_so4_a1_surf_1850-2010_c20100902_v12.nc',"   >> ${fname}
+   echo " 'so4_a2 -> ${chem_datapath}/emis/ar5_mam3_so4_a2_surf_1850-2010_c20100902_v12.nc'"    >> ${fname}
+
+   echo " solar_data_file = '${cesm_datadir}/atm/cam/solar/spectral_irradiance_Lean_1610-2009_ann_c100405.nc'" >> ${fname}
+
    # ===========================================================================
    set fname = "user_nl_clm${inst_string}"
    # ===========================================================================
@@ -615,24 +635,24 @@
    # http://www.cesm.ucar.edu/models/cesm1.1/clm/models/lnd/clm/doc/UsersGuide/clm_ug.pdf
    #
    # Every 6 hours
-   # echo "hist_mfilt  = 1"              >> $fname
-   # echo "hist_nhtfrq = -$stop_n"       >> $fname
+   # echo "hist_mfilt  = 1"              >> ${fname}
+   # echo "hist_nhtfrq = -$stop_n"       >> ${fname}
    # Every month
-   # echo "hist_mfilt  = 1"              >> $fname
-   # echo "hist_nhtfrq = 0"              >> $fname
+   # echo "hist_mfilt  = 1"              >> ${fname}
+   # echo "hist_nhtfrq = 0"              >> ${fname}
 
-   echo "hist_empty_htapes = .true."   >> $fname
-   echo "hist_fincl1 = 'TSA'"          >> $fname
-   echo "hist_nhtfrq = -$stop_n"       >> $fname
-   echo "hist_mfilt  = 1"              >> $fname
-   echo "hist_avgflag_pertape = 'A'"   >> $fname
+   echo "hist_empty_htapes = .true."   >> ${fname}
+   echo "hist_fincl1 = 'TSA'"          >> ${fname}
+   echo "hist_nhtfrq = -$stop_n"       >> ${fname}
+   echo "hist_mfilt  = 1"              >> ${fname}
+   echo "hist_avgflag_pertape = 'A'"   >> ${fname}
 
    # ===========================================================================
    set fname = "user_nl_cice${inst_string}"
    # ===========================================================================
    # CICE Namelists
 
-   echo "ice_ic = '${run_refcase}.cice${inst_string}.r.${run_refdate}-${run_reftod}.nc'" >> $fname
+   echo "ice_ic = '${run_refcase}.cice${inst_string}.r.${run_refdate}-${run_reftod}.nc'" >> ${fname}
 
    @ inst ++
 end
@@ -679,7 +699,7 @@
 
       # the restarts should be in the short term archive directory
       # http://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/usersguide/x1631.html#running_ccsm_restart_back
-      ${COPY} \$DOUT_S_ROOT/rest/\${restart_time}/* .
+      ${COPY} \$DOUT_S_ROOT/rest/\${restart_time}/* . || exit -1
 
    else
 
@@ -796,6 +816,7 @@
 echo ""
 echo "3) If you want to simply advance CESM without using DART, make sure the"
 echo "   ${case}.run script references the 'no_assimilate.csh' script."
+echo "   This is the default behavior."
 echo ""
 echo "4) Verify the contents of env_run.xml and submit the CESM job:"
 echo "   ./${case}.submit"
@@ -811,7 +832,6 @@
 echo ""
 echo "   and"
 echo "   ./${case}.submit"
-echo ""
 
 cat ${caseroot}/DART_instructions.txt
 


More information about the Dart-dev mailing list