ufs-community / regional_workflow

THIS REPOSITORY IS NOW DEPRECATED; SEE UFS SRW APP FOR CURRENT CODE
https://github.com/ufs-community/ufs-srweather-app
Other
10 stars 86 forks source link

Port to Cheyenne #39

Closed JulieSchramm closed 4 years ago

JulieSchramm commented 5 years ago

This involves minor changes to the NOAA-EMC/regional_workflow repo. New modulefiles for Cheyenne will be needed for the VLAB UFS_UTILS repo. The NCEP gfsio library needs to be added the NCAR/NCEPlibs github repo, and these libraries will have to be built on Cheyenne to include the additional libraries used by the utilities.

mkavulich commented 4 years ago

For now, putting static data necessary for running in /glade/p/ral/jntp/UFS_CAM/; we can discuss whether this is a good permanent place or not

gsketefian commented 4 years ago

Here are some hopefully helpful comments about this issue.

In the experiment generation scripts, you can specify the base directories (not yet the full paths; those are in the variable sysdir discussed below) on disk where the external model data are located via the variables EXTRN_MDL_FILES_SYSBASEDIR_ICS (for initial condition data) and EXTRN_MDL_FILES_SYSBASEDIR_LBCS (for lateral boundary condition data). These are set in the script ush/set_extrn_mdl_params.sh for any combination of machine (e.g. hera) and external model (e.g. FV3GFS). Then, in ush/get_extrn_mdl_file_dir_info.sh, one or the other of these two variables gets set to the local variable sysbasedir, which is then used to set the local variable sysdir, which is the full directory in which the data are found (including all cycle information in the path name like year, month, day, and hour). For example, on hera and for the FV3GFS model, we set EXTRN_MDL_FILES_SYSBASEDIR_ICS and EXTRN_MDL_FILES_SYSBASEDIR_LBCS in ush/set_extrn_mdl_params.sh as follows:

EXTRN_MDL_FILES_SYSBASEDIR_ICS="/scratch1/NCEPDEV/hwrf/noscrub/hafs-input/COMGFS" EXTRN_MDL_FILES_SYSBASEDIR_LBCS="/scratch1/NCEPDEV/hwrf/noscrub/hafs-input/COMGFS"

Then in ush/get_extrn_mdl_file_dir_info.sh, we set sysbasedir as

sysbasedir=${EXTRN_MDL_FILES_SYSBASEDIR_ICS} or sysbasedir=${EXTRN_MDL_FILES_SYSBASEDIR_LBCS}

depending on whether we're dealing with ICs or LBCs. Then, again in ush/get_extrn_mdl_file_dir_info.sh (and still for FV3GFS on hera), we set the full directory to the files as

sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}"

where yyyymmdd and hh are variables containing the year/month/day and hour of the current cycle, respectively.

Thus, for FV3GFS data on cheyenne, you have to first set in ush/set_extrn_mdl_params.sh:

EXTRN_MDL_FILES_SYSBASEDIR_ICS="/glade/p/ral/jntp/UFS_CAM/" and EXTRN_MDL_FILES_SYSBASEDIR_LBCS="/glade/p/ral/jntp/UFS_CAM/"

Then, in ush/get_extrn_mdl_file_dir_info.sh, you have to create a stanza for cheyenne (under the case of extrn_mdl_name being set to "FV3GFS") that set sysdir the way you've arranged the data on cheyenne under /glade/p/ral/jntp/UFS_CAM/. If you decide to use the same directory structure as for FV3GFS on hera, then your cheyenne stanza would get added under the "FV3GFS" case, so the final section of code for "FV3GFS" (starting around line 542) would look like this:

"FV3GFS") case "$MACHINE" in "WCOSS_C") sysdir="$sysbasedir/gfs.${yyyymmdd}" ;; ... "ODIN") sysdir="$sysbasedir/${yyyymmdd}" ;; "CHEYENNE") sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}" ;; *) print_err_msg_exit "\ The system directory in which to look for external model output files has not been specified for this external model and machine combination: extrn_mdl_name = \"${extrn_mdl_name}\" MACHINE = \"$MACHINE\"" ;; esac ;;

i.e. same as that for hera.

Hope that is helpful.

jwolff-ncar commented 4 years ago

Also see: https://github.com/NOAA-EMC/regional_workflow/issues/10 for where fix files are for the global release.

fentoad72 commented 4 years ago

this includes a nightly build test done first by a cronjob and later by Travis.

mkavulich commented 4 years ago

Resolved with #188