This page borrows liberally from Gautam's excellent CLM4.5 dataset for year 1850 at ne120np4 resolution. It adds some more information on how to incorporate
land cover information while creating a surface dataset.
Date: 15-Nov-2016
Machine: Edison
1. Log on edison and clone ACME repository
ssh user-name@edison.nersc.gov
cd $SCRATCH
git clone git@github.com:ACME-Climate/ACME.git
cd ACME
export ACME_DIR=$PWD
We assume that mapping files have already been generated. If not, follow instructions from here: CLM4.5 dataset for year 1850 at ne120np4 resolution
Mapping files are available here: /global/project/projectdirs/acme/inputdata/lnd/clm2/mappingdata/maps/
2. Compile surface dataset source code
module load cray-netcdf
module load cray-hdf5
export LIB_NETCDF=/opt/cray/pe/netcdf/4.4.1.1.3/INTEL/16.0/lib
export INC_NETCDF=/opt/cray/pe/netcdf/4.4.1.1.3/INTEL/16.0/include
export USER_FC=ifort
export USER_CC=icc
export USER_LDFLAGS="-L/opt/cray/pe/hdf5/1.10.0.3/INTEL/16.0/lib -lnetcdf -lnetcdff -lnetcdf_intel"
export USER_LDFLAGS=$USER_LDFLAGS" -L//opt/cray/pe/hdf5/1.10.0.3/INTEL/16.0/lib -lhdf5 -lhdf5_fortran -lhdf5_cpp -lhdf5_fortran_intel -lhdf5_hl_intel -lhdf5hl_fortran_intel"
cd $SCRATCH/ACME/components/clm/tools/clm4_5/mksurfdata_map/src/
gmake
3.Run the mksurfdata.pl script in "debug" mode to generate the namelist
cd $SCRATCH/ACME/components/clm/tools/clm4_5/mksurfdata_map/
./mksurfdata.pl -res ne30np4 -d -y 1850-2015 -dinlc /global/project/projectdirs/acme/inputdata
4. Modify namelist file if land cover information should be used
mksrf_fdynuse should contain name of file that contains all the land cover file paths
mksrf_fdynuse = 'landuse_1850-1855.txt'
mksrf_fvegtyp contains paths of all land cover files indicated in mksrf_fdynuse
mksrf_fvegtyp = '/scratch2/scratchdirs/ritvik/ACME/components/clm/tools/clm4_5/mksurfdata_map/luh2/mksrf_landuse_rc_1850_10202016.nc'
5. Modify hardcoded reading of text in mksurfdat.F90
cd $SCRATCH/ACME/components/clm/tools/clm4_5/mksurfdata_map/src
vi mksurfdat.F90
Modify this line: read(nfdyn, '(A195,1x,I4)', iostat=ier) string, year
This line splits the text read in from mksrf_fdynuse. Currently the A195 value is hard-coded and needs to be changed any time the path lengths in mksrf_fvegtyp change
>> gmake clean
>> gmake
6. Log onto a debug or regular queue at EDISON
salloc -N 2 -p debug -L SCRATCH
7. Create surface dataset
srun mksurfdat_map < namelist