Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ocean/ice product generation for GFS and GEFS #2286

Merged
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
a8e12f6
wip
aerorahul Dec 29, 2023
b862705
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 8, 2024
9f62533
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 8, 2024
9f4533a
work cice output and ice filenames
aerorahul Jan 10, 2024
d7e00b2
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 10, 2024
90fab15
wip
aerorahul Jan 12, 2024
e9de66f
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 17, 2024
3b54968
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 18, 2024
b89f539
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 22, 2024
43232fc
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 22, 2024
76d09bc
Write mediator restarts to CMEPS_RESTART/ instead of RESTART/
aerorahul Jan 22, 2024
f116a32
link ocean/ice post-processing stuff from gfs-utils
aerorahul Jan 22, 2024
33dae8f
add a rocoto job, jjob, config file and resources for ocean/ice produ…
aerorahul Jan 22, 2024
cd7b7be
add oceanice_products.yaml and declare ocean/ice grib2 directory name…
aerorahul Jan 23, 2024
c922dea
working ocean products
aerorahul Jan 31, 2024
fa610ed
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Jan 31, 2024
552bb7b
updates to workflow generation scripts
aerorahul Feb 1, 2024
e7d8468
clean-up
aerorahul Feb 1, 2024
a4d850c
fixes
aerorahul Feb 2, 2024
c619784
update hash of gfs-utils submodule
aerorahul Feb 2, 2024
d1d415f
fix shellnorm and update CMEPS_out to only copy the last mediator res…
aerorahul Feb 2, 2024
6525773
remove ocnpost from workflow
aerorahul Feb 2, 2024
3a27424
update archive script to archive ocean/ice output and products
aerorahul Feb 2, 2024
82494f0
increase UPP memory for C768
aerorahul Feb 2, 2024
e387208
update env files for other machines
aerorahul Feb 2, 2024
c5f84aa
Apply suggestions from code review - batch 1
aerorahul Feb 5, 2024
5da925d
remove unnecessary redefinitions in predet
aerorahul Feb 5, 2024
d232b4d
fix shellcheck errors
aerorahul Feb 5, 2024
4abdd40
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Feb 5, 2024
8eb84e7
adapt for ocean/ice output frequency
aerorahul Feb 5, 2024
2a71a27
consolidate CICE output links to COM for gfs/gdas
aerorahul Feb 5, 2024
8f2bb7c
rename {component}{prod} to {component}_{prod}. add ocean/ice produc…
aerorahul Feb 5, 2024
4a5ded9
add ocean ice prodgen for gefs
aerorahul Feb 5, 2024
f0c76f5
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Feb 5, 2024
1aa7197
fix missing level from copy/paste in the oceanice_products.yaml
aerorahul Feb 5, 2024
26b0a9a
update metadata for date and forecast hour in the grib2 product file
aerorahul Feb 5, 2024
ce20bee
add missing key in the local task dict
aerorahul Feb 5, 2024
1b336e2
remove xsect ocean vars and add COM_OCEAN_NETCDF for netcdf products.
aerorahul Feb 7, 2024
de32912
placeholder for ocean netcdf products
aerorahul Feb 7, 2024
fdb9007
apply comments from review to replace SALTY with SALIN and remove sca…
aerorahul Feb 8, 2024
a7822c2
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Feb 8, 2024
c54a4fa
add COM_ICE_NETCDF_TMPL for any ice netcdf products that we may have …
aerorahul Feb 9, 2024
97f99fc
perform subsetting of model native output for products
aerorahul Feb 9, 2024
7de1739
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Feb 12, 2024
abea49d
remove not required variables from ocean native product files
aerorahul Feb 12, 2024
30fc5f7
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Feb 12, 2024
16fd4ee
remove sst_h from ice native netcdf products. fix gefs dependency for…
aerorahul Feb 12, 2024
2f4e17b
missed a couple dependencies for gefs products
aerorahul Feb 12, 2024
0579eb6
fix undefined variable in forecast_postdet.sh that impacted RUN=gdas
aerorahul Feb 12, 2024
c9fde0e
update the dependency for prepoceanobs for updated filename
aerorahul Feb 12, 2024
9930d05
Merge branch 'develop' into feature/ocean_ice_output
aerorahul Feb 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ parm/post/postxconfig-NT-GFS-WAFS.txt
parm/post/postxconfig-NT-GFS.txt
parm/post/postxconfig-NT-gefs-aerosol.txt
parm/post/postxconfig-NT-gefs-chem.txt
parm/post/ocean.csv
parm/post/ice.csv
parm/post/ocnicepost.nml.jinja2
parm/ufs/noahmptable.tbl
parm/ufs/model_configure.IN
parm/ufs/MOM_input_*.IN
Expand Down Expand Up @@ -138,6 +141,7 @@ sorc/tocsbufr.fd
sorc/upp.fd
sorc/vint.fd
sorc/webtitle.fd
sorc/ocnicepost.fd

