how to use another SST data in CAM5?

Hi everyone,

I am a beginner of model.

I am running a forced experiment of CAM5 by varying the SST data.

According to Eaton's suggestion: http://forum.cgd.ucar.edu/showthread.php?1678-cam4-varying-SST-run-doesn-t-work and http://forum.cgd.ucar.edu/showthread.php?1878-How-to-use-another-specified-SST-data, I modified my build-namelist as follows:

$cfgdir/build-namelist -s -config $blddir/config_cache.xml -case $case -runtype $runtype
-namelist " &camexp stop_option='ndays', nhtfrq = 0, -6, mfilt = 1, 20, fincl2 = 'Q:I','U:I','V:I','T:I','Z3:I','PS:I','TS:I','PSL:I','LAN
DFRAC:I','TREFHT:I','PHIS:I','OMEGA:I','LHFLX','SHFLX','PRECC','PRECL',stop_n=$stop_n,bndtvs =' /glade/home/ygzhang/camdata/sst01/sst_HadOI
Bl_bc_1.9x2.5_clim_c061031.nc',sstcyc = .false.,stream_year_first = 0, stream_year_last = 0 /" || echo "build-namelist failed" && exit 1

But it doesn't work.

The error information:
0:(shr_sys_abort) ERROR: (shr_stream_getCalendar) ERROR: nf90_open file /glade/home/ygzhang/camdata/sst01/sst_HadOIBl_bc_1.9x2.5_clim_
c061031.nc
0:(shr_sys_abort) WARNING: calling shr_mpi_abort() and stopping
1:(shr_stream_set) size of filename = 1
1:(shr_stream_set) filename = /glade/home/ygzhang/camdata/sst01/sst_HadOIBl_bc_1.9x2.5_clim_c061031.nc

I appreciate any suggestion.



sst data: sst_HadOIBl_bc_1.9x2.5_clim_c061031.nc come from input data repository. I just want to test whether the command line is right or not.
 

eaton

CSEG and Liaisons
I can successfully run a test using a namelist generated by the build-namelist command that was posted. My test used the default cam5 configuration and a standalone script. How did you configure your test?
 

eaton

CSEG and Liaisons
I just looked at this again. This error message:

ERROR: (shr_stream_getCalendar)

makes me wonder whether the problem is with a missing "calendar" attribute in your sst dataset. The "time" variable in that file should look like the following when you do an ncdump:


Code:
double time(time) ;
                time:units = "days since 0000-01-01 00:00:00" ;
                time:calendar = "365_day" ;
 
Hi Eaton, Thank you very much for your reply.

SST data (sst_HadOIBl_bc_1.9x2.5_clim_c061031.nc) that I used in this test-run is downloaded from input data repository, so I think SST data is absolutely right.

Any other suggestion?

Thanks again.
Have a good National Day!

eaton said:
I just looked at this again. This error message:

ERROR: (shr_stream_getCalendar)

makes me wonder whether the problem is with a missing "calendar" attribute in your sst dataset. The "time" variable in that file should look like the following when you do an ncdump:


Code:
double time(time) ;
                time:units = "days since 0000-01-01 00:00:00" ;
                time:calendar = "365_day" ;
 

eaton

CSEG and Liaisons
I haven't been able to reproduce the problem. Post more details, in particular what source code version you're using, the configure command, the system and compiler, etc.
 
eaton said:
I haven't been able to reproduce the problem. Post more details, in particular what source code version you're using, the configure command, the system and compiler, etc.

Thanks a lot for your reply, Eaton.

I run this model (CESM1.0.4) in Bluefire.

#! /usr/bin/csh -f

##====================================================================
##
## run-ibm.csh
##
## Generic batch submission script for IBM-AIX using LSF.
##
##--------------------------------------------------------------------
## Usage for xlf compiler (default):
## bsub < run-forcing02.csh
##--------------------------------------------------------------------
##
## This is an example script to build and run the default CAM configuration
## on an IBM SP. The default configuration is 1.9*2.5L26, Finite-Volume
## dynamics, CLM2 land model, CICE ice model, and CAM data ocean model.
## Script will request 1 node to run with 16 MPI tasks and 4 SMP threads/tasks.
##
## Setting LSF options for batch queue submission.
#BSUB -P ****** # account number
#BSUB -W 0:10 # wall lock limit
#BSUB -n 32 # bluefire setting
#BSUB -R "span[ptile=16]" # bluefire setting
#BSUB -o out.%J # output filename
#BSUB -e out.%J # error filename
#BSUB -q regular # queue

## extract number of tasks from batch environment
## set ntasks = 'echo $LSB_HOSTS | wc -w'
set ntasks = 32

# should be set equal to (CPUs-per-node / tasks_per_node)
setenv OMP_NUM_THREADS 4

## suggestions from Jim Edwards 07/08
setenv XLSMPOPTS "stack=256000000"
setenv OMP_DYNAMIC false
setenv AIXTHREAD_SCOPE S
setenv MALLOCMULTIHEAP true
setenv MP_USE_BULK_XFER yes
setenv MP_LABELIO yes

## Do our best to get sufficient stack memory
limit stacksize unlimited
## netCDF stuff
setenv INC_NETCDF /usr/local/include
setenv LIB_NETCDF /usr/local/lib64/r4i4

## ROOT OF CAM DISTRIBUTION - probably needs to be customized.
## Contains the source code for the CAM distribution.
## (the root directory contains the subdirectory "models")
set camroot = /glade/home/ygzhang/cesm1_0_4/

## ROOT OF CAM DATA DISTRIBUTION - needs to be customized unless running at NCAR.
## Contains the initial and boundary data for the CAM distribution.
## (the root directory contains the subdirectories "atm" and "lnd")
setenv CSMDATA /fs/cgd/csm/inputdata

## LOGNAME - used in default settings, must be set if not available
## setenv LOGNAME
if !($?LOGNAME) then
echo "LOGNAME not available for setting of defaults - setting must be added to this script"
exit 1
endif

## Default namelist settings:
## $case is the case identifier for this run. It will be placed in the namelist.
## $runtype is the run type: startup, continue, or branch.
## $stop_n is the number of days to integrate (units depend on stop_option)
set case = forcing08
set runtype = startup
## set runtype = continue
set stop_n = 1

## $wrkdir is a working directory where the model will be built and run.
## $blddir is the directory where model will be compiled.
## $rundir is the directory where the model will be run.
## $cfgdir is the directory containing the CAM configuration scripts.
set wrkdir = /glade/scratch/$LOGNAME
set blddir = $wrkdir/$case/bld
set rundir = $wrkdir/$case
set cfgdir = $camroot/models/atm/cam/bld

## Ensure that run and build directories exist
mkdir -p $rundir || echo "cannot create $rundir" && exit 1
mkdir -p $blddir || echo "cannot create $blddir" && exit 1

## If an executable doesn't exist, build one.
if ( ! -x $blddir/cam ) then
cd $blddir || echo "cd $blddir failed" && exit 1
$cfgdir/configure -dyn fv -hgrid 1.9x2.5 -spmd -smp -ntasks $ntasks -nthreads $OMP_NUM_THREADS || echo "configure failed" && exit 1
echo "building CAM in $blddir ..."
rm -f Depends
gmake -j8 >&! MAKE.out || echo "CAM build failed: see $blddir/MAKE.out" && exit 1
endif

## Create the namelist
cd $rundir || echo "cd $rundir failed" && exit 1
$cfgdir/build-namelist -s -config $blddir/config_cache.xml -case $case -runtype $runtype
-namelist " &camexp stop_option='ndays', nhtfrq = 0, -6, mfilt = 1, 20, fincl2 = 'Q:I','U:I','V:I','T:I','Z3:I','PS:I','TS:I','PSL:I','LAN
DFRAC:I','TREFHT:I','PHIS:I','OMEGA:I','LHFLX','SHFLX','PRECC','PRECL',stop_n=$stop_n,bndtvs =' /glade/home/ygzhang/camdata/sst01/sst_HadOI
Bl_bc_1.9x2.5_all_oceans.nc' /" || echo "build-namelist failed" && exit 1

## Run CAM - use 'mpirun.lsf' on bluefire
echo "running CAM in $rundir"

#bluefire
mpirun.lsf /usr/local/bin/hybrid_launch $blddir/cam || echo "CAM run failed" && exit 1

exit 0

Thank you very much for your help!
 

eaton

CSEG and Liaisons
I have done this run on bluefire and once again am unable to reproduce the problem. The only thing I can suggest is to add the -debug option to your configure command to try and get more information about what the problem is.
 
Back
Top