diff --git a/ecflow/ecf/include/envir-p1.h b/ecflow/ecf/include/envir-p1.h deleted file mode 100644 index 1f4495e5c2..0000000000 --- a/ecflow/ecf/include/envir-p1.h +++ /dev/null @@ -1,51 +0,0 @@ -# envir-p1.h -export job=${job:-$LSB_JOBNAME} #Can't use $job in filenames! -export jobid=${jobid:-${job}.$LSB_JOBID} - -export RUN_ENVIR=${RUN_ENVIR:-nco} -export envir=%ENVIR% -export SENDDBN=${SENDDBN:-%SENDDBN:YES%} -export SENDDBN_NTC=${SENDDBN_NTC:-%SENDDBN_NTC:YES%} - -export COMROOT=${COMROOT:-/com} -export GESROOT=${GESROOT:-/nwges} -export UTILROOT=${UTILROOT:-/nwprod/util} -export DCOMROOT=/dcom/us007003 # previously set to /dcom in .bash_profile - -case $envir in - prod) - export jlogfile=${jlogfile:-${COMROOT}/logs/jlogfiles/jlogfile.${jobid}} - export DATAROOT=${DATAROOT:-/tmpnwprd1} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=/iodprod/dbnet_siphon # previously set in .bash_profile - else - export DBNROOT=/nwprod/spa_util/fakedbn - fi - ;; - eval) - export envir=para - export jlogfile=${jlogfile:-${COMROOT}/logs/${envir}/jlogfile} - export DATAROOT=${DATAROOT:-/tmpnwprd2} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=/nwprod/spa_util/para_dbn - SENDDBN_NTC=NO - else - export DBNROOT=/nwprod/spa_util/fakedbn - fi - ;; - para|test) - export jlogfile=${jlogfile:-${COMROOT}/logs/${envir}/jlogfile} - export DATAROOT=${DATAROOT:-/tmpnwprd2} - export DBNROOT=/nwprod/spa_util/fakedbn - ;; - *) - ecflow_client --abort="ENVIR must be prod, para, eval, or test [envir.h]" - exit - ;; -esac - -export NWROOT=${NWROOT:-/nw${envir}} -export PCOMROOT=${PCOMROOT:-/pcom/${envir}} -export SENDECF=${SENDECF:-YES} -export SENDCOM=${SENDCOM:-YES} -export KEEPDATA=${KEEPDATA:-%KEEPDATA:NO%} diff --git a/ecflow/ecf/include/envir-p2.h b/ecflow/ecf/include/envir-p2.h deleted file mode 100644 index 968206b6ff..0000000000 --- a/ecflow/ecf/include/envir-p2.h +++ /dev/null @@ -1,63 +0,0 @@ -# envir-p2.h -export job=${job:-$LSB_JOBNAME} #Can't use $job in filenames! -export jobid=${jobid:-$job.$LSB_JOBID} - -export RUN_ENVIR=${RUN_ENVIR:-nco} -export envir=%ENVIR% -export SENDDBN=${SENDDBN:-%SENDDBN:YES%} -export SENDDBN_NTC=${SENDDBN_NTC:-%SENDDBN_NTC:YES%} - -export COMROOTp1=${COMROOTp1:-/com} -export GESROOTp1=${GESROOTp1:-/nwges} -export COMROOT=${COMROOT:-/com2} -export GESROOT=${GESROOT:-/nwges2} -export DCOMROOT=${DCOMROOT:-/dcom} -export ECF_HOSTFILE=/nwprod/ecflow/hostfile -#export subhost=`echo ${LSB_SUB_HOST}| cut -c1` - -module load prod_util - -case $envir in - prod) - export jlogfile=${jlogfile:-${COMROOT}/logs/jlogfiles/jlogfile.${jobid}} - export DATAROOT=${DATAROOT:-/tmpnwprd_p2} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=/iodprod/dbnet_siphon # previously set in .bash_profile - else - export DBNROOT=${UTILROOT}/fakedbn - fi - ;; - eval) - export envir=para - export jlogfile=${jlogfile:-${COMROOT}/logs/${envir}/jlogfile} - export DATAROOT=${DATAROOT:-/tmpnwprd_p2} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=${UTILROOT}/para_dbn - SENDDBN_NTC=NO - else - export DBNROOT=${UTILROOT}/fakedbn - fi - ;; - para|test) - export jlogfile=${jlogfile:-${COMROOT}/logs/${envir}/jlogfile} - export DATAROOT=${DATAROOT:-/tmpnwprd_p2} - export DBNROOT=${UTILROOT}/fakedbn - ;; - *) - ecflow_client --abort="ENVIR must be prod, para, eval, or test [envir.h]" - exit - ;; -esac - -export NWROOT=/nw${envir}2 -export NWROOTprod=/nwprod2 -export NWROOTp1=/nwprod -export PCOMROOT=${PCOMROOT:-/pcom2/${envir}} -export SENDECF=${SENDECF:-YES} -export SENDCOM=${SENDCOM:-YES} -export KEEPDATA=${KEEPDATA:-%KEEPDATA:NO%} - -if [ -n "%PDY:%" ]; then export PDY=${PDY:-%PDY:%}; fi -if [ -n "%COMPATH:%" ]; then export COMPATH=${COMPATH:-%COMPATH:%}; fi -if [ -n "%MAILTO:%" ]; then export MAILTO=${MAILTO:-%MAILTO:%}; fi -if [ -n "%DBNLOG:%" ]; then export DBNLOG=${DBNLOG:-%DBNLOG:%}; fi diff --git a/ecflow/ecf/include/envir-xc40.h b/ecflow/ecf/include/envir-xc40.h deleted file mode 100644 index 11770e4d38..0000000000 --- a/ecflow/ecf/include/envir-xc40.h +++ /dev/null @@ -1,53 +0,0 @@ -# envir-xc40.h -export job=${job:-$LSB_JOBNAME} #Can't use $job in filenames! -export jobid=${jobid:-$job.$LSB_JOBID} - -export RUN_ENVIR=${RUN_ENVIR:-nco} -export envir=%ENVIR% -export SENDDBN=${SENDDBN:-%SENDDBN:YES%} -export SENDDBN_NTC=${SENDDBN_NTC:-%SENDDBN_NTC:YES%} - -module load prod_envir prod_util - -case $envir in - prod) - export jlogfile=${jlogfile:-${COMROOT}/logs/jlogfiles/jlogfile.${jobid}} - export DATAROOT=${DATAROOT:-/gpfs/hps/nco/ops/tmpnwprd} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=/iodprod/dbnet_siphon # previously set in .bash_profile - else - export DBNROOT=${UTILROOT}/fakedbn - fi - ;; - eval) - export envir=para - export jlogfile=${jlogfile:-${COMROOT}/logs/${envir}/jlogfile} - export DATAROOT=${DATAROOT:-/gpfs/hps/nco/ops/tmpnwprd} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=${UTILROOT}/para_dbn - SENDDBN_NTC=NO - else - export DBNROOT=${UTILROOT}/fakedbn - fi - ;; - para|test) - export jlogfile=${jlogfile:-${COMROOT}/logs/${envir}/jlogfile} - export DATAROOT=${DATAROOT:-/gpfs/hps/nco/ops/tmpnwprd} - export DBNROOT=${UTILROOT}/fakedbn - ;; - *) - ecflow_client --abort="ENVIR must be prod, para, eval, or test [envir.h]" - exit - ;; -esac - -export NWROOT=/gpfs/hps/nco/ops/nw${envir} -export PCOMROOT=$PCOMROOT/${envir} -export SENDECF=${SENDECF:-YES} -export SENDCOM=${SENDCOM:-YES} -export KEEPDATA=${KEEPDATA:-%KEEPDATA:NO%} - -if [ -n "%PDY:%" ]; then export PDY=${PDY:-%PDY:%}; fi -if [ -n "%COMPATH:%" ]; then export COMPATH=${COMPATH:-%COMPATH:%}; fi -if [ -n "%MAILTO:%" ]; then export MAILTO=${MAILTO:-%MAILTO:%}; fi -if [ -n "%DBNLOG:%" ]; then export DBNLOG=${DBNLOG:-%DBNLOG:%}; fi diff --git a/ecflow/ecf/include/experiment-prod.h b/ecflow/ecf/include/experiment-prod.h deleted file mode 100644 index 45f7d47613..0000000000 --- a/ecflow/ecf/include/experiment-prod.h +++ /dev/null @@ -1,16 +0,0 @@ -# These are development overrides. They are intended to set -# variables that would otherwise be set to operational values, and -# cause your workflow to fail. - -# EMC experiment configuration file -export HOMEgfs="/gpfs/dell2/emc/modeling/noscrub/Fanglin.Yang/git/fv3gfs/port2dell2" -export HOMEobsproc_global="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/obsproc/obsproc_global.iss-46886.fv3gfs" -export HOMEobsproc_network="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/obsproc/obsproc_global.iss-46886.fv3gfs" -export HOMEobsproc_prep="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/obsproc/obsproc_prep.iss-46886.fv3gfs" -export DATAROOT="/gpfs/dell2/ptmp/emc.glopara/tmpnwprd" -export jlogfile="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/com/gfs/prod/jlogfile" -export COMROOT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/com/gfs/prod" -export CDUMP=$model -export cycle=t%CYC%z -export EXPDIR="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/para_fv3gfs/myexp" - diff --git a/ecflow/ecf/scripts/gdas/dump/jgdas_ics.ecf b/ecflow/ecf/scripts/gdas/dump/jgdas_ics.ecf deleted file mode 100644 index 3506074c2f..0000000000 --- a/ecflow/ecf/scripts/gdas/dump/jgdas_ics.ecf +++ /dev/null @@ -1,92 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_ics -#BSUB -o %COM%/output/%ENVIR%/today/gdas_ics_%CYC%.o%J - -#BSUB -W 0:02 -#BSUB -x -#BSUB -R 'affinity[core(1)]' -#BSUB -R 'span[ptile=28]' -#BSUB -n 2 - -%include -%include - -set -x - - - -export model=gfs -export NET=gfs -export RUN=%RUN% - -export NWROOT=%NWROOT% # EMC override -export DATAROOT=%DATAROOT% # EMC override -%include - - -############################################################ -# Load modules -############################################################ -#. $MODULESHOME/init/sh -module load ips/18.0.1.163 -module load impi/18.0.1 -module load EnvVars/1.0.2 - -module load g2tmpl/1.5.0 -module load crtm/2.2.5 -module load ESMF/7_1_0r -module load dev/util_shared/1.0.8 - -module unload grib_util/1.0.6 -module load dev/grib_util/1.1.0 - -module load NCO/4.7.0 -module load HDF5-serial/1.10.1 -module load NetCDF/4.5.0 -module load CFP/2.0.1 -export USE_CFP=YES - -module use /gpfs/dell1/nco/ops/nwpara/modulefiles/ -module load gempak/7.3.1 - -module load bufr_dumplist/1.5.0 -module load dumpjb/4.0.0 -module load NCL/6.4.0 - -module list -export ECF_PORT=%ECF_PORT% # workaround for bug in ecflow module - -export cyc=%CYC% -export cycle=t%CYC%z -export jlogfile=/%COM%/logs/jlogfile -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} # where to get config files - -# Development overrides -export DATAROOT=%DATAROOT% -export COMROOT=/%COM% - -# Development synonyms -export CDUMP="$RUN" -export ROTDIR="$COMROOT" - - -############################################################ -# WCOSS environment settings -############################################################ - -# Set tuning variables like KMP_AFFINITY and OMP_STACKSIZE here. - -############################################################ -export cyc=%CYC% -export job=jgdas_ics_%CYC% - -# CALL executable job script here -${HOMEgfs}/jobs/JGDAS_ICS - -%include -%manual -# FIXME: Insert manual for this job. - -%end diff --git a/ecflow/ecf/scripts/gdas/jgdas_emc_dump_waiter.ecf b/ecflow/ecf/scripts/gdas/jgdas_emc_dump_waiter.ecf deleted file mode 100644 index 4ad9ce6e17..0000000000 --- a/ecflow/ecf/scripts/gdas/jgdas_emc_dump_waiter.ecf +++ /dev/null @@ -1,109 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_emc_dump_waiter -#BSUB -o %COM%/output/%ENVIR%/today/gdas_emc_dump_waiter_%CYC%.o%J - -#BSUB -W 1:00 -#BSUB -x -#BSUB -R 'affinity[core(1)]' -#BSUB -n 1 - -%include -%include - -set -x - - - -export model=gfs -export NET=gfs -export RUN=%RUN% - -export NWROOT=%NWROOT% # EMC override -export DATAROOT=%DATAROOT% # EMC override -%include - - -############################################################ -# Load modules -############################################################ -#. $MODULESHOME/init/sh -module load ips/18.0.1.163 -module load impi/18.0.1 -module load EnvVars/1.0.2 - -module load g2tmpl/1.5.0 -module load crtm/2.2.5 -module load ESMF/7_1_0r -module load dev/util_shared/1.0.8 - -module unload grib_util/1.0.6 -module load dev/grib_util/1.1.0 - -module load NCO/4.7.0 -module load HDF5-serial/1.10.1 -module load NetCDF/4.5.0 -module load CFP/2.0.1 -export USE_CFP=YES - -module use /gpfs/dell1/nco/ops/nwpara/modulefiles/ -module load gempak/7.3.1 - -module load bufr_dumplist/1.5.0 -module load dumpjb/4.0.0 -module load NCL/6.4.0 - -module list -export ECF_PORT=%ECF_PORT% # workaround for bug in ecflow module - -export cyc=%CYC% -export cycle=t%CYC%z -export jlogfile=/%COM%/logs/jlogfile -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} # where to get config files - -# Development overrides -export DATAROOT=%DATAROOT% -export COMROOT=/%COM% - -# Development synonyms -export CDUMP="$RUN" -export ROTDIR="$COMROOT" - - -############################################################ -# WCOSS environment settings -############################################################ - -# Set tuning variables like KMP_AFFINITY and OMP_STACKSIZE here. - -############################################################ -export cyc=%CYC% -export job=jgdas_emc_dump_waiter_%CYC% - -# CALL executable job script here -workdir=/tmp/$USER.dump_waiter.$$.$RANDOM -mkdir -p "$workdir" -cd "$workdir" -export cycle="t${cyc}z" -export jlogfile=${jlogfile:-$COMROOT/logs/jlogfiles/jlogfile.${job}.${pid}} -export job=${job:-"anal"} -setpdy.sh -source ./PDY -WAITFILE=%DUMPDIR%/${PDY}%CYC%/gdas/gdas.t%CYC%z.updated.status.tm00.bufr_d -while [[ ! -s "$WAITFILE" ]] ; do - echo "$WAITFILE: nope" - sleep 37 -done -env | grep ECF_ -echo "$WAITFILE: yup" -ecflow_client --event updated_status -cd / -rm -rf "$workdir" - - -%include -%manual -# FIXME: Insert manual for this job. - -%end diff --git a/ecflow/ecf/scripts/gdas/post_processing/bulletins/jgdas_bulls_navy.ecf b/ecflow/ecf/scripts/gdas/post_processing/bulletins/jgdas_bulls_navy.ecf deleted file mode 100644 index e93a67ff5b..0000000000 --- a/ecflow/ecf/scripts/gdas/post_processing/bulletins/jgdas_bulls_navy.ecf +++ /dev/null @@ -1,76 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_bulls_navy_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_bulls_navy_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -x -#BSUB -R 'affinity[core(28)]' -#BSUB -R 'span[ptile=1]' -#BSUB -n 1 -#BSUB -cwd /tmp -%include -%include - -set -x - - - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% - -%include - -############################################################ -# Load modules -############################################################ -#. $MODULESHOME/init/sh -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver - -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load ESMF/$ESMF_ver -module load dev/util_shared/$util_shared_ver # NOTE: remove dev/ after util_shared upgrade - -module unload grib_util -module load dev/grib_util/$grib_util_ver # NOTE: remove dev/ after grib_util upgrade - -module load NCO/$NCO_ver -module load HDF5-serial/$HDF5_serial_ver -module load NetCDF/$NetCDF_ver -module load CFP/$CFP_ver -export USE_CFP=YES - -module use /gpfs/dell1/nco/ops/nwpara/modulefiles/ -module load gempak/$gempak_ver - -module load bufr_dumplist/$bufr_dumplist_ver -module load dumpjb/$dumpjb_ver -module load NCL/$NCL_ver - -module list - -# Synonyms expected by scripts: -export CDUMP="$RUN" -export ROTDIR="$COMROOT" - - -############################################################ -# WCOSS environment settings -############################################################ - -# Set tuning variables like KMP_AFFINITY and OMP_STACKSIZE here. - -############################################################ -export cyc=%CYC% - - -$HOMEgfs/jobs/JGDAS_BULLS_NAVY - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs/jgfs_emc_dump_waiter.ecf b/ecflow/ecf/scripts/gfs/jgfs_emc_dump_waiter.ecf deleted file mode 100644 index d58082f8cd..0000000000 --- a/ecflow/ecf/scripts/gfs/jgfs_emc_dump_waiter.ecf +++ /dev/null @@ -1,109 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_emc_dump_waiter -#BSUB -o %COM%/output/%ENVIR%/today/gfs_emc_dump_waiter_%CYC%.o%J - -#BSUB -W 1:00 -#BSUB -x -#BSUB -R 'affinity[core(1)]' -#BSUB -n 1 - -%include -%include - -set -x - - - -export model=gfs -export NET=gfs -export RUN=%RUN% - -export NWROOT=%NWROOT% # EMC override -export DATAROOT=%DATAROOT% # EMC override -%include - - -############################################################ -# Load modules -############################################################ -#. $MODULESHOME/init/sh -module load ips/18.0.1.163 -module load impi/18.0.1 -module load EnvVars/1.0.2 - -module load g2tmpl/1.5.0 -module load crtm/2.2.5 -module load ESMF/7_1_0r -module load dev/util_shared/1.0.8 - -module unload grib_util/1.0.6 -module load dev/grib_util/1.1.0 - -module load NCO/4.7.0 -module load HDF5-serial/1.10.1 -module load NetCDF/4.5.0 -module load CFP/2.0.1 -export USE_CFP=YES - -module use /gpfs/dell1/nco/ops/nwpara/modulefiles/ -module load gempak/7.3.1 - -module load bufr_dumplist/1.5.0 -module load dumpjb/4.0.0 -module load NCL/6.4.0 - -module list -export ECF_PORT=%ECF_PORT% # workaround for bug in ecflow module - -export cyc=%CYC% -export cycle=t%CYC%z -export jlogfile=/%COM%/logs/jlogfile -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} # where to get config files - -# Development overrides -export DATAROOT=%DATAROOT% -export COMROOT=/%COM% - -# Development synonyms -export CDUMP="$RUN" -export ROTDIR="$COMROOT" - - -############################################################ -# WCOSS environment settings -############################################################ - -# Set tuning variables like KMP_AFFINITY and OMP_STACKSIZE here. - -############################################################ -export cyc=%CYC% -export job=jgfs_emc_dump_waiter_%CYC% - -# CALL executable job script here -workdir=/tmp/$USER.dump_waiter.$$.$RANDOM -mkdir -p "$workdir" -cd "$workdir" -export cycle="t${cyc}z" -export jlogfile=${jlogfile:-$COMROOT/logs/jlogfiles/jlogfile.${job}.${pid}} -export job=${job:-"anal"} -setpdy.sh -source ./PDY -WAITFILE=%DUMPDIR%/${PDY}%CYC%/gfs/gfs.t%CYC%z.updated.status.tm00.bufr_d -while [[ ! -s "$WAITFILE" ]] ; do - echo "$WAITFILE: nope" - sleep 37 -done -env | grep ECF_ -echo "$WAITFILE: yup" -ecflow_client --event updated_status -cd / -rm -rf "$workdir" - - -%include -%manual -# FIXME: Insert manual for this job. - -%end diff --git a/ecflow/ecf/scripts/gfs/post_processing/grib2_wafs/jgfs_wafs_gcip.ecf b/ecflow/ecf/scripts/gfs/post_processing/grib2_wafs/jgfs_wafs_gcip.ecf deleted file mode 100644 index dcbfa527fa..0000000000 --- a/ecflow/ecf/scripts/gfs/post_processing/grib2_wafs/jgfs_wafs_gcip.ecf +++ /dev/null @@ -1,92 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_gcip_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_gcip_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -x -#BSUB -R 'affinity[core(28)]' -#BSUB -R 'span[ptile=1]' -#BSUB -n 1 -#BSUB -cwd /tmp -%include -%include - -set -x - - - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% - -%include - -############################################################ -# Load modules -############################################################ -#. $MODULESHOME/init/sh -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver - -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load ESMF/$ESMF_ver -module load dev/util_shared/$util_shared_ver # NOTE: remove dev/ after util_shared upgrade - -module unload grib_util -module load dev/grib_util/$grib_util_ver # NOTE: remove dev/ after grib_util upgrade - -module load NCO/$NCO_ver -module load HDF5-serial/$HDF5_serial_ver -module load NetCDF/$NetCDF_ver -module load CFP/$CFP_ver -export USE_CFP=YES - -module use /gpfs/dell1/nco/ops/nwpara/modulefiles/ -module load gempak/$gempak_ver - -module load bufr_dumplist/$bufr_dumplist_ver -module load dumpjb/$dumpjb_ver -module load NCL/$NCL_ver - -module list - -# Synonyms expected by scripts: -export CDUMP="$RUN" -export ROTDIR="$COMROOT" - - -############################################################ -# WCOSS environment settings -############################################################ - -# When sourcing config files, the $PDY must be set: -datedir=/tmp/date.$$.$RANDOM -mkdir -p "$datedir" -pushd "$datedir" -export cyc="%CYC%" -export cycle="t%CYC%z" -setpdy.sh -. ./PDY -set -u -export CDATE="$PDY$cyc" -set +u -popd -rm -rf "$datedir" - - -############################################################ -export cyc=%CYC% -export HOMEgfs=${HOMEgfs:-${NWROOT:?}/gfs.${gfs_ver:?"###FATAL ERROR gfs_ver is not set"}} -source $HOMEgfs/parm/config/config.base -source $HOMEgfs/parm/config/config.wafs_gcip - - -$HOMEgfs/jobs/JGFS_WAFS_GCIP - -%include -%manual - -%end diff --git a/env/HERA.env b/env/HERA.env index abdaf83319..156873e891 100755 --- a/env/HERA.env +++ b/env/HERA.env @@ -212,13 +212,6 @@ elif [ $step = "fv3ic" ]; then [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max export APRUN_CHGRES="time" -elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostpnt" ]; then - export mpmd="--multi-prog" - export CFP_MP="YES" - export wavempexec=${launcher} - export wave_mpmd=${mpmd} - - elif [ $step = "postsnd" ]; then nth_max=$(($npe_node_max / $npe_node_postsnd)) diff --git a/env/ORION.env b/env/ORION.env index 963fee849d..de989331ff 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -42,11 +42,23 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then export BACK=${BACK:-"YES"} export sys_tp="ORION" +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostpnt" ]; then + + export mpmd="--multi-prog" + export CFP_MP="YES" + if [ $step = "waveprep" ]; then export MP_PULSE=0 ; fi + export wavempexec=${launcher} + export wave_mpmd=${mpmd} + elif [ $step = "anal" ]; then export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -n \$ncmd --multi-prog" + nth_max=$(($npe_node_max / $npe_node_anal)) export NTHREADS_GSI=${nth_anal:-$nth_max} @@ -62,7 +74,6 @@ elif [ $step = "anal" ]; then npe_cycle=${ntiles:-6} export APRUN_CYCLE="$launcher -n $npe_cycle" - export NTHREADS_GAUSFCANL=1 npe_gausfcanl=${npe_gausfcanl:-1} @@ -91,6 +102,10 @@ elif [ $step = "eobs" ]; then export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -n \$ncmd --multi-prog" + nth_max=$(($npe_node_max / $npe_node_eobs)) export NTHREADS_GSI=${nth_eobs:-$nth_max} @@ -99,6 +114,10 @@ elif [ $step = "eobs" ]; then elif [ $step = "eupd" ]; then + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -n \$ncmd --multi-prog" + nth_max=$(($npe_node_max / $npe_node_eupd)) export NTHREADS_ENKF=${nth_eupd:-$nth_max} @@ -189,12 +208,6 @@ elif [ $step = "fv3ic" ]; then [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max export APRUN_CHGRES="time" -elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostpnt" ]; then - export mpmd="--multi-prog" - export CFP_MP="YES" - export wavempexec=${launcher} - export wave_mpmd=${mpmd} - elif [ $step = "postsnd" ]; then nth_max=$(($npe_node_max / $npe_node_postsnd)) diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index 5fedafd793..1a7c6c3803 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -9,7 +9,7 @@ date ############################# # Source relevant config files ############################# -configs="base fcst wave" +configs="base fcst" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do @@ -68,18 +68,18 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export CDUMPwave=${CDUMPwave:-${CDUMP}wave} -export COMINwave=${COMINwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} -export COMOUTwave=${COMOUTwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} - if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir export RSTDIR=${GESROOT:?}/$envir fi -export COMPONENTwave=${COMPONENTwave:-${RUN}wave} -export WAV_MOD_TAG=${COMPONENTwave}${waveMEMB} # Set wave variables +if [ ${DO_WAVE:-"NO"} = "YES" ]; then + # WAVE component directory + export CDUMPwave=${CDUMPwave:-${CDUMP}wave} + export COMINwave=${COMINwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} + export COMOUTwave=${COMOUTwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} +fi ############################################## # Begin JOB SPECIFIC work diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index 50a05c6427..c3e113eed1 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -48,6 +48,7 @@ setpdy.sh sh ./PDY export pgmout=OUTPUT.$$ + export MP_PULSE=0 # Path to HOME Directory diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP index ac52d03350..c15409cb0f 100755 --- a/jobs/JGLOBAL_WAVE_PREP +++ b/jobs/JGLOBAL_WAVE_PREP @@ -29,7 +29,6 @@ export NET=${NET:-gfs} export RUN=${RUN:-gfs} export COMPONENT=${COMPONENT:-wave} -export WAV_MOD_TAG=${RUN}${COMPONENT}${waveMEMB} export HOMEgfs=${HOMEgfs:-$NWROOT/gfs.${gfs_ver}} # Add default errchk = err_chk diff --git a/jobs/rocoto/anal.sh b/jobs/rocoto/anal.sh index e1aaf3a32d..6520d967f0 100755 --- a/jobs/rocoto/anal.sh +++ b/jobs/rocoto/anal.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/awips.sh b/jobs/rocoto/awips.sh index a15d3fdd13..40c5db8cb4 100755 --- a/jobs/rocoto/awips.sh +++ b/jobs/rocoto/awips.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### ## Abstract: @@ -12,8 +12,6 @@ ## cyc : current cycle (HH) ############################################################### -set -x - ############################################################### echo echo "=============== BEGIN TO SOURCE FV3GFS WORKFLOW MODULES ===============" @@ -32,8 +30,7 @@ for config in $configs; do [[ $status -ne 0 ]] && exit $status done -#fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') -fhrlst=${fhrlst:-$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g')} +fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') ############################################################### echo @@ -59,7 +56,7 @@ echo "=============== BEGIN AWIPS ===============" export SENDCOM="YES" export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export PCOM="$COMOUT/wmo" -export jlogfile=${jlogfile:-"$ROTDIR/logs/$CDATE/jgfs_awips.log"} +export jlogfile="$ROTDIR/logs/$CDATE/jgfs_awips.log" SLEEP_TIME=1800 SLEEP_INT=5 diff --git a/jobs/rocoto/ecen.sh b/jobs/rocoto/ecen.sh index 60b1b51857..353621de64 100755 --- a/jobs/rocoto/ecen.sh +++ b/jobs/rocoto/ecen.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/efcs.sh b/jobs/rocoto/efcs.sh index 626f9fb8e2..c9457a686f 100755 --- a/jobs/rocoto/efcs.sh +++ b/jobs/rocoto/efcs.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/eobs.sh b/jobs/rocoto/eobs.sh index a9dacfdf38..cf63fabaae 100755 --- a/jobs/rocoto/eobs.sh +++ b/jobs/rocoto/eobs.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/eomg.sh b/jobs/rocoto/eomg.sh index 2a0b35a699..683269c2a8 100755 --- a/jobs/rocoto/eomg.sh +++ b/jobs/rocoto/eomg.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/epos.sh b/jobs/rocoto/epos.sh index 539eedbbfa..98b1384973 100755 --- a/jobs/rocoto/epos.sh +++ b/jobs/rocoto/epos.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/eupd.sh b/jobs/rocoto/eupd.sh index 9ec41cad0e..d367b7ecd3 100755 --- a/jobs/rocoto/eupd.sh +++ b/jobs/rocoto/eupd.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/fcst.sh b/jobs/rocoto/fcst.sh index 9a1d022430..23be9b7843 100755 --- a/jobs/rocoto/fcst.sh +++ b/jobs/rocoto/fcst.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/fv3ic.sh b/jobs/rocoto/fv3ic.sh index a6cb334eda..b5c2e40b48 100755 --- a/jobs/rocoto/fv3ic.sh +++ b/jobs/rocoto/fv3ic.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### ## Abstract: diff --git a/jobs/rocoto/gempak.sh b/jobs/rocoto/gempak.sh index df06340bd0..599c6f3766 100755 --- a/jobs/rocoto/gempak.sh +++ b/jobs/rocoto/gempak.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### ## Abstract: diff --git a/jobs/rocoto/getic.sh b/jobs/rocoto/getic.sh index db74953c0d..120e3b9454 100755 --- a/jobs/rocoto/getic.sh +++ b/jobs/rocoto/getic.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### ## Abstract: diff --git a/jobs/rocoto/post.sh b/jobs/rocoto/post.sh index 3b2817fb22..de8893abce 100755 --- a/jobs/rocoto/post.sh +++ b/jobs/rocoto/post.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### ## NCEP post driver script @@ -21,8 +21,6 @@ else restart_file=$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/${CDUMP}.t${cyc}z.logf fi -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" -[[ ! -d $DATAROOT ]] && mkdir -p $DATAROOT #--------------------------------------------------------------- for fhr in $fhrlst; do diff --git a/jobs/rocoto/postsnd.sh b/jobs/rocoto/postsnd.sh index 02e6b126a9..deb6ebe4e9 100644 --- a/jobs/rocoto/postsnd.sh +++ b/jobs/rocoto/postsnd.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### # Source FV3GFS workflow modules diff --git a/jobs/rocoto/vrfy.sh b/jobs/rocoto/vrfy.sh index 809c9b9aa9..11dd08325c 100755 --- a/jobs/rocoto/vrfy.sh +++ b/jobs/rocoto/vrfy.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ksh -x ############################################################### ## Abstract: diff --git a/jobs/rocoto/waveinit.sh b/jobs/rocoto/waveinit.sh index 575eaec933..41f52c4ff2 100755 --- a/jobs/rocoto/waveinit.sh +++ b/jobs/rocoto/waveinit.sh @@ -7,14 +7,10 @@ echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" status=$? [[ $status -ne 0 ]] && exit $status -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" -[[ ! -d $DATAROOT ]] && mkdir -p $DATAROOT - ############################################################### echo echo "=============== START TO RUN WAVE INIT ===============" # Execute the JJOB - $HOMEgfs/jobs/JGLOBAL_WAVE_INIT status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/rocoto/wavepostsbs.sh b/jobs/rocoto/wavepostsbs.sh index 99f0f062ea..66d6463bd7 100755 --- a/jobs/rocoto/wavepostsbs.sh +++ b/jobs/rocoto/wavepostsbs.sh @@ -7,8 +7,6 @@ echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" status=$? [[ $status -ne 0 ]] && exit $status -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" -[[ ! -d $DATAROOT ]] && mkdir -p $DATAROOT ############################################################### echo echo "=============== START TO RUN WAVE POST_SBS ===============" diff --git a/jobs/rocoto/waveprep.sh b/jobs/rocoto/waveprep.sh index 4de688e0fe..e1b3b89174 100755 --- a/jobs/rocoto/waveprep.sh +++ b/jobs/rocoto/waveprep.sh @@ -7,9 +7,6 @@ echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" status=$? [[ $status -ne 0 ]] && exit $status -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" -[[ ! -d $DATAROOT ]] && mkdir -p $DATAROOT - ############################################################### echo echo "=============== START TO RUN WAVE PREP ===============" diff --git a/modulefiles/gfs_bufr.jet b/modulefiles/gfs_bufr.jet index fd5163dc12..a57987c1d0 100644 --- a/modulefiles/gfs_bufr.jet +++ b/modulefiles/gfs_bufr.jet @@ -8,11 +8,16 @@ export F_COMP_MPI=mpiifort export C_COMP=icc export C_COMP_MP=mpiicc + +#module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles + module load newdefaults module load intel/15.0.3.187 module load impi/5.1.3.181 -export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib +export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib + + module use $NCEPLIBS/modulefiles module load nemsio-intel-sandybridge/2.2.2 module load sigio-intel-sandybridge/2.0.1 @@ -22,9 +27,12 @@ module load w3emc-intel-sandybridge/2.2.0 module load w3nco-intel-sandybridge/2.0.6 module load bufr-intel-sandybridge/11.0.1 +##module use /home/Raghu.Reddy/modules +##module load gempak-rr/7.4.2 module load gempak/7.4.2 export myFC=mpiifort export myFCFLAGS="-O3 -convert big_endian -traceback -g -fp-model source -openmp" export myCPP=/lib/cpp export myCPPFLAGS="-P" + diff --git a/modulefiles/module_base.jet b/modulefiles/module_base.jet index e929c3f3a0..c6c767eedc 100644 --- a/modulefiles/module_base.jet +++ b/modulefiles/module_base.jet @@ -1,4 +1,3 @@ -#%Module###################################################################### ## ## nems prerequisites ## @@ -7,21 +6,27 @@ proc ModulesHelp {} { puts stderr "The prerequisites for compiling or running FV3 on Jet. " } -module-whatis "loads NEMS FV3 prerequisites on Jet" +module load newdefaults intel/15.0.3.187 impi/5.1.3.181 szip hdf5 netcdf4/4.2.1.1 -module load intel/18.0.5.274 -module load impi/2018.4.274 -module load wgrib2/2.0.8 -module load szip/2.1 -module load hdf5 -module load nco/4.1.0 -module load pnetcdf/1.6.1 -module load netcdf4/4.2.1.1 -module load gempak/7.4.2 -module load hpss +module use /lfs3/projects/hfv3gfs/nwprod/lib/modulefiles +module load bacio/v2.0.2 +module load sp/v2.0.2 +module load ip/v2.0.0 +module load w3nco/v2.0.6 +module load w3emc/v2.2.0 +module load nemsio/v2.2.2 + +#set NCEPLIBS $::env(NCEPLIBS) +#module use $NCEPLIBS/modulefiles +#module load esmf/7.1.0r_impi module use /lfs3/projects/hwrf-vd/soft/modulefiles module load prod_util +module load grib_util +module load hpss # mpiserial on Jet includes a cfp wrapper module load mpiserial + +module load gempak/7.4.2 + diff --git a/modulefiles/modulefile.fv3nc2nemsio.orion b/modulefiles/modulefile.fv3nc2nemsio.orion index abba10a306..4ff5c23b03 100644 --- a/modulefiles/modulefile.fv3nc2nemsio.orion +++ b/modulefiles/modulefile.fv3nc2nemsio.orion @@ -5,17 +5,12 @@ module load intel/2018.4 module load impi/2018.4 -module use -a /apps/contrib/NCEPLIBS/lib/modulefiles -module load bacio-intel-sandybridge/2.0.2 -module load nemsio-intel-sandybridge/2.2.3 -module load w3nco-intel-sandybridge/2.0.6 module use -a /apps/contrib/NCEPLIBS/orion/modulefiles module load hdf5_parallel/1.10.6 module load netcdf_parallel/4.7.4 module load bacio/2.0.3 module load nemsio/2.2.4 module load w3nco/2.0.7 ->>>>>>> develop export FCMP="ifort" export FFLAGS="-g -O2 -traceback" diff --git a/modulefiles/modulefile.regrid_nemsio.orion b/modulefiles/modulefile.regrid_nemsio.orion index d4473427ca..19f0885c66 100644 --- a/modulefiles/modulefile.regrid_nemsio.orion +++ b/modulefiles/modulefile.regrid_nemsio.orion @@ -5,11 +5,6 @@ module load intel/2018.4 module load impi/2018.4 -module use -a /apps/contrib/NCEPLIBS/lib/modulefiles -module load bacio-intel-sandybridge/2.0.2 -module load w3nco-intel-sandybridge/2.0.6 -module load nemsio-intel-sandybridge/2.2.3 -module load sp-intel-sandybridge/2.0.2 module use -a /apps/contrib/NCEPLIBS/orion/modulefiles module load hdf5_parallel/1.10.6 module load netcdf_parallel/4.7.4 diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.orion b/modulefiles/modulefile.storm_reloc_v6.0.0.orion index 73657211d6..2fbf2bee62 100644 --- a/modulefiles/modulefile.storm_reloc_v6.0.0.orion +++ b/modulefiles/modulefile.storm_reloc_v6.0.0.orion @@ -2,19 +2,6 @@ ## Module file for storm_reloc_v6.0.0 - Hera ############################################################# -module use -a /work/noaa/noaatest/NCEPLIBS/lib/modulefiles -module load w3emc-intel-sandybridge/2.3.0 -module load w3nco-intel-sandybridge/2.0.6 -module load bacio-intel-sandybridge/2.0.2 -module load sp-intel-sandybridge/2.0.2 -module load nemsio-intel-sandybridge/2.2.3 -module load nemsiogfs-intel/2.0.1 -module load sigio-intel-sandybridge/2.0.1 -module load jasper/1.900.1 -module load png-intel-sandybridge/1.2.44 -module load zlib-intel-sandybridge/1.2.7 -module load g2-intel-sandybridge/3.1.0 - module use -a /apps/contrib/NCEPLIBS/orion/modulefiles module load w3emc_para/2.4.0 module load w3nco/2.0.7 diff --git a/parm/config/config.arch b/parm/config/config.arch index 07ddfaa718..fe4363613a 100755 --- a/parm/config/config.arch +++ b/parm/config/config.arch @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.arch ########## # Archive specific @@ -15,7 +11,7 @@ echo "BEGIN: config.arch" #--online archive of nemsio files for fit2obs verification export FITSARC="YES" export FHMAX_FITS=132 -if [ $FHMAX_FITS -gt $FHMAX_GFS ]; then export FHMAX_FITS=$FHMAX_GFS; fi +[[ "$FHMAX_FITS" -gt "$FHMAX_GFS" ]] && export FHMAX_FITS=$FHMAX_GFS #--starting and ending hours of previous cycles to be removed from rotating directory export RMOLDSTD=144 diff --git a/parm/config/config.awips b/parm/config/config.awips index bf9e5de923..6167b91f7e 100755 --- a/parm/config/config.awips +++ b/parm/config/config.awips @@ -1,15 +1,12 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.awips ########## # GFS awips step specific echo "BEGIN: config.awips" -export SENDCOM="YES" +# Get task specific resources +. $EXPDIR/config.resources awips export AWIPS20SH=$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG export AWIPSG2SH=$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 diff --git a/parm/config/config.base b/parm/config/config.base deleted file mode 100755 index fd3092c94a..0000000000 --- a/parm/config/config.base +++ /dev/null @@ -1,341 +0,0 @@ -#!/bin/ksh -x - -########## config.base ########## -# Common to all steps - -# Source model specific information - -echo "BEGIN: config.base" - -# Machine environment -export machine="@MACHINE@" - -# EMC parallel or NCO production -export RUN_ENVIR="emc" - -export cpl=".true." -if [ $cpl = ".false." ]; then -export cplflx=".F." -else -export cplflx=".T." -export print_esmf=".false." -fi - -# Account, queue, etc. -if [ $machine = "THEIA" ]; then - - export ACCOUNT="fv3-cpu" - export QUEUE="batch" - export QUEUE_ARCH="service" - -elif [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" ]; then - - export ACCOUNT="FV3GFS-T2O" - export QUEUE="dev" - export QUEUE_ARCH="dev_transfer" - -fi - -# Project to use in mass store: -HPSS_PROJECT=emc-global -if [ $cpl = ".true." ]; then -HPSS_PROJECT=emc-marine -fi - -# Directories relative to installation areas: -export HOMEgfs=@HOMEgfs@ -export PARMgfs=$HOMEgfs/parm -export FIXgfs=$HOMEgfs/fix -export USHgfs=$HOMEgfs/ush -export UTILgfs=$HOMEgfs/util -export EXECgfs=$HOMEgfs/exec -export SCRgfs=$HOMEgfs/scripts - -if [ $cpl = ".true." ]; then -# For coupled -export FIXcice=$HOMEgfs/fix/fix_cice5 -export FIXmom=$HOMEgfs/fix/fix_mom6 -export FIXgrid=$HOMEgfs/fix/fix_fv3grid -export OCNFIXDIR=$HOMEgfs/fix/fix_ocnice -fi - -######################################################################## - -# GLOBAL static environment parameters -if [ $machine = "THEIA" ]; then - - export NWPROD="/scratch4/NCEPDEV/global/save/glopara/nwpara" - export DMPDIR="/scratch4/NCEPDEV/global/noscrub/dump" - export RTMFIX="/scratch4/NCEPDEV/da/save/Michael.Lueken/nwprod/lib/crtm/2.2.3/fix_update" - -elif [ $machine = "WCOSS_C" ]; then - - export NWPROD="/gpfs/hps/nco/ops/nwprod" - if [ -d /gpfs/tp1 ]; then - export SITE="LUNA" - export DMPDIR="/gpfs/tp1/emc/globaldump" - elif [ -d /gpfs/gp1 ]; then - export SITE="SURGE" - export DMPDIR="/gpfs/gp1/emc/globaldump" - fi - export RTMFIX=$CRTM_FIX - -elif [ $machine = "WCOSS_DELL_P3" ]; then - - export NWPROD="/gpfs/dell1/nco/ops/nwprod" - if [ -d /gpfs/tp1 ]; then - export SITE="MARS" - export DMPDIR="/gpfs/tp1/emc/globaldump" - elif [ -d /gpfs/gp1 ]; then - export SITE="VENUS" - export DMPDIR="/gpfs/gp1/emc/globaldump" - fi - export RTMFIX=$CRTM_FIX -fi - - -# Machine specific paths used everywhere -if [ $machine = "THEIA" ]; then - - # USER specific paths - export HOMEDIR="/scratch4/NCEPDEV/global/save/$USER" - export STMP="/scratch3/NCEPDEV/stmp1/$USER" - export PTMP="/scratch3/NCEPDEV/stmp1/$USER" - export NOSCRUB="/scratch4/NCEPDEV/global/noscrub/$USER" -if [ $cpl = ".true." ]; then - export NOSCRUB="/scratch4/NCEPDEV/marine/noscrub/$USER" -fi - - # Base directories for various builds - export BASE_GIT="/scratch4/NCEPDEV/global/save/glopara/git" - export BASE_SVN="/scratch4/NCEPDEV/global/save/glopara/svn" - -elif [ $machine = "WCOSS_C" ]; then - - # USER specific paths - export HOMEDIR="/gpfs/hps3/emc/global/noscrub/$USER" - export STMP="/gpfs/hps2/stmp/$USER" - export PTMP="/gpfs/hps2/ptmp/$USER" - export NOSCRUB="/gpfs/hps3/emc/global/noscrub/$USER" - - # Base directories for various builds - export BASE_GIT="/gpfs/hps3/emc/global/noscrub/emc.glopara/git" - export BASE_SVN="/gpfs/hps3/emc/global/noscrub/emc.glopara/svn" - -elif [ $machine = "WCOSS_DELL_P3" ]; then - - # USER specific paths - export HOMEDIR="/gpfs/dell2/emc/modeling/noscrub/$USER" - export STMP="/gpfs/dell3/stmp/$USER" - export PTMP="/gpfs/dell3/ptmp/$USER" - export NOSCRUB="/gpfs/dell2/emc/modeling/noscrub/$USER" - - # Base directories for various builds - export BASE_GIT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" - export BASE_SVN="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" - -fi - -# Utilities needed in the scripts (mostly post) -if [ $machine = "THEIA" ]; then - - export NDATE="$NWPROD/util/exec/ndate" - export NHOUR="$NWPROD/util/exec/nhour" - export WGRIB="$NWPROD/util/exec/wgrib" - export WGRIB2="/scratch3/NCEPDEV/nwprod/utils/wgrib2.v2.0.6c/wgrib2/wgrib2" - export COPYGB="$NWPROD/util/exec/copygb" - export COPYGB2="$NWPROD/util/exec/copygb2" - export GRBINDEX="$NWPROD/util/exec/grbindex" - export GRB2INDEX="$NWPROD/util/exec/grb2index" - export GRBINDEX2="$NWPROD/util/exec/grb2index" - export CNVGRIB="/apps/cnvgrib/1.4.0/bin/cnvgrib" - export POSTGRB2TBL="/scratch3/NCEPDEV/nwprod/lib/g2tmpl/v1.5.0/sorc/params_grib2_tbl_new" - -fi - -# Toggle to turn on/off GFS downstream processing. -export DO_BUFRSND="NO" -export DO_GEMPAK="NO" -export DO_AWIPS="NO" - -# NO for retrospective parallel; YES for real-time parallel -export REALTIME="NO" - - -#################################################### -# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE -# IF YOU HAVE TO MAKE MACHINE SPECIFIC CHANGES BELOW -# FEEL FREE TO MOVE THEM ABOVE THIS LINE TO KEEP IT -# CLEAR -#################################################### -# Build paths relative to $HOMEgfs -export HOMEgsi="$HOMEgfs" -export FIXgsi="$HOMEgfs/fix/fix_gsi" -export HOMEfv3gfs="$HOMEgfs/sorc/fv3gfs.fd" -export HOMEpost="$HOMEgfs" -export HOMEobsproc_prep="$BASE_GIT/obsproc/obsproc_prep.iss-46886.fv3gfs" -export HOMEobsproc_network="$BASE_GIT/obsproc/obsproc_global.iss-46886.fv3gfs" -export BASE_VERIF="$BASE_SVN/verif/global/tags/vsdb" - -# CONVENIENT utility scripts and other environment parameters -export NCP="/bin/cp -p" -export NMV="/bin/mv" -export NLN="/bin/ln -sf" -export VERBOSE="YES" -export KEEPDATA="NO" -if [ $cpl = ".true." ]; then -export KEEPDATA="YES" -fi -export CHGRP_CMD="chgrp rstprod" -export NEMSIOGET="$HOMEgfs/exec/nemsio_get" - -# Machine environment, jobs, and other utility scripts -export BASE_ENV="$HOMEgfs/env" -export BASE_JOB="$HOMEgfs/jobs/rocoto" - -# EXPERIMENT specific environment parameters -export SDATE=@SDATE@ -export EDATE=@EDATE@ -export assim_freq=6 -export PSLOT="@PSLOT@" -export EXPDIR="@EXPDIR@/$PSLOT" -export ROTDIR="@ROTDIR@/$PSLOT" -export ROTDIR_DUMP="NO" -export DUMP_SUFFIX="" -export RUNDIR="$STMP/RUNDIRS/$PSLOT" -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" -export ARCDIR="$NOSCRUB/archive/$PSLOT" -export ICSDIR="@ICSDIR@" -export ATARDIR="/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" - - -# Commonly defined parameters in JJOBS -export envir=${envir:-"prod"} -export NET="gfs" -export RUN=${RUN:-${CDUMP:-"gfs"}} -export jlogfile="${EXPDIR}/logs/jlogfile" -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT:-""} -#export ERRSCRIPT=${ERRSCRIPT:-"err_chk"} -#export LOGSCRIPT=${LOGSCRIPT:-"startmsg"} -export REDOUT="1>" -export REDERR="2>" - -export SENDECF="NO" -export SENDCOM="NO" -export SENDDBN="NO" -export SENDSDM="NO" - -# Resolution specific parameters -export LEVS=65 -export CASE="@CASECTL@" -export CASE_ENKF="@CASEENS@" - -# Surface cycle update frequency -if [[ "$CDUMP" == "gdas" ]] ; then - export FHCYC=1 -elif [[ "$CDUMP" == "gfs" ]] ; then - export FHCYC=24 -fi - -# Output frequency of the forecast model (for cycling) -export FHMIN=0 -export FHMAX=9 -export FHOUT=3 -if [ $cpl = ".true." ]; then -export FHOUT=6 -fi - -# GFS cycle info -export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4: all 4 cycles. - -# GFS output and frequency -export FHMIN_GFS=0 - -export FHMAX_GFS_00=240 -export FHMAX_GFS_06=180 -export FHMAX_GFS_12=180 -export FHMAX_GFS_18=180 - -if [ $cpl = ".true." ]; then -export FHMAX_GFS_00=12 -export FHMAX_GFS_06=12 -export FHMAX_GFS_12=12 -export FHMAX_GFS_18=12 -fi -export FHMAX_GFS=$(eval echo \${FHMAX_GFS_$cyc}) - -export FHOUT_GFS=3 -export FHMAX_HF_GFS=0 -export FHOUT_HF_GFS=1 - -if [ $cpl = ".true." ]; then -export FHOUT_GFS=6 -export FHOUT_HF_GFS=-1 -# Output for coldstart after 1 hour -export FHMAX_COLD=1 -fi - -# I/O QUILTING, true--use Write Component; false--use GFDL FMS -# if quilting=true, choose OUTPUT_GRID as cubed_sphere_grid in netcdf or gaussian_grid -# if gaussian_grid, set OUTPUT_FILE for nemsio or netcdf -export QUILTING=".true." -export OUTPUT_GRID="gaussian_grid" -export OUTPUT_FILE="nemsio" - -# Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL -export imp_physics=11 - -# Shared parameters -# Hybrid related -export DOHYBVAR="YES" -export NMEM_ENKF=@NMEM_ENKF@ -export SMOOTH_ENKF="YES" -export l4densvar=".true." -export lwrite4danl=".false." - -# EnKF output frequency -if [ $DOHYBVAR = "YES" ]; then - export FHMIN_ENKF=3 - export FHMAX_ENKF=9 - if [ $l4densvar = ".true." ]; then - export FHOUT=1 - export FHOUT_ENKF=1 - else - export FHOUT_ENKF=3 - fi -fi - -# turned on nsst in anal and/or fcst steps, and turn off rtgsst -export DONST="YES" - -if [ $cpl = ".true." ]; then -export DONST="NO" -fi - -if [ $DONST = "YES" ]; then export FNTSFA=" "; fi - -# The switch to apply SST elevation correction or not -export nst_anl=.true. - -if [ $cpl = ".true." ]; then -export nst_anl=.false. -fi - -# Analysis increments to zero in CALCINCEXEC -export INCREMENTS_TO_ZERO="'delz_inc','clwmr_inc','icmr_inc'" - - -# Archiving options -export HPSSARCH="NO" # save data to HPSS archive -export ARCH_CYC=00 # Archive data at this cycle for warm_start capability -export ARCH_WARMICFREQ=4 # Archive frequency in days for warm_start capability -export ARCH_FCSTICFREQ=1 # Archive frequency in days for gdas and gfs forecast-only capability - -if [ $cpl = ".true." ]; then -export HPSSARCH="YES" # save data to HPSS archive -export ARCH_WARMICFREQ=5 # Archive frequency in days for warm_start capability -fi - - -echo "END: config.base" diff --git a/parm/config/config.earc b/parm/config/config.earc index f86e7d56f0..7cb1de235f 100755 --- a/parm/config/config.earc +++ b/parm/config/config.earc @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.earc ########## # Ensemble archive specific diff --git a/parm/config/config.ecen b/parm/config/config.ecen index 4128e32d03..c9609e3ff8 100755 --- a/parm/config/config.ecen +++ b/parm/config/config.ecen @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.ecen ########## # Ensemble recentering specific diff --git a/parm/config/config.eupd b/parm/config/config.eupd index 05861f6282..0e9d42e093 100755 --- a/parm/config/config.eupd +++ b/parm/config/config.eupd @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.eupd ########## # Ensemble update specific, dependency config.anal diff --git a/parm/config/config.fv3 b/parm/config/config.fv3 index 24ecc6b30e..3fdfc468a2 100755 --- a/parm/config/config.fv3 +++ b/parm/config/config.fv3 @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.fv3 ########## # FV3 model resolution specific parameters # e.g. time-step, processor layout, physics and dynamics parameters @@ -12,20 +8,16 @@ if [ $# -ne 1 ]; then - echo "Must specify a forecast mode to set variables!" + echo "Must specify an input resolution argument to set variables!" echo "argument can be any one of the following:" - echo "EFCS GFS GDAS (upper- or lower-case is okay)" - err_exit "Missing mandatory argument to config.fv3" + echo "C48 C96 C192 C384 C768 C1152 C3072" exit 1 fi -forecast_mode=$( echo "$1" | tr a-z A-Z ) - -echo "BEGIN: config.fv3 for $forecast_mode" +case_in=$1 -# Source model specific information -. $EXPDIR/config.coupled +echo "BEGIN: config.fv3" if [[ "$machine" = "WCOSS_DELL_P3" ]]; then @@ -74,13 +66,6 @@ case $case_in in export WRITE_GROUP_GFS=1 export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="4M" -if [ $cpl = ".true." ]; then - export OCNTIM=450 - export layout_y=6 - export layout_y_gfs=6 - export WRTTASK_PER_GROUP=6 - export WRTTASK_PER_GROUP_GFS=6 -fi ;; "C192") export DELTIM=450 @@ -113,16 +98,6 @@ fi export WRITE_GROUP_GFS=2 export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="16M" -if [ $cpl = ".true." ]; then - export DELTIM=450 - export OCNTIM=1800 - export layout_x=6 - export layout_y=8 - export layout_x_gfs=6 - export layout_y_gfs=8 - export npe_node_fcst=8 - export nth_fv3=3 -fi ;; "C768") export DELTIM=150 @@ -173,7 +148,9 @@ fi export WRTIOBUF="64M" ;; *) - exit 2 + echo "grid $case_in not supported, ABORT!" + exit 1 + ;; esac -echo "END: config.fv3 for $forecast_mode" +echo "END: config.fv3" diff --git a/parm/config/config.fv3ic b/parm/config/config.fv3ic index d5361a0696..eaed3892ea 100755 --- a/parm/config/config.fv3ic +++ b/parm/config/config.fv3ic @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.fv3ic ########## # Convert GFS initial conditions into FV3 initial conditions diff --git a/parm/config/config.getic b/parm/config/config.getic index ef5586ce13..a754454264 100755 --- a/parm/config/config.getic +++ b/parm/config/config.getic @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.getic ########## # Fetching GFS initial conditions specific @@ -18,7 +14,7 @@ export ics_from="opsgfs" # initial conditions from opsgfs or pargfs # Provide a parallel experiment name and path to HPSS archive if [ $ics_from = "pargfs" ]; then export parexp="prnemsrn" - export HPSS_PAR_PATH="/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/prnemsrn" + export HPSS_PAR_PATH="/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/$parexp" fi echo "END: config.getic" diff --git a/parm/config/config.nsst b/parm/config/config.nsst index ada360c65e..a59ca19495 100755 --- a/parm/config/config.nsst +++ b/parm/config/config.nsst @@ -1,9 +1,5 @@ #!/bin/ksh -x -# This file is automatically generated from the YAML-based system -# in ecf/ecfutils/. Any changes will be overwritten if -# setup_case.sh is rerun. - ########## config.nsst ########## # NSST specific @@ -18,8 +14,7 @@ export NST_MODEL=2 export NST_SPINUP=0 #if [[ "$CDATE" = $SDATE ]]; then # export NST_SPINUP=1 -#fi - +#fi # nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON export NST_RESV=0 diff --git a/scripts/exgfs_postsnd.sh.ecf_Jet b/scripts/exgfs_postsnd.sh.ecf_Jet deleted file mode 100755 index 8f44f22ec2..0000000000 --- a/scripts/exgfs_postsnd.sh.ecf_Jet +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/ksh -################################################################ -# Script Name: exgfs_postsnd.sh.sms -# Script Description: Generate GFS BUFR sounding files -# Script History Log: -# 1) 2003-03-25 Hualu Pan First Implementation -# 2) 2010-05-25 V. Krishna Kumar Modified for the GFS -# resolution upgrade -# 3) 2014-08-01 D. Carlis Updated to vertical structure -# and T1534 Resolution -# 4) 2016-11-01 H. Chuang Update to read new model nems output -# 5) 2018-04-13 Guang Ping Lou This version is for Theia only -################################################################ -set -xa - -cd $DATA -######################################## -msg="HAS BEGUN" -#postmsg "$jlogfile" "$msg" -######################################## - -################################################### -## Run meteogram generator for T574 -################################################### -export JCAP=${JCAP:-1534} -export LEVS=${LEVS:-64} -export LATB=${LATB:-1536} -export LONB=${LONB:-3072} -export STARTHOUR=${STARTHOUR:-00} -export ENDHOUR=${ENDHOUR:-180} -export NEND1=120 ##first period length with time interval = NINT1 -##export NINT1=3 ##first period time interval -export NINT1=1 ##first period time interval -export NINT3=3 ##second period time interval -export NZERO=6 -export INCREMENT=12 -export OUTFILE=meteomrf -export MAKEBUFR=NO -export F00FLAG=YES - -if [ $FHMAX_HF_GFS -gt 0 -a $FHOUT_HF_GFS -gt 0 ] - then - export NINT1=${FHOUT_HF_GFS:-1} - export NEND1=${FHMAX_HF_GFS:-120} - else - export NINT3=${FHOUT_GFS:-3} -fi - -rm -f -r ${COMOUT}/bufr.${cycle} -mkdir -p ${COMOUT}/bufr.${cycle} - -# Extract number of vertical levels from $STARTHOUR atmospheric file -export NEMSIOGET=${NEMSIOGET:-$EXECbufrsnd/nemsio_get} -fhr3=$(printf %03i $STARTHOUR) -ATMFCS=$COMIN/${RUN}.${cycle}.atmf${fhr3}.nemsio -export LEVS=$($NEMSIOGET $ATMFCS dimz | awk '{print $2}') - -### Loop for the hour and wait for the sigma and surface flux file: -export FSTART=$STARTHOUR -# -while [ $FSTART -lt $ENDHOUR ] -do -export FINT=$NINT1 - # Define the end hour for the input - export FEND=`expr $FSTART + $INCREMENT` - if test $FEND -lt 100; then FEND=0$FEND; fi - if [ $FSTART -eq 00 ] - then - export F00FLAG=YES - else - export F00FLAG=NO - fi - - if [ $FEND -eq $ENDHOUR ] - then - export MAKEBUFR=YES - fi - - ic=0 - while [ $ic -lt 1000 ] - do - if [ ! -f $COMIN/${RUN}.${cycle}.sfcf$FEND.nemsio ] - then - sleep 10 - ic=`expr $ic + 1` - else - break - fi - - if [ $ic -ge 360 ] - then - err_exit "COULD NOT LOCATE logf$FEND file AFTER 1 HOUR" - fi - done - -## 1-hourly output before $NEND1, 3-hourly output after - if [ $FEND -gt $NEND1 ]; then - export FINT=$NINT3 - fi - $USHbufrsnd/gfs_bufr.sh - - export FSTART=$FEND -done - -############################################################## -# Tar and gzip the individual bufr files and send them to /com -############################################################## -cd ${COMOUT}/bufr.${cycle} -tar -cf - . | /usr/bin/gzip > ../${RUN}.${cycle}.bufrsnd.tar.gz -cd $DATA - -######################################## - -######################################## -# Create Regional Collectives of BUFR data and -# add appropriate WMO Headers. -######################################## -collect=' 1 2 3 4 5 6 7 8 9' -for m in ${collect} -do -sh $USHbufrsnd/gfs_sndp.sh $m -done - -################################################ -# Convert the bufr soundings into GEMPAK files -################################################ -sh $USHbufrsnd/gfs_bfr2gpk.sh_Jet - -##################################################################### -# GOOD RUN -set +x -echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" -echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" -echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" -set -x -##################################################################### - -msg='HAS COMPLETED NORMALLY.' -#postmsg "$jlogfile" "$msg" - -############## END OF SCRIPT ####################### - diff --git a/scripts/exgfs_wave_post_gridded_sbs.sh b/scripts/exgfs_wave_post_gridded_sbs.sh index 8b438777a5..1ce4b75cf5 100755 --- a/scripts/exgfs_wave_post_gridded_sbs.sh +++ b/scripts/exgfs_wave_post_gridded_sbs.sh @@ -105,7 +105,7 @@ # 1. Get files that are used by most child scripts export DOGRB_WAV='YES' #Create grib2 files - export DOGRI_WAV='YES' #Create interpolated grids + export DOGRI_WAV='NO' #Create interpolated grids exit_code=0 @@ -321,7 +321,6 @@ esac echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} fi - #echo "pwd" >> ${fcmdnow} echo "${GRIBDATA}/${fcmdigrd}.${nigrd}" >> ${fcmdnow} chmod 744 ${fcmdigrd}.${nigrd} nigrd=$((nigrd+1)) @@ -343,6 +342,7 @@ ao_20m) GRDNAME='arctic' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; so_20m) GRDNAME='antarc' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + gwes_30m) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=10 ;; esac echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} done diff --git a/scripts/exgfs_wave_prep.sh b/scripts/exgfs_wave_prep.sh index 00bb88200b..be6d3674f7 100755 --- a/scripts/exgfs_wave_prep.sh +++ b/scripts/exgfs_wave_prep.sh @@ -852,9 +852,14 @@ WINDFLAG="$WAVEWND_FID" ;; 'CPL' ) - WINDFLAG="CPL:${waveesmfGRD}" WNDIFLAG='T' - CPLILINE=" '${waveesmfGRD}' F F T F F F F" + if [ ${waveesmfGRD} ] + then + WINDFLAG="CPL:${waveesmfGRD}" + CPLILINE=" '${waveesmfGRD}' F F T F F F F" + else + WINDFLAG="CPL:native" + fi ;; esac @@ -866,9 +871,14 @@ ICEFLAG="$WAVEICE_FID" ;; 'CPL' ) - ICEFLAG="CPL:${waveesmfGRD}" ICEIFLAG='T' - CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F" + if [ ${waveesmfGRD} ] + then + ICEFLAG="CPL:${waveesmfGRD}" + CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F" + else + ICEFLAG="CPL:native" + fi ;; esac @@ -884,9 +894,14 @@ fi ;; 'CPL' ) - CURRFLAG="CPL:${waveesmfGRD}" CURIFLAG='T' - CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F" + if [ ${waveesmfGRD} ] + then + CURRFLAG="CPL:${waveesmfGRD}" + CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F" + else + CURRFLAG="CPL:native" + fi ;; esac @@ -928,6 +943,8 @@ -e "s/OUT_BEG/$time_beg_out/g" \ -e "s/OUT_END/$time_end/g" \ -e "s/DTFLD/ $DTFLD_WAV/g" \ + -e "s/FLAGMASKCOMP/ $FLAGMASKCOMP/g" \ + -e "s/FLAGMASKOUT/ $FLAGMASKOUT/g" \ -e "s/GOFILETYPE/ $GOFILETYPE/g" \ -e "s/POFILETYPE/ $POFILETYPE/g" \ -e "s/FIELDS/$FIELDS/g" \ @@ -949,9 +966,9 @@ if [ -f ww3_multi.inp ] then echo " Copying file ww3_multi.${WAV_MOD_TAG}.inp to $COMOUT " - cp ww3_multi.inp ${COMOUT}/rundata/ww3_multi.${WAV_MOD_TAG}.$cycle.inp + cp ww3_multi.inp ${COMOUT}/rundata/ww3_multi.${WAV_MOD_TAG}.${cycle}.inp else - echo "FATAL ERROR: file ww3_multi.${WAV_MOD_TAG}.$cycle.inp NOT CREATED, ABORTING" + echo "FATAL ERROR: file ww3_multi.${WAV_MOD_TAG}.${cycle}.inp NOT CREATED, ABORTING" err=13;export err;${errchk} fi diff --git a/scripts/nems.configure_temp_fv3.sh b/scripts/nems.configure_temp_fv3.sh deleted file mode 100644 index da2bb344be..0000000000 --- a/scripts/nems.configure_temp_fv3.sh +++ /dev/null @@ -1,7 +0,0 @@ -cat >> nems.configure < $logs_dir/build_libs.log 2>&1 -} - -#------------------------------------ -# build fv3 -#------------------------------------ -$Build_fv3gfs && { -echo " .... Building fv3 .... " -./build_fv3.umb.sh > $logs_dir/build_fv3.log 2>&1 -} - -#------------------------------------ -# build gsi -#------------------------------------ -$Build_gsi && { -echo " .... Building gsi .... " -./build_gsi.umb.sh > $logs_dir/build_gsi.log 2>&1 -} - -#------------------------------------ -# build ncep_post -#------------------------------------ -$Build_ncep_post && { -echo " .... Building ncep_post .... " -./build_ncep_post.umb.sh > $logs_dir/build_ncep_post.log 2>&1 -} - -#------------------------------------ -# build ufs_utils -#------------------------------------ -$Build_ufs_utils && { -echo " .... Building ufs_utils .... " -./build_ufs_utils.umb.sh > $logs_dir/build_ufs_utils.log 2>&1 -} - -#------------------------------------ -# build gfs_wafs -#------------------------------------ -#$Build_gfs_wafs && { -#echo " .... Building gfs_wafs .... " -#./build_gfs_wafs.sh > $logs_dir/build_gfs_wafs .log 2>&1 -#} - -#------------------------------------ -# build NEMS util -#------------------------------------ -$Build_nems_util && { -echo " .... Building NEMS util .... " -./build_nems_util.umb.sh > $logs_dir/build_NEMS.log 2>&1 -} - -#------------------------------------ -# build sfcanl_nsttfchg -#------------------------------------ -$Build_sfcanl_nsttfchg && { -echo " .... Building gaussian_sfcanl and nst_tf_chg .... " -./build_sfcanl_nsttfchg.umb.sh > $logs_dir/build_sfcanl_nsttfchg.log 2>&1 -} - -#------------------------------------ -# build enkf_chgres_recenter -#------------------------------------ -$Build_enkf_chgres_recenter && { -echo " .... Building enkf_chgres_recenter .... " -./build_enkf_chgres_recenter.umb.sh > $logs_dir/build_enkf_chgres_recenter.log 2>&1 -} - -#------------------------------------ -# build tropcy_NEMS -#------------------------------------ -$Build_tropcy && { -echo " .... Building tropcy_NEMS .... " -./build_tropcy_NEMS.umb.sh > $logs_dir/build_tropcy_NEMS.log 2>&1 -} - -#------------------------------------ -# build gdas -#------------------------------------ -$Build_gdas && { -echo " .... Building gdas .... " -./build_gdas.umb.sh > $logs_dir/build_gdas.log 2>&1 -} - -#------------------------------------ -# build gfs_fbwndgfs -#------------------------------------ -$Build_gfs_fbwndgfs && { -echo " .... Building gfs_fbwndgfs .... " -./build_gfs_fbwndgfs.umb.sh > $logs_dir/build_gfs_fbwndgfs.log 2>&1 -} - -#------------------------------------ -# build gfs_overpdtg2 -#------------------------------------ -$Build_gfs_overpdtg2 && { -echo " .... Building gfs_overpdtg2 .... " -./build_gfs_overpdtg2.umb.sh > $logs_dir/build_gfs_overpdtg2.log 2>&1 -} - -#------------------------------------ -# build gfs_wintemv -#------------------------------------ -$Build_gfs_wintemv && { -echo " .... Building gfs_wintemv .... " -./build_gfs_wintemv.umb.sh > $logs_dir/build_gfs_wintemv.log 2>&1 -} - -#------------------------------------ -# build gfs_bufrsnd -#------------------------------------ -$Build_gfs_bufrsnd && { -echo " .... Building gfs_bufrsnd .... " -./build_gfs_bufrsnd.umb.sh > $logs_dir/build_gfs_bufrsnd.log 2>&1 -} - -#------------------------------------ -# build fv3nc2nemsio -#------------------------------------ -$Build_fv3nc2nemsio && { -echo " .... Building fv3nc2nemsio .... " -./build_fv3nc2nemsio.umb.sh > $logs_dir/build_fv3nc2nemsio.log 2>&1 -} - -#------------------------------------ -# build regrid_nemsio -#------------------------------------ -$Build_regrid_nemsio && { -echo " .... Building regrid_nemsio .... " -./build_regrid_nemsio.umb.sh > $logs_dir/build_regrid_nemsio.log 2>&1 -} - -#------------------------------------ -# build gfs_util -#------------------------------------ -$Build_gfs_util && { -echo " .... Building gfs_util .... " -./build_gfs_util.umb.sh > $logs_dir/build_gfs_util.log 2>&1 -} - -#------------------------------------ -# build prod_util -#------------------------------------ -$Build_prod_util && { -echo " .... prod_util build not currently supported .... " -#echo " .... Building prod_util .... " -#./build_prod_util.sh > $logs_dir/build_prod_util.log 2>&1 -} - -#------------------------------------ -# build grib_util -#------------------------------------ -$Build_grib_util && { -echo " .... grib_util build not currently supported .... " -#echo " .... Building grib_util .... " -#./build_grib_util.sh > $logs_dir/build_grib_util.log 2>&1 -} - -echo;echo " .... Build system finished .... " - -exit 0 diff --git a/sorc/build_enkf_chgres_recenter.sh b/sorc/build_enkf_chgres_recenter.sh index 0ac3a3ade1..880a9dd032 100755 --- a/sorc/build_enkf_chgres_recenter.sh +++ b/sorc/build_enkf_chgres_recenter.sh @@ -25,7 +25,7 @@ fi cd ${cwd}/enkf_chgres_recenter.fd -export FFLAGS="-O3 -r8 -i4 -axSSE4.2,AVX,CORE-AVX2 -qopenmp -traceback -fp-model precise" +export FFLAGS="-O3 -r8 -i4 -qopenmp -traceback -fp-model precise" make clean make diff --git a/sorc/build_enkf_chgres_recenter.umb.sh b/sorc/build_enkf_chgres_recenter.umb.sh deleted file mode 100755 index bdb305da80..0000000000 --- a/sorc/build_enkf_chgres_recenter.umb.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -# source ../modulefiles/fv3gfs/enkf_chgres_recenter.$target > /dev/null 2>&1 - source ../modulefiles/fv3gfs/enkf_chgres_recenter.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/fv3gfs/enkf_chgres_recenter.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/fv3gfs/enkf_chgres_recenter.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd ${cwd}/enkf_chgres_recenter.fd - -export FFLAGS="-O3 -r8 -i4 -qopenmp -traceback -fp-model precise" - -make clean -make -make install -make clean diff --git a/sorc/build_fv3.sh b/sorc/build_fv3.sh index e1c46720f2..e812f7e0ca 100755 --- a/sorc/build_fv3.sh +++ b/sorc/build_fv3.sh @@ -1,9 +1,7 @@ #! /usr/bin/env bash set -eux -set +e source ./machine-setup.sh > /dev/null 2>&1 -set -e cwd=`pwd` USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} diff --git a/sorc/build_fv3.umb.sh b/sorc/build_fv3.umb.sh deleted file mode 100755 index ff85e9604c..0000000000 --- a/sorc/build_fv3.umb.sh +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -else - export MOD_PATH=${cwd}/lib/modulefiles -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -if [ $target = theia ]; then target=theia.intel ; fi - -cd fv3gfs.fd/ -FV3=$( pwd -P )/FV3 -cd tests/ -./compile.umb.sh "$FV3" "$target" "NCEP64LEV=Y HYDRO=N 32BIT=Y" 1 -##mv -f fv3_1.exe ../NEMS/exe/fv3_gfs_nh.prod.32bit.x -mv -f fv3_1.exe ../NEMS/exe/global_fv3gfs.x diff --git a/sorc/build_fv3nc2nemsio.umb.sh b/sorc/build_fv3nc2nemsio.umb.sh deleted file mode 100755 index 04b1b0d9b3..0000000000 --- a/sorc/build_fv3nc2nemsio.umb.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/modulefile.fv3nc2nemsio.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/modulefile.fv3nc2nemsio.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/modulefile.fv3nc2nemsio.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd ./fv3nc2nemsio.fd - -LIBnetcdf=`$NETCDF/bin/nf-config --flibs` -INCnetcdf=`$NETCDF/bin/nf-config --fflags` -export NETCDF_LDFLAGS=$LIBnetcdf -export NETCDF_INCLUDE=$INCnetcdf - -$FCMP $FFLAGS -c kinds.f90 -$FCMP $FFLAGS -c constants.f90 -$FCMP $FFLAGS $NETCDF_INCLUDE -I $NEMSIO_INC -c fv3_module.f90 -$FCMP $FFLAGS $NETCDF_INCLUDE -I $NEMSIO_INC -I. -o fv3nc2nemsio.x fv3_main.f90 fv3_module.o $NETCDF_LDFLAGS $NEMSIO_LIB $BACIO_LIB4 $W3NCO_LIBd -L$HDF5/lib -lhdf5_hl -lhdf5 -lz - -rm -f *.o *.mod - -cd $cwd -mv fv3nc2nemsio.fd/fv3nc2nemsio.x ../exec/. - -exit diff --git a/sorc/build_gdas.umb.sh b/sorc/build_gdas.umb.sh deleted file mode 100755 index e296fe1bba..0000000000 --- a/sorc/build_gdas.umb.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -# source ../modulefiles/gdas_gridbull.$target > /dev/null 2>&1 - source ../modulefiles/gdas_gridbull.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gdas_gridbull.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gdas_gridbull.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi -export target=GENERIC - -### gridbull - cd $cwd/gridbull.fd - make -f makefile.$target - make -f makefile.$target clean - mv gridbull ../../exec/ - -### navybull - cd $cwd - source $cwd/machine-setup.sh > /dev/null 2>&1 -export target=GENERIC - if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gdas_navybull.GENERIC > /dev/null 2>&1 - else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gdas_navybull.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gdas_navybull.$target > /dev/null 2>&1 - fi - fi - cd $cwd/navybull.fd - make -f makefile.$target - make -f makefile.$target clean - mv navybull ../../exec/ - -### gdas_trpsfcmv - cd $cwd - source $cwd/machine-setup.sh > /dev/null 2>&1 - source $cwd/ncl.setup -module list -export NCARG_LIB=$NCARG_ROOT/lib - -export target=GENERIC - if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gdas_trpsfcmv.GENERIC > /dev/null 2>&1 - else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gdas_trpsfcmv.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gdas_trpsfcmv.$target > /dev/null 2>&1 - fi - fi - cd $cwd/gdas_trpsfcmv.fd - make -f makefile.$target - make -f makefile.$target clean - mv gdas_trpsfcmv ../../exec/ - -exit diff --git a/sorc/build_gfs_bufrsnd.umb.sh b/sorc/build_gfs_bufrsnd.umb.sh deleted file mode 100755 index a5e852109c..0000000000 --- a/sorc/build_gfs_bufrsnd.umb.sh +++ /dev/null @@ -1,35 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gfs_bufr.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gfs_bufr.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gfs_bufr.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -# Compile codes under /sorc -compile1='gfs_bufr tocsbufr' - -for comp in $compile1 -do - echo "Compiling ${comp}" - cd $cwd/${comp}.fd - make -f makefile_module clean - make -f makefile_module -done diff --git a/sorc/build_gfs_fbwndgfs.umb.sh b/sorc/build_gfs_fbwndgfs.umb.sh deleted file mode 100755 index 4960e29c13..0000000000 --- a/sorc/build_gfs_fbwndgfs.umb.sh +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gfs_fbwndgfs.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gfs_fbwndgfs.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gfs_fbwndgfs.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd fbwndgfs.fd -make -f makefile.GENERIC -make -f makefile.GENERIC clean -mv fbwndgfs ../../exec/ diff --git a/sorc/build_gfs_overpdtg2.umb.sh b/sorc/build_gfs_overpdtg2.umb.sh deleted file mode 100755 index f66e736689..0000000000 --- a/sorc/build_gfs_overpdtg2.umb.sh +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gfs_overpdtg2.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gfs_overpdtg2.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gfs_overpdtg2.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd overpdtg2.fd -make -f makefile.GENERIC -make -f makefile.GENERIC install -make -f makefile.GENERIC clean -mv overpdtg2 ../../exec diff --git a/sorc/build_gfs_util.umb.sh b/sorc/build_gfs_util.umb.sh deleted file mode 100755 index a0e5bd696a..0000000000 --- a/sorc/build_gfs_util.umb.sh +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -export dir=` pwd ` - -cd ../util/sorc - -# Check for gfs_util folders exist -if [ ! -d "./faxmakrx.fd" ]; then - echo " " - echo " GFS_UTIL folders DO NOT exist " - echo " " - exit -fi - -echo "" -echo " Building ... Executables for GFS_UTILITIES " -echo "" -source ./compile_gfs_util_umb.sh diff --git a/sorc/build_gfs_wintemv.umb.sh b/sorc/build_gfs_wintemv.umb.sh deleted file mode 100755 index 6ad90bc3a3..0000000000 --- a/sorc/build_gfs_wintemv.umb.sh +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gfs_wintemv.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gfs_wintemv.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gfs_wintemv.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd wintemv.fd -make -f makefile.GENERIC -make -f makefile.GENERIC install -make -f makefile.GENERIC clean -mv wintemv ../../exec diff --git a/sorc/build_gsi.sh b/sorc/build_gsi.sh index 105305c6d2..f5f938a161 100755 --- a/sorc/build_gsi.sh +++ b/sorc/build_gsi.sh @@ -14,15 +14,6 @@ fi gsitarget=$target [[ "$target" == wcoss_cray ]] && gsitarget=cray -if [[ "$target" == jet ]]; then - if [ -f "../modulefiles/gsi/modulefile.ProdGSI.jet" ]; then - if [ -d gsi.fd/modulefiles ]; then - cp ../modulefiles/gsi/modulefile.ProdGSI.jet gsi.fd/modulefiles - cp ../modulefiles/gsi/setCompilerFlags.cmake gsi.fd/cmake/Modules - fi - fi -fi - # Check final exec folder exists if [ ! -d "../exec" ]; then mkdir ../exec @@ -32,3 +23,4 @@ cd gsi.fd/ush/ ./build_all_cmake.sh "PRODUCTION" "$cwd/gsi.fd" exit + diff --git a/sorc/build_gsi.umb.sh b/sorc/build_gsi.umb.sh deleted file mode 100755 index ea312c656b..0000000000 --- a/sorc/build_gsi.umb.sh +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -else - export MOD_PATH=${cwd}/lib/modulefiles -fi - -gsitarget=$target -[[ "$target" == wcoss_cray ]] && gsitarget=cray - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd gsi.fd/ush/ -./build_all_cmake.umb.sh "PRODUCTION" "$cwd/gsi.fd" - -exit - diff --git a/sorc/build_ncep_post.umb.sh b/sorc/build_ncep_post.umb.sh deleted file mode 100755 index 4f3449f4fd..0000000000 --- a/sorc/build_ncep_post.umb.sh +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -else - export MOD_PATH=${cwd}/lib/modulefiles -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd gfs_post.fd/sorc -sh build_ncep_post.umb.sh diff --git a/sorc/build_ncep_post_native.sh b/sorc/build_ncep_post_native.sh deleted file mode 100755 index be71427e5a..0000000000 --- a/sorc/build_ncep_post_native.sh +++ /dev/null @@ -1,108 +0,0 @@ -SHELL=/bin/sh - -#################################################################################################### -# -# post using module compile standard -# -# 10/15 Lin Gan: Create module load version -# 01/16 Lin Gan: Update to use GFS Vertical Structure -# 07/16 J. Carley: Generalize for other machines using modules -# -##################################################################################################### -##################################################################################################### - - -# Lin Gan Module Load -module purge -set -x -mac=$(hostname | cut -c1-1) -mac2=$(hostname | cut -c1-2) - -# Create a test function for sh vs. bash detection. The name is -# randomly generated to reduce the chances of name collision. -__ms_function_name="setup__test_function__$$" -eval "$__ms_function_name() { /bin/true ; }" - -# Determine which shell we are using -__ms_ksh_test=$( eval '__text="text" ; if [[ $__text =~ ^(t).* ]] ; then printf "%s" ${.sh.match[1]} ; fi' 2> /dev/null | cat ) -__ms_bash_test=$( eval 'if ( set | grep '$__ms_function_name' | grep -v name > /dev/null 2>&1 ) ; then echo t ; fi ' 2> /dev/null | cat ) - -if [[ ! -z "$__ms_ksh_test" ]] ; then - __ms_shell=ksh -elif [[ ! -z "$__ms_bash_test" ]] ; then - __ms_shell=bash -else - # Not bash or ksh, so assume sh. - __ms_shell=sh -fi - -target="" -USERNAME=`echo $LOGNAME | awk '{ print tolower($0)'}` - -if [[ -d /lfs3 ]] ; then - # We are on NOAA Jet - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /apps/lmod/lmod/init/$__ms_shell - fi - target=jet - machine=$target - module purge -elif [[ -d /lustre && -d /ncrc ]] ; then # for GAEA. - if ( ! eval module help > /dev/null 2>&1 ) ; then - # We cannot simply load the module command. The GAEA - # /etc/profile modifies a number of module-related variables - # before loading the module command. Without those variables, - # the module command fails. Hence we actually have to source - # /etc/profile here. - echo load the module command 1>&2 - source /etc/profile - fi - - machine=gaea - echo "machine set to: $machine" - - module purge - unset _LMFILES_ - unset _LMFILES_000 - unset _LMFILES_001 - unset LOADEDMODULES - module use -a /opt/cray/ari/modulefiles - module use -a /opt/cray/pe/ari/modulefiles - module use -a /opt/cray/pe/craype/default/modulefiles - source /etc/opt/cray/pe/admin-pe/site-config - export NCEPLIBS=/lustre/f1/pdata/ncep_shared/NCEPLIBS/lib - echo NCEPLIBS HARD SET to $NCEPLIBS in `pwd`/module_setup.sh.inc - module use $NCEPLIBS/modulefiles - -elif [ $mac2 = tf ] ; then # For Theia - machine=theia - . /etc/profile - . /etc/profile.d/modules.sh -elif [ $mac = t -o $mac = e -o $mac = g ] ; then # For WCOSS - machine=wcoss - . /usrx/local/Modules/default/init/bash -elif [ $mac = l -o $mac = s ] ; then # wcoss_c (i.e. luna and surge) - export machine=cray-intel -fi - -# Lin Gan modifiy to use NCO vertical structure prefix for NCO deployment - 20160131 -moduledir=`dirname $(readlink -f ../modulefiles/post)` -module use ${moduledir} -module load post/v8.0.0-${machine} -module list - -cd ncep_post.fd -make -f makefile_module clean -make -f makefile_module - -if [ ! -d "../../exec" ] ; then - mkdir -p ../../exec -fi -cp ncep_post ../../exec/ - -unset __ms_shell -unset __ms_ksh_test -unset __ms_bash_test -unset $__ms_function_name -unset __ms_function_name diff --git a/sorc/build_nems_util.sh b/sorc/build_nems_util.sh deleted file mode 100755 index a74c974f4a..0000000000 --- a/sorc/build_nems_util.sh +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env bash -set -eux - -set +e -source ./machine-setup.sh > /dev/null 2>&1 -set -e -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/module_nemsutil.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/module_nemsutil.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/module_nemsutil.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -#for prog in nemsio_get.fd mkgfsnemsioctl.fd nemsio_cvt.fd nemsio_read.fd ;do -for prog in mkgfsnemsioctl.fd ;do - cd ${cwd}/${prog} - make -f makefile -done - -exit diff --git a/sorc/build_nems_util.umb.sh b/sorc/build_nems_util.umb.sh deleted file mode 100755 index 26f9ef580f..0000000000 --- a/sorc/build_nems_util.umb.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -# source ../modulefiles/module_nemsutil.$target > /dev/null 2>&1 - source ../modulefiles/module_nemsutil.GENERIC -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/module_nemsutil.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/module_nemsutil.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -#for prog in nemsio_get.fd mkgfsnemsioctl.fd nemsio_cvt.fd nemsio_read.fd ;do -for prog in mkgfsnemsioctl.fd ;do - cd ${cwd}/${prog} - make -f makefile -done - -exit diff --git a/sorc/build_regrid_nemsio.umb.sh b/sorc/build_regrid_nemsio.umb.sh deleted file mode 100755 index a3a1f06cc2..0000000000 --- a/sorc/build_regrid_nemsio.umb.sh +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/modulefile.regrid_nemsio.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/modulefile.regrid_nemsio.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/modulefile.regrid_nemsio.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd ./regrid_nemsio.fd - -export F90=${FCMP} -export LD=${FCMP} -export F77=${FCMP} - -export FCFFLAGS="" # "-convert native -assume byterecl -heap-arrays -mcmodel=large -shared-intel" -export LDFLAGS="${FCFFLAGS}" -export OPTIMIZATION="-O3 -xHOST" #-axCORE-AVX2,AVX -xSSE4.2 -O3 -export DEBUG="-traceback -g" #-O0 #-C #-fp-stack-check #-check all -fp-stack-check - -#LIBnetcdf=`$NETCDF/bin/nf-config --flibs` -#INCnetcdf=`$NETCDF/bin/nf-config --fflags` -#export NETCDF_LDFLAGS=$LIBnetcdf -#export NETCDF_INCLUDE=$INCnetcdf - -make -f Makefile clean -make -f Makefile -make -f Makefile install -make -f Makefile clean - -exit diff --git a/sorc/build_sfcanl_nsttfchg.umb.sh b/sorc/build_sfcanl_nsttfchg.umb.sh deleted file mode 100755 index 08877563d6..0000000000 --- a/sorc/build_sfcanl_nsttfchg.umb.sh +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/fv3gfs/gaussian_sfcanl.GENERIC > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/fv3gfs/gaussian_sfcanl.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/fv3gfs/gaussian_sfcanl.$target > /dev/null 2>&1 - fi -fi -module list - -cd ${cwd}/gaussian_sfcanl.fd -./makefile.umb.sh - -#cd ${cwd}/nst_tf_chg.fd -#./makefile.sh diff --git a/sorc/build_tropcy_NEMS.umb.sh b/sorc/build_tropcy_NEMS.umb.sh deleted file mode 100755 index a3dbe09acc..0000000000 --- a/sorc/build_tropcy_NEMS.umb.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh -# -# 07052015 E.Mirvis - made build more universal - environmental module based (see readme) -# EMC/NCEP/NOAA -# -# excutables created from build_tropcy.sh: -# 1) relocate_mv_nvortex.fd/relocate_mv_nvortex -# 2) vint.fd/vint.x -# 3) tave.fd/tave.x -# 4) syndat_qctropcy.fd/syndat_qctropcy -# 5) syndat_maksynrc.fd/syndat_maksynrc -# 6) syndat_getjtbul.fd/syndat_getjtbul -# 7) supvit.fd/supvit -# 8) gettrk.fd/gettrk -# -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -else - export MOD_PATH=${cwd}/lib/modulefiles -fi - - source ../modulefiles/modulefile.storm_reloc_v6.0.0.GENERIC - export FC=mpiifort - -export INC="${G2_INCd} -I${NEMSIO_INC}" -export LIBS="${W3EMC_LIBd} ${W3NCO_LIBd} ${BACIO_LIB4} ${G2_LIBd} ${PNG_LIB} ${JASPER_LIB} ${Z_LIB}" -export LIBS_SUP="${W3EMC_LIBd} ${W3NCO_LIBd}" -echo lset -echo lset - export LIBS_REL="${W3NCO_LIB4}" -export LIBS_REL="${NEMSIOGFS_LIB} ${NEMSIO_LIB} ${LIBS_REL} ${SIGIO_LIB4} ${BACIO_LIB4} ${SP_LIBd}" -export LIBS_SIG="${SIGIO_INC4}" -export LIBS_SYN_GET="${W3NCO_LIB4}" -export LIBS_SYN_MAK="${W3NCO_LIB4} ${BACIO_LIB4}" -export LIBS_SYN_QCT="${W3NCO_LIB8}" -echo $LIBS_REL -echo NEXT - -#cd relocate_mv_nvortex.fd -# make clean -# make -f makefile_$targetx -# make install -# make clean -# cd ../ -cd vint.fd - make clean - make -f makefile - make install - cd ../ -cd tave.fd - make clean - make -f makefile - make install - cd ../ -cd syndat_qctropcy.fd - make clean - make -f makefile - make install - make clean - cd ../ -cd syndat_maksynrc.fd - make clean - make -f makefile - make install - make clean - cd ../ -cd syndat_getjtbul.fd - make clean - make -f makefile - make install - make clean - cd ../ -cd supvit.fd - make clean - make -f makefile - make install - make clean - cd ../ -#cd gettrk.fd -# make clean -# make -f makefile -# make install -# make clean -# cd ../ - -exit diff --git a/sorc/build_ufs_utils.umb.sh b/sorc/build_ufs_utils.umb.sh deleted file mode 100755 index 69f577d8fe..0000000000 --- a/sorc/build_ufs_utils.umb.sh +++ /dev/null @@ -1,10 +0,0 @@ -#! /usr/bin/env bash -set -eux - - -cd ufs_utils.fd/sorc - -bash -x build_all_ufs_utils.umb.sh - -exit - diff --git a/sorc/cnvgrib21_gfs.fd/makefile.gaea b/sorc/cnvgrib21_gfs.fd/makefile.gaea deleted file mode 100644 index 6b8800436b..0000000000 --- a/sorc/cnvgrib21_gfs.fd/makefile.gaea +++ /dev/null @@ -1,57 +0,0 @@ -SHELL=/bin/sh -# -SRCS= gds2gdt.f pds2pdt.f pds2pdtens.f cnvgrib21_gfs.f cnvgfs12.f cnvgfs22.f \ - cnvgfs21.f gdt2gds.f makepds.f putgbexn.f makepdsens.f setbit.f -OBJS= gds2gdt.o pds2pdt.o pds2pdtens.o cnvgrib21_gfs.o cnvgfs12.o cnvgfs22.o \ - cnvgfs21.o gdt2gds.o makepds.o putgbexn.o makepdsens.o setbit.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort - -INC= ${G2_INC4} -LIBS= ${G2_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB} - -CMD = cnvgrib21_gfs -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -I $(INC) -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -$(phony all): $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec - -clean: - -rm -f $(OBJS) - -rm -f $(CMD) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/enkf_chgres_recenter.fd/driver.f90 b/sorc/enkf_chgres_recenter.fd/driver.f90 index 771716bef0..02a138ae8f 100644 --- a/sorc/enkf_chgres_recenter.fd/driver.f90 +++ b/sorc/enkf_chgres_recenter.fd/driver.f90 @@ -1,9 +1,10 @@ program recenter use setup, only : program_setup - use grid2grid, only : hinterp_grid2grid, adjust_for_terrain, & - read_vcoord_info, set_output_grid - use output_data, only : write_output_data + use interp, only : gaus_to_gaus, adjust_for_terrain + use input_data, only : read_input_data, & + read_vcoord_info + use output_data, only : set_output_grid, write_output_data implicit none @@ -17,6 +18,18 @@ program recenter call program_setup +!-------------------------------------------------------- +! Read input grid data +!-------------------------------------------------------- + + call read_input_data + +!-------------------------------------------------------- +! Read vertical coordinate info +!-------------------------------------------------------- + + call read_vcoord_info + !-------------------------------------------------------- ! Get output grid specs !-------------------------------------------------------- @@ -24,10 +37,10 @@ program recenter call set_output_grid !-------------------------------------------------------- -! Read input and horizontally interpolate to output grid +! Interpolate data to output grid !-------------------------------------------------------- - call hinterp_grid2grid + call gaus_to_gaus !-------------------------------------------------------- ! Adjust output fields for differences between diff --git a/sorc/enkf_chgres_recenter.fd/grid2grid.f90 b/sorc/enkf_chgres_recenter.fd/grid2grid.f90 deleted file mode 100644 index 07ae1042d4..0000000000 --- a/sorc/enkf_chgres_recenter.fd/grid2grid.f90 +++ /dev/null @@ -1,740 +0,0 @@ -module grid2grid - - use nemsio_module - - implicit none - - private - - integer, public :: idvc, idsl, idvm, nvcoord - integer, public :: ntrac, ncldt,icldamt - integer, public :: ij_input, kgds_input(200) - integer(nemsio_intkind), public :: i_input, j_input, lev - integer(nemsio_intkind), public :: idate(7) - - logical, public :: gfdl_mp - - ! ---------------------------------------------------------------------- - - ! Fields on target grid before atmospheric readjustment - - real, pointer, public :: sfcp_b4_adj_output(:) - real, pointer, public :: hgt_b4_adj_output(:) - - real, pointer, public :: ugrd_b4_adj_output(:,:) - real, pointer, public :: vgrd_b4_adj_output(:,:) - - real, pointer, public :: tmp_b4_adj_output(:,:) - real, pointer, public :: dzdt_b4_adj_output(:,:) - - real, pointer, public :: q_b4_adj_output(:,:,:) - - ! Pointers to subarrays of q_b4_adj_output: - real, pointer, public :: spfh_b4_adj_output(:,:) - real, pointer, public :: o3mr_b4_adj_output(:,:) - real, pointer, public :: clwmr_b4_adj_output(:,:) - real, pointer, public :: rwmr_b4_adj_output(:,:) - real, pointer, public :: icmr_b4_adj_output(:,:) - real, pointer, public :: snmr_b4_adj_output(:,:) - real, pointer, public :: grle_b4_adj_output(:,:) - real, pointer, public :: cldamt_b4_adj_output(:,:) - - - ! ---------------------------------------------------------------------- - ! Fields on target grid after atmospheric readjustment - - real, pointer, public :: hgt_output(:) ! interpolated from input grid - real, pointer, public :: hgt_external_output(:) - - real, pointer, public :: sfcp_output(:) - - real, pointer, public :: ugrd_output(:,:) - real, pointer, public :: vgrd_output(:,:) - - real, pointer, public :: tmp_output(:,:) - real, pointer, public :: delz_output(:,:) - real, pointer, public :: dpres_output(:,:) - real, pointer, public :: dzdt_output(:,:) - - real, pointer, public :: q_output(:,:,:) - - ! Pointers to subarrays of q_output: - real, pointer, public :: spfh_output(:,:) - real, pointer, public :: o3mr_output(:,:) - real, pointer, public :: clwmr_output(:,:) - real, pointer, public :: rwmr_output(:,:) - real, pointer, public :: icmr_output(:,:) - real, pointer, public :: snmr_output(:,:) - real, pointer, public :: grle_output(:,:) - real, pointer, public :: cldamt_output(:,:) - - real, pointer, public :: rlat_output(:) - real, pointer, public :: rlon_output(:) - - ! ---------------------------------------------------------------------- - - real, pointer, public :: vcoord(:,:) - integer, public :: kgds_output(200) - - public :: read_vcoord_info - public :: hinterp_grid2grid - public :: adjust_for_terrain - public :: set_output_grid - - ! Module-local variables, to reduce code complexity. - - - integer :: ip, ipopt(20) - integer :: ibi(1), ibo(1) - logical*1, allocatable :: bitmap_input(:,:),bitmap_output(:,:) - real, allocatable :: crot(:), srot(:) - - !---------------------------------------------------------------------- - -contains - - !---------------------------------------------------------------------- - - subroutine adjust_for_terrain - - ! Adjust fields based on differences between the interpolated and - ! external terrain. - - use utils - use setup - - implicit none - - integer :: k, t - - real, allocatable :: pres_b4_adj_output(:,:) - real, allocatable :: pres_output(:,:) - - ! First, compute the mid-layer pressure using the interpolated - ! surface pressure. - - allocate(pres_b4_adj_output(ij_output,lev)) - pres_b4_adj_output = 0.0 - - print* - print*,"COMPUTE MID-LAYER PRESSURE FROM INTERPOLATED SURFACE PRESSURE." - call newpr1(ij_output, lev, idvc, idsl, nvcoord, vcoord, & - sfcp_b4_adj_output, pres_b4_adj_output) - - ! Adjust surface pressure based on differences between - ! interpolated and grid terrain. - - allocate(sfcp_output(ij_output)) - sfcp_output = 0.0 - - -20 format('TARGET GRID: MAX/MIN ',A,' AT LEVEL ',I0,' IS: ',F17.10,' ',F17.10) -30 format('TARGET GRID: MAX/MIN ',A,': ',F17.10,' ',F17.10) - -40 format('OUTPUT: MAX/MIN ',A,' AT LEVEL ',I0,': ',F17.10,' ',F17.10) -50 format('OUTPUT: MAX/MIN TRACER #',I0,' AT LEVEL ',I0,': ',F17.10,' ',F17.10) - - call printrusage - print*,"ADJUST SURFACE PRESSURE BASED ON TERRAIN DIFFERENCES" - call newps(hgt_output, sfcp_b4_adj_output, ij_output, & - lev, pres_b4_adj_output, tmp_b4_adj_output, & - spfh_b4_adj_output, hgt_external_output, sfcp_output) - ! print 30,'SURFACE PRESSURE B4 ADJ',maxval(sfcp_b4_adj_output),minval(sfcp_b4_adj_output) - ! print 30,'SURFACE PRESSURE OUTPUT',maxval(sfcp_output),minval(sfcp_output) - ! do k=1,lev - ! print 20,'TEMPERATURE B4 ADJ',k,maxval(tmp_b4_adj_output(:,k)),minval(tmp_b4_adj_output(:,k)) - ! enddo - ! do k=1,lev - ! print 20,'SPFH B4 ADJ',k,maxval(spfh_b4_adj_output(:,k)),minval(spfh_b4_adj_output(:,k)) - ! enddo - - deallocate(sfcp_b4_adj_output) - - ! Recompute mid-layer pressure based on the adjusted surface - ! pressure. - - allocate(pres_output(ij_output, lev)) - pres_output = 0.0 - - allocate(dpres_output(ij_output, lev)) - dpres_output = 0.0 - - call printrusage - print*,"RECOMPUTE MID-LAYER PRESSURE." - call newpr1(ij_output, lev, idvc, idsl, nvcoord, vcoord, & - sfcp_output, pres_output, dpres_output) - ! do k=1,lev - ! print 20,'DPRES MID-LAYER PRESSURE OUTPUT',k,maxval(dpres_output(:,k)),minval(dpres_output(:,k)) - ! enddo - - ! Vertically interpolate from the pre-adjusted to the adjusted - ! mid-layer pressures. - - allocate(q_output(ij_output,lev,ntrac)) - q_output = 0.0 - - allocate(dzdt_output(ij_output,lev)) - dzdt_output = 0.0 - - allocate(ugrd_output(ij_output,lev)) - ugrd_output=0.0 - - allocate(vgrd_output(ij_output,lev)) - vgrd_output=0.0 - - allocate(tmp_output(ij_output,lev)) - tmp_output=0.0 - - call printrusage - print*,"VERTICALLY INTERPOLATE TO NEW PRESSURE LEVELS" - call vintg(i_output, j_output, lev, lev, ntrac, pres_b4_adj_output, & - ugrd_b4_adj_output, vgrd_b4_adj_output, tmp_b4_adj_output, q_b4_adj_output, & - dzdt_b4_adj_output, pres_output, ugrd_output, vgrd_output, tmp_output, & - q_output, dzdt_output) - - ! do k=1,lev - ! print *,'TEMPERATURE ',k,' ',maxval(tmp_output(:,k)),' ',minval(tmp_output(:,k)) - ! print *,'U WIND ',k,' ',maxval(ugrd_output(:,k)),' ',minval(ugrd_output(:,k)) - ! print *,'V WIND ',k,' ',maxval(vgrd_output(:,k)),' ',minval(vgrd_output(:,k)) - ! print *,'DZDT ',k,' ',maxval(dzdt_output(:,k)),' ',minval(dzdt_output(:,k)) - ! do t=1,ntrac - ! print *,'TRACER ',t,' ',k,' ',maxval(q_output(:,k,t)),' ',minval(q_output(:,k,t)) - ! enddo - ! enddo - - deallocate (dzdt_b4_adj_output, q_b4_adj_output) - deallocate (pres_b4_adj_output, pres_output) - - spfh_output => q_output(:,:,1) - o3mr_output => q_output(:,:,2) - clwmr_output => q_output(:,:,3) - if (gfdl_mp) then - rwmr_output => q_output(:,:,4) - icmr_output => q_output(:,:,5) - snmr_output => q_output(:,:,6) - grle_output => q_output(:,:,7) - if (icldamt == 1) then - cldamt_output => q_output(:,:,8) - endif - endif - - deallocate(hgt_b4_adj_output) - deallocate(ugrd_b4_adj_output) - deallocate(vgrd_b4_adj_output) - deallocate(tmp_b4_adj_output) - - nullify(sfcp_b4_adj_output,hgt_b4_adj_output,ugrd_b4_adj_output) - nullify(vgrd_b4_adj_output,tmp_b4_adj_output,dzdt_b4_adj_output) - nullify(q_b4_adj_output,spfh_b4_adj_output,o3mr_b4_adj_output) - nullify(clwmr_b4_adj_output,rwmr_b4_adj_output,icmr_b4_adj_output) - nullify(snmr_b4_adj_output,grle_b4_adj_output,cldamt_b4_adj_output) - - allocate(delz_output(ij_output, lev)) - delz_output = 0.0 - - call printrusage - print *,'COMPUTE DELZ' - call compute_delz(ij_output, lev, vcoord(:,1), vcoord(:,2), sfcp_output, hgt_output, & - tmp_output, spfh_output, delz_output) - - deallocate(hgt_output) - - end subroutine adjust_for_terrain - - ! ---------------------------------------------------------------------- - - subroutine set_output_grid - - !------------------------------------------------------------------- - ! Set grid specs on the output grid. - !------------------------------------------------------------------- - - use setup - use utils - - implicit none - - character(len=20) :: vlevtyp, vname - - integer(nemsio_intkind) :: vlev - integer :: iret - - real(nemsio_realkind), allocatable :: dummy(:) - - type(nemsio_gfile) :: gfile - - print* - print*,"OUTPUT GRID I/J DIMENSIONS: ", i_output, j_output - - !------------------------------------------------------------------- - ! Set the grib 1 grid description section, which is needed - ! by the IPOLATES library. - !------------------------------------------------------------------- - - kgds_output = 0 - - call calc_kgds(i_output, j_output, kgds_output) - - !------------------------------------------------------------------- - ! Read the terrain on the output grid. To ensure exact match, - ! read it from an existing enkf nemsio restart file. - !------------------------------------------------------------------- - - call nemsio_init(iret) - - print* - print*,"OPEN OUTPUT GRID TERRAIN FILE: ", trim(terrain_file) - call nemsio_open(gfile, terrain_file, "read", iret=iret) - if (iret /= 0) then - print*,"FATAL ERROR OPENING FILE: ",trim(terrain_file) - print*,"IRET IS: ", iret - call errexit(50) - endif - - allocate(dummy(ij_output)) - allocate(hgt_external_output(ij_output)) - - print* - print*,"READ SURFACE HEIGHT" - vlev = 1 - vlevtyp = "sfc" - vname = "hgt" - call nemsio_readrecv(gfile, vname, vlevtyp, vlev, dummy, 0, iret) - if (iret /= 0) then - print*,"FATAL ERROR READING FILE: ",trim(terrain_file) - print*,"IRET IS: ", iret - call errexit(51) - endif - - hgt_external_output = dummy - !print *,'MAX/MIN HGT_EXTERNAL_OUTPUT IS ',maxval(hgt_external_output),minval(hgt_external_output) - - deallocate(dummy) - - call nemsio_close(gfile, iret=iret) - - call nemsio_finalize() - - end subroutine set_output_grid - - ! ------------------------------------------------------------------------ - - subroutine read_vcoord_info - - ! Read vertical coordinate information. - use setup - implicit none - - integer :: istat, levs_vcoord, n, k - - print* - print*,"OPEN VERTICAL COORD FILE: ", trim(vcoord_file) - open(14, file=trim(vcoord_file), form='formatted', iostat=istat) - if (istat /= 0) then - print*,"FATAL ERROR OPENING FILE. ISTAT IS: ", istat - call errexit(4) - endif - - read(14, *, iostat=istat) nvcoord, levs_vcoord - if (istat /= 0) then - print*,"FATAL ERROR READING FILE HEADER. ISTAT IS: ",istat - call errexit(5) - endif - - ! The last value in the file is not used for the fv3 core. Only - ! read the first (lev + 1) values. - - allocate(vcoord(lev+1, nvcoord)) - read(14, *, iostat=istat) ((vcoord(n,k), k=1,nvcoord), n=1,lev+1) - if (istat /= 0) then - print*,"FATAL ERROR READING FILE. ISTAT IS: ",istat - call errexit(6) - endif - - print* - do k = 1, (lev+1) - print*,'VCOORD FOR LEV ', k, 'IS: ', vcoord(k,:) - enddo - - close(14) - - end subroutine read_vcoord_info - - !---------------------------------------------------------------------- - - subroutine hinterp_grid2grid - use setup - use utils - implicit none - - ! ---------------------------------------------------------------------- - ! Locals copied from read_input_data - character(len=20) :: vlevtyp, vname - character(len=50), allocatable :: recname(:) - - integer(nemsio_intkind) :: vlev, iret, idum, nrec - integer :: n - - real, allocatable :: dummy(:,:) - real(nemsio_realkind), allocatable :: readbuf(:) - - type(nemsio_gfile) :: gfile - - ! ---------------------------------------------------------------------- - ! Locals copied from gaus_to_gaus - - integer :: numpts - - ! ---------------------------------------------------------------------- - - call nemsio_init(iret) - - print* - print*,"OPEN INPUT FILE: ",trim(input_file) - call nemsio_open(gfile, input_file, "read", iret=iret) - if (iret /= 0) then - print*,"FATAL ERROR OPENING FILE: ",trim(input_file) - print*,"IRET IS: ", iret - call errexit(2) - endif - - - print*,"GET INPUT FILE HEADER" - call nemsio_getfilehead(gfile, iret=iret, nrec=nrec, idate=idate, & - dimx=i_input, dimy=j_input, dimz=lev) - if (iret /= 0) goto 67 - - print*,'DIMENSIONS OF DATA ARE: ', i_input, j_input, lev - print*,'DATE OF DATA IS: ', idate - - ij_input = i_input * j_input - - allocate(recname(nrec)) - - call nemsio_getfilehead(gfile, iret=iret, recname=recname) - if (iret /= 0) goto 67 - - gfdl_mp = .false. ! Zhao-Carr MP - do n = 1, nrec - if (trim(recname(n)) == "icmr") then - gfdl_mp = .true. ! GFDL MP - exit - endif - enddo - - icldamt = 0 - do n = 1, nrec - if (trim(recname(n)) == "cld_amt") then - icldamt = 1 ! 3D cloud amount present - exit - endif - enddo - - ! Read header info - - call nemsio_getfilehead(gfile, iret=iret, idvc=idum) - if (iret /= 0) goto 67 - idvc = idum - print*,'IDVC IS: ', idvc - - call nemsio_getfilehead(gfile, iret=iret, idsl=idum) - if (iret /= 0) goto 67 - idsl = idum - print*,'IDSL IS: ', idsl - - call nemsio_getfilehead(gfile, iret=iret, idvm=idum) - if (iret /= 0) goto 67 - idvm = idum - print*,'IDVM IS: ', idvm - - if (gfdl_mp) then - ntrac = 7 + icldamt - ncldt = 5 - else - ntrac = 3 - ncldt = 1 - endif - - ! ---------------------------------------------------------------------- - ! Set up for reading and interpolating. - - allocate(dummy(ij_input,2)) - allocate(readbuf(ij_input)) - - call printrusage - print* - print*,'READ AND INTERPOLATE DATA TO OUTPUT GRID' - - call calc_kgds(i_input, j_input, kgds_input) - - ip = 0 ! bilinear - ipopt = 0 - ibi = 0 ! no bitmap - ibo = 0 ! no bitmap - - allocate(bitmap_input(ij_input,2)) - bitmap_input = .true. - allocate(bitmap_output(ij_output,2)) - bitmap_output = .true. - - allocate(rlat_output(ij_output)) - rlat_output = 0.0 - allocate(rlon_output(ij_output)) - rlon_output = 0.0 - - call read_vcoord_info - - ! ---------------------------------------------------------------------- - ! Read and interpolate level-by-level, field-by-field. - - ! Interpolate surface fields - - call printrusage - - allocate(sfcp_b4_adj_output(ij_output)) - call grid2grid_surface('SURFACE PRESSURE',gfile,readbuf,'pres','sfc',dummy(:,1),& - sfcp_b4_adj_output,iret) - if(iret/=0) goto 67 - - allocate(hgt_b4_adj_output(ij_output)) - call grid2grid_surface('SURFACE HEIGHT',gfile,readbuf,'hgt','sfc',dummy(:,1),& - hgt_b4_adj_output,iret) - if(iret/=0) goto 67 - allocate(hgt_output(ij_output)) - hgt_output=hgt_b4_adj_output - - ! Interpolate velocity fields - - allocate(crot(ij_output), srot(ij_output)) - crot = 0. - srot = 0. - allocate(ugrd_b4_adj_output(ij_output,lev)) - allocate(vgrd_b4_adj_output(ij_output,lev)) - call grid2grid_vector('U WIND','V WIND',gfile,readbuf,'ugrd','vgrd','mid layer',& - dummy(:,1),dummy(:,2),ugrd_b4_adj_output,vgrd_b4_adj_output,iret) - if(iret/=0) goto 67 - - ! Interpolate non-species 3D scalars - - call printrusage - allocate(tmp_b4_adj_output(ij_output,lev)) - call grid2grid_scalar('TEMPERATURE',gfile,readbuf,'tmp','mid layer',dummy(:,1),& - tmp_b4_adj_output,iret) - if(iret/=0) goto 67 - - allocate(dzdt_b4_adj_output(ij_output,lev)) - call grid2grid_scalar('DZDT',gfile,readbuf,'dzdt','mid layer',dummy(:,1),& - dzdt_b4_adj_output,iret) - if(iret/=0) goto 67 - - call printrusage - ! Interpolate tracers - allocate(q_b4_adj_output(ij_output,lev,ntrac)) - - spfh_b4_adj_output=>q_b4_adj_output(:,:,1) - call grid2grid_scalar('SPECIFIC HUMIDITY',gfile,readbuf,'spfh','mid layer',& - dummy(:,1),spfh_b4_adj_output,iret) - if(iret/=0) goto 67 - - o3mr_b4_adj_output=>q_b4_adj_output(:,:,2) - call grid2grid_scalar('OZONE',gfile,readbuf,'o3mr','mid layer',& - dummy(:,1),o3mr_b4_adj_output,iret) - if(iret/=0) goto 67 - - clwmr_b4_adj_output=>q_b4_adj_output(:,:,3) - call grid2grid_scalar('CLOUD LIQUID WATER',gfile,readbuf,'clwmr','mid layer',& - dummy(:,1),clwmr_b4_adj_output,iret) - if(iret/=0) goto 67 - - if(gfdl_mp) then - rwmr_b4_adj_output=>q_b4_adj_output(:,:,4) - call grid2grid_scalar('RAIN MIXING RATIO',gfile,readbuf,'rwmr','mid layer',& - dummy(:,1),rwmr_b4_adj_output,iret) - if(iret/=0) goto 67 - - icmr_b4_adj_output=>q_b4_adj_output(:,:,5) - call grid2grid_scalar('ICE MIXING RATIO',gfile,readbuf,'icmr','mid layer',& - dummy(:,1),icmr_b4_adj_output,iret) - if(iret/=0) goto 67 - - snmr_b4_adj_output=>q_b4_adj_output(:,:,6) - call grid2grid_scalar('SNOW MIXING RATIO',gfile,readbuf,'snmr','mid layer',& - dummy(:,1),snmr_b4_adj_output,iret) - if(iret/=0) goto 67 - - grle_b4_adj_output=>q_b4_adj_output(:,:,7) - call grid2grid_scalar('GRAUPEL MIXING RATIO',gfile,readbuf,'grle','mid layer',& - dummy(:,1),grle_b4_adj_output,iret) - if(iret/=0) goto 67 - - if(icldamt==1) then - cldamt_b4_adj_output=>q_b4_adj_output(:,:,8) - call grid2grid_scalar('3D CLOUD AMOUNT',gfile,readbuf,'cld_amt','mid layer',& - dummy(:,1),cldamt_b4_adj_output,iret) - if(iret/=0) goto 67 - endif - ! print *,'bottom of hinterp_grid2grid' - call printrusage - endif - - deallocate(dummy,readbuf,recname,bitmap_input,bitmap_output) - - return - -67 continue - - print*,"FATAL ERROR PROCESSING INPUT FILE: ", trim(input_file) - print*,"IRET IS: ", iret - call errexit(3) - - end subroutine hinterp_grid2grid - - ! ---------------------------------------------------------------------- - - subroutine grid2grid_vector(& - u_human_name,v_human_name,& - gfile,readbuf,uname,vname,vlevtyp,& - u_dummy,v_dummy,& - u_b4_adj_output,v_b4_adj_output,iret) - use setup - implicit none - character(len=*) :: u_human_name,v_human_name - type(nemsio_gfile) :: gfile - real(nemsio_realkind) :: readbuf(:) - character(len=*) :: uname, vname, vlevtyp - real :: u_dummy(:), v_dummy(:) - real :: u_b4_adj_output(:,:), v_b4_adj_output(:,:) - integer :: iret - !locals - integer :: vlev,num_fields,numpts - character(len=20) :: uname_x, vname_x, vlevtyp_x - - uname_x=uname - vname_x=vname - vlevtyp_x=vlevtyp - - num_fields=1 - -10 format(A,': READ ',A,' AND ',A) -20 format(A,': SOURCE GRID: MAX/MIN ',A,' AT LEVEL ',I0,' IS: ',F17.10,' ',F17.10) -30 format(A,': TARGET GRID: MAX/MIN ',A,' AT LEVEL ',I0,' IS: ',F17.10,' ',F17.10) - - print 10,trim(input_file),u_human_name,v_human_name - - do vlev=1,lev - readbuf=-999. - call nemsio_readrecv(gfile, uname_x, vlevtyp_x, vlev, readbuf, 0, iret) - if(iret/=0) return - u_dummy=readbuf - - readbuf=-999. - call nemsio_readrecv(gfile, vname_x, vlevtyp_x, vlev, readbuf, 0, iret) - if(iret/=0) return - v_dummy=readbuf - - print 20,trim(input_file),u_human_name,vlev,maxval(u_dummy),minval(u_dummy) - print 20,trim(input_file),v_human_name,vlev,maxval(v_dummy),minval(v_dummy) - - u_b4_adj_output(:,vlev)=-999. - v_b4_adj_output(:,vlev)=-999. - call ipolatev(& - ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& - num_fields, ibi, bitmap_input, u_dummy, v_dummy, & - numpts, rlat_output, rlon_output, crot, srot, ibo, bitmap_output, & - u_b4_adj_output(:,vlev), v_b4_adj_output(:,vlev), iret) - if(iret/=0) return - !print 30,trim(input_file),u_human_name,vlev,maxval(u_b4_adj_output(:,vlev)),minval(u_b4_adj_output(:,vlev)) - !print 30,trim(input_file),v_human_name,vlev,maxval(v_b4_adj_output(:,vlev)),minval(v_b4_adj_output(:,vlev)) - end do - end subroutine grid2grid_vector - - ! ---------------------------------------------------------------------- - - subroutine grid2grid_scalar(& - human_name,gfile,readbuf,vname,vlevtyp,dummy,b4_adj_output,iret) - use setup - implicit none - character(len=*) :: human_name - type(nemsio_gfile) :: gfile - real(nemsio_realkind) :: readbuf(:) - character(len=*) :: vname, vlevtyp - real :: dummy(:), b4_adj_output(:,:) - integer :: iret - !locals - integer :: vlev,num_fields,numpts - character(len=20) :: vname_x, vlevtyp_x - - vname_x=vname - vlevtyp_x=vlevtyp - - num_fields=1 - -10 format(A,': READ ',A) -20 format(A,': SOURCE GRID: MAX/MIN ',A,' AT LEVEL ',I0,' IS: ',F17.10,' ',F17.10) -30 format(A,': TARGET GRID: MAX/MIN ',A,' AT LEVEL ',I0,' IS: ',F17.10,' ',F17.10) - - print 10,trim(input_file),human_name - - do vlev=1,lev - - readbuf=-999. - call nemsio_readrecv(gfile, vname, vlevtyp, vlev, readbuf, 0, iret) - if(iret/=0) return - dummy=readbuf - - print 20,trim(input_file),human_name,vlev,maxval(dummy),minval(dummy) - call ipolates(& - ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& - num_fields, ibi, bitmap_input, dummy, & - numpts, rlat_output, rlon_output, ibo, bitmap_output, & - b4_adj_output(:,vlev), iret) - !print 30,trim(input_file),human_name,vlev,maxval(b4_adj_output(:,vlev)),minval(b4_adj_output(:,vlev)) - if(iret/=0) return - end do - end subroutine grid2grid_scalar - - ! ---------------------------------------------------------------------- - - subroutine grid2grid_surface(& - human_name,gfile,readbuf,vname,vlevtyp,dummy,b4_adj_output,iret) - use setup - implicit none - character(len=*) :: human_name - type(nemsio_gfile) :: gfile - real(nemsio_realkind) :: readbuf(:) - character(len=*) :: vname, vlevtyp - real :: dummy(:), b4_adj_output(:) - integer :: iret - !locals - integer :: vlev,num_fields,numpts - character(len=20) :: vname_x, vlevtyp_x - - vname_x=vname - vlevtyp_x=vlevtyp - - num_fields=1 - -10 format(A,': READ ',A) -20 format(A,': SOURCE GRID: MAX/MIN ',A,': ',F17.10,' ',F17.10) -30 format(A,': TARGET GRID: MAX/MIN ',A,': ',F17.10,' ',F17.10) - - print 10,trim(input_file),human_name - - vlev=1 - - readbuf=-999. - call nemsio_readrecv(gfile, vname, vlevtyp, vlev, readbuf, 0, iret) - if(iret/=0) return - dummy=readbuf - - print 20,trim(input_file),human_name,maxval(dummy),minval(dummy) - call ipolates(& - ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& - num_fields, ibi, bitmap_input, dummy, & - numpts, rlat_output, rlon_output, ibo, bitmap_output, & - b4_adj_output, iret) - if(iret/=0) return - !print 30,trim(input_file),human_name,maxval(b4_adj_output),minval(b4_adj_output) - end subroutine grid2grid_surface - -end module grid2grid diff --git a/sorc/enkf_chgres_recenter.fd/makefile b/sorc/enkf_chgres_recenter.fd/makefile index d4bf566338..2a5f36b369 100755 --- a/sorc/enkf_chgres_recenter.fd/makefile +++ b/sorc/enkf_chgres_recenter.fd/makefile @@ -4,32 +4,23 @@ LIBS= $(NEMSIO_LIB) $(BACIO_LIB4) $(W3NCO_LIBd) $(IP_LIBd) $(SP_LIBd) CMD= enkf_chgres_recenter.x -OBJS = driver.o output_data.o input_data.o setup.o utils.o grid2grid.o printrusage.o +OBJS = driver.o input_data.o interp.o output_data.o utils.o setup.o $(CMD): $(OBJS) $(FC) $(FFLAGS) -o $(CMD) $(OBJS) $(LIBS) -printrusage.o: printrusage.c - $(CC) $(CFLAGS) -c printrusage.c - -driver.o: setup.o output_data.o grid2grid.o driver.f90 +driver.o: setup.o output_data.o interp.o input_data.o driver.f90 $(FC) $(FFLAGS) -I$(NEMSIO_INC) -c driver.f90 - -input_data.o: input_data.f90 +interp.o: setup.o utils.o output_data.o input_data.o interp.f90 + $(FC) $(FFLAGS) -I$(NEMSIO_INC) -c interp.f90 +input_data.o: setup.o utils.o input_data.f90 $(FC) $(FFLAGS) -I$(NEMSIO_INC) -c input_data.f90 - -output_data.o: setup.o utils.o grid2grid.o input_data.o output_data.f90 +output_data.o: setup.o utils.o input_data.o output_data.f90 $(FC) $(FFLAGS) -I$(NEMSIO_INC) -c output_data.f90 - setup.o: setup.f90 $(FC) $(FFLAGS) -I$(NEMSIO_INC) -c setup.f90 - utils.o: utils.f90 $(FC) $(FFLAGS) -I$(NEMSIO_INC) -c utils.f90 - -grid2grid.o: utils.o setup.o grid2grid.f90 - $(FC) $(FFLAGS) -I$(NEMSIO_INC) -c grid2grid.f90 - clean: rm -f *.o *.mod ${CMD} install: diff --git a/sorc/enkf_chgres_recenter.fd/output_data.f90 b/sorc/enkf_chgres_recenter.fd/output_data.f90 index 098139d0f2..36063d3a06 100644 --- a/sorc/enkf_chgres_recenter.fd/output_data.f90 +++ b/sorc/enkf_chgres_recenter.fd/output_data.f90 @@ -1,34 +1,33 @@ module output_data use nemsio_module - use grid2grid implicit none private -! integer, public :: kgds_output(200) + integer, public :: kgds_output(200) ! data on the output grid. -! real, allocatable, public :: hgt_output(:) ! interpolated from input grid -! real, allocatable, public :: hgt_external_output(:) -! real, allocatable, public :: sfcp_output(:) -! real, allocatable, public :: tmp_output(:,:) -! real, allocatable, public :: clwmr_output(:,:) -! real, allocatable, public :: delz_output(:,:) -! real, allocatable, public :: dpres_output(:,:) -! real, allocatable, public :: dzdt_output(:,:) -! real, allocatable, public :: o3mr_output(:,:) -! real, allocatable, public :: spfh_output(:,:) -! real, allocatable, public :: ugrd_output(:,:) -! real, allocatable, public :: vgrd_output(:,:) -! real, allocatable, public :: rwmr_output(:,:) -! real, allocatable, public :: icmr_output(:,:) -! real, allocatable, public :: snmr_output(:,:) -! real, allocatable, public :: grle_output(:,:) -! real, allocatable, public :: cldamt_output(:,:) -! real, allocatable, public :: rlat_output(:) -! real, allocatable, public :: rlon_output(:) + real, allocatable, public :: hgt_output(:) ! interpolated from input grid + real, allocatable, public :: hgt_external_output(:) + real, allocatable, public :: sfcp_output(:) + real, allocatable, public :: tmp_output(:,:) + real, allocatable, public :: clwmr_output(:,:) + real, allocatable, public :: delz_output(:,:) + real, allocatable, public :: dpres_output(:,:) + real, allocatable, public :: dzdt_output(:,:) + real, allocatable, public :: o3mr_output(:,:) + real, allocatable, public :: spfh_output(:,:) + real, allocatable, public :: ugrd_output(:,:) + real, allocatable, public :: vgrd_output(:,:) + real, allocatable, public :: rwmr_output(:,:) + real, allocatable, public :: icmr_output(:,:) + real, allocatable, public :: snmr_output(:,:) + real, allocatable, public :: grle_output(:,:) + real, allocatable, public :: cldamt_output(:,:) + real, allocatable, public :: rlat_output(:) + real, allocatable, public :: rlon_output(:) public :: set_output_grid public :: write_output_data @@ -44,12 +43,87 @@ module output_data contains + subroutine set_output_grid + +!------------------------------------------------------------------- +! Set grid specs on the output grid. +!------------------------------------------------------------------- + + use setup + use input_data + use utils + + implicit none + + character(len=20) :: vlevtyp, vname + + integer(nemsio_intkind) :: vlev + integer :: iret + + real(nemsio_realkind), allocatable :: dummy(:) + + type(nemsio_gfile) :: gfile + + print* + print*,"OUTPUT GRID I/J DIMENSIONS: ", i_output, j_output + +!------------------------------------------------------------------- +! Set the grib 1 grid description section, which is needed +! by the IPOLATES library. +!------------------------------------------------------------------- + + kgds_output = 0 + + call calc_kgds(i_output, j_output, kgds_output) + +!------------------------------------------------------------------- +! Read the terrain on the output grid. To ensure exact match, +! read it from an existing enkf nemsio restart file. +!------------------------------------------------------------------- + + call nemsio_init(iret) + + print* + print*,"OPEN OUTPUT GRID TERRAIN FILE: ", trim(terrain_file) + call nemsio_open(gfile, terrain_file, "read", iret=iret) + if (iret /= 0) then + print*,"FATAL ERROR OPENING FILE: ",trim(terrain_file) + print*,"IRET IS: ", iret + call errexit(50) + endif + + allocate(dummy(ij_output)) + allocate(hgt_external_output(ij_output)) + + print* + print*,"READ SURFACE HEIGHT" + vlev = 1 + vlevtyp = "sfc" + vname = "hgt" + call nemsio_readrecv(gfile, vname, vlevtyp, vlev, dummy, 0, iret) + if (iret /= 0) then + print*,"FATAL ERROR READING FILE: ",trim(terrain_file) + print*,"IRET IS: ", iret + call errexit(51) + endif + + hgt_external_output = dummy + + deallocate(dummy) + + call nemsio_close(gfile, iret=iret) + + call nemsio_finalize() + + end subroutine set_output_grid + subroutine write_output_data !------------------------------------------------------------------- ! Write output grid data to a nemsio file. !------------------------------------------------------------------- + use input_data use setup implicit none @@ -76,7 +150,6 @@ subroutine write_output_data gaction="write" - call printrusage print* print*,'OPEN OUTPUT FILE: ',trim(output_file) call nemsio_open(gfile, output_file, gaction, iret=iret, gdatatype="bin4", & @@ -122,6 +195,7 @@ subroutine write_output_data call nemsio_writerecv(gfile, "clwmr", "mid layer", n, dummy, iret=iret) if (iret/=0) goto 88 enddo + deallocate(clwmr_output) print*,"WRITE SPECIFIC HUMIDITY" do n = 1, lev @@ -129,14 +203,15 @@ subroutine write_output_data call nemsio_writerecv(gfile, "spfh", "mid layer", n, dummy, iret=iret) if (iret/=0) goto 88 enddo + deallocate(spfh_output) - call printrusage print*,"WRITE OZONE" do n = 1, lev dummy = o3mr_output(:,n) call nemsio_writerecv(gfile, "o3mr", "mid layer", n, dummy, iret=iret) if (iret/=0) goto 88 enddo + deallocate(o3mr_output) print*,"WRITE U-WINDS" do n = 1, lev @@ -180,13 +255,13 @@ subroutine write_output_data if (gfdl_mp) then - call printrusage print*,"WRITE RAIN WATER" do n = 1, lev dummy = rwmr_output(:,n) call nemsio_writerecv(gfile, "rwmr", "mid layer", n, dummy, iret=iret) if (iret/=0) goto 88 enddo + deallocate(rwmr_output) print*,"WRITE SNOW WATER" do n = 1, lev @@ -194,6 +269,7 @@ subroutine write_output_data call nemsio_writerecv(gfile, "snmr", "mid layer", n, dummy, iret=iret) if (iret/=0) goto 88 enddo + deallocate(snmr_output) print*,"WRITE ICE WATER" do n = 1, lev @@ -201,6 +277,7 @@ subroutine write_output_data call nemsio_writerecv(gfile, "icmr", "mid layer", n, dummy, iret=iret) if (iret/=0) goto 88 enddo + deallocate(icmr_output) print*,"WRITE GRAUPEL" do n = 1, lev @@ -208,25 +285,7 @@ subroutine write_output_data call nemsio_writerecv(gfile, "grle", "mid layer", n, dummy, iret=iret) if (iret/=0) goto 88 enddo - - if (icldamt == 1) then - print*,"WRITE CLD_AMT" - do n = 1, lev - dummy = cldamt_output(:,n) - call nemsio_writerecv(gfile, "cld_amt", "mid layer", n, dummy, iret=iret) - if (iret/=0) goto 88 - enddo - endif - - call printrusage - deallocate(q_output) - - nullify(sfcp_output,hgt_output,ugrd_output) - nullify(vgrd_output,tmp_output,dzdt_output) - nullify(q_output,spfh_output,o3mr_output) - nullify(clwmr_output,rwmr_output,icmr_output) - nullify(snmr_output,grle_output,cldamt_output) - nullify(delz_output,hgt_external_output,dpres_output) + deallocate(grle_output) if (icldamt == 1) then print*,"WRITE CLD_AMT" @@ -247,7 +306,6 @@ subroutine write_output_data call nemsio_finalize() - call printrusage return 88 continue @@ -262,7 +320,7 @@ subroutine header_set ! Set header information for the output nemsio file. !------------------------------------------------------------------- - use grid2grid + use input_data use setup implicit none diff --git a/sorc/enkf_chgres_recenter.fd/printrusage.c b/sorc/enkf_chgres_recenter.fd/printrusage.c deleted file mode 100644 index e3a3b93363..0000000000 --- a/sorc/enkf_chgres_recenter.fd/printrusage.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include -#include -#include - -void printrusage() { - struct rusage usage; - if(!getrusage(RUSAGE_SELF, &usage)) { - fprintf(stderr,"getrusage: Usage only for this process and its threads:\n"); - fprintf(stderr,"getrusage: user time used (seconds): %f\n",usage.ru_utime.tv_sec+usage.ru_utime.tv_usec/1e6); - fprintf(stderr,"getrusage: system time used (seconds): %f\n",usage.ru_stime.tv_sec+usage.ru_stime.tv_usec/1e6); - fprintf(stderr,"getrusage: max resident set size: %10ld\n",usage.ru_maxrss); - fprintf(stderr,"getrusage: max shared memory size: %10ld\n",usage.ru_ixrss); - fprintf(stderr,"getrusage: max unshared data size: %10ld\n",usage.ru_idrss); - fprintf(stderr,"getrusage: max unshared stack size: %10ld\n",usage.ru_isrss); - fprintf(stderr,"getrusage: minor page faults: %10ld\n",usage.ru_minflt); - fprintf(stderr,"getrusage: major page faults: %10ld\n",usage.ru_majflt); - fprintf(stderr,"getrusage: swaps: %10ld\n",usage.ru_nswap); - fprintf(stderr,"getrusage: block input ops: %10ld\n",usage.ru_inblock); - fprintf(stderr,"getrusage: block output ops: %10ld\n",usage.ru_oublock); - fprintf(stderr,"getrusage: messages sent: %10ld\n",usage.ru_msgsnd); - fprintf(stderr,"getrusage: messages received: %10ld\n",usage.ru_msgrcv); - fprintf(stderr,"getrusage: signals received: %10ld\n",usage.ru_nsignals); - fprintf(stderr,"getrusage: voluntary context switches: %10ld\n",usage.ru_nvcsw); - fprintf(stderr,"getrusage: involuntary context switches: %10ld\n",usage.ru_nivcsw); - } else - fprintf(stderr,"getrusage failed: %s\n",strerror(errno)); -} - -void printrusage_() { printrusage(); } -void printrusage__() { printrusage(); } -void PRINTRUSAGE() { printrusage(); } -void PRINTRUSAGE_() { printrusage(); } -void PRINTRUSAGE__() { printrusage(); } - diff --git a/sorc/enkf_chgres_recenter.fd/utils.f90 b/sorc/enkf_chgres_recenter.fd/utils.f90 index 7c4c009fe7..e09c75b018 100644 --- a/sorc/enkf_chgres_recenter.fd/utils.f90 +++ b/sorc/enkf_chgres_recenter.fd/utils.f90 @@ -648,7 +648,7 @@ SUBROUTINE RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,IXL2,KXL2,& END SUBROUTINE RSEARCH - SUBROUTINE VINTG(IM,JM,KM1,KM2,NT,P1,U1,V1,T1,Q1,W1,P2, & + SUBROUTINE VINTG(IM,KM1,KM2,NT,P1,U1,V1,T1,Q1,W1,P2, & U2,V2,T2,Q2,W2) !$$$ SUBPROGRAM DOCUMENTATION BLOCK ! @@ -697,19 +697,19 @@ SUBROUTINE VINTG(IM,JM,KM1,KM2,NT,P1,U1,V1,T1,Q1,W1,P2, & !C$$$ IMPLICIT NONE - INTEGER, INTENT(IN) :: IM, JM, KM1, KM2, NT + INTEGER, INTENT(IN) :: IM, KM1, KM2, NT - REAL, INTENT(IN) :: P1(IM*JM,KM1),U1(IM*JM,KM1),V1(IM*JM,KM1) - REAL, INTENT(IN) :: T1(IM*JM,KM1),Q1(IM*JM,KM1,NT) - REAL, INTENT(IN) :: W1(IM*JM,KM1),P2(IM*JM,KM2) - REAL, INTENT(OUT) :: U2(IM*JM,KM2),V2(IM*JM,KM2) - REAL, INTENT(OUT) :: T2(IM*JM,KM2),Q2(IM*JM,KM2,NT) - REAL, INTENT(OUT) :: W2(IM*JM,KM2) + REAL, INTENT(IN) :: P1(IM,KM1),U1(IM,KM1),V1(IM,KM1) + REAL, INTENT(IN) :: T1(IM,KM1),Q1(IM,KM1,NT) + REAL, INTENT(IN) :: W1(IM,KM1),P2(IM,KM2) + REAL, INTENT(OUT) :: U2(IM,KM2),V2(IM,KM2) + REAL, INTENT(OUT) :: T2(IM,KM2),Q2(IM,KM2,NT) + REAL, INTENT(OUT) :: W2(IM,KM2) REAL, PARAMETER :: DLTDZ=-6.5E-3*287.05/9.80665 REAL, PARAMETER :: DLPVDRT=-2.5E6/461.50 - INTEGER :: I, K, N, J, IJ0 + INTEGER :: I, K, N REAL :: DZ REAL,ALLOCATABLE :: Z1(:,:),Z2(:,:) @@ -717,36 +717,32 @@ SUBROUTINE VINTG(IM,JM,KM1,KM2,NT,P1,U1,V1,T1,Q1,W1,P2, & ALLOCATE (Z1(IM+1,KM1),Z2(IM+1,KM2)) ALLOCATE (C1(IM+1,KM1,4+NT),C2(IM+1,KM2,4+NT),J2(IM+1,KM2,4+NT)) - - big_j_loop: DO J=1,JM - IJ0=IM*(J-1) - ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! COMPUTE LOG PRESSURE INTERPOLATING COORDINATE ! AND COPY INPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS !$OMP PARALLEL DO PRIVATE(K,I) DO K=1,KM1 DO I=1,IM - Z1(I,K) = -LOG(P1(IJ0+I,K)) - C1(I,K,1) = U1(IJ0+I,K) - C1(I,K,2) = V1(IJ0+I,K) - C1(I,K,3) = W1(IJ0+I,K) - C1(I,K,4) = T1(IJ0+I,K) - C1(I,K,5) = Q1(IJ0+I,K,1) + Z1(I,K) = -LOG(P1(I,K)) + C1(I,K,1) = U1(I,K) + C1(I,K,2) = V1(I,K) + C1(I,K,3) = W1(I,K) + C1(I,K,4) = T1(I,K) + C1(I,K,5) = Q1(I,K,1) ENDDO ENDDO !$OMP END PARALLEL DO DO N=2,NT DO K=1,KM1 DO I=1,IM - C1(I,K,4+N) = Q1(IJ0+I,K,N) + C1(I,K,4+N) = Q1(I,K,N) ENDDO ENDDO ENDDO !$OMP PARALLEL DO PRIVATE(K,I) DO K=1,KM2 DO I=1,IM - Z2(I,K) = -LOG(P2(IJ0+I,K)) + Z2(I,K) = -LOG(P2(I,K)) ENDDO ENDDO !$OMP END PARALLEL DO @@ -760,29 +756,28 @@ SUBROUTINE VINTG(IM,JM,KM1,KM2,NT,P1,U1,V1,T1,Q1,W1,P2, & ! COPY OUTPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS ! EXCEPT BELOW THE INPUT DOMAIN, LET TEMPERATURE INCREASE WITH A FIXED ! LAPSE RATE AND LET THE RELATIVE HUMIDITY REMAIN CONSTANT. - k_copy_loop: DO K=1,KM2 + DO K=1,KM2 DO I=1,IM - U2(IJ0+I,K)=C2(I,K,1) - V2(IJ0+I,K)=C2(I,K,2) - W2(IJ0+I,K)=C2(I,K,3) + U2(I,K)=C2(I,K,1) + V2(I,K)=C2(I,K,2) + W2(I,K)=C2(I,K,3) DZ=Z2(I,K)-Z1(I,1) IF(DZ.GE.0) THEN - T2(IJ0+I,K)=C2(I,K,4) - Q2(IJ0+I,K,1)=C2(I,K,5) + T2(I,K)=C2(I,K,4) + Q2(I,K,1)=C2(I,K,5) ELSE - T2(IJ0+I,K)=T1(IJ0+I,1)*EXP(DLTDZ*DZ) - Q2(IJ0+I,K,1)=Q1(IJ0+I,1,1)*EXP(DLPVDRT*(1/T2(IJ0+I,K)-1/T1(IJ0+I,1))-DZ) + T2(I,K)=T1(I,1)*EXP(DLTDZ*DZ) + Q2(I,K,1)=Q1(I,1,1)*EXP(DLPVDRT*(1/T2(I,K)-1/T1(I,1))-DZ) ENDIF ENDDO - ENDDO k_copy_loop + ENDDO DO N=2,NT DO K=1,KM2 DO I=1,IM - Q2(IJ0+I,K,N)=C2(I,K,4+N) + Q2(I,K,N)=C2(I,K,4+N) ENDDO ENDDO ENDDO - END DO big_j_loop DEALLOCATE (Z1,Z2,C1,C2,J2) END SUBROUTINE VINTG end module utils diff --git a/sorc/fv3gfs_build.cfg b/sorc/fv3gfs_build.cfg index 093a25acba..130c6dde03 100644 --- a/sorc/fv3gfs_build.cfg +++ b/sorc/fv3gfs_build.cfg @@ -1,5 +1,4 @@ -# TODO implement porting execs -# not Building prebuiltexe (exec) ........................... yes +# # ***** configuration of fv3gfs build ***** Building libraries (libs) ............................. no @@ -19,8 +18,6 @@ Building fv3nc2nemsio (fv3nc2nemsio) .................. yes Building regrid_nemsio (regrid_nemsio) ................ yes Building gfs_util (gfs_util) .......................... yes - Building prod_util (prod_util) ........................ no - Building grib_util (grib_util) ........................ no - Building reg2grb2 (reg2grb2) .......................... yes + # -- END -- diff --git a/sorc/fv3gfs_build.cfg_jet b/sorc/fv3gfs_build.cfg_jet deleted file mode 100644 index d49ae08d61..0000000000 --- a/sorc/fv3gfs_build.cfg_jet +++ /dev/null @@ -1,29 +0,0 @@ -# not Building prebuiltexe (exec) ........................... yes -# ***** configuration of fv3gfs build ***** - - Building libraries (libs) ............................. no - Building fv3gfs (fv3gfs) .............................. yes - Building gsi (gsi) .................................... yes - Building gdas (gdas) .................................. yes - Building ncep_post (ncep_post) ........................ yes - Building gfs_wafs (gfs_wafs) .......................... yes - Building NEMS_util (nems_util) ........................ yes - Building chgres (chgres) .............................. yes - Building sfcanl_nsttfchg (sfcanl_nsttfchg)............. yes - Building orog (orog) .................................. no - Building cycle (cycle) ................................ yes - Building enkf_chgres_recenter (enkf_chgres_recenter) .. yes - Building tropcy_NEMS (tropcy) ......................... yes - Building gfs_fbwndgfs (gfs_fbwndgfs) .................. no - Building gfs_overpdtg2 (gfs_overpdtg2) ................ no - Building gfs_wintemv (gfs_wintemv) .....,,,,........... no - Building gfs_bufrsnd (gfs_bufrsnd) .................... no - Building emcsfc (emcsfc) .............................. yes - Building fre-nctools (nctools) ........................ no - Building fv3nc2nemsio (fv3nc2nemsio) .................. no - Building regrid_nemsio (regrid_nemsio) ................ yes - Building gfs_util (gfs_util) .......................... yes - Building prod_util (prod_util) ........................ no - Building grib_util (grib_util) ........................ no -# -- END -- - diff --git a/sorc/gdas_trpsfcmv.fd/makefile.jet b/sorc/gdas_trpsfcmv.fd/makefile.jet deleted file mode 100755 index 0c7af674d3..0000000000 --- a/sorc/gdas_trpsfcmv.fd/makefile.jet +++ /dev/null @@ -1,33 +0,0 @@ -SHELL=/bin/sh -# -SRCS= gdas_trpsfcmv.f getgb1.f - -OBJS= gdas_trpsfcmv.o getgb1.o - -FC = ifort -LDFLAGS = -L$(NCARG_LIB) \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpthread -lXrender -lgfortran -# -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS = $(IP_LIB4) \ - $(SP_LIB4) \ - $(BACIO_LIB4) \ - $(W3NCO_LIB4) \ - $(BUFR_LIB4) - -CMD = gdas_trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -openmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/sorc/gridbull.fd/makefile.gaea b/sorc/gridbull.fd/makefile.gaea deleted file mode 100755 index d5295e3ce8..0000000000 --- a/sorc/gridbull.fd/makefile.gaea +++ /dev/null @@ -1,78 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BIN2CHAR.f BIN2EBCD.f BULLET.f GRIDBUL.f PAKWND.f QUADAX.f WINDY.f - -OBJS= BIN2CHAR.o BIN2EBCD.o BULLET.o GRIDBUL.o PAKWND.o QUADAX.o WINDY.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ftn -LDFLAGS = -LIBS= ${W3NCO_LIB4} ${BACIO_LIB4} -CMD = gridbull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -axCORE-AVX2 -fp-model strict -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/gridbull.fd/makefile.jet b/sorc/gridbull.fd/makefile.jet deleted file mode 100755 index 5843db34c7..0000000000 --- a/sorc/gridbull.fd/makefile.jet +++ /dev/null @@ -1,78 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BIN2CHAR.f BIN2EBCD.f BULLET.f GRIDBUL.f PAKWND.f QUADAX.f WINDY.f - -OBJS= BIN2CHAR.o BIN2EBCD.o BULLET.o GRIDBUL.o PAKWND.o QUADAX.o WINDY.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB4} ${BACIO_LIB4} -CMD = gridbull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -fp-model strict -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/navybull.fd/makefile.gaea b/sorc/navybull.fd/makefile.gaea deleted file mode 100755 index fd5705d383..0000000000 --- a/sorc/navybull.fd/makefile.gaea +++ /dev/null @@ -1,79 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:44:09 PM on 03/12/97 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BULHDR.f NAVYBULL.f - -OBJS= BULHDR.o NAVYBULL.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ftn -LDFLAGS = -LIBS = -Xlinker --start-group ${W3EMC_LIB8} ${W3NCO_LIB8} ${BUFR_LIB8} ${BACIO_LIB8} -CMD = navybull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -axCORE-AVX2 -convert big_endian -assume noold_ldout_format -r8 -i8 - -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/navybull.fd/makefile.jet b/sorc/navybull.fd/makefile.jet deleted file mode 100755 index d2fe257759..0000000000 --- a/sorc/navybull.fd/makefile.jet +++ /dev/null @@ -1,79 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:44:09 PM on 03/12/97 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BULHDR.f NAVYBULL.f - -OBJS= BULHDR.o NAVYBULL.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS = -Xlinker --start-group ${W3EMC_LIB8} ${W3NCO_LIB8} ${BUFR_LIB8} ${BACIO_LIB8} -CMD = navybull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -convert big_endian -assume noold_ldout_format -r8 -i8 - -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/relocate_mv_nvortex.fd/makefile_gaea b/sorc/relocate_mv_nvortex.fd/makefile_gaea deleted file mode 100755 index dab4eaeb7e..0000000000 --- a/sorc/relocate_mv_nvortex.fd/makefile_gaea +++ /dev/null @@ -1,38 +0,0 @@ -SHELL= /bin/sh - -##LIBDIR= /contrib/nceplibs/nwprod/lib -##LIBS_REL= -L$(LIBDIR) -lw3nco_v2.0.6_4 -lsigio_v1.0.1_4 -lbacio_v2.0.1_4 /contrib/nceplibs/dev/lib/libsp_v2.0.2_d-12.0.a -##LIBS_SIG= $(LIBDIR)/incmod/sigio_v1.0.1 - -SRCS= modules.f mv_nvortex.f BOUND.f sig_p_convt1.f SEPAR.f \ - WNLIT.f FDUMP.f H12.f I1MACH.f J4SAVE.f XGETUA.f WNLSM.f \ - WNNLS.f XERABT.f XERCTL.f XERPRT.f XERROR.f XERRWV.f XERSAV.f\ - srotm.f srotmg.f amatrix.f rodist.f landcmsk.f w3tagb.f - -OBJS= modules.o mv_nvortex.o BOUND.o sig_p_convt1.o SEPAR.o \ - WNLIT.o FDUMP.o H12.o I1MACH.o J4SAVE.o XGETUA.o WNLSM.o \ - WNNLS.o XERABT.o XERCTL.o XERPRT.o XERROR.o XERRWV.o XERSAV.o \ - srotm.o srotmg.o amatrix.o rodist.o landcmsk.o w3tagb.o - -##FC = ifort - -CMD = relocate_mv_nvortex - -##FFLAGS= -openmp -O3 -g -traceback -r8 -I ${LIBS_SIG} -#LDFLAGS= -mkl --openmp -LDFLAGS= -openmp - -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(FFLAGS) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS_REL) - -clean: - -rm -f *.o *.mod - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -install: - mv $(CMD) ../../exec/$(CMD) - diff --git a/sorc/relocate_mv_nvortex.fd/makefile_jet b/sorc/relocate_mv_nvortex.fd/makefile_jet deleted file mode 100755 index c1679c532b..0000000000 --- a/sorc/relocate_mv_nvortex.fd/makefile_jet +++ /dev/null @@ -1,38 +0,0 @@ -SHELL= /bin/sh - -##LIBDIR= /contrib/nceplibs/nwprod/lib -##LIBS_REL= -L$(LIBDIR) -lw3nco_v2.0.6_4 -lsigio_v1.0.1_4 -lbacio_v2.0.1_4 /contrib/nceplibs/dev/lib/libsp_v2.0.2_d-12.0.a -##LIBS_SIG= $(LIBDIR)/incmod/sigio_v1.0.1 - -SRCS= modules.f mv_nvortex.f BOUND.f sig_p_convt1.f SEPAR.f \ - WNLIT.f FDUMP.f H12.f I1MACH.f J4SAVE.f XGETUA.f WNLSM.f \ - WNNLS.f XERABT.f XERCTL.f XERPRT.f XERROR.f XERRWV.f XERSAV.f\ - srotm.f srotmg.f amatrix.f rodist.f landcmsk.f w3tagb.f - -OBJS= modules.o mv_nvortex.o BOUND.o sig_p_convt1.o SEPAR.o \ - WNLIT.o FDUMP.o H12.o I1MACH.o J4SAVE.o XGETUA.o WNLSM.o \ - WNNLS.o XERABT.o XERCTL.o XERPRT.o XERROR.o XERRWV.o XERSAV.o \ - srotm.o srotmg.o amatrix.o rodist.o landcmsk.o w3tagb.o - -##FC = ifort - -CMD = relocate_mv_nvortex - -##FFLAGS= -openmp -O3 -g -traceback -r8 -I ${LIBS_SIG} -#LDFLAGS= -mkl -lmpi -openmp -LDFLAGS= -mkl -mt_mpi -openmp - -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(FFLAGS) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS_REL) - -clean: - -rm -f *.o *.mod - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -install: - mv $(CMD) ../../exec/$(CMD) - diff --git a/sorc/wintemv.fd/makefile.gaea b/sorc/wintemv.fd/makefile.gaea deleted file mode 100755 index 867940ceb0..0000000000 --- a/sorc/wintemv.fd/makefile.gaea +++ /dev/null @@ -1,83 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BLOCKDATA001.f VALKEY.f XTRACT.f la2la.f readgrib.f \ - w3fc00.f wintemv.f - -OBJS= BLOCKDATA001.o VALKEY.o XTRACT.o la2la.o readgrib.o \ - w3fc00.o wintemv.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB8} ${W3EMC_LIB8} ${BACIO_LIB8} - -CMD = wintemv -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -convert big_endian -r8 -i8 -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index bcf8bac652..9bcea1b7e4 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -583,15 +583,13 @@ WW3_postdet() WW3_nml() { echo "SUB ${FUNCNAME[0]}: Copying input files for WW3" - COMPONENTwave=${COMPONENTwave:-${RUN}wave} + WAV_MOD_TAG=${CDUMP}wave${waveMEMB} $NCP $ROTDIR/${CDUMP}.${PDY}/${cyc}/wave/rundata/ww3_multi.${WAV_MOD_TAG}.${cycle}.inp $DATA/ww3_multi.inp } WW3_out() { echo "SUB ${FUNCNAME[0]}: Copying output data for WW3" - $NCP $DATA/ww3_multi.inp $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/ - $NCP $DATA/mod_def.* $ROTDIR/${COMPONENTwave}.${PDY}/${cyc}/ } MOM6_postdet() diff --git a/ush/getdump.sh b/ush/getdump.sh index 37a7d8c582..3766914f14 100755 --- a/ush/getdump.sh +++ b/ush/getdump.sh @@ -4,8 +4,6 @@ set -x export COMPONENT=${COMPONENT:-atmos} CDATE=${1:-""} -gpdy=$(echo $CDATE | cut -c9-10) -gcyc=$(echo $CDATE | cut -c9-10) CDUMP=${2:-""} SOURCE_DIR=${3:-$DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}} TARGET_DIR=${4:-$ROTDIR/${CDUMP}.${PDY}/$cyc/$COMPONENT} @@ -27,6 +25,7 @@ if [ ! -s $TARGET_DIR ]; then mkdir -p $TARGET_DIR ;fi cyc=`echo $CDATE |cut -c 9-10` prefix="$CDUMP.t${cyc}z." + # Link dump files from SOURCE_DIR to TARGET_DIR cd $SOURCE_DIR if [ -s ${prefix}updated.status.tm00.bufr_d ]; then diff --git a/ush/gfs_bfr2gpk.sh_Jet b/ush/gfs_bfr2gpk.sh_Jet deleted file mode 100755 index 6c7dd666e7..0000000000 --- a/ush/gfs_bfr2gpk.sh_Jet +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -######################################################################### -# # -# Script: gfs_bfr2gpk # -# # -# This script reads GFS BUFR output and transfers it into GEMPAK # -# surface and sounding data files. # -# # -# Log: # -# K. Brill/HPC 04/12/05 # -######################################################################### -set -x - -# Set GEMPAK paths. - -#. /nwprod/gempak/.gempak - -# Go to a working directory. - -cd $DATA - -# Set input directory name. - -#BPATH=$COMIN/bufr.t${cyc}z -BPATH=$COMOUT/bufr.t${cyc}z -export BPATH - -# Set output directory: - -COMAWP=${COMAWP:-$COMROOT/nawips/${envir}/${RUN}.${PDY}} -OUTDIR=$COMAWP -mkdir -p $OUTDIR - -outfilbase=gfs_${PDY}${cyc} - -# Get the list of individual station files. - -date -##filelist=`/bin/ls -1 $BPATH | grep bufr` -##rm -f bufr.combined -##for file in $filelist; do -## cat $BPATH/$file >> bufr.combined -##done - cat $BPATH/bufr.*.${PDY}${cyc} > bufr.combined -date -mpirun -np 12 namsnd << EOF > /dev/null -SNBUFR = bufr.combined -SNOUTF = ${outfilbase}.snd -SFOUTF = ${outfilbase}.sfc -SNPRMF = sngfs.prm -SFPRMF = sfgfs.prm -TIMSTN = 170/2100 -r - -ex -EOF -date - -/bin/rm *.nts - -snd=${outfilbase}.snd -sfc=${outfilbase}.sfc -cp $snd $OUTDIR/.$snd -cp $sfc $OUTDIR/.$sfc -mv $OUTDIR/.$snd $OUTDIR/$snd -mv $OUTDIR/.$sfc $OUTDIR/$sfc - -if [ $SENDDBN = "YES" ] -then - $DBNROOT/bin/dbn_alert MODEL GFS_PTYP_SFC $job $OUTDIR/$sfc - $DBNROOT/bin/dbn_alert MODEL GFS_PTYP_SND $job $OUTDIR/$snd -fi -echo done > $DATA/gembufr.done diff --git a/ush/load_fv3gfs_modules.sh b/ush/load_fv3gfs_modules.sh index 372c5d7eda..b3915bc01c 100755 --- a/ush/load_fv3gfs_modules.sh +++ b/ush/load_fv3gfs_modules.sh @@ -20,8 +20,7 @@ elif [[ -d /scratch1 ]] ; then module load module_base.hera elif [[ -d /work ]] ; then # We are on MSU Orion - module load module_base.orion - + module load module_base.orion elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then # We are on NOAA Luna or Surge module load module_base.wcoss_c diff --git a/ush/rocoto/workflow_utils.py b/ush/rocoto/workflow_utils.py index 4c564f67e7..e8bb16ddd1 100644 --- a/ush/rocoto/workflow_utils.py +++ b/ush/rocoto/workflow_utils.py @@ -36,11 +36,7 @@ def get_shell_env(scripts): vars=dict() runme=''.join([ 'source %s ; '%(s,) for s in scripts ]) magic='--- ENVIRONMENT BEGIN %d ---'%random.randint(0,64**5) - if os.path.isfile('/usr/bin/echo'): - echo_is='/usr/bin/echo' - elif os.path.isfile('/bin/echo'): - echo_is='/bin/echo' - runme+=echo_is+' -n "%s" ; /usr/bin/env -0'%(magic,) + runme+='/bin/echo -n "%s" ; /usr/bin/env -0'%(magic,) with open('/dev/null','wb+') as null: env=subprocess.Popen(runme,shell=True,stdin=null.fileno(), stdout=subprocess.PIPE) @@ -57,12 +53,6 @@ def get_shell_env(scripts): def get_script_env(scripts): default_env=get_shell_env([]) and_script_env=get_shell_env(scripts) - var_script_and_env = [] - for env_var in default_env: - if env_var in and_script_env: - var_script_and_env.append(env_var) - for each_var in var_script_and_env: - del default_env[each_var] vars_just_in_script=set(and_script_env)-set(default_env) union_env=dict(default_env) union_env.update(and_script_env) diff --git a/ush/wave_grib2.sh b/ush/wave_grib2.sh deleted file mode 100755 index c27174a1e5..0000000000 --- a/ush/wave_grib2.sh +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/bash -# -################################################################################ -# -# UNIX Script Documentation Block -# Script name: wave_grib2_sbs.sh -# Script description: Create grib2 files for the wave component -# -# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-07-11 -# Abstract: Creates grib2 files from WW3 binary output -# -# Script history log: -# 2019-11-02 J-Henrique Alves Ported to global-workflow. -# -# $Id$ -# -# Attributes: -# Language: Bourne-again (BASH) shell -# Machine: WCOSS-DELL-P3 -# -# Requirements: -# - wgrib2 with IPOLATES library -# -################################################################################ -# --------------------------------------------------------------------------- # -# 0. Preparations -# 0.a Basic modes of operation - - # set execution trace prompt. ${0##*/} adds the script's basename - PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " - set -x - - # Use LOUD variable to turn on/off trace. Defaults to YES (on). - export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES - [[ "$LOUD" != YES ]] && set +x - - cd $GRIBDATA -# postmsg "$jlogfile" "Making GRIB2 Files." # commented to reduce unnecessary output to jlogfile - - grdID=$1 - gribDIR=${grdID}_grib - rm -rfd ${gribDIR} - mkdir ${gribDIR} - err=$? - if [ $err != 0 ] - then - set +x - echo ' ' - echo '******************************************************************************* ' - echo '*** FATAL ERROR : ERROR IN ww3_grib2 (COULD NOT CREATE TEMP DIRECTORY) *** ' - echo '******************************************************************************* ' - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2 (Could not create temp directory)" - exit 1 - fi - - cd ${gribDIR} - -# 0.b Define directories and the search path. -# The tested variables should be exported by the postprocessor script. - - dtgrib=$2 - ngrib=$3 - GRIDNR=$4 - MODNR=$5 - gribflags=$6 - - set +x - echo ' ' - echo '+--------------------------------+' - echo '! Make GRIB files |' - echo '+--------------------------------+' - echo " Model ID : $WAV_MOD_TAG" - [[ "$LOUD" = YES ]] && set -x - - if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] \ - [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ - [ -z "$dtgrib" ] || [ -z "$ngrib" ] || [ -z "$gribflags" ] || \ - [ -z "$GRIDNR" ] || [ -z "$MODNR" ] || [ -z "$SENDDBN" ] - then - set +x - echo ' ' - echo '***************************************************' - echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' - echo '***************************************************' - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" - exit 1 - fi - -# 0.c Starting time for output - - ymdh=$YMDH - tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" - - set +x - echo " Starting time : $tstart" - echo " Time step : $dtgrib" - echo " Number of times : $ngrib" - echo " GRIB field flags : $gribflags" - echo ' ' - [[ "$LOUD" = YES ]] && set -x - -# 0.e Links to working directory - - ln -s ../mod_def.$grdID mod_def.ww3 - ln -s ../out_grd.$grdID out_grd.ww3 - -# --------------------------------------------------------------------------- # -# 1. Generate GRIB file with all data -# 1.a Generate input file for ww3_grib2 -# Template copied in mother script ... - - set +x - echo " Generate input file for ww3_grib2" - [[ "$LOUD" = YES ]] && set -x - - sed -e "s/TIME/$tstart/g" \ - -e "s/DT/$dtgrib/g" \ - -e "s/NT/$ngrib/g" \ - -e "s/GRIDNR/$GRIDNR/g" \ - -e "s/MODNR/$MODNR/g" \ - -e "s/FLAGS/$gribflags/g" \ - ../ww3_grib2.inp.tmpl > ww3_grib.inp - -# 1.b Run GRIB packing program - - set +x - echo " Run ww3_grib2" - echo " Executing $EXECwave/ww3_grib" - [[ "$LOUD" = YES ]] && set -x - - ln -sf ../$WAV_MOD_TAG.$grdID.${cycle}.grib2 gribfile - $EXECwave/ww3_grib - err=$? - - if [ $err != 0 ] - then - set +x - echo ' ' - echo '********************************************* ' - echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' - echo '********************************************* ' - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" - exit 3 - fi - -# 1.c Clean up - - rm -f ww3_grib.inp - rm -f mod_def.ww3 - rm -f out_grd.ww3 - -# 1.e Save in /com - - if [ "$SENDCOM" = 'YES' ] - then - set +x - echo " Saving GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" - [[ "$LOUD" = YES ]] && set -x - cp -f ${DATA}/$WAV_MOD_TAG.$grdID.$cycle.grib2 $COMOUT/gridded/ - $WGRIB2 -s $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 > $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx - - if [ ! -f $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 ] - then - set +x - echo ' ' - echo '********************************************* ' - echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' - echo '********************************************* ' - echo ' ' - echo " Error in moving grib file $WAV_MOD_TAG.$grdID.$cycle.grib2 to com" - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" - exit 4 - fi - if [ ! -f $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx ] - then - set +x - echo ' ' - echo '*************************************************** ' - echo '*** FATAL ERROR : ERROR IN ww3_grib2 INDEX FILE *** ' - echo '*************************************************** ' - echo ' ' - echo " Error in moving grib file $WAV_MOD_TAG.$grdID.$cycle.grib2idx to com" - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : ERROR IN creating ww3_grib2 index" - exit 4 - fi - - if [ "$SENDDBN" = 'YES' ] - then - set +x - echo " Alerting GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" - echo " Alerting GRIB index file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx" - [[ "$LOUD" = YES ]] && set -x - $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2 $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 - $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2_WIDX $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx - fi - fi - - -# --------------------------------------------------------------------------- # -# 3. Clean up the directory - - set +x - echo " Removing work directory after success." - [[ "$LOUD" = YES ]] && set -x - - cd .. - mv -f ${gribDIR} done.${gribDIR} - - set +x - echo ' ' - echo "End of ww3_grib2.sh at" - date - [[ "$LOUD" = YES ]] && set -x - -# End of ww3_grib2.sh -------------------------------------------------- # diff --git a/ush/wave_grib2_cat.sh b/ush/wave_grib2_cat.sh deleted file mode 100755 index 440a19ee28..0000000000 --- a/ush/wave_grib2_cat.sh +++ /dev/null @@ -1,188 +0,0 @@ -#!/bin/bash -# -################################################################################ -# -# UNIX Script Documentation Block -# Script name: wave_grib2_cat.sh -# Script description: Concatenates files from wave model component -# -# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2014-01-16 -# Abstract: Creates bulletin for NCEP Global Wave Ensemble using grib2 data. -# Values at buoy locations are extracted using wgrib2 bi-linear -# interpolation (-new_grid) and requires IPOLATES lib. -# -# Script history log: -# -# $Id$ -# -# Attributes: -# Language: Bourne-again (BASH) shell -# Machine: WCOSS-DELL-P3 -# -# Requirements: -# - wgrib2 with IPOLATES library -# -################################################################################ -# --------------------------------------------------------------------------- # -# 0. Preparations -# 0.a Basic modes of operation - - # set execution trace prompt. ${0##*/} adds the script's basename - PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " - set -x - - # Use LOUD variable to turn on/off trace. Defaults to YES (on). - export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES - [[ "$LOUD" != YES ]] && set +x - - cd $DATA -# postmsg "$jlogfile" "Catting GRIB2 Files." # commented to reduce unnecessary output to jlogfile - - grdID=$1 - rm -rf grib_$grdID - mkdir grib_$grdID - err=$? - if [ "$err" != '0' ] - then - set +x - echo ' ' - echo '******************************************************************************* ' - echo '*** FATAL ERROR : ERROR IN multiwavegrib2_cat (COULD NOT CREATE TEMP DIRECTORY) *** ' - echo '******************************************************************************* ' - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : ERROR IN multiwavegrib2_cat (Could not create temp directory)" - exit 1 - fi - - cd grib_$grdID - -# 0.b Define directories and the search path. -# The tested variables should be exported by the postprocessor script. - - dtgrib=$2 - ngrib=$3 - GRIDNR=$4 - MODNR=$5 - gribflags=$6 - - set +x - echo ' ' - echo '+--------------------------------+' - echo '! Make GRIB files |' - echo '+--------------------------------+' - echo " Model ID : $WAV_MOD_TAG" - [[ "$LOUD" = YES ]] && set -x - - if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || \ - [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ - [ -z "$SENDDBN" ] - then - set +x - echo ' ' - echo '***************************************************' - echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' - echo '***************************************************' - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" - exit 1 - fi - -# 0.c Starting time for output - - ymdh=$YMDH - tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" - - set +x - echo " Starting time : $tstart" - echo ' ' - [[ "$LOUD" = YES ]] && set -x - -# 0.d sync important files - -# 0.e Links to working directory - -# --------------------------------------------------------------------------- # -# 1. Generate GRIB file with all data - -# 1.b Run GRIB packing program - - - set +x - echo " Catting grib2 files ${COMOUT}/gridded/$WAV_MOD_TAG.$grdID.$cycle.f???.grib2" - [[ "$LOUD" = YES ]] && set -x - - ln -sf ../$WAV_MOD_TAG.$grdID.$cycle.grib2 gribfile - cat ${COMOUT}/gridded/$WAV_MOD_TAG.$grdID.$cycle.f???.grib2 >> gribfile - err=$? - - if [ "$err" != '0' ] - then - set +x - echo ' ' - echo '************************************************* ' - echo '*** FATAL ERROR : ERROR IN multiwavegrib2_cat *** ' - echo '************************************************* ' - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : ERROR IN multiwavegrib2_cat" - exit 3 - fi - -# 1.e Save in /com - - if [ "$SENDCOM" = 'YES' ] - then - set +x - echo " Saving GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" - [[ "$LOUD" = YES ]] && set -x - cp gribfile $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 - - if [ ! -f $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 ] - then - set +x - echo ' ' - echo '********************************************* ' - echo '*** FATAL ERROR : ERROR IN multiwavegrib2 *** ' - echo '********************************************* ' - echo ' ' - echo " Error in moving grib file $WAV_MOD_TAG.$grdID.$cycle.grib2 to com" - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : ERROR IN multiwavegrib2" - exit 4 - fi - - echo " Creating wgrib index of $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" - $WGRIB2 -s $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 > $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx - - if [ "$SENDDBN" = 'YES' ] - then - set +x - echo " Alerting GRIB file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2" - echo " Alerting GRIB index file as $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx" - [[ "$LOUD" = YES ]] && set -x - $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2 $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2 - $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2_WIDX $job $COMOUT/gridded/$WAV_MOD_TAG.$grdID.$cycle.grib2.idx - fi - fi - - -# --------------------------------------------------------------------------- # -# 3. Clean up the directory - - set +x - echo " Removing work directory after success." - [[ "$LOUD" = YES ]] && set -x - - cd .. - mv -f grib_$grdID done.grib_$grdID - - set +x - echo ' ' - echo "End of multiwavegrib2_cat.sh at" - date - [[ "$LOUD" = YES ]] && set -x - -# End of multiwavegrib2.sh -------------------------------------------------- # diff --git a/workflow/cases/coupled_free_forecast_wave.yaml b/workflow/cases/coupled_free_forecast_wave.yaml index c074e71a92..1898e48b19 100644 --- a/workflow/cases/coupled_free_forecast_wave.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -55,6 +55,11 @@ case: wave_settings: WAVPETS: 136 + CPL_WAVIC: CFSR + waveGRD: 'gwes_30m' + wavepostGRD: 'gwes_30m' + waveesmfGRD: '' + waveinterpGRD: '' post: downset: 2 diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 11a4d02e55..8d65a83253 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -165,6 +165,12 @@ config_fcst: export sppt_sfclimit=.true. export use_zmtnblck=.true. + + if [[ $cplwav = ".true." ]]; then + export DO_WAVE="YES" + else + export DO_WAVE="NO" + fi #--------------------------------------------------------------------- # Disable the use of coupler.res; get model start time from model_configure export USE_COUPLER_RES="NO" diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index f537f2c28e..eeca0651da 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -13,31 +13,28 @@ config_wave: echo "BEGIN: config.wave" export wave_sys_ver=v1.0.0 - export COMPONENTRSTwave={doc.wave_settings.COMPONENTRSTwave} - export HOMEwave={doc.places.HOMEgfs} - export HOMEgefs={doc.places.HOMEgfs} - + export CDUMPRSTwave="gdas" + # Grids for wave model export waveGRD='{doc.wave_settings.waveGRD}' export waveGRDN='{doc.wave_settings.waveGRDN}' # gridnumber for ww3_multi - export waveGRDG='10 20 30' # gridgroup for ww3_multi + export waveGRDG='{doc.wave_settings.waveGRDG}' # gridgroup for ww3_multi export USE_WAV_RMP='{doc.wave_settings.USE_WAV_RMP}' #yes/no rmp grid remapping pre-processed coefficients # ESMF input grid - export waveesmfGRD='' # input grid + export waveesmfGRD='{doc.wave_settings.waveesmfGRD}' # input grid # Grids for output fields export waveuoutpGRD=points - export waveinterpGRD='' # Grids that need to be interpolated from native + export waveinterpGRD='{doc.wave_settings.waveinterpGRD}' # Grids that need to be interpolated from native # in POST will generate grib unless gribOK not set export wavesbsGRD='' # side-by-side grids generated as wave model runs, writes to com - export wavepostGRD='gwes_30m' # Native grids that will be post-processed (grib2) - + export wavepostGRD='{doc.wave_settings.wavepostGRD}' # Native grids that will be post-processed (grib2) + + export FHMAX_WAV={doc.output_settings.FHMAX_GFS} if [ "$CDUMP" = "gdas" ] then - export FHMAX_WAV={doc.output_settings.FHMAX_GDAS} #for coupled model, use GDAS - else - export FHMAX_WAV={doc.output_settings.FHMAX_GFS} #for coupled model, use GFS + export FHMAX_WAV={doc.output_settings.FHMAX_GDAS} #if GDAS use GDAS fi export WAVHINDH={doc.wave_settings.WAVHINDH} export FHMIN_WAV={doc.output_settings.FHMIN_WAV} @@ -127,14 +124,7 @@ config_wave: # # Path to HOME Directory export EXECwave="{doc.places.HOMEgfs}/exec" export FIXwave="{doc.places.FIXwave}" - export PARMwave="{doc.places.HOMEgfs}/parm/wave" export USHwave="{doc.places.HOMEgfs}/ush" # - - export wavelog=$COMOUTwave/wave.log - - # # Set wave model ID tag to include member number - # # if ensemble; waveMEMB var empty in deterministic - export WAV_MOD_TAG=$COMPONENTwave$waveMEMB # echo "END: config.wave" diff --git a/workflow/config/waveinit.yaml b/workflow/config/waveinit.yaml index 429d89cbfc..5424a09979 100644 --- a/workflow/config/waveinit.yaml +++ b/workflow/config/waveinit.yaml @@ -11,7 +11,5 @@ config_waveinit: # Common to all steps echo "BEGIN: config.waveinit" - - export sigMODE="{doc.wave_settings.sigMODE}" echo "END: config.waveinit" diff --git a/workflow/config/waveprep.yaml b/workflow/config/waveprep.yaml index ea4ebd6ec2..1db8d1aa3a 100644 --- a/workflow/config/waveprep.yaml +++ b/workflow/config/waveprep.yaml @@ -12,15 +12,14 @@ config_waveprep: echo "BEGIN: config.waveprep" - export sigMODE="{doc.wave_settings.sigMODE}" - - export HOUR_INC=3 # This value should match with the one used in - export GOFILETYPE=1 - export POFILETYPE=1 - - export FUNIPNT="T" + export HOUR_INC=3 + export GOFILETYPE=1 # GOFILETYPE=1 one gridded file per output step + export POFILETYPE=1 # POFILETYPE=1 one point file per output step + + #Unified point output T or F + export FUNIPNT="T" #Unified point output T or F # Unified output server type (see ww3_multi.inp in WW3 repo) - export IOSRV="1" + export IOSRV="1" # # Flag for dedicated output process for unified points export FPNTPROC="T" # # Flag for grids sharing dedicated output processes @@ -30,4 +29,4 @@ config_waveprep: # Flag for masking at printout time. export FLAGMASKOUT="F" # - echo "END: config.waveprep" + echo "END: config.waveprep" diff --git a/workflow/defaults/output_settings.yaml b/workflow/defaults/output_settings.yaml index 83b3d58d31..935cf0d759 100644 --- a/workflow/defaults/output_settings.yaml +++ b/workflow/defaults/output_settings.yaml @@ -40,13 +40,9 @@ output_settings_defaults: &output_settings_defaults wave_output_settings_defaults: &wave_output_settings_defaults FHMIN_WAV: 0 - FHMAX_WAV: 9 - FHMAX_WAV_GFS: 384 FHOUT_WAV: 3 FHMAX_HF_WAV: 120 FHOUT_HF_WAV: 3 - FHMAX_WAV_CUR: 48 - OUTPARS_WAV: "WND CUR ICE HS T01 T02 DIR FP DP PHS PTP PDIR CHAR" diff --git a/workflow/defaults/wave.yaml b/workflow/defaults/wave.yaml index f95b91ec92..10fd9e032c 100644 --- a/workflow/defaults/wave.yaml +++ b/workflow/defaults/wave.yaml @@ -5,13 +5,14 @@ wave_defaults: &wave_defaults - when: !calc doc.settings.cplwav==".true." do: 24 - otherwise: 0 - COMPONENTRSTwave: gdaswave WAVHINDH: 0 RUNMEM: -1 - sigMODE: prep - waveGRD: 'gwes_30m' + waveGRD: 'gnh_10m aoc_9km gsh_15m' waveGRDN: '1 2 3' waveGRDG: '10 20 30' + waveesmfGRD: 'glox_10m' + waveinterpGRD: 'glo_15mxt at_10m ep_10m wc_10m ak_10m glo_30m' + wavepostGRD: 'gnh_10m aoc_9km gsh_15m' USE_WAV_RMP: 'NO' WAV_CUR_DT: 3 WAV_CUR_HF_DT: 1