# Ignore scripts from externals
#------------------------------
Expand Down
7 changes: 7 additions & 0 deletions env/HERA.env
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,13 @@ elif [[ "${step}" = "atmos_products" ]]; then

export USE_CFP="YES" # Use MPMD for downstream product generation on Hera

elif [[ "${step}" = "oceanice_products" ]]; then

nth_max=$((npe_node_max / npe_node_oceanice_products))

export NTHREADS_OCNICEPOST=${nth_oceanice_products:-1}
export APRUN_OCNICEPOST="${launcher} -n 1 --cpus-per-task=${NTHREADS_OCNICEPOST}"

elif [[ "${step}" = "ecen" ]]; then

nth_max=$((npe_node_max / npe_node_ecen))
Expand Down
39 changes: 39 additions & 0 deletions jobs/JGLOBAL_OCEANICE_PRODUCTS
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/preamble.sh"
source "${HOMEgfs}/ush/jjob_header.sh" -e "oceanice_products" -c "base oceanice_products"


##############################################
# Begin JOB SPECIFIC work
##############################################

# Construct COM variables from templates
if [[ "${COMPONENT}" == "ocean" ]]; then YMD=${PDY} HH=${cyc} generate_com -rx COM_OCEAN_HISTORY COM_OCEAN_GRIB; fi
if [[ "${COMPONENT}" == "ice" ]]; then YMD=${PDY} HH=${cyc} generate_com -rx COM_ICE_HISTORY COM_ICE_GRIB; fi
aerorahul marked this conversation as resolved.
Show resolved Hide resolved

###############################################################
# Run exglobal script
"${HOMEgfs}/scripts/exglobal_oceanice_products.py"
status=$?
(( status != 0 )) && exit "${status}"

##############################################
# End JOB SPECIFIC work
##############################################

##############################################
# Final processing
##############################################
if [[ -e "${pgmout}" ]]; then
cat "${pgmout}"
fi

##########################################
# Remove the Temporary working directory
##########################################
cd "${DATAROOT}" || exit 1
[[ "${KEEPDATA:-NO}" == "NO" ]] && rm -rf "${DATA}"


exit 0
37 changes: 37 additions & 0 deletions jobs/rocoto/oceanice_products.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/preamble.sh"

###############################################################
## ocean ice products driver script
## FHRLST : forecast hour list to post-process (e.g. f000, f000_f001_f002, ...)
###############################################################

# Source FV3GFS workflow modules
. "${HOMEgfs}/ush/load_fv3gfs_modules.sh"
status=$?
if (( status != 0 )); then exit "${status}"; fi

###############################################################
# setup python path for workflow utilities and tasks
wxflowPATH="${HOMEgfs}/ush/python:${HOMEgfs}/ush/python/wxflow/src"
PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}${wxflowPATH}"
export PYTHONPATH

export job="oceanice_products"
export jobid="${job}.$$"

###############################################################
# shellcheck disable=SC2153,SC2001
IFS='_' read -ra fhrs <<< "${FHRLST//f}" # strip off the 'f's and convert to array

#---------------------------------------------------------------
# Execute the JJOB
for fhr in "${fhrs[@]}"; do
export FORECAST_HOUR=$(( 10#${fhr} ))
"${HOMEgfs}/jobs/JGLOBAL_OCEANICE_PRODUCTS"
status=$?
if (( status != 0 )); then exit "${status}"; fi
done

exit 0
2 changes: 2 additions & 0 deletions parm/config/gfs/config.com
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ declare -rx COM_OCEAN_GRIB_GRID_TMPL=${COM_OCEAN_GRIB_TMPL}'/${GRID}'
declare -rx COM_ICE_INPUT_TMPL=${COM_BASE}'/model_data/ice/input'
declare -rx COM_ICE_HISTORY_TMPL=${COM_BASE}'/model_data/ice/history'
declare -rx COM_ICE_RESTART_TMPL=${COM_BASE}'/model_data/ice/restart'
declare -rx COM_ICE_GRIB_TMPL=${COM_BASE}'/products/ice/grib2'
declare -rx COM_ICE_GRIB_GRID_TMPL=${COM_ICE_GRIB_TMPL}'/${GRID}'

declare -rx COM_CHEM_HISTORY_TMPL=${COM_BASE}'/model_data/chem/history'
declare -rx COM_CHEM_ANALYSIS_TMPL=${COM_BASE}'/analysis/chem'
Expand Down
15 changes: 15 additions & 0 deletions parm/config/gfs/config.oceanice_products
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#! /usr/bin/env bash

########## config.oceanice_products ##########

echo "BEGIN: config.oceanice_products"

# Get task specific resources
source "${EXPDIR}/config.resources" oceanice_products

export OCEANICEPRODUCTS_CONFIG="${HOMEgfs}/parm/post/oceanice_products.yaml"

# No. of forecast hours to process in a single job
export NFHRS_PER_GROUP=3

echo "END: config.oceanice_products"
21 changes: 8 additions & 13 deletions parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ if (( $# != 1 )); then
echo "tracker genesis genesis_fsu"
echo "verfozn verfrad vminmon fit2obs metp arch cleanup"
echo "eobs ediag eomg eupd ecen esfc efcs epos earc"
echo "init_chem mom6ic ocnpost"
echo "init_chem mom6ic oceanice_products"
echo "waveinit waveprep wavepostsbs wavepostbndpnt wavepostbndpntbll wavepostpnt"
echo "wavegempak waveawipsbulls waveawipsgridded"
echo "postsnd awips gempak npoess"
Expand Down Expand Up @@ -644,17 +644,12 @@ case ${step} in
unset NTASKS_TOT
;;

"ocnpost")
export wtime_ocnpost="00:30:00"
export npe_ocnpost=1
export npe_node_ocnpost=1
export nth_ocnpost=1
export memory_ocnpost="96G"
if [[ ${machine} == "JET" ]]; then
# JET only has 88GB of requestable memory per node
# so a second node is required to meet the requiremtn
npe_ocnpost=2
fi
"oceanice_products")
export wtime_oceanice_products="00:30:00"
export npe_oceanice_products=1
export npe_node_oceanice_products=1
export nth_oceanice_products=1
export memory_oceanice_products="96G"
;;

"upp")
Expand Down Expand Up @@ -926,7 +921,7 @@ case ${step} in
export nth_eupd=4
fi
;;
*)
*)
echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${CASE}"
exit 4
;;
Expand Down
71 changes: 71 additions & 0 deletions parm/post/oceanice_products.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
ocnicepost:
executable: "ocnicepost.x"
namelist:
interpolation_weights_dir: "{{ DATA }}/"
debug: False
fix_data:
mkdir:
- "{{ DATA }}"
copy:
- ["{{ HOMEgfs }}/exec/ocnicepost.x", "{{ DATA }}/"]
- ["{{ HOMEgfs }}/parm/post/ocnicepost.nml.jinja2", "{{ DATA }}/"]
- ["{{ HOMEgfs }}/parm/post/{{ component }}.csv", "{{ DATA }}/"]
- ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Bu.to.Ct.bilinear.nc", "{{ DATA }}/"]
- ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Cu.to.Ct.bilinear.nc", "{{ DATA }}/"]
- ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Cv.to.Ct.bilinear.nc", "{{ DATA }}/"]
{% for grid in product_grids %}
- ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Ct.to.rect.{{ grid }}.bilinear.nc", "{{ DATA }}/"]
- ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Ct.to.rect.{{ grid }}.conserve.nc", "{{ DATA }}/"]
- ["{{ HOMEgfs }}/fix/mom6/post/template.global.{{ grid }}.gb2", "{{ DATA }}/"]
{% endfor %}

