[Dart-dev] [5477] DART/branches/development/models/cam/shell_scripts/clm.cpl7.template : incorporates changes necessary for cesm1_1_beta08

nancy at ucar.edu nancy at ucar.edu
Thu Jan 5 15:34:50 MST 2012


Revision: 5477
Author:   thoar
Date:     2012-01-05 15:34:49 -0700 (Thu, 05 Jan 2012)
Log Message:
-----------
incorporates changes necessary for cesm1_1_beta08

Added Paths:
-----------
    DART/branches/development/models/cam/shell_scripts/clm.cpl7.template

-------------- next part --------------
Added: DART/branches/development/models/cam/shell_scripts/clm.cpl7.template
===================================================================
--- DART/branches/development/models/cam/shell_scripts/clm.cpl7.template	                        (rev 0)
+++ DART/branches/development/models/cam/shell_scripts/clm.cpl7.template	2012-01-05 22:34:49 UTC (rev 5477)
@@ -0,0 +1,244 @@
+#! /bin/csh -f
+#
+# DART $Id$
+
+if !(-d $CASEBUILD) mkdir $CASEBUILD
+if !(-d $CASEBUILD/clmconf) mkdir $CASEBUILD/clmconf
+
+#--------------------------------------------------------------------
+# Invoke configure
+#--------------------------------------------------------------------
+
+set cfgdir = $CASEBUILD/clmconf  
+set config = $cfgdir/config_cache.xml
+cd $cfgdir
+
+# Global River Transport model off for single point mode
+if ($LND_GRID == reg || $PTS_MODE == TRUE ) then
+   set rtm = "off"
+else
+   set rtm = "on"
+endif
+
+setenv COMP "unknown"
+if ($COMP_INTERFACE == 'MCT' ) setenv COMP mct
+if ($COMP_INTERFACE == 'ESMF') setenv COMP esmf
+
+set config_opts = "-mode ext_cesm -rtm $rtm -glc_nec $GLC_NEC"
+set config_opts = "$config_opts $CLM_CONFIG_OPTS"
+
+$CODEROOT/lnd/clm/bld/configure $config_opts \
+    -comp_intf cpl_\$COMP \
+    -clm_root \$CODEROOT/lnd/clm \
+    -usr_src \$CASEROOT/SourceMods/src.clm || exit -1 
+
+#--------------------------------------------------------------------
+# Invoke build-namelist
+#--------------------------------------------------------------------
+
+# RTM resolution (only R05 is available now)
+# R19 (19-basin) and RX1 do have RTM to Ocean mapping files available
+# BUT -- we don't have CLM datasets available for these resolutions
+setenv CLM_RTM_RES "R05"
+
+set nrevsn = " "
+if ($RUN_TYPE == branch) set nrevsn  = " nrevsn  = '${RUN_REFCASE}.clm2.r.${RUN_REFDATE}-${RUN_REFTOD}.nc'"
+
+@ clm_dtime  = ( 3600 * 24 ) / $LND_NCPL
+
+set rtm_tstep = " -rtm_tstep 10800 "             # RTM time-step every 3 hours
+set rtm_res   = " -rtm_res $CLM_RTM_RES"
+set co2ppmv   = " -co2_ppmv $CCSM_CO2_PPMV"
+set co2type   = " co2_type  =  '$CLM_CO2_TYPE'"
+
+cat >> $cfgdir/cesm_namelist << EOF1
+ &clm_inparm
+ dtime            =  $clm_dtime
+ fatmlndfrc       =  '${LND_DOMAIN_PATH}/${LND_DOMAIN_FILE}'
+$co2type
+$nrevsn
+EOF1
+
+if ($RUN_TYPE == hybrid ) then
+cat >> $cfgdir/cesm_namelist << EOF1
+ finidat = '\${RUN_REFCASE}.clm2_\${lnd_inst_string}.r.\${RUN_REFDATE}-\${RUN_REFTOD}.nc' 
+EOF1
+endif
+
+cat >> $cfgdir/cesm_namelist << EOF1
+/
+EOF1
+
+
+# Allow the user to supply namelist values by putting them in the file
+# $CASEROOT/user_nl_clm.  The file should contain
+# a valid namelist.
+set USER_NL = "-infile cesm_namelist"
+if (-f "$CASEROOT/user_nl_clm" || -d "$CASEROOT/user_nl_clm" ) then
+   set USER_NL = "${USER_NL},$CASEROOT/user_nl_clm"
+endif
+
+#
+# Other options to build-namelist
+#
+if ($RUN_TYPE == startup ) then
+   set START_TYPE = "default"
+   if ($CLM_FORCE_COLDSTART == on) set START_TYPE = "cold"
+else
+   set START_TYPE = $RUN_TYPE
+   if ($RUN_TYPE == hybrid ) set START_TYPE = "startup"
+endif
+
+set mask = " "
+if ($ATM_GRID != $OCN_GRID) then
+   set mask = "-mask $OCN_GRID"
+endif
+
+set RESOLUTION = $LND_GRID
+if ($LND_GRID == reg ) then
+   if ( $GRID == CLM_USRDAT ) then
+      if ( ! $?CLM_USRDAT_NAME ) then
+         echo "ERROR: must set CLM_USRDAT_NAME xml variable if GRID is CLM_USRDAT"
+         exit -1
+      else if ( ?CLM_USRDAT_NAME == UNSET ) then
+         echo "ERROR: must set CLM_USRDAT_NAME variable to a value other than UNSET "
+         echo "ERROR: for cases where GRID is CLM_USRDAT"
+         exit -1
+      endif
+      set RESOLUTION = "$CLM_USRDAT_NAME"
+   else
+      set RESOLUTION = $GRID
+   endif
+endif
+
+# following logic may need tweaking to account for configurations where start year is important
+if ($RUN_STARTDATE =~ *-01-01* || $RUN_STARTDATE =~ *-09-01*) then
+    set ignore = "-ignore_ic_year"
+else
+    set ignore = "-ignore_ic_date"
+endif
+
+if ("$CLM_NML_USE_CASE" == "UNSET") then
+    set usecase = " "
+else
+    set usecase = "-use_case $CLM_NML_USE_CASE"
+endif
+
+set options    = ""
+if ( $CLM_USRDAT_NAME != UNSET ) then
+    set options = "-clm_usr_name $CLM_USRDAT_NAME"
+endif
+set options = "$options -config $CASEBUILD/clmconf/config_cache.xml -res $RESOLUTION $mask $ignore $usecase "
+set options = "$options $USER_NL -clm_start_type $START_TYPE $CLM_BLDNML_OPTS"
+set options = "$options $rtm_res $rtm_tstep $co2ppmv"
+if ("$COMP_ATM" == "datm" )then
+   set options = "$options  -datm_presaero $DATM_PRESAERO"
+else
+   set options = "$options  -datm_presaero prognostic"
+endif
+if ("$COMP_GLC" != "sglc" )then
+   set GLC_SMB = .$GLC_SMB. # for fortran logicals
+   set options = "$options -glc_grid $GLC_GRID -glc_smb $GLC_SMB"
+endif
+
+#TJH checking
+echo $options
+echo $CLM_NAMELIST_OPTS
+echo $CASEBUILD
+
+$CODEROOT/lnd/clm*/bld/build-namelist $options \
+    -namelist "&clm_inparm $CLM_NAMELIST_OPTS /" \
+    -csmdata \$DIN_LOC_ROOT \
+    -inputdata $CASEBUILD/clm.input_data_list || exit -1
+
+# ---------------------------------------------------------------------------
+#  Create clm.buildnml.csg
+# ---------------------------------------------------------------------------
+
+cat >! $CASEBUILD/clm.buildnml.csh << EOF1
+#! /bin/csh -f 
+
+#******************************************************************#
+#                  WARNING:                                        #
+# - If the user changes any input datasets - be sure to give it a  #
+#   unique filename. Do not duplicate any existing input files     #
+#******************************************************************#
+
+set exedir = \$RUNDIR; cd \$exedir
+
+set default_lnd_in_filename = "lnd_in"
+
+set lnd_inst_counter = 1
+
+while (\$lnd_inst_counter <= \$NINST_LND)
+
+    set lnd_in_filename = \$default_lnd_in_filename
+
+    if (\$NINST_LND > 1) then
+        set lnd_inst_string = \$lnd_inst_counter
+        if (\$lnd_inst_counter <= 999) set lnd_inst_string = 0\$lnd_inst_string
+        if (\$lnd_inst_counter <=  99) set lnd_inst_string = 0\$lnd_inst_string
+        if (\$lnd_inst_counter <=   9) set lnd_inst_string = 0\$lnd_inst_string
+        set lnd_in_filename = \${default_lnd_in_filename}_\${lnd_inst_string}
+    endif
+
+    cat >! \$lnd_in_filename << EOF
+
+EOF1
+
+    cat lnd_in >> $CASEBUILD/clm.buildnml.csh || exit -1
+cat >> $CASEBUILD/clm.buildnml.csh << EOF1
+EOF
+
+    @ lnd_inst_counter = \$lnd_inst_counter + 1
+
+end
+
+EOF1
+
+#
+# Remove temporary namelist in the clmconf directory
+# (Leave config_cache.xml file as it documents what was done here)
+#
+\rm -f $CASEBUILD/clmconf/lnd_in* $CASEBUILD/clmconf/cesm_namelist
+
+#--------------------------------------------------------------------
+# Create clm.buildexe.csh
+#--------------------------------------------------------------------
+
+cat >! $CASEBUILD/clm.buildexe.csh << EOF2
+#! /bin/csh -f 
+
+set objdir = \$OBJROOT/lnd/obj; cd \$objdir
+
+#--------------------------------------------------------------------
+# check basic task and thread settings
+#--------------------------------------------------------------------
+
+cp -f \$CASEBUILD/clmconf/CESM_cppdefs .tmp
+cmp -s .tmp CESM_cppdefs || mv -f .tmp CESM_cppdefs
+
+setenv COMP "unknown"
+if (\$COMP_INTERFACE == 'MCT' ) setenv COMP mct
+if (\$COMP_INTERFACE == 'ESMF') setenv COMP esmf
+
+\cat >! .tmp << EOF; cmp -s .tmp Filepath || mv -f .tmp Filepath
+EOF2
+cat $CASEBUILD/clmconf/Filepath >> $CASEBUILD/clm.buildexe.csh
+cat >> $CASEBUILD/clm.buildexe.csh << EOF2
+EOF
+
+#
+# Build the clm library
+#
+set clmdefs = "`cat \$CASEBUILD/clmconf/CESM_cppdefs`"
+if ( ! \$?GMAKE ) setenv GMAKE gmake
+\$GMAKE complib -j \$GMAKE_J MODEL=clm COMPLIB=\$LIBROOT/liblnd.a MACFILE=\$CASEROOT/Macros.\$MACH USER_CPPDEFS="\$clmdefs" -f \$CASETOOLS/Makefile || exit 2
+
+EOF2
+
+#
+# Remove any temporary configure files in the clmconf directory
+# (Some files are still used in clm.buildexe.csh, so leave those around: CESM_cppdefs)
+#
+\rm -f $CASEBUILD/clmconf/Filepath


Property changes on: DART/branches/development/models/cam/shell_scripts/clm.cpl7.template
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:keywords
   + Id


More information about the Dart-dev mailing list