Skip to content

Commit caf95b7

Browse files
OI / Noah-MP cycling DA model.
0 parents  commit caf95b7

7 files changed

+214
-0
lines changed
15.1 MB
Binary file not shown.

analdates.sh

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export startdate=2013100123
2+
export enddate=2013100723

fort.360

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
&NAMSNO
2+
SNOW_DA_TYPE=4,SNOW_OI_TYPE=1,PERCENT_OBS_WITHHELD=0,
3+
horz_len_scale=55,ver_len_scale=800.,obs_tolerance=5.,
4+
obs_srch_rad=250.0,bkgst_srch_rad=240.0,max_num_nearStn=50,max_num_nearIMS=1,
5+
ims_max_ele=1500.,num_subgrd_ims_cels=3840,
6+
stdev_obsv_depth=40, stdev_obsv_sncov=80, stdev_back=30,
7+
num_assim_steps=1,dT_Asssim=24.0,ims_assm_hour=23, ENS_SIZE=80,
8+
rcov_localize=.false.,ens_inflate=.false.,
9+
assim_SnowPack_obs=.true.,assim_SnowCov_obs=.false.,ims_correlated=.false.,stn_var='SND',
10+
STN_OBS_PREFIX="/scratch1/NCEPDEV/da/Azadeh.Gholoubi/control_env/OI_perturbed/perturbedSnow/synthetic_gswp_obs",
11+
STN_DIM_NAME="location",STN_VAR_NAME="SNWD",STN_ELE_NAME="elevation",
12+
IMS_SNOWCOVER_PATH="/scratch2/BMC/gsienkf/Tseganeh.Gichamo/SnowObs/IMS/",
13+
IMS_INDEXES_PATH="/scratch2/BMC/gsienkf/Tseganeh.Gichamo/SnowObs/IMS_INDEXES/",
14+
SFC_FORECAST_PREFIX="/scratch2/BMC/gsienkf/Tseganeh.Gichamo/offlineCyc/ufs-land-driver/run/test1/",
15+
CURRENT_ANALYSIS_PREFIX="/scratch2/BMC/gsienkf/Tseganeh.Gichamo/offlineCyc/ufs-land-driver/run/test1/",
16+
ENKFGDAS_TOP_DIR="/scratch2/BMC/gsienkf/Tseganeh.Gichamo/ICs/C96/",
17+
vector_restart_prefix="./OIoutput/",
18+
static_prefix="/scratch2/BMC/gsienkf/Tseganeh.Gichamo/ufsoi/static/",
19+
output_prefix="./OIoutput/",
20+
vector_noda_prefix="/scratch1/NCEPDEV/da/Azadeh.Gholoubi/control_env/DirectInsertion2013/direct_perturbed/",
21+
STANDALONE_SNOWDA=.true.,vector_inputs=.true.,print_debg_info=.false.,fv3_index=.true.,
22+
PRINTRANK=4, snowUpdateOpt=3, begloc=1, endloc=18360,
23+
/

