# # This config file sets up the defaults for the ngac pre processing, # forecast, and post processing. This script is based on CFS v2 # config (/nwprod/parm/cfs_parm_am/cfs_config) by Shrinivas Moorthi # # REVISION HISTORY: # 07Nov2011 Sarah Lu First crack. # 12Dec2011 Sarah Lu Modify NGAC configuration # 19Dec2011 Sarah Lu Remove RUN_ENVIR dependence; re-structure # 13Jan2012 Sarah Lu Add COLD_START and DO_REPLAY # 14Jan2012 Sarah Lu Add RETRO # 15Jan2012 Sarah Lu Add WRITE_DOPOST,GOCART_POSTOUT,POST_GRIBVERSION # POSTCTLFILE, MAPPING # 31Jan2012 Jun Wang Add POST_AVBLFLDFILE # 12Feb2012 Sarah Lu Set POST_GRIBVERSION default to grib2; # Change GOCART_POSTOUT to GOCART_AER2POST # 13Feb2012 Sarah Lu Add OPT_FLE, OPT_PDT # 15Feb2012 Sarah Lu Add DFILES # 21Feb2012 Sarah Lu Add POST_NCEPGRB2TBL, Remove OPT_PDT # 06Mar2012 Sarah Lu Restore OPT_PDT option; clean up the code # 08Mar2012 Sarah Lu Add OPT_LUMP option # 14Mar2012 Sarah Lu Revise default path for POST parm files # 15Mar2012 Sarah Lu Refine and clean up # set -x ############################################################ # Set relevant parameters for NGAC # ############################################################ GOCART=${GOCART:-1} ## explicitly turn on GOCART DELTIM=${DELTIM:-450} ## reduce time step from 600 to 450 FHDFI=${FHDFI:-0} ## turn off digital filter ############################################################ # Specify Execution Areas # ############################################################ HOMEGLOBAL=${HOMEGLOBAL:-/nw${envir}} EXECGLOBAL=${EXECGLOBAL:-$HOMEGLOBAL/exec} FIXGLOBAL=${FIXGLOBAL:-$HOMEGLOBAL/fix} USHGLOBAL=${USHGLOBAL:-$HOMEGLOBAL/ush} PARMGLOBAL=${PARMGLOBAL:-$HOMEGLOBAL/parm} HOMEngac=${HOMEngac:-$HOMEGLOBAL} EXECngac=${EXECngac:-$HOMEngac/exec} #FIXngac=${FIXngac:-$HOMEngac/fix} USHngac=${USHngac:-$HOMEngac/ush} #PARMngac=${PARMngac:-$HOMEngac/parm} ############################################################ # Set relevant parameters for NEMS-GFS # ############################################################ # # GFS related parameters # --------------------- JCAP=${JCAP:-126} LEVS=${LEVS:-64} LSOIL=${LSOIL:-4} #if [ $JCAP -eq 574 ] ; then # LONB=${LONB:-1760} ; LATB=${LATB:-880} ; DELTIM=${DELTIM:-120} #elif [ $JCAP -eq 382 ] ; then # LONB=${LONB:-1152} ; LATB=${LATB:-576} ; DELTIM=${DELTIM:-180} #elif [ $JCAP -eq 254 ] ; then # LONB=${LONB:-768} ; LATB=${LATB:-384} ; DELTIM=${DELTIM:-300} #elif [ $JCAP -eq 190 ] ; then # LONB=${LONB:-576} ; LATB=${LATB:-288} ; DELTIM=${DELTIM:-360} #elif [ $JCAP -eq 170 ] ; then # LONB=${LONB:-512} ; LATB=${LATB:-256} ; DELTIM=${DELTIM:-450} #elif [ $JCAP -eq 126 ] ; then # LONB=${LONB:-384} ; LATB=${LATB:-190} ; DELTIM=${DELTIM:-600} #elif [ $JCAP -eq 62 ] ; then # LONB=${LONB:-192} ; LATB=${LATB:-94} ; DELTIM=${DELTIM:-900} #fi #if [ $LSOIL -eq 2 ] ; then # lsm=${lsm:-0} # This will run OSU LSM option #fi lsm=${lsm:-1} # lsm=1 is for NOAH land model (=0 for OSU model) ntrac=${ntrac:-3} # Only met tracers are specified here; chem tracers come through .rc file varid=${varid:-21} numcld=${numcld:-1} im=${im:-$LONB} jm=${jm:-$LATB} iop=${iop:-360} jop=${jop:-181} kop=${kop:-37} KTO=${KTO:-16} IGEN=${IGEN:-98} ivssig=${ivssig:-198410} ivssfc=${ivssfc:-200509} IDVC=${IDVC:-2} IDVM=${IDVM:-1} IDSL=${IDSL:-1} if [ $LEVS -gt 99 ] ; then ivssig=200509 ; fi if [ $IDVC = 1 ] ; then nvcoord=1 SIGLEVEL1=${SIGLEVEL1:-$FIXGLOBAL/global_siglevel.l$LEVS.txt} elif [ $IDVC = 2 ] ; then nvcoord=2 SIGLEVEL2=${SIGLEVEL2:-$FIXGLOBAL/global_hyblev.l$LEVS.txt} elif [ $IDVC = 3 ] ; then ivssig=200509 #Apercent=${Apercent:-050} Apercent=${Apercent:-100} if [ $Apercent -lt 100 ] ; then SIGLEVEL3=${SIGLEVEL3:-$FIXGLOBAL/global_hyblev3.ipa$Apercent.txt} else SIGLEVEL3=${SIGLEVEL3:-$FIXGLOBAL/global_hyblev3.l$LEVS.txt} fi fi # LANDICE_OPT=${LANDICE_OPT:-2} CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT:-2} if [ $lsm -eq 0 ] ; then # all climo/static fields interpolated from input grid CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT:-1} else # Interpolate veg type, soil type and slope type from input grid, all others from sfcsub.f CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT:-2} fi gfsio_in=${gfsio_in:-.true.} gfsio_out=${gfsio_out:-.true.} ldiag3d=${ldiag3d:-.false.} lgoc3d=${lgoc3d:-.false.} liope=${liope:-.false.} NGPTC=${NGPTC:-$((JCAP/10))} IAER=${IAER:-${IAER:-111}} IALB=${IALB:-${IALB:-0}} ICO2=${ICO2:-${ICO2:-1}} ICTM=${ICTM:-${ICTM:-1}} IEMS=${IEMS:-${IEMS:-0}} ISOL=${ISOL:-${ISOL:-0}} FHLWR=${FHLWR:-1} FHSWR=${FHSWR:-1} IOVR_LW=${IOVR_LW:-1} IOVR_SW=${IOVR_SW:-1} ISUBC_LW=${ISUBC_LW:-0} ISUBC_SW=${ISUBC_SW:-0} RUN_ENTHALPY=${RUN_ENTHALPY:-.false.} THERMODYN_ID=${THERMODYN_ID:-0} SFCPRESS_ID=${SFCPRESS_ID:-0} export NST_FCST=${NST_FCST:-0} export NST_SPINUP=${NST_SPINUP:-0} export NST_RESERVED=${NST_RESERVED:-0} export ZSEA1=${ZSEA1:-0} export ZSEA2=${ZSEA2:-0} export nstf_name="$NST_FCST,$NST_SPINUP,$NST_RESERVED,$ZSEA1,$ZSEA2" export nst_anl=${nst_anl:-.false.} if [ $ldiag3d = .true. ] ; then FCSTVARS="LDIAG3D=$ldiag3d,$FCSTVARS" ; fi ## NGAC:: NEMS does not support the LGOC3D option ## if [ $lgoc3d = .true. ] ; then ## FHGOC3D=${FHGOC3D:-72} ## FCSTVARS="LGOC3D=$LGOC3D,FHGOC3D=$FHGOC3D,$FCSTVARS" ## fi if [ $RUN_ENTHALPY = .true. ] ; then RIlist=${RIlist:-" 287.05, 461.50, 173.2247, 0.0"} CPIlist=${CPIlist:-" 1004.6, 1846.0, 820.2391, 0.0"} TRACERVARS="RI=$RIlist,CPI=$CPIlist," # FCSTVARS="RUN_ENTHALPY=$RUN_ENTHALPY,$FCSTVARS" IDVM=${THERMODYN_ID}${SFCPRESS_ID} IDSL=2 ; nvcoord=3 ; LATCH=${LATCH:-8} fi SIGLEVEL=$(eval echo \${SIGLEVEL$IDVC}) ENS_NUM=${ENS_NUM:-1} # This is for uncoupled ensemble runs # # RAS-related parameters for NGAC # --------------------- mstrat=${mstrat:-.true.} ncw=${ncw:-'50,150'} nsout=${nsout:-0} old_monin=${old_monin:-.true.} ras=${ras:-.true.} tfiltc=${tfiltc:-0.85} zflxtvd=${zflxtvd:-.true.} zhao_mic=${zhao_mic:-.true.} crtrh=${crtrh:-'0.90,0.90,0.90'} ctei_rm=${ctei_rm:-'0.6,0.6'} flgmin=${flgmin:-'0.200,0.300'} random_clds=${random_clds:-.true.} imfshalcnv=${imfshalcnv:--1} trans_trac=${trans_trac:-.true.} imfdeepcnv=${imfdeepcnv:--1} dlqf=${dlqf:-"0.5, 0.25"} bkgd_vdif_m=${bkgd_vdif_m:-"1.0"} bkgd_vdif_s=${bkgd_vdif_s:-"1.0"} ccwf=${ccwf:-"0.0, 1.0"} psautco=${psautco:-"6.0e-4, 4.0e-4"} prautco=${prautco:-"3.0e-4, 1.0e-4"} evpco=${evpco:-1.0e-4} # # NEMS related parameters # --------------------- grid_aldata=${grid_aldata:-.false.} SPECTRAL_LOOP=${SPECTRAL_LOOP:-2} NDSLFV=${NDSLFV:-.false.} JCAPG=$JCAP GOCART=${GOCART:-0} PASSIVE_TRACER=${PASSIVE_TRACER:-.false.} RIlist=${RIlist:-" 287.05, 461.50, 173.2247, 0.0"} CPIlist=${CPIlist:-" 1004.6, 1846.0, 820.2391, 0.0"} ## NGAC prep setting CDUMP=${CDUMP:-gdas} ## use gdas analysis COMDIR=${COMDIR:-/com/gfs/prod} DO_REPLAY=${DO_REPLAY:-YES} ## option to ingest analysis FHREPLAY=${FHREPLAY:-24} ## freq to ingest analysis COLD_START=${COLD_START:-NO} ## is this a cold start run RETRO=${RETRO:-NO} ## is this a retro run ## NGAC post setting WRITE_DOPOST=${WRITE_DOPOST:-.true.} GOCART_AER2POST=${GOCART_AER2POST:-.true.} POST_GRIBVERSION=${POST_GRIBVERSION:-grib2} MAPPING=${MAPPING:-.true.} OPT_FLE=${OPT_FLE:-multiple} OPT_PDT=${OPT_PDT:-pdt48} OPT_LUMP=${OPT_LUMP:-YES} ## Note: Single file option only works for grib2-PDT 4.48 if [[ $OPT_PDT = pdt44 || $POST_GRIBVERSION = grib1 ]]; then OPT_FLE=multiple fi ## Note: Lumping option only works for multiple file if [ $OPT_FLE = single ]; then OPT_LUMP=NO fi DFILES=${DFILES:-"2d 3d"} if [ $OPT_FLE = multiple ]; then DFILES="$DFILES 01 02 03 04 05 06 07" fi ## NGAC_prep: CHGRES CHGRESVARS="ntrac=$ntrac,idvt=$varid,ncldt=$numcld,idvc=$IDVC,IVSSIG=$ivssig,NVCOORD=$nvcoord,IVSSFC=$ivssfc,idvm=$IDVM,idsl=$IDSL,OUTTYP=1," CHGRESVARS=$CHGRESVARS"RI=$RIlist,CPI=$CPIlist" ## NGAC_fcst: NEMS has DYNVARS, PHYVARS, and TRACERVARS #DYNVARS="liope=$liope,ZFLXTVD=$zflxtvd,ntrac=$ntrac" #PHYVARS="liope=$liope,grid_aldata=$grid_aldata,NST_FCST=$NST_FCST,NST_SPINUP=$NST_SPINUP,\ # ras=$ras,trans_trac=$trans_trac,random_clds=.true.,\ # old_monin=$old_monin,imfshalcnv=$imfshalcnv,imfdeepcnv=$imfdeepcnv,\ # bkgd_vdif_m=$bkgd_vdif_m,bkgd_vdif_s=$bkgd_vdif_s,\ # ctei_rm=$ctei_rm,mstrat=$mstrat,\ # crtrh=$crtrh,\ # CCWF=$ccwf,dlqf=$dlqf,psautco=$psautco,prautco=$prautco,evpco=$evpco,\ # ialb=$ialb,ntrac=$ntrac" #TRACERVARS="RI=$RIlist,CPI=$CPIlist," ############################################################ # Define executive code and places # ############################################################ export NCP=cp NCP=${NCP:-/u/wx20mi/bin/ncp} utilexec=${utilexec:-/nwprod/util/exec} ndate=${NDATE:-$utilexec/ndate} nhour=${NHOUR:-$utilexec/nhour} ##wgrib=${wgrib:-$utilexec/wgrib} if [ $SCHEDULER = 'loadleveler' ]; then export wgrib=${wgrib:-$utilexec/wgrib} elif [ $SCHEDULER = 'pbs' ]; then export wgrib=${wgrib:-/home/George.Vandenberghe/nwprod/util/exec/wgrib} elif [ $SCHEDULER = 'lsf' ]; then export wgrib=${wgrib:-$utilexec/wgrib} fi copygb=${copygb:-$utilexec/copygb} copygb2=${copygb2:-$utilexec/copygb2} windex=${windex:-$utilexec/grbindex} ############################################################ # Define NGAC script and executive # ############################################################ SCRIPTDIR=${SCRIPTDIR:-$HOMEngac/scripts} PREP_SCRIPT_DIR=${PREP_SCRIPT_DIR:-$SCRIPTDIR} PREP_SCRIPT=${PREP_SCRIPT:-$PREP_SCRIPT_DIR/exngac_prep.sh.sms} FCST_SCRIPT_DIR=${FCST_SCRIPT_DIR:-$SCRIPTDIR} FCST_SCRIPT=${FCST_SCRIPT:-$FCST_SCRIPT_DIR/exngac_fcst.sh.sms} POST_SCRIPT_DIR=${POST_SCRIPT_DIR:-$SCRIPTDIR} POST_SCRIPT=${POST_SCRIPT:-$POST_SCRIPT_DIR/exngac_post.sh.sms} nemsioget=${nemsioget:-$EXECngac/nemsio_get} SIGHDR=$nemsioget REPLAYEXEC=${REPLAYEXEC:-$EXECngac/ngac_replay} CHGFHREXEC=${CHGFHREXEC:-$EXECngac/ngac_chgfhr} CHGRESEXEC=${CHGRESEXEC:-$EXECngac/ngac_chgres} FCSTEXEC=${FCSTEXEC:-$EXECngac/ngac_fcst} POSTEXEC=${POSTEXEC:-$EXECngac/ncep_post} #SH POSTEXEC=${POSTEXEC:-$EXECGLOBAL/ncep_post} CHGRESSH=${CHGRESSH:-$USHngac/ngac_chgres.sh} POST_USH=${POST_USH:-$USHngac/ngac_post.sh} ############################################################ # Define NGAC config and resource files # ############################################################ CONFIG_DU=${CONFIG_DU:-$PARM_NGAC/DU_GridComp.rc} CONFIG_SU=${CONFIG_SU:-$PARM_NGAC/SU_GridComp.rc} CONFIG_OC=${CONFIG_OC:-$PARM_NGAC/OC_GridComp.rc} CONFIG_OCx=${CONFIG_OCx:-$PARM_NGAC/OC_GridComp---full.rc} CONFIG_BC=${CONFIG_BC:-$PARM_NGAC/BC_GridComp.rc} CONFIG_SS=${CONFIG_SS:-$PARM_NGAC/SS_GridComp.rc} CHEM_REGISTRY=${CHEM_REGISTRY:-$PARM_NGAC/Chem_Registry.rc} AOD_REGISTRY=${AOD_REGISTRY:-$PARM_NGAC/Aod-550nm_Registry.rc} MAPL=${MAPL:-$PARM_NGAC/MAPL.rc} ############################################################ # Define NGAC post parm files # ############################################################ # G2TMPL_TBL_DIR=${G2TMPL_TBL_DIR:-$HOMEGLOBAL/lib/sorc/g2tmpl} G2TMPL_TBL_DIR=${G2TMPL_TBL_DIR:-$HOMEGLOBAL/parm} POST_NCEPGRB2TBL=${POST_NCEPGRB2TBL:-$G2TMPL_TBL_DIR/params_grib2_tbl_new} POST_AVBLFLDSXML=${POST_AVBLFLDSXML:-$PARM_NGAC/ngac_post_avblflds.xml} POSTCTLFILE=${POSTCTLFILE:-$PARM_NGAC/ngac_postcntrl.parm} POST_PARM=${POST_PARM:-$PARM_NGAC/ngac_postcntrl.xml} ############################################################ # Define forecast output variables # ############################################################ # FHMAX=${FHMAX:-120} # Forecast length FHRES=${FHRES:-120} # Forecast Hour Restart Frequency FHOUT=${FHOUT:-3} # Forecast Hour Output Frequency FHZER=${FHZER:-3} # Interval to Zero the bucket - must be greater than or equal to FHOUT FHCYC=${FHCYC:-24} # Surface boundary condition update interval in hours FHDFI=${FHDFI:-3} # Half of the digital filter initialization hours dtphys=${dtphys:-3600} # phys time step export NEMSIO_IN=${NEMSIO_IN:-.true.} export NEMSIO_OUT=${NEMSIO_OUT:-.true.} export SIGIO_OUT=${SIGIO_OUT:-.false.} export SFCIO_OUT=${SFCIO_OUT:-.false.} export model=ngac scrdir=${scrdir:-$FCST_SCRIPT_DIR} #export FCSTSCRIPT=$srcdir/exglobal_fcst.sh.sms_nems #export FCSTEXEC=$srcdir/exe/NEMS.x export CONFIG=${GSM_CONFIG:-$scrdir/gsm_config} set -a;. $CONFIG;set +a