nc2grib2:
script: "{{ HOMEgfs }}/ush/oceanice_nc2grib2.sh"
avg_period: "0-6"

ocean:
namelist:
ftype: "ocean"
maskvar: "temp"
sinvar: "sin_rot"
cosvar: "cos_rot"
angvar: ""
{% if model_grid == 'mx025' or model_grid == 'mx050' or model_grid == 'mx100' %}
ocean_levels: [5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 105, 115, 125, 135, 145, 155, 165, 175, 185, 195, 205, 215.86945, 241.06255, 266.5239, 308.7874, 373.9288, 467.3998, 593.87915, 757.1453, 959.97325, 1204.059, 1489.9735, 1817.1455, 2183.879, 2587.3995, 3023.9285, 3488.7875, 3976.524, 4481.0625]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jiandewang is right. 225 m is missing. It should be 215 and 225.86945, not 215.86945. @aerorahul, please fix this. Thanks!

levlst="5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 155 165 175 185 195 205 215 225.86945 241.06255 266.5239 308.7874 373.9288 467.3998 593.87915 757.1453 959.97325 1204.059 1489.9735 1817.1455 2183.879 2587.3995 3023.9285 3488.7875 3976.524 4481.0625"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @GwenChen-NOAA. It has been fixed now. Apologies for the copy/paste error.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jiandewang @GwenChen-NOAA
I have rewound the f006-f018 job and rerun with the updated levels. Please verify the output for f006, f012 or f018.
f018 for convenience is at /scratch1/NCEPDEV/stmp2/Rahul.Mahajan/RUNTESTS/COMROOT/oi2/gfs.20160701/00//products/ocean/grib2/0p25/gfs.ocean.t00z.0p25.f018.grib2

{% elif model_grid == 'mx500' %}
ocean_levels: [5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 105, 115, 125, 135, 145, 155, 165, 175, 185, 195, 205, 215.86945, 241.06255, 266.5239, 308.7874]
{% endif %}
data_in:
copy:
- ["{{ COM_OCEAN_HISTORY }}/{{ RUN }}.ocean.t{{ current_cycle | strftime('%H') }}z.6hr_avg.f{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/ocean.nc"]
data_out:
mkdir:
{% for grid in product_grids %}
- "{{ COM_OCEAN_GRIB }}/{{ grid }}"
WalterKolczynski-NOAA marked this conversation as resolved.
Show resolved Hide resolved
{% endfor %}
copy:
{% for grid in product_grids %}
- ["{{ DATA }}/ocean.{{ grid }}.grib2", "{{ COM_OCEAN_GRIB }}/{{ grid }}/{{ RUN }}.ocean.t{{ current_cycle | strftime('%H') }}z.{{ grid }}.f{{ '%03d' % forecast_hour }}.grib2"]
- ["{{ DATA }}/ocean.{{ grid }}.grib2.idx", "{{ COM_OCEAN_GRIB }}/{{ grid }}/{{ RUN }}.ocean.t{{ current_cycle | strftime('%H') }}z.{{ grid }}.f{{ '%03d' % forecast_hour }}.grib2.idx"]
{% endfor %}

