diff --git a/README.md b/README.md index 9a984fc..c66cd8f 100755 --- a/README.md +++ b/README.md @@ -2,6 +2,11 @@ ## History +**Develop** + +- New functionality for Regional simulations. +- Option to use ERA5 data as an initial condition. + **1.4.0** - Compatibility with MONAN 1.4.3-rc. - Support for multi-environment: 'Jaci' supercomputer (intel and gnu compilers and PBS scheduler) and 'Egeon' cluster (gnu compiler and SLURM scheduler). diff --git a/scripts/0.run_all.bash b/scripts/0.run_all.bash index 4fa50e4..f33cf3c 100755 --- a/scripts/0.run_all.bash +++ b/scripts/0.run_all.bash @@ -41,9 +41,10 @@ EXECS=${DIRHOMED}/execs; mkdir -p ${EXECS} github_link="https://github.com/monanadmin/MONAN-Model.git" monan_branch=1.4.3-rc convertmpas_branch=1.2.0 -EXP=GFS -RES=1024002 #Options: 40962=120km;163842=60km;655362=30Km;1024002=24km;2621442=15Km;5898242=10Km -YYYYMMDDHHi=2026012000 +EXP=GFS #Options - GFS or ERA +RES=1024002 #Options - Global: 40962=120km; 163842=60km; 655362=30Km; 1024002=24km; 2621442=15Km; 5898242=10Km + #Options - Regional: 655362.REG.AMS_CAR=30km; 5898242.REG.AMS_CAR=10km; 23592962.REG.AMS_CAR=5km +YYYYMMDDHHi=2026070100 #Check dates disponible for the initial condition (CI) using ERA5 FCST=24 #---------------------------------------------------------------------- diff --git a/scripts/1.install_monan.bash b/scripts/1.install_monan.bash index a797ca1..fb1fc61 100755 --- a/scripts/1.install_monan.bash +++ b/scripts/1.install_monan.bash @@ -219,9 +219,6 @@ MAKE_OUT_FILE="make_\${DATE_TIME_NOW}_.output.atmosphere" make clean CORE=atmosphere make -j 8 ${MAKE_TARG} CORE=atmosphere OPENMP=true USE_PIO2=false PRECISION=single 2>&1 | tee \${MAKE_OUT_FILE} -#make -j 8 ${MAKE_TARG} CORE=atmosphere OPENMP=true USE_PIO2=true PRECISION=single 2>&1 | tee \${MAKE_OUT_FILE} - -#make -j 8 intel-xd2000 CORE=atmosphere OPENMP=true USE_PIO2=false PRECISION=single OPTIMIZATION_LEVEL=O1 FFLAGS_OPT=-O1 CFLAGS_OPT=-O1 CXXFLAGS_OPT=-O1 2>&1 | tee \${MAKE_OUT_FILE} #CR: TODO: put verify here if executable was created ok @@ -235,9 +232,6 @@ MAKE_OUT_FILE="make_\${DATE_TIME_NOW}_.output.init_atmosphere" make clean CORE=init_atmosphere make -j 8 ${MAKE_TARG2} CORE=init_atmosphere OPENMP=true USE_PIO2=false PRECISION=single 2>&1 | tee \${MAKE_OUT_FILE} -#make -j 8 ${MAKE_TARG2} CORE=init_atmosphere OPENMP=true USE_PIO2=true PRECISION=single 2>&1 | tee \${MAKE_OUT_FILE} - -#make -j 8 intel-xd2000 CORE=init_atmosphere OPENMP=true USE_PIO2=false PRECISION=single OPTIMIZATION_LEVEL=O1 FFLAGS_OPT=-O1 CFLAGS_OPT=-O1 CXXFLAGS_OPT=-O1 2>&1 | tee \${MAKE_OUT_FILE} mv ${MONANDIR}/init_atmosphere_model ${EXECS} diff --git a/scripts/2.pre_processing.bash b/scripts/2.pre_processing.bash index baba5e6..ad04764 100755 --- a/scripts/2.pre_processing.bash +++ b/scripts/2.pre_processing.bash @@ -25,7 +25,7 @@ then echo "" echo "${0} EXP_NAME/OP RESOLUTION LABELI FCST" echo "" - echo "EXP_NAME :: Forcing: GFS" + echo "EXP_NAME :: Forcing: GFS or ERA" echo " :: Others options to be added later..." echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" echo " 40962 (120 km)" @@ -52,7 +52,7 @@ echo "---- Pre Processing ----" echo "" -# Standart directories variables:--------------------------------------- +# Standard directories variables:--------------------------------------- DIRHOMES=${DIR_SCRIPTS}/scripts_CD-CT; mkdir -p ${DIRHOMES} DIRHOMED=${DIR_DADOS}/scripts_CD-CT; mkdir -p ${DIRHOMED} SCRIPTS=${DIRHOMES}/scripts; mkdir -p ${SCRIPTS} @@ -80,8 +80,6 @@ final_date=${yyyymmddhhf:0:4}-${yyyymmddhhf:4:2}-${yyyymmddhhf:6:2}_${yyyymmddhh export DIRRUN=${DIRHOMED}/run.${YYYYMMDDHHi}; rm -fr ${DIRRUN}; mkdir -p ${DIRRUN} #------------------------------------------------------- - - echo -e "${GREEN}==>${NC} Scripts_CD-CT last commit: \n" git log | head -1 @@ -95,31 +93,63 @@ then ln -sf ${DIRDADOS}/MONAN_datain/datain/WPS_GEOG ${DATAIN} fi - # Creating the x1.${RES}.static.nc file once, if does not exist yet:--------------- -if [ ! -s ${DATAIN}/fixed/x1.${RES}.static.nc ] -then - echo -e "${GREEN}==>${NC} Creating static.bash for submiting init_atmosphere to create x1.${RES}.static.nc...\n" - time ./make_static.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} +if [[ ${EXP} == "GFS" || ${EXP} == "ERA" ]]; then + if [ ! -s ${DATAIN}/fixed/x1.${RES}.static.nc ] + then + echo -e "${GREEN}==>${NC} Creating static.bash for submiting init_atmosphere to create x1.${RES}.static.nc...\n" + time ./make_static.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} + else + echo -e "${GREEN}==>${NC} File x1.${RES}.static.nc already exist in ${DATAIN}/fixed.\n" + fi else - echo -e "${GREEN}==>${NC} File x1.${RES}.static.nc already exist in ${DATAIN}/fixed.\n" + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Static phase fails! Please select EXP=GFS or EXP=ERA5.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 fi -#---------------------------------------------------------------------------------- +#---------------------------------------------------------------------------------- # Degrib phase:--------------------------------------------------------------------- -echo -e "${GREEN}==>${NC} Running Degrib:\n" -time ./make_degrib.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} +if [[ ${EXP} == "GFS" ]] +then + echo -e "${GREEN}==>${NC} Submitting Degrib for GFS data...\n" + time ./make_degrib_GFS.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} +elif [[ ${EXP} == "ERA" ]] +then + echo -e "${GREEN}==>${NC} Submitting Degrib for ERA5 data...\n" + time ./make_degrib_ERA5.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Degrib phase fails! Please select EXP=GFS or EXP=ERA5.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi #---------------------------------------------------------------------------------- - - - # Init Atmosphere phase:------------------------------------------------------------ -echo -e "${GREEN}==>${NC} Running Init Atmosphere...\n" -time ./make_initatmos.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} -#---------------------------------------------------------------------------------- - - +if [[ ${EXP} == "GFS" || ${EXP} == "ERA" ]]; then + echo -e "${GREEN}==>${NC} Submitting Init Atmosphere for real case...\n" + time ./make_initatmos.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Init Atmosphere phase fails! Please select EXP=GFS or EXP=ERA5.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi +# LBCs phase:------------------------------------------------------------ +if [[ $MODERUN == "R" ]]; then + echo -e "${GREEN}==>${NC} Regional simulation: submitting Init Atmosphere to generate lateral boundary conditions...\n" + time ./make_lbcs.bash ${EXP} ${RES} ${YYYYMMDDHHi} ${FCST} +elif [[ $MODERUN == "G" ]]; then + echo -e "${GREEN}==>${NC} Global simulation: no need for lateral boundary conditions.\n" +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} LBCs phase fails! Please select MODERUN=R or G.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi +#---------------------------------------------------------------------------------- diff --git a/scripts/3.run_model.bash b/scripts/3.run_model.bash index a5713dc..a527d03 100755 --- a/scripts/3.run_model.bash +++ b/scripts/3.run_model.bash @@ -8,10 +8,10 @@ umask 022 # # Performs the following tasks: # -# o VCheck all input files before -# o Creates the submition script +# o Check all input files before +# o Creates the submission script # o Submit the model -# o Veriffy all files generated +# o Verify all files generated # # #-----------------------------------------------------------------------------# @@ -23,7 +23,7 @@ then echo "" echo "${0} [EXP_NAME/OP] RESOLUTION LABELI FCST" echo "" - echo "EXP_NAME :: Forcing: GFS" + echo "EXP_NAME :: Forcing: GFS or ERA" echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" echo "LABELI :: Initial date YYYYMMDDHH, e.g.: 2024010100" echo "FCST :: Forecast hours, e.g.: 24 or 36, etc." @@ -89,30 +89,62 @@ printf -v t_strout "%02d:%02d:%02d" "$h" "$m" "$s" # From now on, CONFI_LEN_DISP becames cte = 0.0, pickin up this value from static file. # Calculating default parameters for different resolutions -if [ $RES -eq 1024002 ]; then #24Km +# global mesh +if [[ "$RES" == "40962" ]]; then #120Km + CONFIG_DT=600.0 + CONFIG_CONV_INTERVAL="00:15:00" +elif [[ "$RES" == "163842" ]]; then #60Km + CONFIG_DT=300.0 + CONFIG_CONV_INTERVAL="00:15:00" +elif [[ "$RES" == "655362" ]]; then #30Km + CONFIG_DT=150.0 + CONFIG_CONV_INTERVAL="00:15:00" +elif [[ "$RES" == "1024002" ]]; then #24Km CONFIG_DT=150.0 CONFIG_CONV_INTERVAL="00:15:00" -elif [ $RES -eq 2621442 ]; then #15Km +elif [[ "$RES" == "2621442" ]]; then #15Km CONFIG_DT=90.0 CONFIG_CONV_INTERVAL="00:15:00" -elif [ $RES -eq 40962 ]; then #120Km - CONFIG_DT=600.0 +elif [[ "$RES" == "5898242" ]]; then #10Km + CONFIG_DT=60.0 CONFIG_CONV_INTERVAL="00:15:00" -elif [ $RES -eq 163842 ]; then #60Km - CONFIG_DT=300.0 +elif [[ "$RES" == "23592962" ]]; then #5km + CONFIG_DT=30.0 CONFIG_CONV_INTERVAL="00:15:00" -elif [ $RES -eq 655362 ]; then #30Km +elif [[ "$RES" == "65536002" ]]; then #3Km + CONFIG_DT=18.0 + CONFIG_CONV_INTERVAL="00:15:00" +# regional mesh +elif [[ "$RES" == "655362.REG.AMS_CAR" ]]; then #30 km (AMS + Caribe) CONFIG_DT=150.0 CONFIG_CONV_INTERVAL="00:15:00" -elif [ $RES -eq 5898242 ]; then #10Km +elif [[ "$RES" == "5898242.REG.AMS_CAR" ]]; then #10 km (AMS + Caribe) CONFIG_DT=60.0 CONFIG_CONV_INTERVAL="00:15:00" -elif [ $RES -eq 65536002 ]; then #3Km - CONFIG_DT=18.0 +elif [[ "$RES" == "23592962.REG.AMS_CAR" ]]; then #5 km (AMS + Caribe) + CONFIG_DT=30.0 CONFIG_CONV_INTERVAL="00:15:00" +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} [${0}] Simulation parameters for resolution $RES have not been set! Edit them in '3.run_model.bash'.\n" + exit -1 fi #------------------------------------------------------- +# Setting configuration to apply or not lateral boundary conditions and output filename +if [[ $MODERUN == "R" ]]; then + APPLY_LBCS=true + RORG=R +elif [[ $MODERUN == "G" ]]; then + APPLY_LBCS=false + RORG=G +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Atmosphere phase fails! Please select MODERUN=R (Regional) or MODERUN=G (Global) in 'setenv.bash' so that MONAN knows whether to read or not lateral boundary conditions.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi +#------------------------------------------------------- # Calculating final forecast dates in model namelist format: DD_HH:MM:SS # using: start_date(yyyymmdd) + FCST(hh) : @@ -128,18 +160,16 @@ then cd ${DATAIN}/fixed echo -e "${GREEN}==>${NC} downloading meshes tgz files ... \n" wget https://www2.mmm.ucar.edu/projects/mpas/atmosphere_meshes/x1.${RES}.tar.gz - wget https://www2.mmm.ucar.edu/projects/mpas/atmosphere_meshes/x1.${RES}_static.tar.gz tar -xzvf x1.${RES}.tar.gz - tar -xzvf x1.${RES}_static.tar.gz fi echo -e "${GREEN}==>${NC} Creating x1.${RES}.graph.info.part.${cores} ... \n" cd ${DATAIN}/fixed gpmetis -minconn -contig -niter=200 x1.${RES}.graph.info ${cores} - rm -fr x1.${RES}.tar.gz x1.${RES}_static.tar.gz + rm -fr x1.${RES}.tar.gz fi -files_needed=("${SCRIPTS}/namelists/stream_list.atmosphere.output" ""${SCRIPTS}/namelists/stream_list.atmosphere.diagnostics${VARTABLE} "${SCRIPTS}/namelists/stream_list.atmosphere.surface" "${EXECS}/atmosphere_model" "${DATAIN}/fixed/x1.${RES}.static.nc" "${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores}" "${DATAOUT}/${YYYYMMDDHHi}/Pre/x1.${RES}.init.nc" "${DATAIN}/fixed/Vtable.GFS") +files_needed=("${SCRIPTS}/namelists/stream_list.atmosphere.output" ""${SCRIPTS}/namelists/stream_list.atmosphere.diagnostics${VARTABLE} "${SCRIPTS}/namelists/stream_list.atmosphere.surface" "${EXECS}/atmosphere_model" "${DATAIN}/fixed/x1.${RES}.static.nc" "${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores}" "${DATAOUT}/${YYYYMMDDHHi}/Pre/x1.${RES}.init.nc" "${DATAIN}/fixed/Vtable.${EXP}") for file in "${files_needed[@]}" do if [ ! -s "${file}" ] @@ -157,16 +187,18 @@ cp -f ${DATAIN}/fixed/*DATA ${DIRRUN} cp -f ${DATAIN}/fixed/x1.${RES}.static.nc ${DIRRUN} cp -f ${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores} ${DIRRUN} cp -f ${DATAOUT}/${YYYYMMDDHHi}/Pre/x1.${RES}.init.nc ${DIRRUN} -cp -f ${DATAIN}/fixed/Vtable.GFS ${DIRRUN} +cp -f ${DATAIN}/fixed/Vtable.${EXP} ${DIRRUN} - -if [ ${EXP} = "GFS" ] +if [[ $MODERUN == "R" ]]; then + cp -f ${DATAOUT}/${YYYYMMDDHHi}/Pre/lbc*.nc ${DIRRUN} +fi +if [[ ${EXP} == "GFS" || ${EXP} == "ERA" ]] then sed -e "s,#LABELI#,${start_date},g;s,#FCSTS#,${DD_HHMMSS_forecast},g;s,#RES#,${RES},g; -s,#CONFIG_DT#,${CONFIG_DT},g;s,#CONFIG_LEN_DISP#,${CONFIG_LEN_DISP},g;s,#CONFIG_CONV_INTERVAL#,${CONFIG_CONV_INTERVAL},g" \ +s,#CONFIG_DT#,${CONFIG_DT},g;s,#CONFIG_LEN_DISP#,${CONFIG_LEN_DISP},g;s,#CONFIG_CONV_INTERVAL#,${CONFIG_CONV_INTERVAL},g;s,#APPLY_LBCS#,${APPLY_LBCS},g" \ ${SCRIPTS}/namelists/namelist.atmosphere.TEMPLATE > ${DIRRUN}/namelist.atmosphere - sed -e "s,#RES#,${RES},g;s,#CIORIG#,${EXP},g;s,#LABELI#,${YYYYMMDDHHi},g;s,#NLEV#,${NLEV},g" \ + sed -e "s,#RES#,${RES},g;s,#RORG#,${RORG},g;s,#LBCINT#,${LBCINT},g;s,#CIORIG#,${EXP},g;s,#LABELI#,${YYYYMMDDHHi},g;s,#NLEV#,${NLEV},g" \ ${SCRIPTS}/namelists/streams.atmosphere.TEMPLATE > ${DIRRUN}/streams.atmosphere fi cp -f ${SCRIPTS}/namelists/stream_list.atmosphere.output ${DIRRUN} @@ -271,7 +303,7 @@ do i=$(printf "%04d" ${ii}) hh=${YYYYMMDDHHi:8:2} currentdate=$(date -d "${YYYYMMDDHHi:0:8} ${hh}:00:00 $(echo "(${i}-1)*${t_strout:0:2}" | bc) hours $(echo "(${i}-1)*${t_strout:3:2}" | bc) minutes $(echo "(${i}-1)*${t_strout:6:2}" | bc) seconds" +"%Y%m%d%H.%M.%S") - file=MONAN_DIAG_G_MOD_${EXP}_${YYYYMMDDHHi}_${currentdate}.x${RES}L${NLEV}.nc + file=MONAN_DIAG_${RORG}_MOD_${EXP}_${YYYYMMDDHHi}_${currentdate}.x${RES}L${NLEV}.nc if [ ! -s ${DATAOUT}/${YYYYMMDDHHi}/Model/${file} ] then diff --git a/scripts/4.run_post.bash b/scripts/4.run_post.bash index f6b082b..4bca3aa 100755 --- a/scripts/4.run_post.bash +++ b/scripts/4.run_post.bash @@ -23,7 +23,7 @@ then echo "" echo "${0} ]EXP_NAME/OP] RESOLUTION LABELI FCST" echo "" - echo "EXP_NAME :: Forcing: GFS" + echo "EXP_NAME :: Forcing: GFS or ERA" echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" echo "LABELI :: Initial date YYYYMMDDHH, e.g.: 2024010100" echo "FCST :: Forecast hours, e.g.: 24 or 36, etc." @@ -83,60 +83,104 @@ t_stroutsec=$(echo ${t_strout} | awk -F: '{print ($1 * 3600) + ($2 * 60) + $3}') t_strouthor=$(echo "scale=4; (${t_stroutsec}/60)/60" | bc) #------------------------------------------------------------------------------------ +# Definindo G ou R no MONAN_DIAG +if [[ $MODERUN == "R" ]]; then + RORG=R +elif [[ $MODERUN == "G" ]]; then + RORG=G +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Post fails! Please select MODERUN=R (Regional) or MODERUN=G (Global) in 'setenv.bash'.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi +#------------------------------------------------------------------------------------ + + # Format to HH:MM:SS t_strout (output_interval) IFS=":" read -r h m s <<< "${t_strout}" printf -v t_strout "%02d:%02d:%02d" "$h" "$m" "$s" # Calculating default parameters for different resolutions -if [ $RES -eq 1024002 ]; then #24Km - NLAT=721 #180/0.25 - NLON=1441 #360/0.25 +# global mesh +if [[ "$RES" == "40962" ]]; then #120Km + NLAT=151 #180/1.2 + NLON=301 #360/1.2 STARTLAT=-90.0 STARTLON=0.0 ENDLAT=90.0 ENDLON=360.0 -elif [ $RES -eq 2621442 ]; then #15Km - NLAT=1201 #180/0.15 - NLON=2401 #360/0.15 +elif [[ "$RES" == "163842" ]]; then #60Km + NLAT=301 #180/0.6 + NLON=601 #360/0.6 STARTLAT=-90.0 STARTLON=0.0 ENDLAT=90.0 ENDLON=360.0 -elif [ $RES -eq 40962 ]; then #120Km - NLAT=150 #180/1.2 - NLON=300 #360/1.2 +elif [[ "$RES" == "655362" ]]; then #30Km + NLAT=601 #180/0.3 + NLON=1201 #360/0.3 STARTLAT=-90.0 STARTLON=0.0 ENDLAT=90.0 ENDLON=360.0 -elif [ $RES -eq 163842 ]; then #60Km - NLAT=301 #180/0.6 - NLON=601 #360/0.6 +elif [[ "$RES" == "1024002" ]]; then #24Km + NLAT=721 #180/0.25 + NLON=1441 #360/0.25 STARTLAT=-90.0 STARTLON=0.0 ENDLAT=90.0 ENDLON=360.0 -elif [ $RES -eq 655362 ]; then #30Km - NLAT=601 #180/0.3 - NLON=1201 #360/0.3 +elif [[ "$RES" == "2621442" ]]; then #15Km + NLAT=1201 #180/0.15 + NLON=2401 #360/0.15 + STARTLAT=-90.0 + STARTLON=0.0 + ENDLAT=90.0 + ENDLON=360.0 +elif [[ "$RES" == "5898242" ]]; then #10Km + NLAT=1801 #180/0.10 + NLON=3601 #360/0.10 STARTLAT=-90.0 STARTLON=0.0 ENDLAT=90.0 ENDLON=360.0 -elif [ $RES -eq 5898242 ]; then #10Km - NLAT=1801 #180/0.10 (+1) - NLON=3601 #360/0.10 (+1) +elif [[ "$RES" == "23592962" ]]; then #5Km + NLAT=3601 #180/0.05 + NLON=7201 #360/0.05 STARTLAT=-90.0 STARTLON=0.0 ENDLAT=90.0 ENDLON=360.0 -elif [ $RES -eq 65536002 ]; then #3Km +elif [[ "$RES" == "65536002" ]]; then #3Km NLAT=6001 #180/0.03 NLON=12001 #360/0.03 STARTLAT=-90.0 STARTLON=0.0 ENDLAT=90.0 ENDLON=360.0 +# regional mesh +elif [[ "$RES" == "655362.REG.AMS_CAR" ]]; then #30 km (AMS + Caribe) + NLAT=354 #106/0.3 +1 + NLON=301 #90/0.3 +1 + STARTLAT=-64.0 + ENDLAT=42 + STARTLON=254.0 + ENDLON=344.0 +elif [[ "$RES" == "5898242.REG.AMS_CAR" ]]; then #10 km (AMS + Caribe) + NLAT=1061 #106/0.1 +1 + NLON=901 #90/0.1 +1 + STARTLAT=-64.0 + ENDLAT=42.0 + STARTLON=254.0 + ENDLON=344.0 +elif [[ "$RES" == "23592962.REG.AMS_CAR" ]]; then #5 km (AMS + Caribe) + NLAT=2121 #106/0.05 +1 + NLON=1801 #90/0.05 +1 + STARTLAT=-64.0 + ENDLAT=42.0 + STARTLON=254.0 + ENDLON=344.0 fi #------------------------------------------------------- @@ -242,7 +286,7 @@ do chmod 755 * hh=${YYYYMMDDHHi:8:2} currentdate=\$(date -d "${YYYYMMDDHHi:0:8} \${hh}:00:00 \$(echo "(\${i}-1)*${t_strout:0:2}" | bc) hours \$(echo "(\${i}-1)*${t_strout:3:2}" | bc) minutes \$(echo "(\${i}-1)*${t_strout:6:2}" | bc) seconds" +"%Y%m%d%H.%M.%S") - diag_name=MONAN_DIAG_G_MOD_${EXP}_${YYYYMMDDHHi}_\${currentdate}.x${RES}L${N_MODEL_LEV}.nc + diag_name=MONAN_DIAG_${RORG}_MOD_${EXP}_${YYYYMMDDHHi}_\${currentdate}.x${RES}L${N_MODEL_LEV}.nc echo "" echo "executando convert mpas" chmod 755 ${DATAOUT}/${YYYYMMDDHHi}/Model/* @@ -258,7 +302,7 @@ do i=\$(printf "%04d" \${ii}) hh=${YYYYMMDDHHi:8:2} currentdate=\$(date -d "${YYYYMMDDHHi:0:8} \${hh}:00:00 \$(echo "(\${i}-1)*${t_strout:0:2}" | bc) hours \$(echo "(\${i}-1)*${t_strout:3:2}" | bc) minutes \$(echo "(\${i}-1)*${t_strout:6:2}" | bc) seconds" +"%Y%m%d%H.%M.%S") - diag_name_post=MONAN_DIAG_G_POS_${EXP}_${YYYYMMDDHHi}_\${currentdate}.x${RES}L${N_MODEL_LEV}.nc + diag_name_post=MONAN_DIAG_${RORG}_POS_${EXP}_${YYYYMMDDHHi}_\${currentdate}.x${RES}L${N_MODEL_LEV}.nc cd ${DIRRUN}/dir.\${i} chmod 755 * diff --git a/scripts/make_degrib.bash b/scripts/make_degrib.bash deleted file mode 100755 index 43f7ca3..0000000 --- a/scripts/make_degrib.bash +++ /dev/null @@ -1,241 +0,0 @@ -#!/bin/bash -umask 022 - - -if [ $# -ne 4 ] -then - echo "" - echo "Instructions: execute the command below" - echo "" - echo "${0} EXP_NAME RESOLUTION LABELI FCST" - echo "" - echo "EXP_NAME :: Forcing: GFS" - echo " :: Others options to be added later..." - echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" - echo "LABELI :: Initial date YYYYMMDDHH, e.g.: 2024010100" - echo "FCST :: Forecast hours, e.g.: 24 or 36, etc." - echo "" - echo "24 hour forcast example:" - echo "${0} GFS 1024002 2024010100 24" - echo "${0} GFS 40962 2024010100 48" - echo "" - - exit -fi - -# Set environment variables exports: -echo "" -echo -e "\033[1;32m==>\033[0m Moduling environment for MONAN model...\n" -. setenv.bash - -echo "" -echo "---- Make Degrib ----" -echo "" - -# Standart directories variables:--------------------------------------- -DIRHOMES=${DIR_SCRIPTS}/scripts_CD-CT; mkdir -p ${DIRHOMES} -DIRHOMED=${DIR_DADOS}/scripts_CD-CT; mkdir -p ${DIRHOMED} -SCRIPTS=${DIRHOMES}/scripts; mkdir -p ${SCRIPTS} -DATAIN=${DIRHOMED}/datain; mkdir -p ${DATAIN} -DATAOUT=${DIRHOMED}/dataout; mkdir -p ${DATAOUT} -SOURCES=${DIRHOMES}/sources; mkdir -p ${SOURCES} -EXECS=${DIRHOMED}/execs; mkdir -p ${EXECS} -#---------------------------------------------------------------------- - - -# Input variables:-------------------------------------- -EXP=${1}; #EXP=GFS -RES=${2}; #RES=1024002 -YYYYMMDDHHi=${3}; #YYYYMMDDHHi=2024012000 -FCST=${4}; #FCST=24 -#------------------------------------------------------- - - - - -# Local variables-------------------------------------- -start_date=${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2}_${YYYYMMDDHHi:8:2}:00:00 -export DIRRUN=${DIRHOMED}/run.${YYYYMMDDHHi}; rm -fr ${DIRRUN}; mkdir -p ${DIRRUN} -#------------------------------------------------------- -mkdir -p ${DATAIN}/${YYYYMMDDHHi} -mkdir -p ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs - -if [ "$HOSTNAME" = "egeon" ]; then - mkdir -p ${HOME}/local/lib64 - cp -f /usr/lib64/libjasper.so* ${HOME}/local/lib64 - cp -f /usr/lib64/libjpeg.so* ${HOME}/local/lib64 -fi - -#Se nao existir CI no diretorio do IO, -# busca no nosso dir /beegfs/monan/CIs, se nao existir tbm, aborta! -#CR: BNDDIR should be setted just for EGEON machine -#CR: some local variables were mobed into the SLURM section, particularly for egeon - -OPERDIREXP=${OPERDIR}/${EXP} -BNDDIR=${OPERDIREXP}/0p25/brutos/${YYYYMMDDHHi:0:4}/${YYYYMMDDHHi:4:2}/${YYYYMMDDHHi:6:2}/${YYYYMMDDHHi:8:2} - - -# Se nao existir CI no diretorio do IO, -# busca no nosso dir /beegfs/monan/CIs (Egeon) , /p/monan/CIs (xd2000) se nao existir tbm, aborta! -#CR: maybe this if should belong to the SLURM kind of running... -if [ ! -s ${BNDDIR}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ] -then - if [ ! -s ${GCCCIS}/${EXP}/${YYYYMMDDHHi:0:4}/${YYYYMMDDHHi}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ] - then - echo -e "${RED}==>${NC}Condicao de contorno inexistente !" - echo -e "${RED}==>${NC}Check ${BNDDIR} or." - echo -e "${RED}==>${NC}Check ${GCCCIS}/${EXP}" - exit 1 - else - BNDDIR=${GCCCIS}/${EXP}/${YYYYMMDDHHi:0:4}/${YYYYMMDDHHi} - fi -fi - - -#files_needed=("${DATAIN}/fixed/x1.${RES}.static.nc" "${DATAIN}/fixed/Vtable.${EXP}" "${EXECS}/ungrib.exe" "${DATAIN}/${YYYYMMDDHHi}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2") - -files_needed=("${DATAIN}/fixed/x1.${RES}.static.nc" "${DATAIN}/fixed/Vtable.${EXP}" "${EXECS}/ungrib.exe" "${BNDDIR}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2") - -for file in "${files_needed[@]}" -do - if [ ! -s "${file}" ] - then - echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" - echo -e "${RED}==>${NC} [${0}] At least the file ${file} was not generated. \n" - exit -1 - fi -done - -cp -f ${DATAIN}/fixed/x1.${RES}.static.nc ${DIRRUN} -cp -f ${DATAIN}/fixed/Vtable.${EXP} ${DIRRUN}/Vtable -cp -f ${EXECS}/ungrib.exe ${DIRRUN} -cp -f ${SCRIPTS}/namelists/namelist.wps.TEMPLATE ${DIRRUN}/namelist.wps.TEMPLATE -cp -f ${BNDDIR}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ${DATAIN}/${YYYYMMDDHHi} -cp -f ${DATAIN}/${YYYYMMDDHHi}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ${DIRRUN} -cp -f ${SCRIPTS}/setenv.bash ${DIRRUN} -cp -f ${SCRIPTS}/link_grib.csh ${DIRRUN} -rm -f ${DIRRUN}/degrib.bash - - -if [ ${SCHEDULER_SYSTEM} != "GENERIC" ] -then - sed -e "s,#JOBNAME#,${DEGRIB_jobname},g; - s,#NNODES#,${DEGRIB_nnodes},g; - s,#NCPUS#,${DEGRIB_ncpus},g; - s,#NTASKS#,${DEGRIB_ncores},g; - s,#NTASKSPNODE#,${DEGRIB_ncpn},g; - s,#NTHREADS#,${DEGRIB_nthreads},g; - s,#PARTITION#,${DEGRIB_QUEUE},g; - s,#WALLTIME#,${DEGRIB_walltime},g; - s,#OUTPUTJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.o,g; - s,#ERRORJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.e,g" \ - ${SCRIPTS}/stools/submit_${SYSTEM_KEY}.bash_TEMPLATE > ${DIRRUN}/degrib.bash -else - echo "#!/bin/bash " > ${DIRRUN}/degrib.bash -fi - -cat << EOF0 >> ${DIRRUN}/degrib.bash - -ulimit -s unlimited -ulimit -c unlimited -ulimit -v unlimited - -export PMIX_MCA_gds=hash - -export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${HOME}/local/lib64 - -cd ${DIRRUN} - -. ${SCRIPTS}/setenv.bash - -echo "-- PBS_JOBID: \$PBS_JOBID" - -ldd ungrib.exe - -rm -f GRIBFILE.* namelist.wps - - -sed -e "s,#LABELI#,${start_date},g;s,#PREFIX#,GFS,g" \ - ${DIRRUN}/namelist.wps.TEMPLATE > ${DIRRUN}/namelist.wps - -echo "" -./link_grib.csh ${DATAIN}/${YYYYMMDDHHi}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 - -chmod 755 * -echo "" -date -echo "submetendo jobs ungrib" - -time mpirun -np 1 ./ungrib.exe - - -date - - -grep "Successful completion of program ungrib.exe" ${DIRRUN}/ungrib.log >& /dev/null - -if [ \$? -ne 0 ]; then - echo " BUMMER: Ungrib generation failed for some yet unknown reason." - echo " " - tail -10 ${DIRRUN}/ungrib.log - echo " " - exit 21 -fi - -# -# clean up and remove links -# - mv ungrib.log ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/ungrib.${start_date}.log - mv namelist.wps ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/namelist.${start_date}.wps - mv GFS\:${start_date:0:13} ${DATAOUT}/${YYYYMMDDHHi}/Pre - - rm -fr ${DATAIN}/${YYYYMMDDHHi} - -echo "End of degrib Job" - - -EOF0 -chmod a+x ${DIRRUN}/degrib.bash - - -case "${SCHEDULER_SYSTEM}" in - SLURM) - echo -e "${GREEN}==>${NC} Sbatch degrib.bash...\n" - cd ${DIRRUN} - sbatch --wait ${DIRRUN}/degrib.bash - ;; - PBS) - echo -e "${GREEN}==>${NC} qsub degrib.bash...\n" - cd ${DIRRUN} - qsub -W block=true ${DIRRUN}/degrib.bash - ;; -# GENERIC) -# echo "Nenhum gerenciador detectado" -# ${DIRRUN}/degrib.bash -# ;; -esac - - -files_ungrib=("${EXP}:${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2}_${YYYYMMDDHHi:8:2}") -for file in "${files_ungrib[@]}" -do - if [ ! -s ${DATAOUT}/${YYYYMMDDHHi}/Pre/${file} ] - then - echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" - echo -e "${RED}==>${NC} Degrib fails! At least the file ${file} was not generated at ${DATAIN}/${YYYYMMDDHHi}. \n" - echo -e "${RED}==>${NC} Check logs at ${DATAOUT}/logs/degrib.* .\n" - echo -e "${RED}==>${NC} Exiting script. \n" - exit -1 - fi -done - -mv ${DIRRUN}/degrib.bash ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs -chmod 755 ${DATAOUT}/${YYYYMMDDHHi}/Pre/* - -JOBID=$(sed -n '4p' ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.o | awk '{print $3}' | sed "s/.pbs-ha//g") -mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.o ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.o.${JOBID} -mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.e ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.e.${JOBID} -chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.o.${JOBID} -chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib.e.${JOBID} - -rm -fr ${DIRRUN} diff --git a/scripts/make_degrib_ERA5.bash b/scripts/make_degrib_ERA5.bash new file mode 100755 index 0000000..279fd34 --- /dev/null +++ b/scripts/make_degrib_ERA5.bash @@ -0,0 +1,313 @@ +#!/bin/bash +umask 022 + +if [ $# -ne 4 ] +then + echo "" + echo "Instructions: execute the command below" + echo "" + echo "${0} EXP_NAME RESOLUTION LABELI FCST" + echo "" + echo "EXP_NAME :: Forcing: GFS or ERA" + echo " :: Others options to be added later..." + echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" + echo "LABELI :: Initial date YYYYMMDDHH, e.g.: 2024010100" + echo "FCST :: Forecast hours, e.g.: 24 or 36, etc." + echo "" + echo "24 hour forecast example:" + echo "${0} GFS 1024002 2024010100 24" + echo "${0} GFS 40962 2024010100 48" + echo "" + + exit +fi + +# Set environment variables exports: +echo "" +echo -e "\033[1;32m==>\033[0m Moduling environment for MONAN model...\n" +. setenv.bash + +echo "" +echo "---- Make Degrib ${EXP} ----" +echo "" + +# Standart directories variables:--------------------------------------- +DIRHOMES=${DIR_SCRIPTS}/scripts_CD-CT; mkdir -p ${DIRHOMES} +DIRHOMED=${DIR_DADOS}/scripts_CD-CT; mkdir -p ${DIRHOMED} +SCRIPTS=${DIRHOMES}/scripts; mkdir -p ${SCRIPTS} +DATAIN=${DIRHOMED}/datain; mkdir -p ${DATAIN} +DATAOUT=${DIRHOMED}/dataout; mkdir -p ${DATAOUT} +SOURCES=${DIRHOMES}/sources; mkdir -p ${SOURCES} +EXECS=${DIRHOMED}/execs; mkdir -p ${EXECS} +#---------------------------------------------------------------------- + + +# Input variables:-------------------------------------- +EXP=${1}; #EXP=ERA +RES=${2}; #RES=1024002 +YYYYMMDDHHi=${3}; #YYYYMMDDHHi=2024012000 +FCST=${4}; #FCST=24 +#------------------------------------------------------- + +# Local variables-------------------------------------- +start_date=${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2}_${YYYYMMDDHHi:8:2}:00:00 +yyyymmddi=${YYYYMMDDHHi:0:8} +hhi=${YYYYMMDDHHi:8:2} +yyyymmddhhf=$(date +"%Y%m%d%H" -d "${yyyymmddi} ${hhi}:00 ${FCST} hours" ) +final_date=${yyyymmddhhf:0:4}-${yyyymmddhhf:4:2}-${yyyymmddhhf:6:2}_${yyyymmddhhf:8:2}:00:00 +export DIRRUN=${DIRHOMED}/run.${YYYYMMDDHHi}; rm -fr ${DIRRUN}; mkdir -p ${DIRRUN} +#------------------------------------------------------- +mkdir -p ${DATAIN}/${YYYYMMDDHHi} +mkdir -p ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs + +if [ "$HOSTNAME" = "egeon" ]; then + mkdir -p ${HOME}/local/lib64 + cp -f /usr/lib64/libjasper.so* ${HOME}/local/lib64 + cp -f /usr/lib64/libjpeg.so* ${HOME}/local/lib64 +fi + +BNDDIR=${GCCCIS}/${EXP}/${YYYYMMDDHHi:0:4}/${YYYYMMDDHHi} + +# Se nao existir CI no diretorio do GCC MONAN dir /beegfs/monan/CIs (Egeon), /p/projetos/monan_adm/monan/CIs (Jaci) busca em datain/EXP, se não aborta! +if [ ! -s ${BNDDIR}/era5.pl.${YYYYMMDDHHi}.grib ] || [ ! -s ${BNDDIR}/era5.sl.${YYYYMMDDHHi}.grib ] +then + if [ -s ${DATAIN}/${EXP}/${YYYYMMDDHHi}/era5.pl.${YYYYMMDDHHi}.grib ] || [ ! -s ${DATAIN}/${EXP}/${YYYYMMDDHHi}/era5.sl.${YYYYMMDDHHi}.grib ] + then + echo -e "${RED}==>${NC}Condicao de contorno inexistente! - ${EXP}" + echo -e "${RED}==>${NC}Ciheck ${BNDDIR} or" + echo -e "${RED}==>${NC}Check ${DATAIN}/${EXP}." + exit 1 + else + BNDDIR=${DATAIN}/${EXP}/${YYYYMMDDHHi} + fi +fi + +files_needed=("${DATAIN}/fixed/x1.${RES}.static.nc" "${DATAIN}/fixed/Vtable.${EXP}" "${EXECS}/ungrib.exe" "${BNDDIR}/era5.pl.${YYYYMMDDHHi}.grib" "${BNDDIR}/era5.sl.${YYYYMMDDHHi}.grib") +for file in "${files_needed[@]}" +do + if [ ! -s "${file}" ] + then + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} [${0}] At least the file ${file} was not generated. \n" + exit -1 + fi +done + +# Copia arquivos necessarios para diretorio DIRRUN +cp -f ${DATAIN}/fixed/x1.${RES}.static.nc ${DIRRUN} +cp -f ${DATAIN}/fixed/Vtable.${EXP} ${DIRRUN}/Vtable +cp -f ${EXECS}/ungrib.exe ${DIRRUN} +cp -f ${SCRIPTS}/namelists/namelist.wps.TEMPLATE ${DIRRUN}/namelist.wps.TEMPLATE +cp -f ${SCRIPTS}/setenv.bash ${DIRRUN} +cp -f ${SCRIPTS}/link_grib.csh ${DIRRUN} +rm -f ${DIRRUN}/degrib_${EXP}.bash + +if [[ $MODERUN == "R" ]]; then + echo "MODERUN=R. Degribbing ERA5 data for both initial and lateral boundary conditions..." + dt=$((LBCINT / 3600)) + for ((hour=0; hour<=FCST; hour+=dt)); do + valid_date=$(date -u -d "${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2} ${YYYYMMDDHHi:8:2}:00:00 UTC ${hour} hour" +"%Y%m%d%H") + echo "Temporarily copying ERA5 data: era5.pl|sl.${valid_date}.grib" + cp -f ${BNDDIR}/era5.pl.${valid_date}.grib ${DATAIN}/${YYYYMMDDHHi} + cp -f ${BNDDIR}/era5.sl.${valid_date}.grib ${DATAIN}/${YYYYMMDDHHi} + done + + if [ ${SCHEDULER_SYSTEM} != "GENERIC" ] + then + sed -e "s,#JOBNAME#,${DEGRIB_jobname},g; + s,#NNODES#,${DEGRIB_nnodes},g; + s,#NCPUS#,${DEGRIB_ncpus},g; + s,#NTASKS#,${DEGRIB_ncores},g; + s,#NTASKSPNODE#,${DEGRIB_ncpn},g; + s,#NTHREADS#,${DEGRIB_nthreads},g; + s,#PARTITION#,${DEGRIB_QUEUE},g; + s,#WALLTIME#,${DEGRIB_walltime},g; + s,#OUTPUTJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o,g; + s,#ERRORJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e,g" \ + ${SCRIPTS}/stools/submit_${SYSTEM_KEY}.bash_TEMPLATE > ${DIRRUN}/degrib_${EXP}.bash + else + echo "#!/bin/bash " > ${DIRRUN}/degrib_${EXP}.bash + fi + + cat << EOF0 >> ${DIRRUN}/degrib_${EXP}.bash + +ulimit -s unlimited +ulimit -c unlimited +ulimit -v unlimited + +export PMIX_MCA_gds=hash + +export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${HOME}/local/lib64 + +cd ${DIRRUN} +. ${SCRIPTS}/setenv.bash + +echo "-- PBS_JOBID: \$PBS_JOBID" + +ldd ungrib.exe + +rm -f GRIBFILE.* namelist.wps + +sed -e "s,#LABELI#,${start_date},g;s,#LABELF#,${final_date},g;s,#LBCINT#,${LBCINT},g;s,#PREFIX#,${EXP},g" \ + ${DIRRUN}/namelist.wps.TEMPLATE > ${DIRRUN}/namelist.wps + +./link_grib.csh ${DATAIN}/${YYYYMMDDHHi}/era5.*.grib + +chmod 755 * +echo "" +date +echo "submetendo jobs ungrib" + +time mpirun -np 1 ./ungrib.exe + +date + +grep "Successful completion of program ungrib.exe" ${DIRRUN}/ungrib.log >& /dev/null + +if [ \$? -ne 0 ]; then + echo " BUMMER: Ungrib generation failed for some yet unknown reason." + echo " " + tail -10 ${DIRRUN}/ungrib.log + echo " " + exit 21 +fi + +# +# clean up and remove links +# + mv ungrib.log ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/ungrib.${start_date}.log + mv namelist.wps ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/namelist.${start_date}.wps + mv ${EXP}* ${DATAOUT}/${YYYYMMDDHHi}/Pre + rm -fr ${DATAIN}/${YYYYMMDDHHi} + +echo "End of degrib Job" + + +EOF0 + +elif [[ ${MODERUN} == "G" ]]; then + echo "MODERUN=G. Degribbing ERA5 data only for initial conditions..." + cp -f ${BNDDIR}/era5.pl.${YYYYMMDDHHi}.grib ${DATAIN}/${YYYYMMDDHHi} + cp -f ${BNDDIR}/era5.sl.${YYYYMMDDHHi}.grib ${DATAIN}/${YYYYMMDDHHi} + + if [ ${SCHEDULER_SYSTEM} != "GENERIC" ] + then + sed -e "s,#JOBNAME#,${DEGRIB_jobname},g; + s,#NNODES#,${DEGRIB_nnodes},g; + s,#NCPUS#,${DEGRIB_ncpus},g; + s,#NTASKS#,${DEGRIB_ncores},g; + s,#NTASKSPNODE#,${DEGRIB_ncpn},g; + s,#NTHREADS#,${DEGRIB_nthreads},g; + s,#PARTITION#,${DEGRIB_QUEUE},g; + s,#WALLTIME#,${DEGRIB_walltime},g; + s,#OUTPUTJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o,g; + s,#ERRORJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e,g" \ + ${SCRIPTS}/stools/submit_${SYSTEM_KEY}.bash_TEMPLATE > ${DIRRUN}/degrib_${EXP}.bash + else + echo "#!/bin/bash " > ${DIRRUN}/degrib_${EXP}.bash + fi + + cat << EOF0 >> ${DIRRUN}/degrib_${EXP}.bash + +ulimit -s unlimited +ulimit -c unlimited +ulimit -v unlimited + +export PMIX_MCA_gds=hash + +export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${HOME}/local/lib64 + +cd ${DIRRUN} +. setenv.bash + +echo "-- PBS_JOBID: \$PBS_JOBID" + +ldd ungrib.exe + +rm -f GRIBFILE.* namelist.wps + +sed -e "s,#LABELI#,${start_date},g;s,#LABELF#,${start_date},g;s,#LBCINT#,${LBCINT},g;s,#PREFIX#,${EXP},g" \ + ${DIRRUN}/namelist.wps.TEMPLATE > ${DIRRUN}/namelist.wps + +./link_grib.csh ${DATAIN}/${YYYYMMDDHHi}/era5.*.${YYYYMMDDHHi}.grib + +chmod 755 * +echo "" +date +echo "submetendo jobs ungrib" + +time mpirun -np 1 ./ungrib.exe + +date + +grep "Successful completion of program ungrib.exe" ${DIRRUN}/ungrib.log >& /dev/null + +if [ \$? -ne 0 ]; then + echo " BUMMER: Ungrib generation failed for some yet unknown reason." + echo " " + tail -10 ${DIRRUN}/ungrib.log + echo " " + exit 21 +fi + +# +# clean up and remove links +# + mv ungrib.log ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/ungrib.${start_date}.log + mv namelist.wps ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/namelist.${start_date}.wps + mv ${EXP}\:${start_date:0:13} ${DATAOUT}/${YYYYMMDDHHi}/Pre + rm -fr ${DATAIN}/${YYYYMMDDHHi} + +echo "End of degrib Job" + + +EOF0 + +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Make degrib phase fails during degrib! Please select REGIONAL=Y or REGIONAL=N so that degrib can be done appropriately.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi + +chmod a+x ${DIRRUN}/degrib_${EXP}.bash + +case "${SCHEDULER_SYSTEM}" in + SLURM) + echo -e "${GREEN}==>${NC} Sbatch degrib_${EXP}.bash...\n" + cd ${DIRRUN} + sbatch --wait ${DIRRUN}/degrib_${EXP}.bash + ;; + PBS) + echo -e "${GREEN}==>${NC} Qsub degrib_${EXP}.bash...\n" + cd ${DIRRUN} + qsub -W block=true ${DIRRUN}/degrib_${EXP}.bash + ;; +# GENERIC) +# echo "Nenhum gerenciador detectado" +# ${DIRRUN}/degrib_${EXP}.bash +# ;; +esac + +files_ungrib=("${EXP}:${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2}_${YYYYMMDDHHi:8:2}") +for file in "${files_ungrib[@]}" +do + if [ ! -s ${DATAOUT}/${YYYYMMDDHHi}/Pre/${file} ] + then + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Degrib fails! At least the file ${file} was not generated at ${DATAIN}/${YYYYMMDDHHi}. \n" + echo -e "${RED}==>${NC} Check logs at ${DATAOUT}/logs/degrib.* .\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 + fi +done + +mv ${DIRRUN}/degrib_${EXP}.bash ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs +chmod 755 ${DATAOUT}/${YYYYMMDDHHi}/Pre/* + +JOBID=$(sed -n '4p' ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o | awk '{print $3}' | sed "s/.pbs-ha//g") +mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o.${JOBID} +mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e.${JOBID} +chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o.${JOBID} +chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e.${JOBID} +rm -fr ${DIRRUN} diff --git a/scripts/make_degrib_GFS.bash b/scripts/make_degrib_GFS.bash new file mode 100755 index 0000000..479d69e --- /dev/null +++ b/scripts/make_degrib_GFS.bash @@ -0,0 +1,320 @@ +#!/bin/bash +umask 022 + + +if [ $# -ne 4 ] +then + echo "" + echo "Instructions: execute the command below" + echo "" + echo "${0} EXP_NAME RESOLUTION LABELI FCST" + echo "" + echo "EXP_NAME :: Forcing: GFS or ERA" + echo " :: Others options to be added later..." + echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" + echo "LABELI :: Initial date YYYYMMDDHH, e.g.: 2024010100" + echo "FCST :: Forecast hours, e.g.: 24 or 36, etc." + echo "" + echo "24 hour forecast example:" + echo "${0} GFS 1024002 2024010100 24" + echo "${0} GFS 40962 2024010100 48" + echo "" + + exit +fi + +# Set environment variables exports: +echo "" +echo -e "\033[1;32m==>\033[0m Moduling environment for MONAN model...\n" +. setenv.bash + +echo "" +echo "---- Make Degrib ${EXP} ----" +echo "" + +# Standart directories variables:--------------------------------------- +DIRHOMES=${DIR_SCRIPTS}/scripts_CD-CT; mkdir -p ${DIRHOMES} +DIRHOMED=${DIR_DADOS}/scripts_CD-CT; mkdir -p ${DIRHOMED} +SCRIPTS=${DIRHOMES}/scripts; mkdir -p ${SCRIPTS} +DATAIN=${DIRHOMED}/datain; mkdir -p ${DATAIN} +DATAOUT=${DIRHOMED}/dataout; mkdir -p ${DATAOUT} +SOURCES=${DIRHOMES}/sources; mkdir -p ${SOURCES} +EXECS=${DIRHOMED}/execs; mkdir -p ${EXECS} +#---------------------------------------------------------------------- + +# Input variables:-------------------------------------- +EXP=${1}; #EXP=GFS +RES=${2}; #RES=1024002 +YYYYMMDDHHi=${3}; #YYYYMMDDHHi=2024012000 +FCST=${4}; #FCST=24 +#------------------------------------------------------- + +# Local variables-------------------------------------- +start_date=${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2}_${YYYYMMDDHHi:8:2}:00:00 +yyyymmddi=${YYYYMMDDHHi:0:8} +hhi=${YYYYMMDDHHi:8:2} +yyyymmddhhf=$(date +"%Y%m%d%H" -d "${yyyymmddi} ${hhi}:00 ${FCST} hours" ) +final_date=${yyyymmddhhf:0:4}-${yyyymmddhhf:4:2}-${yyyymmddhhf:6:2}_${yyyymmddhhf:8:2}:00:00 +export DIRRUN=${DIRHOMED}/run.${YYYYMMDDHHi}; rm -fr ${DIRRUN}; mkdir -p ${DIRRUN} +#------------------------------------------------------- +mkdir -p ${DATAIN}/${YYYYMMDDHHi} +mkdir -p ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs + +if [ "$HOSTNAME" = "egeon" ]; then + mkdir -p ${HOME}/local/lib64 + cp -f /usr/lib64/libjasper.so* ${HOME}/local/lib64 + cp -f /usr/lib64/libjpeg.so* ${HOME}/local/lib64 +fi + +OPERDIREXP=${OPERDIR}/${EXP} +BNDDIR=${OPERDIREXP}/0p25/brutos/${YYYYMMDDHHi:0:4}/${YYYYMMDDHHi:4:2}/${YYYYMMDDHHi:6:2}/${YYYYMMDDHHi:8:2} + +# Se nao existir CI no diretorio do IO, busca no GCC MONAN dir /beegfs/monan/CIs (Egeon), /p/projetos/monan_adm/monan/CIs +# Se nao existir tambem no GCC MONAN, busca em datain/EXP, se não aborta! +#CR: maybe this if should belong to the SLURM kind of running... +if [ ! -s ${BNDDIR}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ] +then + if [ ! -s ${GCCCIS}/${EXP}/${YYYYMMDDHHi:0:4}/${YYYYMMDDHHi}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ] + then + if [ -s ${DATAIN}/${EXP}/${YYYYMMDDHHi}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ] + then + echo -e "${RED}==>${NC}Condicao de contorno inexistente! - ${EXP}" + echo -e "${RED}==>${NC}Check ${BNDDIR} or" + echo -e "${RED}==>${NC}Check ${GCCCIS}/${EXP} or" + echo -e "${RED}==>${NC}Check ${DATAIN}/${EXP}." + exit 1 + else + BNDDIR=${DATAIN}/${EXP}/${YYYYMMDDHHi} + fi + else + BNDDIR=${GCCCIS}/${EXP}/${YYYYMMDDHHi:0:4}/${YYYYMMDDHHi} + fi +fi + +files_needed=("${DATAIN}/fixed/x1.${RES}.static.nc" "${DATAIN}/fixed/Vtable.${EXP}" "${EXECS}/ungrib.exe" "${BNDDIR}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2") + +for file in "${files_needed[@]}" +do + if [ ! -s "${file}" ] + then + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} [${0}] At least the file ${file} was not generated. \n" + exit -1 + fi +done + +cp -f ${DATAIN}/fixed/x1.${RES}.static.nc ${DIRRUN} +cp -f ${DATAIN}/fixed/Vtable.${EXP} ${DIRRUN}/Vtable +cp -f ${EXECS}/ungrib.exe ${DIRRUN} +cp -f ${SCRIPTS}/namelists/namelist.wps.TEMPLATE ${DIRRUN}/namelist.wps.TEMPLATE +cp -f ${SCRIPTS}/setenv.bash ${DIRRUN} +cp -f ${SCRIPTS}/link_grib.csh ${DIRRUN} +rm -f ${DIRRUN}/degrib_${EXP}.bash + +if [[ $MODERUN == "R" ]]; then + echo "MODERUN=R. Degribbing GFS data for both initial and lateral boundary conditions..." + dt=$((LBCINT / 3600)) + + for ((hour=0; hour<=FCST; hour+=dt)); do + hour_fmt=$(printf "%03d" "$hour") + echo "Temporarily copying GFS data: gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f${hour_fmt}.${YYYYMMDDHHi}.grib2" + cp -f ${BNDDIR}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f${hour_fmt}.${YYYYMMDDHHi}.grib2 ${DATAIN}/${YYYYMMDDHHi} + done + + if [ ${SCHEDULER_SYSTEM} != "GENERIC" ] + then + sed -e "s,#JOBNAME#,${DEGRIB_jobname},g; + s,#NNODES#,${DEGRIB_nnodes},g; + s,#NCPUS#,${DEGRIB_ncpus},g; + s,#NTASKS#,${DEGRIB_ncores},g; + s,#NTASKSPNODE#,${DEGRIB_ncpn},g; + s,#NTHREADS#,${DEGRIB_nthreads},g; + s,#PARTITION#,${DEGRIB_QUEUE},g; + s,#WALLTIME#,${DEGRIB_walltime},g; + s,#OUTPUTJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o,g; + s,#ERRORJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e,g" \ + ${SCRIPTS}/stools/submit_${SYSTEM_KEY}.bash_TEMPLATE > ${DIRRUN}/degrib_${EXP}.bash + else + echo "#!/bin/bash " > ${DIRRUN}/degrib_${EXP}.bash + fi + + cat << EOF0 >> ${DIRRUN}/degrib_${EXP}.bash + +ulimit -s unlimited +ulimit -c unlimited +ulimit -v unlimited + +export PMIX_MCA_gds=hash + +export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${HOME}/local/lib64 + +cd ${DIRRUN} + +. ${SCRIPTS}/setenv.bash + +echo "-- PBS_JOBID: \$PBS_JOBID" + +ldd ungrib.exe + +rm -f GRIBFILE.* namelist.wps + +sed -e "s,#LABELI#,${start_date},g;s,#LABELF#,${final_date},g;s,#LBCINT#,${LBCINT},g;s,#PREFIX#,${EXP},g" \ + ${DIRRUN}/namelist.wps.TEMPLATE > ${DIRRUN}/namelist.wps + +echo "" +./link_grib.csh ${DATAIN}/${YYYYMMDDHHi}/gfs.*.grib2 + +chmod 755 * +echo "" +date +echo "submetendo jobs ungrib" + +time mpirun -np 1 ./ungrib.exe + +date + +grep "Successful completion of program ungrib.exe" ${DIRRUN}/ungrib.log >& /dev/null + +if [ \$? -ne 0 ]; then + echo " BUMMER: Ungrib generation failed for some yet unknown reason." + echo " " + tail -10 ${DIRRUN}/ungrib.log + echo " " + exit 21 +fi + +# +# clean up and remove links +# + mv ungrib.log ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/ungrib.${start_date}.log + mv namelist.wps ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/namelist.${start_date}.wps + mv GFS* ${DATAOUT}/${YYYYMMDDHHi}/Pre + rm -fr ${DATAIN}/${YYYYMMDDHHi} + +echo "End of degrib Job" + +EOF0 + +elif [[ $MODERUN == "G" ]]; then + echo "MODERUN=G. Degribbing GFS data only for initial conditions..." + cp -f ${BNDDIR}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 ${DATAIN}/${YYYYMMDDHHi} + + if [ ${SCHEDULER_SYSTEM} != "GENERIC" ] + then + sed -e "s,#JOBNAME#,${DEGRIB_jobname},g; + s,#NNODES#,${DEGRIB_nnodes},g; + s,#NCPUS#,${DEGRIB_ncpus},g; + s,#NTASKS#,${DEGRIB_ncores},g; + s,#NTASKSPNODE#,${DEGRIB_ncpn},g; + s,#NTHREADS#,${DEGRIB_nthreads},g; + s,#PARTITION#,${DEGRIB_QUEUE},g; + s,#WALLTIME#,${DEGRIB_walltime},g; + s,#OUTPUTJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o,g; + s,#ERRORJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e,g" \ + ${SCRIPTS}/stools/submit_${SYSTEM_KEY}.bash_TEMPLATE > ${DIRRUN}/degrib_${EXP}.bash + else + echo "#!/bin/bash " > ${DIRRUN}/degrib_${EXP}.bash + fi + + cat << EOF0 >> ${DIRRUN}/degrib_${EXP}.bash + +ulimit -s unlimited +ulimit -c unlimited +ulimit -v unlimited + +export PMIX_MCA_gds=hash + +export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${HOME}/local/lib64 + +cd ${DIRRUN} + +. ${SCRIPTS}/setenv.bash + +echo "-- PBS_JOBID: \$PBS_JOBID" + +ldd ungrib.exe + +rm -f GRIBFILE.* namelist.wps + +sed -e "s,#LABELI#,${start_date},g;s,#LABELF#,${start_date},g;s,#LBCINT#,${LBCINT},g;s,#PREFIX#,${EXP},g" \ + ${DIRRUN}/namelist.wps.TEMPLATE > ${DIRRUN}/namelist.wps + +./link_grib.csh ${DATAIN}/${YYYYMMDDHHi}/gfs.t${YYYYMMDDHHi:8:2}z.pgrb2.0p25.f000.${YYYYMMDDHHi}.grib2 + +chmod 755 * +echo "" +date +echo "submetendo jobs ungrib" + +time mpirun -np 1 ./ungrib.exe + +date + +grep "Successful completion of program ungrib.exe" ${DIRRUN}/ungrib.log >& /dev/null +if [ \$? -ne 0 ]; then + echo " BUMMER: Ungrib generation failed for some yet unknown reason." + echo " " + tail -10 ${DIRRUN}/ungrib.log + echo " " + exit 21 +fi +# +# clean up and remove links +# + mv ungrib.log ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/ungrib.${start_date}.log + mv namelist.wps ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/namelist.${start_date}.wps + mv GFS\:${start_date:0:13} ${DATAOUT}/${YYYYMMDDHHi}/Pre + rm -fr ${DATAIN}/${YYYYMMDDHHi} +echo "End of degrib Job" + +EOF0 + +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Make degrib phase fails during degrib! Please select MODERUN=R or G so that degrib can be done appropriately.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi + +chmod a+x ${DIRRUN}/degrib_${EXP}.bash + +case "${SCHEDULER_SYSTEM}" in + SLURM) + echo -e "${GREEN}==>${NC} Sbatch degrib_${EXP}.bash...\n" + cd ${DIRRUN} + sbatch --wait ${DIRRUN}/degrib_${EXP}.bash + ;; + PBS) + echo -e "${GREEN}==>${NC} Qsub degrib_${EXP}.bash...\n" + cd ${DIRRUN} + qsub -W block=true ${DIRRUN}/degrib_${EXP}.bash + ;; +# GENERIC) +# echo "Nenhum gerenciador detectado" +# ${DIRRUN}/degrib_${EXP}.bash +# ;; +esac + + +files_ungrib=("${EXP}:${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2}_${YYYYMMDDHHi:8:2}") +for file in "${files_ungrib[@]}" +do + if [ ! -s ${DATAOUT}/${YYYYMMDDHHi}/Pre/${file} ] + then + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Degrib fails! At least the file ${file} was not generated at ${DATAIN}/${YYYYMMDDHHi}. \n" + echo -e "${RED}==>${NC} Check logs at ${DATAOUT}/logs/degrib.* .\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 + fi +done + +mv ${DIRRUN}/degrib_${EXP}.bash ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs +chmod 755 ${DATAOUT}/${YYYYMMDDHHi}/Pre/* + +JOBID=$(sed -n '4p' ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o | awk '{print $3}' | sed "s/.pbs-ha//g") +mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o.${JOBID} +mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e.${JOBID} +chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.o.${JOBID} +chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/degrib_${EXP}.e.${JOBID} +rm -fr ${DIRRUN} diff --git a/scripts/make_initatmos.bash b/scripts/make_initatmos.bash index 186a8e7..a321301 100755 --- a/scripts/make_initatmos.bash +++ b/scripts/make_initatmos.bash @@ -1,7 +1,6 @@ #!/bin/bash umask 022 - if [ $# -ne 4 ] then echo "" @@ -59,8 +58,6 @@ export DIRRUN=${DIRHOMED}/run.${YYYYMMDDHHi}; rm -fr ${DIRRUN}; mkdir -p ${DIRRU mkdir -p ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs - - if [ ! -s ${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores} ] then if [ ! -s ${DATAIN}/fixed/x1.${RES}.graph.info ] @@ -69,14 +66,12 @@ then echo -e "${GREEN}==>${NC} downloading meshes tgz files ... \n" cd ${DATAIN}/fixed wget https://www2.mmm.ucar.edu/projects/mpas/atmosphere_meshes/x1.${RES}.tar.gz - wget https://www2.mmm.ucar.edu/projects/mpas/atmosphere_meshes/x1.${RES}_static.tar.gz tar -xzvf x1.${RES}.tar.gz - tar -xzvf x1.${RES}_static.tar.gz fi echo -e "${GREEN}==>${NC} Creating x1.${RES}.graph.info.part.${cores} ... \n" cd ${DATAIN}/fixed gpmetis -minconn -contig -niter=200 x1.${RES}.graph.info ${cores} - rm -fr x1.${RES}.tar.gz x1.${RES}_static.tar.gz + rm -fr x1.${RES}.tar.gz fi @@ -91,9 +86,14 @@ do fi done +if [[ $MODERUN == "R" ]]; then + BLEND_BDY_TERRAIN=true +else + BLEND_BDY_TERRAIN=false +fi -sed -e "s,#LABELI#,${start_date},g;s,#GEODAT#,${GEODATA},g;s,#RES#,${RES},g" \ - ${SCRIPTS}/namelists/namelist.init_atmosphere.TEMPLATE > ${DIRRUN}/namelist.init_atmosphere +sed -e "s,#LABELI#,${start_date},g;s,#GEODAT#,${GEODATA},g;s,#RES#,${RES},g;s,#EXP#,${EXP},g;s,#BLEND_BDY_TERRAIN#,${BLEND_BDY_TERRAIN},g" \ + ${SCRIPTS}/namelists/namelist.init_atmosphere.TEMPLATE > ${DIRRUN}/namelist.init_atmosphere sed -e "s,#RES#,${RES},g" \ ${SCRIPTS}/namelists/streams.init_atmosphere.TEMPLATE > ${DIRRUN}/streams.init_atmosphere diff --git a/scripts/make_lbcs.bash b/scripts/make_lbcs.bash new file mode 100755 index 0000000..b6e3648 --- /dev/null +++ b/scripts/make_lbcs.bash @@ -0,0 +1,189 @@ +#!/bin/bash + + +if [ $# -ne 4 ] +then + echo "" + echo "Instructions: execute the command below" + echo "" + echo "${0} EXP_NAME RESOLUTION LABELI FCST" + echo "" + echo "EXP_NAME :: Forcing: GFS or ERA" + echo " :: Others options to be added later..." + echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" + echo "LABELI :: Initial date YYYYMMDDHH, e.g.: 2024010100" + echo "FCST :: Forecast hours, e.g.: 24 or 36, etc." + echo "" + echo "24 hour forcast example:" + echo "${0} GFS 1024002 2024010100 24" + echo "" + + exit +fi + +# Set environment variables exports: +echo "" +echo -e "\033[1;32m==>\033[0m Moduling environment for MONAN model...\n" +. setenv.bash + + +# Standart directories variables:--------------------------------------- +DIRHOMES=${DIR_SCRIPTS}/scripts_CD-CT; mkdir -p ${DIRHOMES} +DIRHOMED=${DIR_DADOS}/scripts_CD-CT; mkdir -p ${DIRHOMED} +SCRIPTS=${DIRHOMES}/scripts; mkdir -p ${SCRIPTS} +DATAIN=${DIRHOMED}/datain; mkdir -p ${DATAIN} +DATAOUT=${DIRHOMED}/dataout; mkdir -p ${DATAOUT} +SOURCES=${DIRHOMES}/sources; mkdir -p ${SOURCES} +EXECS=${DIRHOMED}/execs; mkdir -p ${EXECS} +#---------------------------------------------------------------------- + + +# Input variables:-------------------------------------- +EXP=${1}; #EXP=GFS +RES=${2}; #RES=1024002 +YYYYMMDDHHi=${3}; #YYYYMMDDHHi=2024012000 +FCST=${4}; #FCST=24 +#------------------------------------------------------- + +# Local variables-------------------------------------- +start_date=${YYYYMMDDHHi:0:4}-${YYYYMMDDHHi:4:2}-${YYYYMMDDHHi:6:2}_${YYYYMMDDHHi:8:2}:00:00 +yyyymmddi=${YYYYMMDDHHi:0:8} +hhi=${YYYYMMDDHHi:8:2} +yyyymmddhhf=$(date +"%Y%m%d%H" -d "${yyyymmddi} ${hhi}:00 ${FCST} hours" ) +final_date=${yyyymmddhhf:0:4}-${yyyymmddhhf:4:2}-${yyyymmddhhf:6:2}_${yyyymmddhhf:8:2}:00:00 +GEODATA=${DATAIN}/WPS_GEOG +cores=${LBCS_ncores} +export DIRRUN=${DIRHOMED}/run.${YYYYMMDDHHi}; rm -fr ${DIRRUN}; mkdir -p ${DIRRUN} +#------------------------------------------------------- +mkdir -p ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs + +if [ ! -s ${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores} ] +then + if [ ! -s ${DATAIN}/fixed/x1.${RES}.graph.info ] + then + cd ${DATAIN}/fixed + echo -e "${GREEN}==>${NC} downloading meshes tgz files ... \n" + cd ${DATAIN}/fixed + wget https://www2.mmm.ucar.edu/projects/mpas/atmosphere_meshes/x1.${RES}.tar.gz + tar -xzvf x1.${RES}.tar.gz + fi + echo -e "${GREEN}==>${NC} Creating x1.${RES}.graph.info.part.${cores} ... \n" + cd ${DATAIN}/fixed + gpmetis -minconn -contig -niter=200 x1.${RES}.graph.info ${cores} + rm -fr x1.${RES}.tar.gz +fi + +files_needed=("${SCRIPTS}/namelists/namelist.init_atmosphere.LBCS" "${SCRIPTS}/namelists/streams.init_atmosphere.LBCS" "${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores}" "${DATAOUT}/${YYYYMMDDHHi}/Pre/x1.${RES}.init.nc" "${EXECS}/init_atmosphere_model") +for file in "${files_needed[@]}" +do + if [ ! -s "${file}" ] + then + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} [${0}] At least the file ${file} was not generated. \n" + exit -1 + fi +done + + +sed -e "s,#LABELI#,${start_date},g;s,#LABELF#,${final_date},g;s,#GEODAT#,${GEODATA},g;s,#LBCINT#,${LBCINT},g;s,#RES#,${RES},g;s,#EXP#,${EXP},g" \ + ${SCRIPTS}/namelists/namelist.init_atmosphere.LBCS > ${DIRRUN}/namelist.init_atmosphere + +sed -e "s,#RES#,${RES},g;s,#LBCINT#,${LBCINT},g" \ + ${SCRIPTS}/namelists/streams.init_atmosphere.LBCS > ${DIRRUN}/streams.init_atmosphere + + +cp -f ${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores} ${DIRRUN} +cp -f ${DATAOUT}/${YYYYMMDDHHi}/Pre/x1.${RES}.init.nc ${DIRRUN} +cp -f ${DATAOUT}/${YYYYMMDDHHi}/Pre/${EXP}\:* ${DIRRUN} +cp -f ${EXECS}/init_atmosphere_model ${DIRRUN} + + +cp -f ${SCRIPTS}/setenv.bash ${DIRRUN} +rm -f ${DIRRUN}/lbcs.bash + +if [ ${SCHEDULER_SYSTEM} != "GENERIC" ] +then + sed -e "s,#JOBNAME#,${LBCS_jobname},g; + s,#NNODES#,${LBCS_nnodes},g; + s,#NCPUS#,${LBCS_ncpus},g; + s,#NTASKS#,${LBCS_ncores},g; + s,#NTASKSPNODE#,${LBCS_ncpn},g; + s,#NTHREADS#,${LBCS_nthreads},g; + s,#PARTITION#,${LBCS_QUEUE},g; + s,#WALLTIME#,${LBCS_walltime},g; + s,#OUTPUTJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.o,g; + s,#ERRORJOB#,${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.e,g" \ + ${SCRIPTS}/stools/submit_${SYSTEM_KEY}.bash_TEMPLATE > ${DIRRUN}/lbcs.bash +else + echo "#!/bin/bash " > ${DIRRUN}/lbcs.bash +fi + +cat << EOF0 >> ${DIRRUN}/lbcs.bash + +export executable=init_atmosphere_model + +ulimit -c unlimited +ulimit -v unlimited +ulimit -s unlimited + +. ${SCRIPTS}/setenv.bash + +cd ${DIRRUN} + +if [ "$HOSTNAME" = "egeon" ]; then + echo "-- SLURM_JOB_ID: \$SLURM_JOB_ID" + time mpirun -np ${LBCS_ncores} ./\${executable} +else + echo "-- PBS_JOBID: \$PBS_JOBID" + time mpirun --ppn ${LBCS_ncpn} -np ${LBCS_ncores} --depth=${LBCS_nthreads} --cpu-bind depth ./\${executable} +fi + +date + +mv ${DIRRUN}/log.init_atmosphere.0000.out ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/log.init_atmosphere.0000.${RES}.lbcs.nc.${YYYYMMDDHHi}.out +mv ${DIRRUN}/namelist.init_atmosphere ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/namelist.init_atmosphere.lbcs +mv ${DIRRUN}/streams.init_atmosphere ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/streams.init_atmosphere.lbcs +mv ${DIRRUN}/x1.${RES}.init.nc ${DATAOUT}/${YYYYMMDDHHi}/Pre +mv ${DIRRUN}/lbc*.nc ${DATAOUT}/${YYYYMMDDHHi}/Pre + +EOF0 +chmod a+x ${DIRRUN}/lbcs.bash + +case "${SCHEDULER_SYSTEM}" in + SLURM) + echo -e "${GREEN}==>${NC} Sbatch lbcs.bash...\n" + cd ${DIRRUN} + sbatch --wait ${DIRRUN}/lbcs.bash + ;; + PBS) + echo -e "${GREEN}==>${NC} qsub lbcs.bash...\n" + cd ${DIRRUN} + qsub -W block=true ${DIRRUN}/lbcs.bash + ;; +# GENERIC) +# echo "Nenhum gerenciador detectado" +# cd ${DIRRUN} +# ${DIRRUN}/lbcs.bash +# ;; +esac + +echo -e "${GREEN}==>${NC} Executing sbatch lbcs.bash...\n" +cd ${DIRRUN} + +mv ${DIRRUN}/lbcs.bash ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs + +if [ -z "$(ls ${DATAOUT}/${YYYYMMDDHHi}/Pre/lbc* 2>/dev/null)" ] +then + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} LBC phase fails! Check logs at ${DATAOUT}/logs/lbcs.* .\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi +chmod 775 ${DATAOUT}/${YYYYMMDDHHi}/Pre/* + +JOBID=$(sed -n '4p' ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.o | awk '{print $3}' | sed "s/.pbs-ha//g") +mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.o ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.o.${JOBID} +mv ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.e ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.e.${JOBID} +chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.o.${JOBID} +chmod a+r ${DATAOUT}/${YYYYMMDDHHi}/Pre/logs/lbcs.e.${JOBID} +rm -fr ${DIRRUN} diff --git a/scripts/make_static.bash b/scripts/make_static.bash index e38061a..c59eba8 100755 --- a/scripts/make_static.bash +++ b/scripts/make_static.bash @@ -67,16 +67,14 @@ then cd ${DATAIN}/fixed echo -e "${GREEN}==>${NC} downloading meshes tgz files ... \n" wget https://www2.mmm.ucar.edu/projects/mpas/atmosphere_meshes/x1.${RES}.tar.gz - wget https://www2.mmm.ucar.edu/projects/mpas/atmosphere_meshes/x1.${RES}_static.tar.gz tar -xzvf x1.${RES}.tar.gz - tar -xzvf x1.${RES}_static.tar.gz chmod 755 * fi echo -e "${GREEN}==>${NC} Creating x1.${RES}.graph.info.part.${cores} ... \n" cd ${DATAIN}/fixed gpmetis -minconn -contig -niter=200 x1.${RES}.graph.info ${cores} - rm -fr x1.${RES}.tar.gz x1.${RES}_static.tar.gz chmod 755 * + rm -fr x1.${RES}.tar.gz fi files_needed=("${EXECS}/init_atmosphere_model" "${DATAIN}/fixed/x1.${RES}.graph.info.part.${cores}" "${DATAIN}/fixed/x1.${RES}.grid.nc" "${SCRIPTS}/namelists/namelist.init_atmosphere.STATIC" "${SCRIPTS}/namelists/streams.init_atmosphere.STATIC") diff --git a/scripts/make_template.bash b/scripts/make_template.bash index 2d6abf4..eff9107 100755 --- a/scripts/make_template.bash +++ b/scripts/make_template.bash @@ -8,10 +8,10 @@ umask 022 # # Performs the following tasks: # -# o VCheck all input files before -# o Creates the submition script +# o Check all input files before +# o Creates the submission script # o Submit the post -# o Veriffy all files generated +# o Verify all files generated # # #-----------------------------------------------------------------------------# @@ -23,7 +23,7 @@ then echo "" echo "${0} ]EXP_NAME/OP] RESOLUTION LABELI FCST" echo "" - echo "EXP_NAME :: Forcing: GFS" + echo "EXP_NAME :: Forcing: GFS or ERA" echo "RESOLUTION :: number of points in resolution model grid, e.g: 1024002 (24 km)" echo "LABELI :: Initial date YYYYMMDDHH, e.g.: 2024010100" echo "FCST :: Forecast hours, e.g.: 24 or 36, etc." @@ -89,31 +89,6 @@ cd ${DIRRUN} IFS=":" read -r h m s <<< "${t_strout}" printf -v t_strout "%02d:%02d:%02d" "$h" "$m" "$s" -# Calculating default parameters for different resolutions -if [ $RES -eq 1024002 ]; then #24Km - NLAT=721 #180/0.25 - NLON=1441 #360/0.25 - STARTLAT=-90.0 - STARTLON=0.0 - ENDLAT=90.0 - ENDLON=360.0 -elif [ $RES -eq 2621442 ]; then #15Km - NLAT=1201 #180/0.15 - NLON=2401 #360/0.15 - STARTLAT=-90.0 - STARTLON=0.0 - ENDLAT=90.0 - ENDLON=360.0 -elif [ $RES -eq 40962 ]; then #120Km - NLAT=150 #180/1.2 - NLON=300 #360/1.2 - STARTLAT=-90.0 - STARTLON=0.0 - ENDLAT=90.0 - ENDLON=360.0 -fi -#------------------------------------------------------- - # NLEVS get from t_iso_levels in Registry_isobaric.xml: if [ -s ${MONANDIR}/src/core_atmosphere/diagnostics/Registry_isobaric.xml ] then @@ -125,9 +100,20 @@ fi output_interval=${t_strouthor} nfiles=$(echo "$FCST/$output_interval + 1" | bc) -diag_name_post=MONAN_DIAG_G_POS_${EXP}_${YYYYMMDDHHi}_${YYYYMMDDHHi}.00.00.x${RES}L${N_MODEL_LEV}.nc -diag_name_templ=MONAN_DIAG_G_POS_${EXP}_${YYYYMMDDHHi}_%y4%m2%d2%h2.%n2.00.x${RES}L${N_MODEL_LEV}.nc +# Definindo G ou R no MONAN_DIAG +if [[ $MODERUN == "R" ]]; then + RORG=R +elif [[ $MODERUN == "G" ]]; then + RORG=G +else + echo -e "\n${RED}==>${NC} ***** ATTENTION *****\n" + echo -e "${RED}==>${NC} Make post template phase fails! Please select MODERUN=R (Regional) or MODERUN=G (Global) in 'setenv.bash'.\n" + echo -e "${RED}==>${NC} Exiting script. \n" + exit -1 +fi +diag_name_post=MONAN_DIAG_${RORG}_POS_${EXP}_${YYYYMMDDHHi}_${YYYYMMDDHHi}.00.00.x${RES}L${N_MODEL_LEV}.nc +diag_name_templ=MONAN_DIAG_${RORG}_POS_${EXP}_${YYYYMMDDHHi}_%y4%m2%d2%h2.%n2.00.x${RES}L${N_MODEL_LEV}.nc rm -fr ${DIRRUN}/qctlinfo.gs diff --git a/scripts/namelists/include_fields.diag b/scripts/namelists/include_fields.diag deleted file mode 100755 index b39754f..0000000 --- a/scripts/namelists/include_fields.diag +++ /dev/null @@ -1,72 +0,0 @@ -initial_time -xtime -Time -t_iso_levels -zgeo_isobaric -cldfrac_isobaric -temperature_isobaric -dewpoint_isobaric -relhum_isobaric -w_isobaric -uzonal_isobaric -umeridional_isobaric -vorticity_isobaric -height_isobaric -spechum_isobaric -omega_isobaric -rqvblten_isobaric -rthblten_isobaric -rqvcuten_isobaric -rthcuten_isobaric -rthratenlw_isobaric -rthratensw_isobaric -rucuten_isobaric -rvcuten_isobaric -rvblten_isobaric -rublten_isobaric -kzq_isobaric -kzh_isobaric -kzm_isobaric -ni_isobaric -nr_isobaric -qr_isobaric -qs_isobaric -qv_isobaric -qc_isobaric -qg_isobaric -qi_isobaric -t2m -rainc -rainnc -uzonal_surface -umeridional_surface -u10 -v10 -surface_pressure -sst -q2 -mslp -lh -hpbl -hfx -delta -cldfrac_tot_UPP -chs -cd -acswuptc -acswupt -acswupbc -acswupb -acswdntc -acswdnt -acswdnbc -acswdnb -acsnow -aclwuptc -aclwupt -aclwupbc -aclwupb -aclwdntc -aclwdnt -aclwdnbc -aclwdnb diff --git a/scripts/namelists/include_fields.diag.CD-CT b/scripts/namelists/include_fields.diag.CD-CT deleted file mode 100755 index 3de9759..0000000 --- a/scripts/namelists/include_fields.diag.CD-CT +++ /dev/null @@ -1,695 +0,0 @@ -t2m -rainc -rainnc -uzonal_surface -umeridional_surface -u10 -v10 -surface_pressure -relhum_15hPa -relhum_20hPa -relhum_30hPa -relhum_50hPa -relhum_70hPa -relhum_100hPa -relhum_150hPa -relhum_200hPa -relhum_250hPa -relhum_300hPa -relhum_400hPa -relhum_500hPa -relhum_600hPa -relhum_700hPa -relhum_825hPa -relhum_850hPa -relhum_875hPa -relhum_900hPa -relhum_925hPa -relhum_950hPa -relhum_975hPa -relhum_1000hPa -geoph_15hPa -geoph_20hPa -geoph_30hPa -geoph_50hPa -geoph_70hPa -geoph_100hPa -geoph_150hPa -geoph_200hPa -geoph_250hPa -geoph_300hPa -geoph_400hPa -geoph_500hPa -geoph_600hPa -geoph_700hPa -geoph_825hPa -geoph_850hPa -geoph_875hPa -geoph_900hPa -geoph_925hPa -geoph_950hPa -geoph_975hPa -geoph_1000hPa -sst -q2 -mslp -lh -hpbl -hfx -delta -cldfrac_tot_UPP -chs -cd -acswuptc -acswupt -acswupbc -acswupb -acswdntc -acswdnt -acswdnbc -acswdnb -acsnow -aclwuptc -aclwupt -aclwupbc -aclwupb -aclwdntc -aclwdnt -aclwdnbc -aclwdnb -w_15hPa -w_20hPa -w_30hPa -w_50hPa -w_70hPa -w_100hPa -w_150hPa -w_200hPa -w_250hPa -w_300hPa -w_400hPa -w_500hPa -w_600hPa -w_700hPa -w_825hPa -w_850hPa -w_875hPa -w_900hPa -w_925hPa -w_950hPa -w_975hPa -w_1000hPa -uzonal_15hPa -uzonal_20hPa -uzonal_30hPa -uzonal_50hPa -uzonal_70hPa -uzonal_100hPa -uzonal_150hPa -uzonal_200hPa -uzonal_250hPa -uzonal_300hPa -uzonal_400hPa -uzonal_500hPa -uzonal_600hPa -uzonal_700hPa -uzonal_825hPa -uzonal_850hPa -uzonal_875hPa -uzonal_900hPa -uzonal_925hPa -uzonal_950hPa -uzonal_975hPa -uzonal_1000hPa -umeridional_15hPa -umeridional_20hPa -umeridional_30hPa -umeridional_50hPa -umeridional_70hPa -umeridional_100hPa -umeridional_150hPa -umeridional_200hPa -umeridional_250hPa -umeridional_300hPa -umeridional_400hPa -umeridional_500hPa -umeridional_600hPa -umeridional_700hPa -umeridional_825hPa -umeridional_850hPa -umeridional_875hPa -umeridional_900hPa -umeridional_925hPa -umeridional_950hPa -umeridional_975hPa -umeridional_1000hPa -temperature_15hPa -temperature_20hPa -temperature_30hPa -temperature_50hPa -temperature_70hPa -temperature_100hPa -temperature_150hPa -temperature_200hPa -temperature_250hPa -temperature_300hPa -temperature_400hPa -temperature_500hPa -temperature_600hPa -temperature_700hPa -temperature_825hPa -temperature_850hPa -temperature_875hPa -temperature_900hPa -temperature_925hPa -temperature_950hPa -temperature_975hPa -temperature_1000hPa -spechum_15hPa -spechum_20hPa -spechum_30hPa -spechum_50hPa -spechum_70hPa -spechum_100hPa -spechum_150hPa -spechum_200hPa -spechum_250hPa -spechum_300hPa -spechum_400hPa -spechum_500hPa -spechum_600hPa -spechum_700hPa -spechum_825hPa -spechum_850hPa -spechum_875hPa -spechum_900hPa -spechum_925hPa -spechum_950hPa -spechum_975hPa -spechum_1000hPa -rthratenlw_15hPa -rthratenlw_20hPa -rthratenlw_30hPa -rthratenlw_50hPa -rthratenlw_70hPa -rthratenlw_100hPa -rthratenlw_150hPa -rthratenlw_200hPa -rthratenlw_250hPa -rthratenlw_300hPa -rthratenlw_400hPa -rthratenlw_500hPa -rthratenlw_600hPa -rthratenlw_700hPa -rthratenlw_825hPa -rthratenlw_850hPa -rthratenlw_875hPa -rthratenlw_900hPa -rthratenlw_925hPa -rthratenlw_950hPa -rthratenlw_975hPa -rthratenlw_1000hPa -rqvcuten_15hPa -rqvcuten_20hPa -rqvcuten_30hPa -rqvcuten_50hPa -rqvcuten_70hPa -rqvcuten_100hPa -rqvcuten_150hPa -rqvcuten_200hPa -rqvcuten_250hPa -rqvcuten_300hPa -rqvcuten_400hPa -rqvcuten_500hPa -rqvcuten_600hPa -rqvcuten_700hPa -rqvcuten_825hPa -rqvcuten_850hPa -rqvcuten_875hPa -rqvcuten_900hPa -rqvcuten_925hPa -rqvcuten_950hPa -rqvcuten_975hPa -rqvcuten_1000hPa -rqvblten_15hPa -rqvblten_20hPa -rqvblten_30hPa -rqvblten_50hPa -rqvblten_70hPa -rqvblten_100hPa -rqvblten_150hPa -rqvblten_200hPa -rqvblten_250hPa -rqvblten_300hPa -rqvblten_400hPa -rqvblten_500hPa -rqvblten_600hPa -rqvblten_700hPa -rqvblten_825hPa -rqvblten_850hPa -rqvblten_875hPa -rqvblten_900hPa -rqvblten_925hPa -rqvblten_950hPa -rqvblten_975hPa -rqvblten_1000hPa -kzh_15hPa -kzh_20hPa -kzh_30hPa -kzh_50hPa -kzh_70hPa -kzh_100hPa -kzh_150hPa -kzh_200hPa -kzh_250hPa -kzh_300hPa -kzh_400hPa -kzh_500hPa -kzh_600hPa -kzh_700hPa -kzh_825hPa -kzh_850hPa -kzh_875hPa -kzh_900hPa -kzh_925hPa -kzh_950hPa -kzh_975hPa -kzh_1000hPa -kzm_15hPa -kzm_20hPa -kzm_30hPa -kzm_50hPa -kzm_70hPa -kzm_100hPa -kzm_150hPa -kzm_200hPa -kzm_250hPa -kzm_300hPa -kzm_400hPa -kzm_500hPa -kzm_600hPa -kzm_700hPa -kzm_825hPa -kzm_850hPa -kzm_875hPa -kzm_900hPa -kzm_925hPa -kzm_950hPa -kzm_975hPa -kzm_1000hPa -kzq_15hPa -kzq_20hPa -kzq_30hPa -kzq_50hPa -kzq_70hPa -kzq_100hPa -kzq_150hPa -kzq_200hPa -kzq_250hPa -kzq_300hPa -kzq_400hPa -kzq_500hPa -kzq_600hPa -kzq_700hPa -kzq_825hPa -kzq_850hPa -kzq_875hPa -kzq_900hPa -kzq_925hPa -kzq_950hPa -kzq_975hPa -kzq_1000hPa -height_15hPa -height_20hPa -height_30hPa -height_50hPa -height_70hPa -height_100hPa -height_150hPa -height_200hPa -height_250hPa -height_300hPa -height_400hPa -height_500hPa -height_600hPa -height_700hPa -height_825hPa -height_850hPa -height_875hPa -height_900hPa -height_925hPa -height_950hPa -height_975hPa -height_1000hPa -qc_15hPa -qc_20hPa -qc_30hPa -qc_50hPa -qc_70hPa -qc_100hPa -qc_150hPa -qc_200hPa -qc_250hPa -qc_300hPa -qc_400hPa -qc_500hPa -qc_600hPa -qc_700hPa -qc_825hPa -qc_850hPa -qc_875hPa -qc_900hPa -qc_925hPa -qc_950hPa -qc_975hPa -qc_1000hPa -qg_15hPa -qg_20hPa -qg_30hPa -qg_50hPa -qg_70hPa -qg_100hPa -qg_150hPa -qg_200hPa -qg_250hPa -qg_300hPa -qg_400hPa -qg_500hPa -qg_600hPa -qg_700hPa -qg_825hPa -qg_850hPa -qg_875hPa -qg_900hPa -qg_925hPa -qg_950hPa -qg_975hPa -qg_1000hPa -qi_15hPa -qi_20hPa -qi_30hPa -qi_50hPa -qi_70hPa -qi_100hPa -qi_150hPa -qi_200hPa -qi_250hPa -qi_300hPa -qi_400hPa -qi_500hPa -qi_600hPa -qi_700hPa -qi_825hPa -qi_850hPa -qi_875hPa -qi_900hPa -qi_925hPa -qi_950hPa -qi_975hPa -qi_1000hPa -qv_15hPa -qv_20hPa -qv_30hPa -qv_50hPa -qv_70hPa -qv_100hPa -qv_150hPa -qv_200hPa -qv_250hPa -qv_300hPa -qv_400hPa -qv_500hPa -qv_600hPa -qv_700hPa -qv_825hPa -qv_850hPa -qv_875hPa -qv_900hPa -qv_925hPa -qv_950hPa -qv_975hPa -qv_1000hPa -qr_15hPa -qr_20hPa -qr_30hPa -qr_50hPa -qr_70hPa -qr_100hPa -qr_150hPa -qr_200hPa -qr_250hPa -qr_300hPa -qr_400hPa -qr_500hPa -qr_600hPa -qr_700hPa -qr_825hPa -qr_850hPa -qr_875hPa -qr_900hPa -qr_925hPa -qr_950hPa -qr_975hPa -qr_1000hPa -qs_15hPa -qs_20hPa -qs_30hPa -qs_50hPa -qs_70hPa -qs_100hPa -qs_150hPa -qs_200hPa -qs_250hPa -qs_300hPa -qs_400hPa -qs_500hPa -qs_600hPa -qs_700hPa -qs_825hPa -qs_850hPa -qs_875hPa -qs_900hPa -qs_925hPa -qs_950hPa -qs_975hPa -qs_1000hPa -ni_15hPa -ni_20hPa -ni_30hPa -ni_50hPa -ni_70hPa -ni_100hPa -ni_150hPa -ni_200hPa -ni_250hPa -ni_300hPa -ni_400hPa -ni_500hPa -ni_600hPa -ni_700hPa -ni_825hPa -ni_850hPa -ni_875hPa -ni_900hPa -ni_925hPa -ni_950hPa -ni_975hPa -ni_1000hPa -nr_15hPa -nr_20hPa -nr_30hPa -nr_50hPa -nr_70hPa -nr_100hPa -nr_150hPa -nr_200hPa -nr_250hPa -nr_300hPa -nr_400hPa -nr_500hPa -nr_600hPa -nr_700hPa -nr_825hPa -nr_850hPa -nr_875hPa -nr_900hPa -nr_925hPa -nr_950hPa -nr_975hPa -nr_1000hPa -rucuten_15hPa -rucuten_20hPa -rucuten_30hPa -rucuten_50hPa -rucuten_70hPa -rucuten_100hPa -rucuten_150hPa -rucuten_200hPa -rucuten_250hPa -rucuten_300hPa -rucuten_400hPa -rucuten_500hPa -rucuten_600hPa -rucuten_700hPa -rucuten_825hPa -rucuten_850hPa -rucuten_875hPa -rucuten_900hPa -rucuten_925hPa -rucuten_950hPa -rucuten_975hPa -rucuten_1000hPa -rvcuten_15hPa -rvcuten_20hPa -rvcuten_30hPa -rvcuten_50hPa -rvcuten_70hPa -rvcuten_100hPa -rvcuten_150hPa -rvcuten_200hPa -rvcuten_250hPa -rvcuten_300hPa -rvcuten_400hPa -rvcuten_500hPa -rvcuten_600hPa -rvcuten_700hPa -rvcuten_825hPa -rvcuten_850hPa -rvcuten_875hPa -rvcuten_900hPa -rvcuten_925hPa -rvcuten_950hPa -rvcuten_975hPa -rvcuten_1000hPa -rvblten_15hPa -rvblten_20hPa -rvblten_30hPa -rvblten_50hPa -rvblten_70hPa -rvblten_100hPa -rvblten_150hPa -rvblten_200hPa -rvblten_250hPa -rvblten_300hPa -rvblten_400hPa -rvblten_500hPa -rvblten_600hPa -rvblten_700hPa -rvblten_825hPa -rvblten_850hPa -rvblten_875hPa -rvblten_900hPa -rvblten_925hPa -rvblten_950hPa -rvblten_975hPa -rvblten_1000hPa -cldfrac_15hPa -cldfrac_20hPa -cldfrac_30hPa -cldfrac_50hPa -cldfrac_70hPa -cldfrac_100hPa -cldfrac_150hPa -cldfrac_200hPa -cldfrac_250hPa -cldfrac_300hPa -cldfrac_400hPa -cldfrac_500hPa -cldfrac_600hPa -cldfrac_700hPa -cldfrac_825hPa -cldfrac_850hPa -cldfrac_875hPa -cldfrac_900hPa -cldfrac_925hPa -cldfrac_950hPa -cldfrac_975hPa -cldfrac_1000hPa -rublten_15hPa -rublten_20hPa -rublten_30hPa -rublten_50hPa -rublten_70hPa -rublten_100hPa -rublten_150hPa -rublten_200hPa -rublten_250hPa -rublten_300hPa -rublten_400hPa -rublten_500hPa -rublten_600hPa -rublten_700hPa -rublten_825hPa -rublten_850hPa -rublten_875hPa -rublten_900hPa -rublten_925hPa -rublten_950hPa -rublten_975hPa -rublten_1000hPa -rthratensw_15hPa -rthratensw_20hPa -rthratensw_30hPa -rthratensw_50hPa -rthratensw_70hPa -rthratensw_100hPa -rthratensw_150hPa -rthratensw_200hPa -rthratensw_250hPa -rthratensw_300hPa -rthratensw_400hPa -rthratensw_500hPa -rthratensw_600hPa -rthratensw_700hPa -rthratensw_825hPa -rthratensw_850hPa -rthratensw_875hPa -rthratensw_900hPa -rthratensw_925hPa -rthratensw_950hPa -rthratensw_975hPa -rthratensw_1000hPa -omega_15hPa -omega_20hPa -omega_30hPa -omega_50hPa -omega_70hPa -omega_100hPa -omega_150hPa -omega_200hPa -omega_250hPa -omega_300hPa -omega_400hPa -omega_500hPa -omega_600hPa -omega_700hPa -omega_825hPa -omega_850hPa -omega_875hPa -omega_900hPa -omega_925hPa -omega_950hPa -omega_975hPa -omega_1000hPa -zgeo_15hPa -zgeo_20hPa -zgeo_30hPa -zgeo_50hPa -zgeo_70hPa -zgeo_100hPa -zgeo_150hPa -zgeo_200hPa -zgeo_250hPa -zgeo_300hPa -zgeo_400hPa -zgeo_500hPa -zgeo_600hPa -zgeo_700hPa -zgeo_825hPa -zgeo_850hPa -zgeo_875hPa -zgeo_900hPa -zgeo_925hPa -zgeo_950hPa -zgeo_975hPa -zgeo_1000hPa diff --git a/scripts/namelists/include_fields.diag.GCC b/scripts/namelists/include_fields.diag.GCC deleted file mode 100755 index b39754f..0000000 --- a/scripts/namelists/include_fields.diag.GCC +++ /dev/null @@ -1,72 +0,0 @@ -initial_time -xtime -Time -t_iso_levels -zgeo_isobaric -cldfrac_isobaric -temperature_isobaric -dewpoint_isobaric -relhum_isobaric -w_isobaric -uzonal_isobaric -umeridional_isobaric -vorticity_isobaric -height_isobaric -spechum_isobaric -omega_isobaric -rqvblten_isobaric -rthblten_isobaric -rqvcuten_isobaric -rthcuten_isobaric -rthratenlw_isobaric -rthratensw_isobaric -rucuten_isobaric -rvcuten_isobaric -rvblten_isobaric -rublten_isobaric -kzq_isobaric -kzh_isobaric -kzm_isobaric -ni_isobaric -nr_isobaric -qr_isobaric -qs_isobaric -qv_isobaric -qc_isobaric -qg_isobaric -qi_isobaric -t2m -rainc -rainnc -uzonal_surface -umeridional_surface -u10 -v10 -surface_pressure -sst -q2 -mslp -lh -hpbl -hfx -delta -cldfrac_tot_UPP -chs -cd -acswuptc -acswupt -acswupbc -acswupb -acswdntc -acswdnt -acswdnbc -acswdnb -acsnow -aclwuptc -aclwupt -aclwupbc -aclwupb -aclwdntc -aclwdnt -aclwdnbc -aclwdnb diff --git a/scripts/namelists/namelist.atmosphere.TEMPLATE b/scripts/namelists/namelist.atmosphere.TEMPLATE index d234253..c4f103d 100755 --- a/scripts/namelists/namelist.atmosphere.TEMPLATE +++ b/scripts/namelists/namelist.atmosphere.TEMPLATE @@ -34,7 +34,7 @@ config_xnutr = 0.2 / &limited_area - config_apply_lbcs = false + config_apply_lbcs = #APPLY_LBCS# / &io config_pio_num_iotasks = 0 diff --git a/scripts/namelists/namelist.init_atmosphere.LBCS b/scripts/namelists/namelist.init_atmosphere.LBCS new file mode 100755 index 0000000..8e4ba81 --- /dev/null +++ b/scripts/namelists/namelist.init_atmosphere.LBCS @@ -0,0 +1,48 @@ +&nhyd_model + config_init_case = 9 + config_start_time = '#LABELI#' + config_stop_time = '#LABELF#' + config_theta_adv_order = 3 + config_coef_3rd_order = 0.25 +/ +&dimensions + config_nvertlevels = 55 + config_nsoillevels = 4 + config_nfglevels = 35 + config_nfgsoillevels = 4 +/ +&data_sources + config_geog_data_path = '#GEODAT#' + config_met_prefix = '#EXP#' + config_sfc_prefix = 'SST' + config_fg_interval = #LBCINT# + config_landuse_data = 'MODIFIED_IGBP_MODIS_NOAH' + config_topo_data = 'GMTED2010' + config_use_spechumd = true +/ +&vertical_grid + config_ztop = 30000.0 + config_nsmterrain = 1 + config_smooth_surfaces = true + config_dzmin = 0.3 + config_nsm = 30 + config_tc_vertical_grid = true +/ +&interpolation_control + config_extrap_airtemp = 'linear' +/ +&preproc_stages + config_static_interp = false + config_native_gwd_static = false + config_vertical_grid = true + config_met_interp = true + config_input_sst = false + config_frac_seaice = true +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 +/ +&decomposition + config_block_decomp_file_prefix = 'x1.#RES#.graph.info.part.' +/ diff --git a/scripts/namelists/namelist.init_atmosphere.TEMPLATE b/scripts/namelists/namelist.init_atmosphere.TEMPLATE index 2b560a1..18bf2b2 100755 --- a/scripts/namelists/namelist.init_atmosphere.TEMPLATE +++ b/scripts/namelists/namelist.init_atmosphere.TEMPLATE @@ -13,7 +13,7 @@ / &data_sources config_geog_data_path = '#GEODAT#' - config_met_prefix = 'GFS' + config_met_prefix = '#EXP#' config_sfc_prefix = 'SST' config_fg_interval = 86400 config_landuse_data = 'MODIFIED_IGBP_MODIS_NOAH' @@ -27,6 +27,7 @@ config_dzmin = 0.3 config_nsm = 30 config_tc_vertical_grid = true + config_blend_bdy_terrain = #BLEND_BDY_TERRAIN# / &interpolation_control config_extrap_airtemp = 'linear' diff --git a/scripts/namelists/namelist.wps.TEMPLATE b/scripts/namelists/namelist.wps.TEMPLATE index 2aaff90..9694f11 100755 --- a/scripts/namelists/namelist.wps.TEMPLATE +++ b/scripts/namelists/namelist.wps.TEMPLATE @@ -2,8 +2,8 @@ wrf_core = 'ARW', max_dom = 1, start_date = '#LABELI#', - end_date = '#LABELI#', - interval_seconds = 10800, + end_date = '#LABELF#', + interval_seconds = #LBCINT#, io_form_geogrid = 2, debug_level = 0, / diff --git a/scripts/namelists/stream_list.atmosphere.diagnostics b/scripts/namelists/stream_list.atmosphere.diagnostics deleted file mode 100755 index b39754f..0000000 --- a/scripts/namelists/stream_list.atmosphere.diagnostics +++ /dev/null @@ -1,72 +0,0 @@ -initial_time -xtime -Time -t_iso_levels -zgeo_isobaric -cldfrac_isobaric -temperature_isobaric -dewpoint_isobaric -relhum_isobaric -w_isobaric -uzonal_isobaric -umeridional_isobaric -vorticity_isobaric -height_isobaric -spechum_isobaric -omega_isobaric -rqvblten_isobaric -rthblten_isobaric -rqvcuten_isobaric -rthcuten_isobaric -rthratenlw_isobaric -rthratensw_isobaric -rucuten_isobaric -rvcuten_isobaric -rvblten_isobaric -rublten_isobaric -kzq_isobaric -kzh_isobaric -kzm_isobaric -ni_isobaric -nr_isobaric -qr_isobaric -qs_isobaric -qv_isobaric -qc_isobaric -qg_isobaric -qi_isobaric -t2m -rainc -rainnc -uzonal_surface -umeridional_surface -u10 -v10 -surface_pressure -sst -q2 -mslp -lh -hpbl -hfx -delta -cldfrac_tot_UPP -chs -cd -acswuptc -acswupt -acswupbc -acswupb -acswdntc -acswdnt -acswdnbc -acswdnb -acsnow -aclwuptc -aclwupt -aclwupbc -aclwupb -aclwdntc -aclwdnt -aclwdnbc -aclwdnb diff --git a/scripts/namelists/stream_list.atmosphere.diagnostics.CD-CT b/scripts/namelists/stream_list.atmosphere.diagnostics.CD-CT deleted file mode 100755 index 3de9759..0000000 --- a/scripts/namelists/stream_list.atmosphere.diagnostics.CD-CT +++ /dev/null @@ -1,695 +0,0 @@ -t2m -rainc -rainnc -uzonal_surface -umeridional_surface -u10 -v10 -surface_pressure -relhum_15hPa -relhum_20hPa -relhum_30hPa -relhum_50hPa -relhum_70hPa -relhum_100hPa -relhum_150hPa -relhum_200hPa -relhum_250hPa -relhum_300hPa -relhum_400hPa -relhum_500hPa -relhum_600hPa -relhum_700hPa -relhum_825hPa -relhum_850hPa -relhum_875hPa -relhum_900hPa -relhum_925hPa -relhum_950hPa -relhum_975hPa -relhum_1000hPa -geoph_15hPa -geoph_20hPa -geoph_30hPa -geoph_50hPa -geoph_70hPa -geoph_100hPa -geoph_150hPa -geoph_200hPa -geoph_250hPa -geoph_300hPa -geoph_400hPa -geoph_500hPa -geoph_600hPa -geoph_700hPa -geoph_825hPa -geoph_850hPa -geoph_875hPa -geoph_900hPa -geoph_925hPa -geoph_950hPa -geoph_975hPa -geoph_1000hPa -sst -q2 -mslp -lh -hpbl -hfx -delta -cldfrac_tot_UPP -chs -cd -acswuptc -acswupt -acswupbc -acswupb -acswdntc -acswdnt -acswdnbc -acswdnb -acsnow -aclwuptc -aclwupt -aclwupbc -aclwupb -aclwdntc -aclwdnt -aclwdnbc -aclwdnb -w_15hPa -w_20hPa -w_30hPa -w_50hPa -w_70hPa -w_100hPa -w_150hPa -w_200hPa -w_250hPa -w_300hPa -w_400hPa -w_500hPa -w_600hPa -w_700hPa -w_825hPa -w_850hPa -w_875hPa -w_900hPa -w_925hPa -w_950hPa -w_975hPa -w_1000hPa -uzonal_15hPa -uzonal_20hPa -uzonal_30hPa -uzonal_50hPa -uzonal_70hPa -uzonal_100hPa -uzonal_150hPa -uzonal_200hPa -uzonal_250hPa -uzonal_300hPa -uzonal_400hPa -uzonal_500hPa -uzonal_600hPa -uzonal_700hPa -uzonal_825hPa -uzonal_850hPa -uzonal_875hPa -uzonal_900hPa -uzonal_925hPa -uzonal_950hPa -uzonal_975hPa -uzonal_1000hPa -umeridional_15hPa -umeridional_20hPa -umeridional_30hPa -umeridional_50hPa -umeridional_70hPa -umeridional_100hPa -umeridional_150hPa -umeridional_200hPa -umeridional_250hPa -umeridional_300hPa -umeridional_400hPa -umeridional_500hPa -umeridional_600hPa -umeridional_700hPa -umeridional_825hPa -umeridional_850hPa -umeridional_875hPa -umeridional_900hPa -umeridional_925hPa -umeridional_950hPa -umeridional_975hPa -umeridional_1000hPa -temperature_15hPa -temperature_20hPa -temperature_30hPa -temperature_50hPa -temperature_70hPa -temperature_100hPa -temperature_150hPa -temperature_200hPa -temperature_250hPa -temperature_300hPa -temperature_400hPa -temperature_500hPa -temperature_600hPa -temperature_700hPa -temperature_825hPa -temperature_850hPa -temperature_875hPa -temperature_900hPa -temperature_925hPa -temperature_950hPa -temperature_975hPa -temperature_1000hPa -spechum_15hPa -spechum_20hPa -spechum_30hPa -spechum_50hPa -spechum_70hPa -spechum_100hPa -spechum_150hPa -spechum_200hPa -spechum_250hPa -spechum_300hPa -spechum_400hPa -spechum_500hPa -spechum_600hPa -spechum_700hPa -spechum_825hPa -spechum_850hPa -spechum_875hPa -spechum_900hPa -spechum_925hPa -spechum_950hPa -spechum_975hPa -spechum_1000hPa -rthratenlw_15hPa -rthratenlw_20hPa -rthratenlw_30hPa -rthratenlw_50hPa -rthratenlw_70hPa -rthratenlw_100hPa -rthratenlw_150hPa -rthratenlw_200hPa -rthratenlw_250hPa -rthratenlw_300hPa -rthratenlw_400hPa -rthratenlw_500hPa -rthratenlw_600hPa -rthratenlw_700hPa -rthratenlw_825hPa -rthratenlw_850hPa -rthratenlw_875hPa -rthratenlw_900hPa -rthratenlw_925hPa -rthratenlw_950hPa -rthratenlw_975hPa -rthratenlw_1000hPa -rqvcuten_15hPa -rqvcuten_20hPa -rqvcuten_30hPa -rqvcuten_50hPa -rqvcuten_70hPa -rqvcuten_100hPa -rqvcuten_150hPa -rqvcuten_200hPa -rqvcuten_250hPa -rqvcuten_300hPa -rqvcuten_400hPa -rqvcuten_500hPa -rqvcuten_600hPa -rqvcuten_700hPa -rqvcuten_825hPa -rqvcuten_850hPa -rqvcuten_875hPa -rqvcuten_900hPa -rqvcuten_925hPa -rqvcuten_950hPa -rqvcuten_975hPa -rqvcuten_1000hPa -rqvblten_15hPa -rqvblten_20hPa -rqvblten_30hPa -rqvblten_50hPa -rqvblten_70hPa -rqvblten_100hPa -rqvblten_150hPa -rqvblten_200hPa -rqvblten_250hPa -rqvblten_300hPa -rqvblten_400hPa -rqvblten_500hPa -rqvblten_600hPa -rqvblten_700hPa -rqvblten_825hPa -rqvblten_850hPa -rqvblten_875hPa -rqvblten_900hPa -rqvblten_925hPa -rqvblten_950hPa -rqvblten_975hPa -rqvblten_1000hPa -kzh_15hPa -kzh_20hPa -kzh_30hPa -kzh_50hPa -kzh_70hPa -kzh_100hPa -kzh_150hPa -kzh_200hPa -kzh_250hPa -kzh_300hPa -kzh_400hPa -kzh_500hPa -kzh_600hPa -kzh_700hPa -kzh_825hPa -kzh_850hPa -kzh_875hPa -kzh_900hPa -kzh_925hPa -kzh_950hPa -kzh_975hPa -kzh_1000hPa -kzm_15hPa -kzm_20hPa -kzm_30hPa -kzm_50hPa -kzm_70hPa -kzm_100hPa -kzm_150hPa -kzm_200hPa -kzm_250hPa -kzm_300hPa -kzm_400hPa -kzm_500hPa -kzm_600hPa -kzm_700hPa -kzm_825hPa -kzm_850hPa -kzm_875hPa -kzm_900hPa -kzm_925hPa -kzm_950hPa -kzm_975hPa -kzm_1000hPa -kzq_15hPa -kzq_20hPa -kzq_30hPa -kzq_50hPa -kzq_70hPa -kzq_100hPa -kzq_150hPa -kzq_200hPa -kzq_250hPa -kzq_300hPa -kzq_400hPa -kzq_500hPa -kzq_600hPa -kzq_700hPa -kzq_825hPa -kzq_850hPa -kzq_875hPa -kzq_900hPa -kzq_925hPa -kzq_950hPa -kzq_975hPa -kzq_1000hPa -height_15hPa -height_20hPa -height_30hPa -height_50hPa -height_70hPa -height_100hPa -height_150hPa -height_200hPa -height_250hPa -height_300hPa -height_400hPa -height_500hPa -height_600hPa -height_700hPa -height_825hPa -height_850hPa -height_875hPa -height_900hPa -height_925hPa -height_950hPa -height_975hPa -height_1000hPa -qc_15hPa -qc_20hPa -qc_30hPa -qc_50hPa -qc_70hPa -qc_100hPa -qc_150hPa -qc_200hPa -qc_250hPa -qc_300hPa -qc_400hPa -qc_500hPa -qc_600hPa -qc_700hPa -qc_825hPa -qc_850hPa -qc_875hPa -qc_900hPa -qc_925hPa -qc_950hPa -qc_975hPa -qc_1000hPa -qg_15hPa -qg_20hPa -qg_30hPa -qg_50hPa -qg_70hPa -qg_100hPa -qg_150hPa -qg_200hPa -qg_250hPa -qg_300hPa -qg_400hPa -qg_500hPa -qg_600hPa -qg_700hPa -qg_825hPa -qg_850hPa -qg_875hPa -qg_900hPa -qg_925hPa -qg_950hPa -qg_975hPa -qg_1000hPa -qi_15hPa -qi_20hPa -qi_30hPa -qi_50hPa -qi_70hPa -qi_100hPa -qi_150hPa -qi_200hPa -qi_250hPa -qi_300hPa -qi_400hPa -qi_500hPa -qi_600hPa -qi_700hPa -qi_825hPa -qi_850hPa -qi_875hPa -qi_900hPa -qi_925hPa -qi_950hPa -qi_975hPa -qi_1000hPa -qv_15hPa -qv_20hPa -qv_30hPa -qv_50hPa -qv_70hPa -qv_100hPa -qv_150hPa -qv_200hPa -qv_250hPa -qv_300hPa -qv_400hPa -qv_500hPa -qv_600hPa -qv_700hPa -qv_825hPa -qv_850hPa -qv_875hPa -qv_900hPa -qv_925hPa -qv_950hPa -qv_975hPa -qv_1000hPa -qr_15hPa -qr_20hPa -qr_30hPa -qr_50hPa -qr_70hPa -qr_100hPa -qr_150hPa -qr_200hPa -qr_250hPa -qr_300hPa -qr_400hPa -qr_500hPa -qr_600hPa -qr_700hPa -qr_825hPa -qr_850hPa -qr_875hPa -qr_900hPa -qr_925hPa -qr_950hPa -qr_975hPa -qr_1000hPa -qs_15hPa -qs_20hPa -qs_30hPa -qs_50hPa -qs_70hPa -qs_100hPa -qs_150hPa -qs_200hPa -qs_250hPa -qs_300hPa -qs_400hPa -qs_500hPa -qs_600hPa -qs_700hPa -qs_825hPa -qs_850hPa -qs_875hPa -qs_900hPa -qs_925hPa -qs_950hPa -qs_975hPa -qs_1000hPa -ni_15hPa -ni_20hPa -ni_30hPa -ni_50hPa -ni_70hPa -ni_100hPa -ni_150hPa -ni_200hPa -ni_250hPa -ni_300hPa -ni_400hPa -ni_500hPa -ni_600hPa -ni_700hPa -ni_825hPa -ni_850hPa -ni_875hPa -ni_900hPa -ni_925hPa -ni_950hPa -ni_975hPa -ni_1000hPa -nr_15hPa -nr_20hPa -nr_30hPa -nr_50hPa -nr_70hPa -nr_100hPa -nr_150hPa -nr_200hPa -nr_250hPa -nr_300hPa -nr_400hPa -nr_500hPa -nr_600hPa -nr_700hPa -nr_825hPa -nr_850hPa -nr_875hPa -nr_900hPa -nr_925hPa -nr_950hPa -nr_975hPa -nr_1000hPa -rucuten_15hPa -rucuten_20hPa -rucuten_30hPa -rucuten_50hPa -rucuten_70hPa -rucuten_100hPa -rucuten_150hPa -rucuten_200hPa -rucuten_250hPa -rucuten_300hPa -rucuten_400hPa -rucuten_500hPa -rucuten_600hPa -rucuten_700hPa -rucuten_825hPa -rucuten_850hPa -rucuten_875hPa -rucuten_900hPa -rucuten_925hPa -rucuten_950hPa -rucuten_975hPa -rucuten_1000hPa -rvcuten_15hPa -rvcuten_20hPa -rvcuten_30hPa -rvcuten_50hPa -rvcuten_70hPa -rvcuten_100hPa -rvcuten_150hPa -rvcuten_200hPa -rvcuten_250hPa -rvcuten_300hPa -rvcuten_400hPa -rvcuten_500hPa -rvcuten_600hPa -rvcuten_700hPa -rvcuten_825hPa -rvcuten_850hPa -rvcuten_875hPa -rvcuten_900hPa -rvcuten_925hPa -rvcuten_950hPa -rvcuten_975hPa -rvcuten_1000hPa -rvblten_15hPa -rvblten_20hPa -rvblten_30hPa -rvblten_50hPa -rvblten_70hPa -rvblten_100hPa -rvblten_150hPa -rvblten_200hPa -rvblten_250hPa -rvblten_300hPa -rvblten_400hPa -rvblten_500hPa -rvblten_600hPa -rvblten_700hPa -rvblten_825hPa -rvblten_850hPa -rvblten_875hPa -rvblten_900hPa -rvblten_925hPa -rvblten_950hPa -rvblten_975hPa -rvblten_1000hPa -cldfrac_15hPa -cldfrac_20hPa -cldfrac_30hPa -cldfrac_50hPa -cldfrac_70hPa -cldfrac_100hPa -cldfrac_150hPa -cldfrac_200hPa -cldfrac_250hPa -cldfrac_300hPa -cldfrac_400hPa -cldfrac_500hPa -cldfrac_600hPa -cldfrac_700hPa -cldfrac_825hPa -cldfrac_850hPa -cldfrac_875hPa -cldfrac_900hPa -cldfrac_925hPa -cldfrac_950hPa -cldfrac_975hPa -cldfrac_1000hPa -rublten_15hPa -rublten_20hPa -rublten_30hPa -rublten_50hPa -rublten_70hPa -rublten_100hPa -rublten_150hPa -rublten_200hPa -rublten_250hPa -rublten_300hPa -rublten_400hPa -rublten_500hPa -rublten_600hPa -rublten_700hPa -rublten_825hPa -rublten_850hPa -rublten_875hPa -rublten_900hPa -rublten_925hPa -rublten_950hPa -rublten_975hPa -rublten_1000hPa -rthratensw_15hPa -rthratensw_20hPa -rthratensw_30hPa -rthratensw_50hPa -rthratensw_70hPa -rthratensw_100hPa -rthratensw_150hPa -rthratensw_200hPa -rthratensw_250hPa -rthratensw_300hPa -rthratensw_400hPa -rthratensw_500hPa -rthratensw_600hPa -rthratensw_700hPa -rthratensw_825hPa -rthratensw_850hPa -rthratensw_875hPa -rthratensw_900hPa -rthratensw_925hPa -rthratensw_950hPa -rthratensw_975hPa -rthratensw_1000hPa -omega_15hPa -omega_20hPa -omega_30hPa -omega_50hPa -omega_70hPa -omega_100hPa -omega_150hPa -omega_200hPa -omega_250hPa -omega_300hPa -omega_400hPa -omega_500hPa -omega_600hPa -omega_700hPa -omega_825hPa -omega_850hPa -omega_875hPa -omega_900hPa -omega_925hPa -omega_950hPa -omega_975hPa -omega_1000hPa -zgeo_15hPa -zgeo_20hPa -zgeo_30hPa -zgeo_50hPa -zgeo_70hPa -zgeo_100hPa -zgeo_150hPa -zgeo_200hPa -zgeo_250hPa -zgeo_300hPa -zgeo_400hPa -zgeo_500hPa -zgeo_600hPa -zgeo_700hPa -zgeo_825hPa -zgeo_850hPa -zgeo_875hPa -zgeo_900hPa -zgeo_925hPa -zgeo_950hPa -zgeo_975hPa -zgeo_1000hPa diff --git a/scripts/namelists/stream_list.atmosphere.diagnostics.GCC b/scripts/namelists/stream_list.atmosphere.diagnostics.GCC deleted file mode 100755 index b39754f..0000000 --- a/scripts/namelists/stream_list.atmosphere.diagnostics.GCC +++ /dev/null @@ -1,72 +0,0 @@ -initial_time -xtime -Time -t_iso_levels -zgeo_isobaric -cldfrac_isobaric -temperature_isobaric -dewpoint_isobaric -relhum_isobaric -w_isobaric -uzonal_isobaric -umeridional_isobaric -vorticity_isobaric -height_isobaric -spechum_isobaric -omega_isobaric -rqvblten_isobaric -rthblten_isobaric -rqvcuten_isobaric -rthcuten_isobaric -rthratenlw_isobaric -rthratensw_isobaric -rucuten_isobaric -rvcuten_isobaric -rvblten_isobaric -rublten_isobaric -kzq_isobaric -kzh_isobaric -kzm_isobaric -ni_isobaric -nr_isobaric -qr_isobaric -qs_isobaric -qv_isobaric -qc_isobaric -qg_isobaric -qi_isobaric -t2m -rainc -rainnc -uzonal_surface -umeridional_surface -u10 -v10 -surface_pressure -sst -q2 -mslp -lh -hpbl -hfx -delta -cldfrac_tot_UPP -chs -cd -acswuptc -acswupt -acswupbc -acswupb -acswdntc -acswdnt -acswdnbc -acswdnb -acsnow -aclwuptc -aclwupt -aclwupbc -aclwupb -aclwdntc -aclwdnt -aclwdnbc -aclwdnb diff --git a/scripts/namelists/streams.atmosphere.TEMPLATE b/scripts/namelists/streams.atmosphere.TEMPLATE index 04def1c..9e9ff6a 100755 --- a/scripts/namelists/streams.atmosphere.TEMPLATE +++ b/scripts/namelists/streams.atmosphere.TEMPLATE @@ -14,7 +14,7 @@ @@ -23,7 +23,7 @@ @@ -45,4 +45,11 @@ packages="iau" input_interval="initial_only" /> + + diff --git a/scripts/namelists/streams.init_atmosphere.LBCS b/scripts/namelists/streams.init_atmosphere.LBCS new file mode 100755 index 0000000..234cd40 --- /dev/null +++ b/scripts/namelists/streams.init_atmosphere.LBCS @@ -0,0 +1,20 @@ + + + + + + + diff --git a/scripts/setenv.bash b/scripts/setenv.bash index fa2f731..8873d73 100755 --- a/scripts/setenv.bash +++ b/scripts/setenv.bash @@ -1,6 +1,10 @@ #!/bin/bash umask 022 +# Choose the simulation mode: +export MODERUN=G # R=Regional simulation | G=Global simulation. +export LBCINT=21600 # Interval (seconds) for updating lateral boundary conditions (when regional) + # Choose your compiler here (only on Jaci; on Egeon the compiler is fixed to ‘gnu’): export COMPILER=intel #export COMPILER=gnu diff --git a/scripts/stools/setenv_PBS_ian_cray.bash b/scripts/stools/setenv_PBS_ian_cray.bash index 0280b15..97bf3b3 100755 --- a/scripts/stools/setenv_PBS_ian_cray.bash +++ b/scripts/stools/setenv_PBS_ian_cray.bash @@ -27,7 +27,6 @@ export STATIC_nthreads=1 export STATIC_jobname="Pre.static" export STATIC_walltime="02:00:00" - # PRE-Degrib phase: export DEGRIB_QUEUE="pesqextra" export DEGRIB_ncores=1 @@ -48,6 +47,16 @@ export INITATMOS_nthreads=1 export INITATMOS_jobname="Pre.InitAtmos" export INITATMOS_walltime="02:00:00" +# PRE-LBCs phase: +export LBCS_QUEUE="pesqextra" +export LBCS_ncores=64 +export LBCS_nnodes=1 +export LBCS_ncpus=64 +export LBCS_ncpn=64 +export LBCS_nthreads=1 +export LBCS_jobname="Pre.LBCS" +export LBCS_walltime="02:00:00" + # Model phase: export MODEL_QUEUE="pesqextra" export MODEL_ncores=2048 diff --git a/scripts/stools/setenv_PBS_ian_gnu.bash b/scripts/stools/setenv_PBS_ian_gnu.bash index a2cf615..2e64a54 100755 --- a/scripts/stools/setenv_PBS_ian_gnu.bash +++ b/scripts/stools/setenv_PBS_ian_gnu.bash @@ -27,7 +27,6 @@ export STATIC_nthreads=1 export STATIC_jobname="Pre.static" export STATIC_walltime="02:00:00" - # PRE-Degrib phase: export DEGRIB_QUEUE="pesqextra" export DEGRIB_ncores=1 @@ -48,6 +47,16 @@ export INITATMOS_nthreads=1 export INITATMOS_jobname="Pre.InitAtmos" export INITATMOS_walltime="02:00:00" +# PRE-LBCs phase: +export LBCS_QUEUE="pesqextra" +export LBCS_ncores=64 +export LBCS_nnodes=1 +export LBCS_ncpus=64 +export LBCS_ncpn=64 +export LBCS_nthreads=1 +export LBCS_jobname="Pre.LBCS" +export LBCS_walltime="02:00:00" + # Model phase: export MODEL_QUEUE="pesqextra" export MODEL_ncores=2048 @@ -86,7 +95,6 @@ export GCCCIS=/p/projetos/monan_adm/monan/CIs export PIO= export LD_LIBRARY_PATH=$NETCDF/lib:$PNETCDF/lib:$PIO/lib64:$LD_LIBRARY_PATH - # --- Others Variables --- # HPE Slingshot/Libfabric: export FI_CXI_REQ_BUF_SIZE=25165824 diff --git a/scripts/stools/setenv_PBS_ian_intel.bash b/scripts/stools/setenv_PBS_ian_intel.bash index 22a7c5e..02cdc33 100755 --- a/scripts/stools/setenv_PBS_ian_intel.bash +++ b/scripts/stools/setenv_PBS_ian_intel.bash @@ -27,7 +27,6 @@ export STATIC_nthreads=1 export STATIC_jobname="Pre.static" export STATIC_walltime="02:00:00" - # PRE-Degrib phase: export DEGRIB_QUEUE="pesqextra" export DEGRIB_ncores=1 @@ -38,7 +37,6 @@ export DEGRIB_nthreads=1 export DEGRIB_jobname="Pre.degrib" export DEGRIB_walltime="02:00:00" - # PRE-Init Atmosphere phase: export INITATMOS_QUEUE="pesqextra" export INITATMOS_ncores=512 @@ -49,6 +47,15 @@ export INITATMOS_nthreads=1 export INITATMOS_jobname="Pre.InitAtmos" export INITATMOS_walltime="02:00:00" +# PRE-LBCs phase: +export LBCS_QUEUE="pesqextra" +export LBCS_ncores=64 +export LBCS_nnodes=1 +export LBCS_ncpus=64 +export LBCS_ncpn=64 +export LBCS_nthreads=1 +export LBCS_jobname="Pre.LBCS" +export LBCS_walltime="02:00:00" # Model phase: export MODEL_QUEUE="pesqextra" @@ -88,7 +95,6 @@ export GCCCIS=/p/projetos/monan_adm/monan/CIs export PIO= export LD_LIBRARY_PATH=$NETCDF/lib:$PNETCDF/lib:$PIO/lib64:$LD_LIBRARY_PATH - # --- Others Variables --- # HPE Slingshot/Libfabric: export FI_CXI_REQ_BUF_SIZE=25165824