incdate.sh

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
if [ $# != 2 ]; then
3+
echo "usage: incdate YYYYMMDDHH hrs"
4+
echo "where YYYYMMDDHH is a 10 character date string (e.g. 2002050312)"
5+
echo "and hrs is integer number of hours to increment YYYMMDDHH"
6+
exit 1
7+
fi
8+
date -u -d "${1:0:4}-${1:4:2}-${1:6:2} ${1:8:2}:00:00 UTC $2 hour" +%Y%m%d%H

submit_cycle.sh

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#! /bin/sh -l
2+
#SBATCH --job-name=offline_noahmp
3+
#SBATCH --account=gsienkf
4+
#SBATCH --qos=debug
5+
#SBATCH --nodes=1
6+
#SBATCH --tasks-per-node=6
7+
#SBATCH --cpus-per-task=1
8+
#SBATCH -t 00:10:00
9+
#SBATCH -o log_noahmp.%j.log
10+
#SBATCH -e err_noahmp.%j.err
11+
#SBATCH --export=NONE
12+
13+
# set your executables
14+
snowDAexec=/scratch2/BMC/gsienkf/Tseganeh.Gichamo/global-workflow/exec/driver_snowda
15+
LSMexec=/scratch2/BMC/gsienkf/Clara.Draper/gerrit-hera/noahMP_driver/cycleOI/ufs_land_driver/ufsLand.exe
16+
17+
dates_per_job=5
18+
19+
# shouldn't need to change anything below here
20+
base_dir=$(pwd)
21+
incdate=$base_dir/incdate.sh
22+
23+
#source /home/Azadeh.Gholoubi/.my_mods
24+
module load intel
25+
module load netcdf/4.7.0
26+
27+
# probably don't need this.
28+
export LD_LIBRARY_PATH=/apps/hdf5/1.10.5/intel/18.0.5.274/lib:/apps/nco/4.7.0/intel/18.0.3.051/lib:/apps/netcdf/4.7.4/intel/18.0.5/lib:/apps/pnetcdf/1.10.0/intel/16.1.150/impi/5.1.2.150/lib:/apps/wgrib2/2.0.8/intel/18.0.3.222/lib:/apps/intel/compilers_and_libraries_2018/linux/mpi/intel64/lib::/apps/slurm/default/lib:/apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/compiler/lib/intel64:/apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/ipp/lib/intel64:/apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/compiler/lib/intel64_lin:/apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/mkl/lib/intel64_lin:/apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/tbb/lib/intel64/gcc4.7:/apps/intel/parallel_studio_xe_2018.4.057/debugger_2018/libipt/intel64/lib:/apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/daal/lib/intel64_lin:/apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/daal/../tbb/lib/intel64_lin/gcc4.4:$LD_LIBRARY_PATH
29+
30+
# read in dates
31+
source $base_dir/analdates.sh
32+
33+
logfile=$base_dir/cycle.log
34+
touch $logfile
35+
36+
echo "cycling from $startdate to $enddate" >> $logfile
37+
38+
39+
thisdate=$startdate
40+
41+
date_count=0
42+
43+
#while [ $thisdate -le $enddate ]; do
44+
while [ $date_count -lt $dates_per_job ]; do
45+
46+
# substringing to get yr, mon, day, hr info
47+
export YYYY=`echo $thisdate | cut -c1-4`
48+
export MM=`echo $thisdate | cut -c5-6`
49+
export DD=`echo $thisdate | cut -c7-8`
50+
export HH=`echo $thisdate | cut -c9-10`
51+
52+
# update model namelist
53+
cp template.ufs-noahMP.namelist.gswp3 ufs-land.namelist
54+
55+
sed -i -e "s/YYYY/${YYYY}/g" ufs-land.namelist
56+
sed -i -e "s/MM/${MM}/g" ufs-land.namelist
57+
sed -i -e "s/DD/${DD}/g" ufs-land.namelist
58+
sed -i -e "s/HH/${HH}/g" ufs-land.namelist
59+
60+
# update snwo DA namelist
61+
cp template.fort.36 fort.36
62+
63+
sed -i -e "s/YYYY/${YYYY}/g" fort.36
64+
sed -i -e "s/MM/${MM}/g" fort.36
65+
sed -i -e "s/DD/${DD}/g" fort.36
66+
sed -i -e "s/HH/${HH}/g" fort.36
67+
68+
echo "Finished job number, ${date_count},for date: ${thisdate}" >> $logfile
69+
70+
thisdate=`${incdate} $thisdate 24`
71+
date_count=$((date_count+1))
72+
73+
if [ $thisdate -gt $enddate ]; then
74+
echo "All done, at date ${thisdate}" >> $logfile
75+
exit
76+
fi
77+
78+
# submit snow DA
79+
echo 'Running snow DA' >> $logfile
80+
srun '--export=ALL' -n 6 $snowDAexec
81+
82+
# submit model
83+
echo 'Running model' >> $logfile
84+
$LSMexec
85+
86+
done
87+
88+
# resubmit
89+
if [ $thisdate -le $enddate ]; then
90+
echo "export startdate=${thisdate}" > ${base_dir}/analdates.sh
91+
echo "export enddate=${enddate}" >> ${base_dir}/analdates.sh
92+
sbatch submit_cycle.sh
93+
fi
94+

template.fort.36

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
&NAMCYC
2+
idim=96, jdim=96, lsoil=4,
3+
iy=YYYY, im=MM, id=DD, ih=HH, fh=0,
4+
deltsfc=6,ialb=1,use_ufo=.true.,donst='NO',
5+
adjt_nst_only=.false.,isot=1,ivegsrc=1,
6+
zsea1_mm=0,zsea2_mm=0,MAX_TASKS=6,
7+
/

template.ufs-noahMP.namelist.gswp3

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
&run_setup
2+
3+
static_file = "/scratch1/NCEPDEV/stmp2/Michael.Barlage/forcing/C96/static/ufs-land_C96_static_fields.nc"
4+
init_file = "/scratch1/NCEPDEV/stmp2/Michael.Barlage/forcing/C96/init/ufs-land_C96_init_fields_1hr.nc"
5+
forcing_dir = "/scratch1/NCEPDEV/stmp2/Michael.Barlage/forcing/C96/gswp3/forcing/"
6+
7+
separate_output = .true.
8+
output_dir = "./OIoutput/"
9+
10+
restart_frequency_s = 86400
11+
restart_simulation = .true.
12+
restart_date = "YYYY-MM-DD HH:00:00"
13+
restart_dir = "./OIoutput/"
14+
15+
timestep_seconds = 3600
16+
17+
! simulation_start is required
18+
! either set simulation_end or run_* or run_timesteps, priority
19+
! 1. simulation_end 2. run_[days/hours/minutes/seconds] 3. run_timesteps
20+
21+
simulation_start = "2000-01-01 00:00:00" ! start date [yyyy-mm-dd hh:mm:ss]
22+
! simulation_end = "1999-01-01 06:00:00" ! end date [yyyy-mm-dd hh:mm:ss]
23+
24+
run_days = 1 ! number of days to run
25+
run_hours = 0 ! number of hours to run
26+
run_minutes = 0 ! number of minutes to run
27+
run_seconds = 0 ! number of seconds to run
28+
29+
run_timesteps = 0 ! number of timesteps to run
30+
31+
begloc = 1
32+
endloc = 18360
33+
34+
/
35+
36+
&land_model_option
37+
land_model = 2 ! choose land model: 1=noah, 2=noahmp
38+
/
39+
40+
&structure
41+
num_soil_levels = 4 ! number of soil levels
42+
forcing_height = 6 ! forcing height [m]
43+
/
44+
45+
&soil_setup
46+
soil_level_thickness = 0.10, 0.30, 0.60, 1.00 ! soil level thicknesses [m]
47+
soil_level_nodes = 0.05, 0.25, 0.70, 1.50 ! soil level centroids from surface [m]
48+
/
49+
50+
&noahmp_options
51+
dynamic_vegetation_option = 4
52+
canopy_stomatal_resistance_option = 2
53+
soil_wetness_option = 1
54+
runoff_option = 1
55+
surface_exchange_option = 1
56+
supercooled_soilwater_option = 1
57+
frozen_soil_adjust_option = 1
58+
radiative_transfer_option = 3
59+
snow_albedo_option = 2
60+
precip_partition_option = 1
61+
soil_temp_lower_bdy_option = 2
62+
soil_temp_time_scheme_option = 3
63+
surface_evap_resistance_option = 1
64+
glacier_option = 1
65+
/
66+
67+
&forcing
68+
forcing_timestep_seconds = 10800
69+
forcing_type = "gswp3"
70+
forcing_filename = "C96_GSWP3_forcing_"
71+
forcing_interp_solar = "gswp3_zenith" ! gswp3_zenith or linear
72+
forcing_time_solar = "gswp3_average" ! gswp3_average or instantaneous
73+
forcing_name_precipitation = "precipitation_conserve"
74+
forcing_name_temperature = "temperature"
75+
forcing_name_specific_humidity = "specific_humidity"
76+
forcing_name_wind_speed = "wind_speed"
77+
forcing_name_pressure = "surface_pressure"
78+
forcing_name_sw_radiation = "solar_radiation"
79+
forcing_name_lw_radiation = "longwave_radiation"
80+
/

0 commit comments

Comments
 (0)