ice:
namelist:
ftype: "ice"
maskvar: "tmask"
sinvar: ""
cosvar: ""
angvar: "ANGLET"
data_in:
copy:
- ["{{ COM_ICE_HISTORY }}/{{ RUN }}.ice.t{{ current_cycle | strftime('%H') }}z.6hr_avg.f{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/ice.nc"]
data_out:
mkdir:
{% for grid in product_grids %}
- "{{ COM_ICE_GRIB }}/{{ grid }}"
WalterKolczynski-NOAA marked this conversation as resolved.
Show resolved Hide resolved
{% endfor %}
copy:
{% for grid in product_grids %}
- ["{{ DATA }}/ice.{{ grid }}.grib2", "{{ COM_ICE_GRIB }}/{{ grid }}/{{ RUN }}.ice.t{{ current_cycle | strftime('%H') }}z.{{ grid }}.f{{ '%03d' % forecast_hour }}.grib2"]
- ["{{ DATA }}/ice.{{ grid }}.grib2.idx", "{{ COM_ICE_GRIB }}/{{ grid }}/{{ RUN }}.ice.t{{ current_cycle | strftime('%H') }}z.{{ grid }}.f{{ '%03d' % forecast_hour }}.grib2.idx"]
{% endfor %}
4 changes: 4 additions & 0 deletions scripts/exglobal_forecast.sh
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,11 @@ common_predet

echo "MAIN: Loading variables before determination of run type"
FV3_predet
[[ ${cplflx} = .true. ]] && CMEPS_predet
[[ ${cplflx} = .true. ]] && MOM6_predet
[[ ${cplwav} = .true. ]] && WW3_predet
[[ ${cplice} = .true. ]] && CICE_predet
[[ ${cplchm} = .true. ]] && GOCART_predet
echo "MAIN: Variables before determination of run type loaded"

echo "MAIN: Determining run type"
Expand All @@ -119,6 +121,7 @@ echo "MAIN: RUN Type Determined"

echo "MAIN: Post-determination set up of run type"
FV3_postdet
[[ ${cplflx} = .true. ]] && CMEPS_postdet
[[ ${cplflx} = .true. ]] && MOM6_postdet
[[ ${cplwav} = .true. ]] && WW3_postdet
[[ ${cplice} = .true. ]] && CICE_postdet
Expand Down Expand Up @@ -154,6 +157,7 @@ ${ERRSCRIPT} || exit "${err}"

FV3_out
[[ ${cplflx} = .true. ]] && MOM6_out
[[ ${cplflx} = .true. ]] && CMEPS_out
[[ ${cplwav} = .true. ]] && WW3_out
[[ ${cplice} = .true. ]] && CICE_out
[[ ${cplchm} = .true. ]] && GOCART_out
Expand Down
49 changes: 49 additions & 0 deletions scripts/exglobal_oceanice_products.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/usr/bin/env python3

import os

from wxflow import AttrDict, Logger, logit, cast_strdict_as_dtypedict
from pygfs.task.oceanice_products import OceanIceProducts

# initialize root logger
logger = Logger(level=os.environ.get("LOGGING_LEVEL", "DEBUG"), colored_log=True)


@logit(logger)
def main():

config = cast_strdict_as_dtypedict(os.environ)

# Instantiate the OceanIce object
oceanice = OceanIceProducts(config)

# Pull out all the configuration keys needed to run the rest of steps
keys = ['HOMEgfs', 'DATA', 'current_cycle', 'RUN', 'NET',
'COM_OCEAN_HISTORY', 'COM_OCEAN_GRIB',
'COM_ICE_HISTORY', 'COM_ICE_GRIB',
'APRUN_OCNICEPOST',
'component', 'forecast_hour', 'valid_datetime',
'model_grid', 'product_grids', 'oceanice_yaml']
oceanice_dict = AttrDict()
for key in keys:
oceanice_dict[key] = oceanice.task_config[key]

# Initialize the DATA/ directory; copy static data
oceanice.initialize(oceanice_dict)

for grid in oceanice_dict.product_grids:

logger.info(f"Processing {grid} grid")

# Configure DATA/ directory for execution; prepare namelist etc.
oceanice.configure(oceanice_dict, grid)

# Run the oceanice post executable to interpolate and create grib2 files
oceanice.execute(oceanice_dict, grid)

# Copy processed output from execute
oceanice.finalize(oceanice_dict)


if __name__ == '__main__':
main()
13 changes: 9 additions & 4 deletions sorc/link_workflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -135,16 +135,20 @@ for file in postxconfig-NT-GEFS-F00.txt postxconfig-NT-GEFS.txt postxconfig-NT-G
postxconfig-NT-GFS-ANL.txt postxconfig-NT-GFS-F00.txt postxconfig-NT-GFS-FLUX-F00.txt \
postxconfig-NT-GFS.txt postxconfig-NT-GFS-FLUX.txt postxconfig-NT-GFS-GOES.txt \
postxconfig-NT-GFS-F00-TWO.txt postxconfig-NT-GFS-TWO.txt \
params_grib2_tbl_new post_tag_gfs128 post_tag_gfs65 nam_micro_lookup.dat
params_grib2_tbl_new post_tag_gfs128 post_tag_gfs65 nam_micro_lookup.dat
do
${LINK_OR_COPY} "${HOMEgfs}/sorc/upp.fd/parm/${file}" .
done
for file in optics_luts_DUST.dat optics_luts_DUST_nasa.dat optics_luts_NITR_nasa.dat \
optics_luts_SALT.dat optics_luts_SALT_nasa.dat optics_luts_SOOT.dat optics_luts_SOOT_nasa.dat \
optics_luts_SUSO.dat optics_luts_SUSO_nasa.dat optics_luts_WASO.dat optics_luts_WASO_nasa.dat
optics_luts_SUSO.dat optics_luts_SUSO_nasa.dat optics_luts_WASO.dat optics_luts_WASO_nasa.dat
do
${LINK_OR_COPY} "${HOMEgfs}/sorc/upp.fd/fix/chem/${file}" .
done
for file in ice.csv ocean.csv ocnicepost.nml.jinja2
do
${LINK_OR_COPY} "${HOMEgfs}/sorc/gfs_utils.fd/parm/ocnicepost/${file}" .
done

cd "${HOMEgfs}/scripts" || exit 8
${LINK_OR_COPY} "${HOMEgfs}/sorc/ufs_utils.fd/scripts/exemcsfc_global_sfc_prep.sh" .
Expand Down Expand Up @@ -243,7 +247,7 @@ cd "${HOMEgfs}/exec" || exit 1

for utilexe in fbwndgfs.x gaussian_sfcanl.x gfs_bufr.x supvit.x syndat_getjtbul.x \
syndat_maksynrc.x syndat_qctropcy.x tocsbufr.x overgridid.x \
mkgfsawps.x enkf_chgres_recenter_nc.x tave.x vint.x reg2grb2.x
mkgfsawps.x enkf_chgres_recenter_nc.x tave.x vint.x reg2grb2.x ocnicepost.x
do
[[ -s "${utilexe}" ]] && rm -f "${utilexe}"
${LINK_OR_COPY} "${HOMEgfs}/sorc/gfs_utils.fd/install/bin/${utilexe}" .
Expand Down Expand Up @@ -405,7 +409,8 @@ for prog in enkf_chgres_recenter_nc.fd \
tave.fd \
tocsbufr.fd \
vint.fd \
webtitle.fd
webtitle.fd \
ocnicepost.fd
do
if [[ -d "${prog}" ]]; then rm -rf "${prog}"; fi
${LINK_OR_COPY} "gfs_utils.fd/src/${prog}" .
Expand Down
2 changes: 1 addition & 1 deletion ush/forecast_det.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
## This script is a definition of functions.
#####

# For all non-evironment variables
# For all non-environment variables
# Cycling and forecast hour specific parameters

FV3_det(){
Expand Down
Loading
Loading