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

[DO NOT MERGE] UW Demo for make_ics #6

Open
wants to merge 1 commit into
base: production/AQM.v7
Choose a base branch
from

Conversation

christinaholtNOAA
Copy link
Owner

DESCRIPTION OF CHANGES:

This PR shows the diffs to the AQM Production branch using refactored, UW-enabled SRW and UW Tools.

The code is untested and for demo purposes only.

export subcyc='00'
export SLASH_ENSMEM_SUBDIR=''
export ENSMEM_INDX='##'

Copy link
Owner Author

Choose a reason for hiding this comment

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

Pulling out all the SRW stuff that get's in the way -- these aren't needed for Production AQM and can serve as red-herrings when debugging.

This is the J-job script for the task that generates initial condition
(IC), surface, and zeroth-hour lateral boundary condition (LBC0) files
for the FV3 (in NetCDF format).
========================================================================"
Copy link
Owner Author

Choose a reason for hiding this comment

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

Is all this logging helpful when set -x is turned on?

# Set environment only when RUN_TASK_GET_EXTRN_ICS is false.
#-----------------------------------------------------------------------
#
if [ "${RUN_TASK_GET_EXTRN_ICS}" = "FALSE" ]; then
Copy link
Owner Author

Choose a reason for hiding this comment

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

Maybe this is still used in some cases, but it seems like it might be more straightforward just to have this script always handle this.

Again, this is removed for demo purposes only.

#
export KMP_AFFINITY=${KMP_AFFINITY_MAKE_ICS}
export OMP_NUM_THREADS=${OMP_NUM_THREADS_MAKE_ICS}
export OMP_STACKSIZE=${OMP_STACKSIZE_MAKE_ICS}
Copy link
Owner Author

Choose a reason for hiding this comment

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

Run time environment is handled by the UW Driver, and isolated from any workflow environment present in the run-script.

That means there will be no collisions between Python workflow environment and component run-time environment.

"
err_exit "${message_txt}"
fi
fi
Copy link
Owner Author

Choose a reason for hiding this comment

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

The configuration file already contains information about where to get initial conditions, and whether to copy or link them. No additional logic is necessary here.

err_exit "${message_txt}"
;;
#
esac
Copy link
Owner Author

Choose a reason for hiding this comment

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

The appropriate values from this case statement and the next one will already be defined in the experiment configuration YAML because we know enough information at configuration time to pre-determine (harden) this for run-time.

# forecast task.
#
startmsg
eval ${RUN_CMD_UTILS} ${exec_fp} ${REDIRECT_OUT_ERR} >> $pgmout 2>errfile
Copy link
Owner Author

Choose a reason for hiding this comment

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

The UW Driver YAML for chgres_cube.py now handles all of the information needed to define the component run environment, input files (data and configuration), and component execution.


mv gfs.bndy.nc ${INPUT_DATA}/${NET}.${cycle}${dot_ensmem}.gfs_bndy.tile${TILE_RGNL}.f000.nc
Copy link
Owner Author

Choose a reason for hiding this comment

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

Why use SRW-defined variables when it's more straightforward to us the NCO-standard ones?

Also, tile7 and halo0 aren't actually configurable in Production AQM now. Why use variables for them?

$SRWrun/chgres_cube.py \
-c &GLOBAL_VAR_DEFNS_FP; \
--cycle @Y-@m-@dT@H:@M:@S \
--key-path task_make_ics
Copy link
Owner Author

Choose a reason for hiding this comment

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

TDB: Link to this script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant