%include export FORCING_ROOT_DIR=%ECF_HOME%/forcings export FORCING_CONFIG=%NWM_DOMAIN%-%NWM_CYCLE% export FORCING_CONFIGS_DIR=%FORCING_CONFIGS_DIR% export FORCING_PARAMS_DIR="%FORCING_PARAMS_DIR%" export FORCING_INPUT_DIR="%FORCING_INPUT_DIR%" export GEOGRID_FILE=%DOMAIN_DIR%/%GEOGRID_FILE% export SPATIAL_METADATA_FILE=%DOMAIN_DIR%/%SPATIAL_METADATA_FILE% if [[ "%NWM_ENSEMBLE_MEM%" == "" ]]; then cycle=%NWM_CYCLE% echo "=== STARTING Forcing Engine %NWM_CYCLE% ===" else cycle=%NWM_CYCLE%_mem%NWM_ENSEMBLE_MEM% echo "=== STARTING Forcing EngineL %NWM_CYCLE%, MEMBER %NWM_ENSEMBLE_MEM% ===" fi export FORCING_SCRATCH_DIR=%NWM_JOBDIR%/%NWM_DOMAIN%/$cycle/forcings-scratch export FORCING_OUTPUT_DIR=%NWM_JOBDIR%/%NWM_DOMAIN%/$cycle/forcings-output if [[ %LENGTH_HRS% < 0 ]]; then export FORCING_BEGIN_DATE=$(date -ud "%CYCLE_DATE% %CYCLE_TIME% $((%LENGTH_HRS%+1)) hours" +%%Y%%m%%d%%H%%M) export FORCING_END_DATE=$(date -ud "%CYCLE_DATE% %CYCLE_TIME%" +%%Y%%m%%d%%H%%M) daily_forcings_dir=$FORCING_OUTPUT_DIR/${FORCING_END_DATE:0:10} else export FORCING_BEGIN_DATE=$(date -ud "%CYCLE_DATE% %CYCLE_TIME% +1 hours" +%%Y%%m%%d%%H%%M) export FORCING_END_DATE=$(date -ud "%CYCLE_DATE% %CYCLE_TIME% +%LENGTH_HRS% hours" +%%Y%%m%%d%%H%%M) daily_forcings_dir=$FORCING_OUTPUT_DIR/$(date -ud "%CYCLE_DATE% %CYCLE_TIME%" +%%Y%%m%%d%%H) fi mkdir -p $FORCING_SCRATCH_DIR mkdir -p $FORCING_OUTPUT_DIR # qsub -V -A %PROJ% -q %QUEUE% -o %ECF_JOBOUT% -W block=true -l select=%NUM_COMPUTE_NODES%:ncpus=%NUM_CPUS% -l walltime=%WALLTIME% $FORCING_ROOT_DIR/forcings_job.sh # MOCK FE -- SYMLINK LDASIN FILES FROM ARCHIVE cycle_length=%LENGTH_HRS% if [[ %LENGTH_HRS% < 0 ]]; then let cycle_length=$cycle_length*-1 else let cycle_length=$cycle_length-1 fi archive_dir=%FORCING_ARCHIVE_DIR% daily_start_date=$FORCING_BEGIN_DATE mkdir -p $daily_forcings_dir touch $daily_forcings_dir/DUMMY_LDASIN rm -f $daily_forcings_dir/*LDASIN* missing="" for i in $(seq 0 $(($cycle_length))) do d=$(date -ud "${daily_start_date:0:8} ${daily_start_date:8} +$i hours" +%%Y%%m%%d%%H%%M) ln -sf $archive_dir/$d.LDASIN_DOMAIN1 $daily_forcings_dir/$d.LDASIN_DOMAIN1 if [[ ! -e $archive_dir/$d.LDASIN_DOMAIN1 ]]; then missing="$missing$d.LDASIN_DOMAIN1\n" fi done touch $daily_forcings_dir/WrfHydroForcing.COMPLETE if [[ "$missing" != "" ]]; then echo "Missing LDASIN files:" echo $missing exit 1 fi echo "=== Forcing Engine COMPLETE ===" %include %manual This task runs the Forcing Engine. Input data is read from: $FORCING_INPUT_DIR using FE configurations in: $FORCING_CONFIGS_DIR and FE parameters in: $FORCING_PARAMS_DIR for the $NWM_DOMAIN domain. LDASIN files are written to: $NWM_JOBDIR/$NWM_DOMAIN/$NWM_CYCLE/forcings-output/YYYYMMDDHH for $LENGTH_HRS hours beginning at $CYCLE_DATE $CYCLE_TIME (or ending at this time, if using a negative lookback). NOTE: Currently, the FE is being bypassed and a "mock FE" is being run instead, which copies pre-generated LDASIN files from a fixed location, until an FE configuration for this domain and model cycle are created. %end