Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • gsamson/ERA5-ABL
1 result
Show changes
Commits on Source (2)
...@@ -27,4 +27,4 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -27,4 +27,4 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
done done
if [ $((nbday*${#var_list[@]})) -eq ${tot_nb} ]; then echo "CHECK_IF_DONE OK"; exit 0; else echo "CHECK_IF_DONE ERROR"; exit 1; fi if [ $((nbday*${#var_list[@]})) -eq ${tot_nb} ]; then echo "-CHECK_IF_DONE: OK"; exit 0; else echo "-CHECK_IF_DONE: NO"; exit 1; fi
...@@ -25,25 +25,35 @@ if [[ ${#date_beg} -eq 6 || ${#date_end} -eq 6 ]]; then ...@@ -25,25 +25,35 @@ if [[ ${#date_beg} -eq 6 || ${#date_end} -eq 6 ]]; then
date_end=$(date -d "${date_beg} + 1 month - 1 day" +"%C%y%m%d" ) date_end=$(date -d "${date_beg} + 1 month - 1 day" +"%C%y%m%d" )
fi fi
echo "${var_name:+"${var_name}: "}${date_beg}->${date_end}" if [[ ${#date_beg} -eq 4 || ${#date_end} -eq 4 ]]; then
date_beg=${date_beg:0:6}0101
date_end=$(date -d "${date_beg} + 1 year - 1 day" +"%C%y%m%d" )
fi
echo -e "\n${var_name:+"-${var_name}: "}${date_beg}->${date_end}\n"
# directories # directories
export DIR_SRC="/home/ar0s/PROD_ERA5_ABL" export DIR_SRC="/home/ar0s/PROD_ERA5_ABL"
export DIR_SAVE="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/daily/1h" export DIR_SAVE="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/daily/1h/TPOTL1"
export DIR_NEMO="/home/ar0s/SRC/NEMO/main/tools/ABL_TOOLS"
export SCRATCH_DIR=${SCRATCHDIR} export SCRATCH_DIR=${SCRATCHDIR}
export VLEVEL="L107-137" # L107-137
export GRID=$(sed -rn "s/^ +grid += +([[:graph:]]+),.*/\1/p" ${DIR_SRC}/mars_inst3D_ana.req.base)
export BASE_NAME="ERA5_GLO_TLAUTO_IGNONE_G${GRID/N/F}_ana01h"
echo "-SCRATCH_DIR: ${SCRATCHDIR}"
# scripts # scripts
./check_if_done.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 0 ] && exit 0 ./check_if_done.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 0 ] && exit 0
./subjob_mars.sh ${date_beg} ${date_end}; [ $? -eq 1 ] && exit 1 ./subjob_mars.sh ${date_beg} ${date_end} ; [ $? -eq 1 ] && exit 1
./subjob_cdogrid.sh ${date_beg} ${date_end}; [ $? -eq 1 ] && exit 1 ./subjob_cdogrid.sh ${date_beg} ${date_end} ; [ $? -eq 1 ] && exit 1
if [[ -z "${var_name}" || ${var_name} =~ "hpg" ]]; then if [[ -z "${var_name}" || ${var_name} =~ "hpg" ]]; then
./subjob_ablhpg.sh ${date_beg} ${date_end}; [ $? -eq 1 ] && exit 1 ./subjob_ablhpg.sh ${date_beg} ${date_end} ; [ $? -eq 1 ] && exit 1
fi fi
./subjob_ablvint.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 1 ] && exit 1 ./subjob_ablvint.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 1 ] && exit 1
if [ -z "${var_name}" ]; then if [ -z "${var_name}" ]; then
./subjob_cdosplit.sh ${date_beg} ${date_end}; [ $? -eq 1 ] && exit 1 ./subjob_cdosplit.sh ${date_beg} ${date_end} ; [ $? -eq 1 ] && exit 1
fi fi
./subjob_cdomiss.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 1 ] && exit 1 ./subjob_cdomiss.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 1 ] && exit 1
./subjob_ncochunk.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 1 ] && exit 1 ./subjob_ncochunk.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 1 ] && exit 1
......
...@@ -13,20 +13,20 @@ set +xv ...@@ -13,20 +13,20 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; fi if [ -n "$1" ]; then date=$1; else exit 1; fi
p2D="${SCRATCH_DIR}/NC_F320/${date:0:6}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}/surf2D_L1_${BASE_NAME}_${date}.nc"
p3D="${SCRATCH_DIR}/NC_F320/${date:0:6}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p3D="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}/inst3D_L107-137_${BASE_NAME}_${date}.nc"
pmsk="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc" pmsk="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/mask0_${BASE_NAME%_ana*}_NNint_20120101.nc"
cp -av ${p2D} ${p3D} ${pmsk} $TMPDIR/. time cp -av ${p2D} ${p3D} ${pmsk} $TMPDIR/.
cp -v /home/ar0s/SRC/NEMO/main/tools/ABL_TOOLS/main_uvg_hpg.exe $TMPDIR/. cp -v ${DIR_NEMO}/main_uvg_hpg.exe $TMPDIR/.
sed -e "s/fsurf2D/$(basename ${p2D})/g; s/finst3D/$(basename ${p3D})/g; s/fmask/$(basename ${pmsk})/g; s/fhpg/$(basename ${p3D/inst3D/hpg})/g; s~fdir~$TMPDIR~g" < /home/ar0s/SRC/NEMO/main/tools/ABL_TOOLS/namelist_abl_tools.base > $TMPDIR/namelist_abl_tools.hpg.$date sed -e "s/fsurf2D/$(basename ${p2D})/g; s/finst3D/$(basename ${p3D})/g; s/fmask/$(basename ${pmsk})/g; s/fhpg/$(basename ${p3D/inst3D/hpg})/g; s~fdir~$TMPDIR~g" < ${DIR_NEMO}/namelist_abl_tools.base > $TMPDIR/namelist_abl_tools.hpg.$date
ls -l $TMPDIR ls -l $TMPDIR
cat $TMPDIR/namelist_abl_tools.hpg.$date cat $TMPDIR/namelist_abl_tools.hpg.$date
$TMPDIR/main_uvg_hpg.exe $TMPDIR/namelist_abl_tools.hpg.$date $TMPDIR/main_uvg_hpg.exe $TMPDIR/namelist_abl_tools.hpg.$date
mv -v $TMPDIR/$(basename ${p3D/inst3D/hpg}) $(dirname ${p3D})/. time mv -v $TMPDIR/$(basename ${p3D/inst3D/hpg}) $(dirname ${p3D})/.
exit 0 exit 0
...@@ -15,16 +15,16 @@ set +xv ...@@ -15,16 +15,16 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; fi if [ -n "$1" ]; then date=$1; else exit 1; fi
if [ -n "$2" ]; then var_name=$2; fi if [ -n "$2" ]; then var_name=$2; fi
p2D="${SCRATCH_DIR}/NC_F320/${date:0:6}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}/surf2D_L1_${BASE_NAME}_${date}.nc"
p3D="${SCRATCH_DIR}/NC_F320/${date:0:6}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p3D="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}/inst3D_${VLEVEL}_${BASE_NAME}_${date}.nc"
pmsk="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc" pmsk="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/mask0_${BASE_NAME%_ana*}_NNint_20120101.nc"
fabl=$(basename ${p3D/inst3D/abl}) ; fabl=${fabl/L107-137/L50Z10} fabl=$(basename ${p3D/inst3D/abl}) ; fabl=${fabl/${VLEVEL}/L50Z10}
cp -av ${p2D} ${p3D} ${pmsk} $TMPDIR/. time cp -av ${p2D} ${p3D} ${pmsk} $TMPDIR/.
if [[ -n "${var_name}" && ${var_name} =~ "hpg" ]] || [ -z "${var_name}" ]; then cp -av ${p3D/inst3D/hpg} $TMPDIR/.; fi if [[ -n "${var_name}" && ${var_name} =~ "hpg" ]] || [ -z "${var_name}" ]; then time cp -av ${p3D/inst3D/hpg} $TMPDIR/.; fi
cp -v /home/ar0s/SRC/NEMO/main/tools/ABL_TOOLS/main_vinterp.exe $TMPDIR/. cp -v ${DIR_NEMO}/main_vinterp.exe $TMPDIR/.
sed -e "s/fsurf2D/$(basename ${p2D})/g; s/finst3D/$(basename ${p3D})/g; s/fmask/$(basename ${pmsk})/g; s/fhpg/$(basename ${p3D/inst3D/hpg})/g; s/fabl/${fabl}/g; s~fdir~$TMPDIR~g" < /home/ar0s/SRC/NEMO/main/tools/ABL_TOOLS/namelist_abl_tools.base > $TMPDIR/namelist_abl_tools.vint.$date sed -e "s/fsurf2D/$(basename ${p2D})/g; s/finst3D/$(basename ${p3D})/g; s/fmask/$(basename ${pmsk})/g; s/fhpg/$(basename ${p3D/inst3D/hpg})/g; s/fabl/${fabl}/g; s~fdir~$TMPDIR~g" < ${DIR_NEMO}/namelist_abl_tools.base > $TMPDIR/namelist_abl_tools.vint.$date
sed -i "s/ln_read_mask = .false./ln_read_mask = .true./g" $TMPDIR/namelist_abl_tools.vint.$date sed -i "s/ln_read_mask = .false./ln_read_mask = .true./g" $TMPDIR/namelist_abl_tools.vint.$date
if [ -n "${var_name}" ]; then if [ -n "${var_name}" ]; then
sed -i "s/ var_name = '',/ var_name = '${var_name}',/g" $TMPDIR/namelist_abl_tools.vint.$date sed -i "s/ var_name = '',/ var_name = '${var_name}',/g" $TMPDIR/namelist_abl_tools.vint.$date
...@@ -36,6 +36,7 @@ cat $TMPDIR/namelist_abl_tools.vint.$date ...@@ -36,6 +36,7 @@ cat $TMPDIR/namelist_abl_tools.vint.$date
$TMPDIR/main_vinterp.exe $TMPDIR/namelist_abl_tools.vint.$date $TMPDIR/main_vinterp.exe $TMPDIR/namelist_abl_tools.vint.$date
mv -v $TMPDIR/${var_name:+"${var_name}_"}${fabl} $(dirname ${p3D})/. ls -l $TMPDIR
time mv -v $TMPDIR/${var_name:+"${var_name}_"}${fabl} $(dirname ${p3D})/.
exit 0 exit 0
...@@ -15,11 +15,18 @@ if [ -n "$1" ]; then pinp=$1; else exit 1; fi ...@@ -15,11 +15,18 @@ if [ -n "$1" ]; then pinp=$1; else exit 1; fi
if [ -n "$2" ]; then pout=$2; else exit 1; fi if [ -n "$2" ]; then pout=$2; else exit 1; fi
cp -av ${pinp} $TMPDIR/. time cp -av ${pinp} $TMPDIR/.
cdo -v -t ecmwf -z zip -k grid -f nc4 -setgridtype,regular $TMPDIR/$(basename ${pinp}) $TMPDIR/$(basename ${pout}) if [[ ${GRID:0:1} == "N" ]]; then
cdo -v -t ecmwf -z zip -k grid -f nc4 -setgridtype,regular $TMPDIR/$(basename ${pinp}) $TMPDIR/$(basename ${pout})
elif [[ ${GRID:0:1} == "F" ]]; then
cdo -v -t ecmwf -z zip -k grid -f nc4 copy $TMPDIR/$(basename ${pinp}) $TMPDIR/$(basename ${pout})
else
echo "ERROR: ${GRID} grid unsupported"
exit 1
fi
mkdir -pv $(dirname ${pout}) mkdir -pv $(dirname ${pout})
mv -v $TMPDIR/$(basename ${pout}) ${pout} time mv -v $TMPDIR/$(basename ${pout}) ${pout}
exit 0 exit 0
...@@ -16,13 +16,13 @@ set +xv ...@@ -16,13 +16,13 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; fi if [ -n "$1" ]; then date=$1; else exit 1; fi
if [ -n "$2" ]; then var=$2; else exit 1; fi if [ -n "$2" ]; then var=$2; else exit 1; fi
d="${SCRATCH_DIR}/NC_F320/${date:0:6}" d="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}"
f="abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" f="abl_L50Z10_${BASE_NAME}_${date}.nc"
cp -av ${d}/${var}_${f} $TMPDIR/. time cp -av ${d}/${var}_${f} $TMPDIR/.
cdo -v -P 4 -t ecmwf -z zip -k grid -f nc4 -pack -setmisstodis -setctomiss,9.9692e+36 $TMPDIR/${var}_${f} $TMPDIR/${var}_${f%.nc}_misstodis.nc cdo -P 4 -t ecmwf -z zip -k grid -f nc4 -pack -setmisstodis -setctomiss,9.9692e+36 $TMPDIR/${var}_${f} $TMPDIR/${var}_${f%.nc}_misstodis.nc
mv -v $TMPDIR/${var}_${f%.nc}_misstodis.nc ${d}/. time mv -v $TMPDIR/${var}_${f%.nc}_misstodis.nc ${d}/.
exit 0 exit 0
...@@ -12,16 +12,16 @@ set +xv ...@@ -12,16 +12,16 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; fi if [ -n "$1" ]; then date=$1; else exit 1; fi
pabl="${SCRATCH_DIR}/NC_F320/${date:0:6}/abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" pabl="${SCRATCH_DIR}/NC_F320/${date:0:6}/abl_L50Z10_${BASE_NAME}_${date}.nc"
var_list=( uwnd vwnd uhpg vhpg tpot humi ) var_list=( uwnd vwnd uhpg vhpg tpot humi )
cp -a ${pabl} ${TMPDIR}/. time cp -a ${pabl} ${TMPDIR}/.
cd $TMPDIR; pwd cd $TMPDIR; pwd
cdo -v splitname,swap $(basename ${pabl}) _$(basename ${pabl%.nc}) cdo -v splitname,swap $(basename ${pabl}) _$(basename ${pabl%.nc})
ls -l $TMPDIR ls -l $TMPDIR
#mv -v $TMPDIR/{$(tr ' ' ',' <<< ${var_list[*]})}_$(basename ${pabl}) $(dirname ${pabl})/. #mv -v $TMPDIR/{$(tr ' ' ',' <<< ${var_list[*]})}_$(basename ${pabl}) $(dirname ${pabl})/.
mv -v $TMPDIR/????_$(basename ${pabl}) $(dirname ${pabl})/. time mv -v $TMPDIR/????_$(basename ${pabl}) $(dirname ${pabl})/.
exit 0 exit 0
...@@ -14,7 +14,7 @@ sed -e "s~date_req~${date}~g; s~dir_out~$TMPDIR~g" < ${file_req} > $TMPDIR/$(bas ...@@ -14,7 +14,7 @@ sed -e "s~date_req~${date}~g; s~dir_out~$TMPDIR~g" < ${file_req} > $TMPDIR/$(bas
mars $TMPDIR/$(basename ${file_req%.req.base}_${date}.req) mars $TMPDIR/$(basename ${file_req%.req.base}_${date}.req)
mkdir -pv ${SCRATCH_DIR}/GRIB_N320/${date:0:6} mkdir -pv ${SCRATCH_DIR}/GRIB_${GRID}/${date:0:6}
mv -v $TMPDIR/*_${date}.grib ${SCRATCH_DIR}/GRIB_N320/${date:0:6} mv -v $TMPDIR/*_${date}.grib ${SCRATCH_DIR}/GRIB_${GRID}/${date:0:6}
exit 0 exit 0
...@@ -16,13 +16,13 @@ set +xv ...@@ -16,13 +16,13 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; fi if [ -n "$1" ]; then date=$1; else exit 1; fi
if [ -n "$2" ]; then var=$2; else exit 1; fi if [ -n "$2" ]; then var=$2; else exit 1; fi
d="${SCRATCH_DIR}/NC_F320/${date:0:6}" d="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}"
f="${var}_abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}_misstodis.nc" f="${var}_abl_L50Z10_${BASE_NAME}_${date}_misstodis.nc"
cp -av ${d}/${f} $TMPDIR/. time cp -av ${d}/${f} $TMPDIR/.
ncks --4 --dfl_lvl 1 --no_abc -v ${var} --cnk_plc=xpl --cnk_dmn lon,64 --cnk_dmn lat,64 --cnk_dmn time,1 --cnk_dmn jpka,1 $TMPDIR/${f} $TMPDIR/${f%.nc}_cnk64.nc ncks --4 --dfl_lvl 1 --no_abc -v ${var} --cnk_plc=xpl --cnk_dmn lon,64 --cnk_dmn lat,64 --cnk_dmn time,1 --cnk_dmn jpka,1 $TMPDIR/${f} $TMPDIR/${f%.nc}_cnk64.nc
mv -v $TMPDIR/${f%.nc}_cnk64.nc ${d}/. time mv -v $TMPDIR/${f%.nc}_cnk64.nc ${d}/.
exit 0 exit 0
...@@ -35,6 +35,7 @@ retrieve, ...@@ -35,6 +35,7 @@ retrieve,
#levelist = 44/to/60 , # L60 : level 44 correspond to ~3100 m #levelist = 44/to/60 , # L60 : level 44 correspond to ~3100 m
#levelist = 71/to/91 , # L91 : 2006/02/01 06:00 -> 2013/06/25 00:00 #levelist = 71/to/91 , # L91 : 2006/02/01 06:00 -> 2013/06/25 00:00
levelist = 107/to/137, # L137: 2013/06/25 06:00 -> ongoing + ERA5 levelist = 107/to/137, # L137: 2013/06/25 06:00 -> ongoing + ERA5
#levelist = 137, # L137: 2013/06/25 06:00 -> ongoing + ERA5
# TIME # TIME
...@@ -84,8 +85,10 @@ retrieve, ...@@ -84,8 +85,10 @@ retrieve,
#area = 7.70/262.0/31.0/296.0, #area = 7.70/262.0/31.0/296.0,
# NANUK # NANUK
#area = 35./0./90./360., #area = 35./0./90./360.,
# GULFSTREAM
#area = 50.0/-90.0/20.0/-30.0,
# OUTPUTS # OUTPUTS
target = "dir_out/inst3D_ERA5_L107-137_GLO_TL[truncation]_IG[intgrid]_G[grid]_ana01h_[date].grib" target = "dir_out/inst3D_L107-137_ERA5_GLO_TL[truncation]_IG[intgrid]_G[grid]_ana01h_[date].grib"
#target = "dir_out/inst3D_L107-137_ERA5_NANUK_TL[truncation]_IG[intgrid]_G[grid]_ana01h_[date].grib"
#
# get ?h-analysis for instantaneous surface 2D fields ( Z, log(SP)) # get ?h-analysis for instantaneous surface 2D fields ( Z, log(SP))
# #
# GRIB PARAMETERS DATABASE: https://codes.ecmwf.int/grib/param-db/ # GRIB PARAMETERS DATABASE: https://codes.ecmwf.int/grib/param-db/
...@@ -13,7 +13,6 @@ retrieve, ...@@ -13,7 +13,6 @@ retrieve,
# MODEL # MODEL
expver = 0001, expver = 0001,
# IFS # IFS
#class = od, #class = od,
# ERAI # ERAI
...@@ -44,10 +43,16 @@ retrieve, ...@@ -44,10 +43,16 @@ retrieve,
# SPECTRAL GRID # SPECTRAL GRID
#truncation = NONE, #truncation = AUTO = NONE = 639,
# ERAI
#truncation = 255,
# ERA5
#truncation = 639,
truncation = AUTO, truncation = AUTO,
#resol = AV,
# ERAI (T255) # INTERMEDIATE SPATIAL GRID
#intgrid = AUTO = NONE,
# ERAI
#intgrid = N128, #intgrid = N128,
# ERA5 (T639) # ERA5 (T639)
#intgrid = N320, #intgrid = N320,
...@@ -78,8 +83,11 @@ retrieve, ...@@ -78,8 +83,11 @@ retrieve,
#area = 7.70/262.0/31.0/296.0, #area = 7.70/262.0/31.0/296.0,
# NANUK # NANUK
#area = 35./0./90./360., #area = 35./0./90./360.,
# GULFSTREAM
#area = 50.0/-90.0/20.0/-30.0,
# OUTPUTS # OUTPUTS
target = "dir_out/surf2D_ERA5_L1_GLO_TL[truncation]_IG[intgrid]_G[grid]_ana01h_[date].grib" target = "dir_out/surf2D_L1_ERA5_GLO_TL[truncation]_IG[intgrid]_G[grid]_ana01h_[date].grib"
#target = "dir_out/surf2D_L1_ERA5_NANUK_TL[truncation]_IG[intgrid]_G[grid]_ana01h_[date].grib"
...@@ -20,7 +20,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -20,7 +20,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
# DIRECTORIES & FILES # DIRECTORIES & FILES
d="${SCRATCH_DIR}/NC_F320/${ym}" d="${SCRATCH_DIR}/NC_F320/${ym}"
f="abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}_misstodis_cnk64.nc" f="abl_L50Z10_${BASE_NAME}_${date}_misstodis_cnk64.nc"
for v in ${var_list[@]}; do for v in ${var_list[@]}; do
...@@ -32,7 +32,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -32,7 +32,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
mkdir -pv ${DIR_SAVE}/${v^^} mkdir -pv ${DIR_SAVE}/${v^^}
mv -v ${d}/${finp} ${DIR_SAVE}/${v^^}/${fout} mv -v ${d}/${finp} ${DIR_SAVE}/${v^^}/${fout}
else else
echo "MOVE_TO_PERM ERROR: input files not found"; exit 1 echo "-MOVE_TO_PERM: ERROR: input files not found"; exit 1
fi fi
fi fi
...@@ -45,13 +45,13 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -45,13 +45,13 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
file_nb=$( eval "ls ${DIR_SAVE}/${var_list[*]^^}/ERA5_L50Z10_${var_list[*]^^}_1H_extrap_y${date:0:4}m${date:4:2}d{${date_beg:6:2}..${date_end:6:2}}.nc 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${DIR_SAVE}/${var_list[*]^^}/ERA5_L50Z10_${var_list[*]^^}_1H_extrap_y${date:0:4}m${date:4:2}d{${date_beg:6:2}..${date_end:6:2}}.nc 2>/dev/null" | wc -l )
fi fi
if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
echo "MOVE_TO_PERM OK" echo "-MOVE_TO_PERM: OK"
eval "rm -v ${SCRATCH_DIR}/NC_F320/${ym}/*{${date_beg}..${date_end}}*.nc" eval "rm -v ${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/*{${date_beg}..${date_end}}*.nc"
eval "rm -v ${SCRATCH_DIR}/GRIB_N320/${ym}/*{${date_beg}..${date_end}}*.grib" eval "rm -v ${SCRATCH_DIR}/GRIB_${GRID}/${ym}/*{${date_beg}..${date_end}}*.grib"
echo "CLEANING OK" echo "-CLEANING: OK"
exit 0 exit 0
else else
echo "MOVE_TO_PERM ERROR" echo "-MOVE_TO_PERM: ERROR"
exit 1 exit 1
fi fi
fi fi
......
:
:-----------------------------------------------------------------------------
: Atmospheric Boundary Layer preprocessing tool
:-----------------------------------------------------------------------------
:
&nml_dom
jpka = 50, ! ABL vertical levels number
hmax = 2000., ! ABL last level altitude
theta_s = 2., ! vertical grid stretching parameters
hc = 100., !
ln_impose_z1 = .true., ! force ABL first level altitude
z1 = 10., ! ABL firt level imposed altitude [m]
/
&nml_opt
ptemp_method = 1 , ! potential temperature computation method
ln_slp_smth = .false. , ! smooth slp and ghw at high latitudes only
ln_drw_smth = .false. , ! smooth after drowning
ln_slp_log = .true. , ! read log(slp)
ln_read_zsurf = .true. , ! read surface geopotential
ln_hpg_frc = .true. , ! compute horizontal pressure gradient
ln_geo_wnd = .false. , ! compute geostrophic wind
ln_c1d = .false. , ! 1D-case
ln_read_mask = .false. , ! read mask file
ln_lsm_land = .false. , ! inverse land & sea masks
ln_perio_latbc = .true. , ! periodic lateral boundary conditions
/
&nml_fld
cn_dir = 'fdir',
mask_var = 'LSM',
file_m = 'fmask',
file_u = 'finst3D',
file_v = 'finst3D',
file_t = 'finst3D',
file_q = 'finst3D',
file_p = 'fsurf2D',
file_z = 'fsurf2D',
file_geos = 'fhpg',
file_hpg = 'fhpg',
/
&nml_out
grd_file = 'domcfg_abl_L50Z10.nc',
abl_file = 'fabl',
drwn_file = '',
var_name = '',
/
&nml_c1d
iloc = 283,
jloc = 52,
/
...@@ -15,9 +15,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -15,9 +15,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6} ym=${date:0:6}
# DIRECTORIES & FILES # DIRECTORIES & FILES
p2D="${SCRATCH_DIR}/NC_F320/${ym}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/surf2D_L1_${BASE_NAME}_${date}.nc"
p3D="${SCRATCH_DIR}/NC_F320/${ym}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p3D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/inst3D_L107-137_${BASE_NAME}_${date}.nc"
pmsk="${SCRATCH_DIR}/NC_F320/${ym}/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc" pmsk="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/mask0_${BASE_NAME%_ana*}_NNint_20120101.nc"
f2D=$(basename $p2D) ; d2D=$(dirname $p2D) f2D=$(basename $p2D) ; d2D=$(dirname $p2D)
f3D=$(basename $p3D) ; d3D=$(dirname $p3D) f3D=$(basename $p3D) ; d3D=$(dirname $p3D)
fmsk=$(basename $pmsk) ; dmsk=$(dirname $pmsk) fmsk=$(basename $pmsk) ; dmsk=$(dirname $pmsk)
...@@ -27,9 +27,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -27,9 +27,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [[ -s ${p2D} && -s ${p3D} ]]; then if [[ -s ${p2D} && -s ${p3D} ]]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=ablhpg_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} /home/ar0s/PROD_ERA5_ABL/job_ablhpg.sbatch ${date} sbatch --job-name=ablhpg_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},BASE_NAME=${BASE_NAME},DIR_NEMO=${DIR_NEMO},GRID=${GRID} ${DIR_SRC}/job_ablhpg.sbatch ${date}
else else
echo "ABL_HPG ERROR: input files not found"; exit 1 echo "-ABL_HPG: ERROR: input files not found"; exit 1
fi fi
fi fi
...@@ -39,9 +39,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -39,9 +39,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ${date} -eq ${date_end} ]; then if [ ${date} -eq ${date_end} ]; then
file_nb=$( eval "ls ${d2D}/${fhpg/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${d2D}/${fhpg/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
if [ ${nbday} -eq ${file_nb} ]; then if [ ${nbday} -eq ${file_nb} ]; then
echo "ABL_HPG OK" echo "-ABL_HPG: OK"
else else
echo "ABL_HPG ERROR"; exit 1 echo "-ABL_HPG: ERROR"; exit 1
fi fi
fi fi
......
...@@ -9,6 +9,7 @@ date_end=$2 ...@@ -9,6 +9,7 @@ date_end=$2
nbday=$(( ($(date -d "${date_end}H00 + 1 day" +%s) - $(date -d "${date_beg}H00" +"%s") )/(60*60*24) )) nbday=$(( ($(date -d "${date_end}H00 + 1 day" +%s) - $(date -d "${date_beg}H00" +"%s") )/(60*60*24) ))
if [ -n "$3" ]; then var_name=$3; fi if [ -n "$3" ]; then var_name=$3; fi
for d in $(seq -f "%02g" 0 $((nbday-1))); do for d in $(seq -f "%02g" 0 $((nbday-1))); do
# TIME # TIME
...@@ -16,20 +17,20 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -16,20 +17,20 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6} ym=${date:0:6}
# DIRECTORIES & FILES # DIRECTORIES & FILES
p2D="${SCRATCH_DIR}/NC_F320/${ym}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/surf2D_L1_${BASE_NAME}_${date}.nc"
p3D="${SCRATCH_DIR}/NC_F320/${ym}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" p3D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/inst3D_${VLEVEL}_${BASE_NAME}_${date}.nc"
pmsk="${SCRATCH_DIR}/NC_F320/${ym}/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc" pmsk="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/mask0_${BASE_NAME%_ana*}_NNint_20120101.nc"
f2D=$(basename $p2D) ; d2D=$(dirname $p2D) f2D=$(basename $p2D) ; d2D=$(dirname $p2D)
f3D=$(basename $p3D) ; d3D=$(dirname $p3D) f3D=$(basename $p3D) ; d3D=$(dirname $p3D)
fmsk=$(basename $pmsk) ; dmsk=$(dirname $pmsk) fmsk=$(basename $pmsk) ; dmsk=$(dirname $pmsk)
fabl=${f3D/inst3D/abl} ; fabl=${fabl/L107-137/L50Z10} fabl=${f3D/inst3D/abl} ; fabl=${fabl/${VLEVEL}/L50Z10}
fhpg=${f3D/inst3D/hpg} fhpg=${f3D/inst3D/hpg}
if [ ! -s ${d2D}/${var_name:+"${var_name}_"}${fabl} ]; then if [ ! -s ${d2D}/${var_name:+"${var_name}_"}${fabl} ]; then
if [[ -s ${p2D} && -s ${p3D} ]] && [[ -s ${d2D}/${fhpg} || -n "${var_name}" ]]; then if [[ -s ${p2D} && -s ${p3D} ]] && [[ -s ${d2D}/${fhpg} || -n "${var_name}" ]]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=ablvint${var_name:+"_${var_name}"}_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} /home/ar0s/PROD_ERA5_ABL/job_ablvint.sbatch ${date} ${var_name} sbatch --job-name=ablvint${var_name:+"_${var_name}"}_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},VLEVEL=${VLEVEL},BASE_NAME=${BASE_NAME},DIR_NEMO=${DIR_NEMO},GRID=${GRID} ${DIR_SRC}/job_ablvint.sbatch ${date} ${var_name}
else else
echo "ABL_VINT ERROR: input files not found"; exit 1 echo "ABL_VINT ERROR: input files not found"; exit 1
fi fi
...@@ -41,13 +42,14 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -41,13 +42,14 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ${date} -eq ${date_end} ]; then if [ ${date} -eq ${date_end} ]; then
file_nb=$( eval "ls ${d2D}/${var_name:+"${var_name}_"}${fabl/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${d2D}/${var_name:+"${var_name}_"}${fabl/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
if [ ${nbday} -eq ${file_nb} ]; then if [ ${nbday} -eq ${file_nb} ]; then
echo "ABL_VINT OK" echo "-ABL_VINT: OK"
else else
echo "ABL_VINT ERROR" echo "-ABL_VINT: ERROR"
exit 1 exit 1
fi fi
fi fi
done done
exit 0 exit 0
...@@ -15,11 +15,11 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -15,11 +15,11 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6} ym=${date:0:6}
# DIRECTORIES & FILES # DIRECTORIES & FILES
p2D="${SCRATCH_DIR}/GRIB_N320/${ym}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib" p2D="${SCRATCH_DIR}/GRIB_${GRID}/${ym}/surf2D_L1_${BASE_NAME/_GF/_GN}_${date}.grib"
p3D="${SCRATCH_DIR}/GRIB_N320/${ym}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib" p3D="${SCRATCH_DIR}/GRIB_${GRID}/${ym}/inst3D_${VLEVEL}_${BASE_NAME/_GF/_GN}_${date}.grib"
dout="${SCRATCH_DIR}/NC_F320/${ym}" ; mkdir -p ${dout} dout="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}" ; mkdir -p ${dout}
f2D=$(basename ${p2D/GN320/GF320reg}) ; f2D=${f2D%.grib}.nc f2D="surf2D_L1_${BASE_NAME}_${date}.nc"
f3D=$(basename ${p3D/GN320/GF320reg}) ; f3D=${f3D%.grib}.nc f3D="inst3D_${VLEVEL}_${BASE_NAME}_${date}.nc"
d2D=$(dirname $p2D) ; d3D=$(dirname $p3D) d2D=$(dirname $p2D) ; d3D=$(dirname $p3D)
if [ ! -s ${dout}/${f2D} ]; then if [ ! -s ${dout}/${f2D} ]; then
...@@ -28,9 +28,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -28,9 +28,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ -s ${p2D} ]; then if [ -s ${p2D} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=cdogrid2D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} /home/ar0s/PROD_ERA5_ABL/job_cdogrid.sbatch ${p2D} ${dout}/${f2D} sbatch --job-name=cdogrid2D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},GRID=${GRID} ${DIR_SRC}/job_cdogrid.sbatch ${p2D} ${dout}/${f2D}
else else
echo "CDO_GRID2D ERROR: input files not found"; exit 1 echo "-CDO_GRID2D: ERROR: input files not found"; exit 1
fi fi
fi fi
...@@ -38,12 +38,12 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -38,12 +38,12 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ! -s ${dout}/${f3D} ]; then if [ ! -s ${dout}/${f3D} ]; then
mkdir -pv ${dout} mkdir -pv ${dout}
if [ -s ${p3D} ]; then if [ -s ${p3D} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=cdogrid3D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} /home/ar0s/PROD_ERA5_ABL/job_cdogrid.sbatch ${p3D} ${dout}/${f3D} sbatch --job-name=cdogrid3D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},GRID=${GRID} ${DIR_SRC}/job_cdogrid.sbatch ${p3D} ${dout}/${f3D}
else else
echo "CDO_GRID3D ERROR: input files not found"; exit 1 echo "-CDO_GRID3D: ERROR: input files not found"; exit 1
fi fi
fi fi
...@@ -53,15 +53,15 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -53,15 +53,15 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ${date} -eq ${date_end} ]; then if [ ${date} -eq ${date_end} ]; then
file_nb=$( eval "ls ${dout}/${f2D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${dout}/${f2D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
if [ ${nbday} -eq ${file_nb} ]; then if [ ${nbday} -eq ${file_nb} ]; then
echo "CDO_GRID 2D OK" echo "-CDO_GRID2D: OK"
else else
echo "ERROR CDO_GRID 2D"; exit 1 echo "-CDO_GRID2D: ERROR"; exit 1
fi fi
file_nb=$( eval "ls ${dout}/${f3D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${dout}/${f3D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
if [ ${nbday} -eq ${file_nb} ]; then if [ ${nbday} -eq ${file_nb} ]; then
echo "CDO_GRID 3D OK" echo "-CDO_GRID3D: OK"
else else
echo "ERROR CDO_GRID 3D"; exit 1 echo "-CDO_GRID3D: ERROR"; exit 1
fi fi
fi fi
......
...@@ -20,8 +20,8 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -20,8 +20,8 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6} ym=${date:0:6}
# DIRECTORIES & FILES # DIRECTORIES & FILES
d="${SCRATCH_DIR}/NC_F320/${ym}" d="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}"
f="abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" f="abl_L50Z10_${BASE_NAME}_${date}.nc"
for v in ${var_list[@]}; do for v in ${var_list[@]}; do
...@@ -31,9 +31,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -31,9 +31,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ! -s ${d}/${fout} ]; then if [ ! -s ${d}/${fout} ]; then
if [ -s ${d}/${finp} ]; then if [ -s ${d}/${finp} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=cdomiss_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} ${DIR_SRC}/job_cdomiss.sbatch ${date} ${v} sbatch --job-name=cdomiss_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},BASE_NAME=${BASE_NAME},GRID=${GRID} ${DIR_SRC}/job_cdomiss.sbatch ${date} ${v}
else else
echo "CDO_MISS ERROR: input files not found"; exit 1 echo "-CDO_MISS: ERROR: input files not found"; exit 1
fi fi
fi fi
...@@ -48,9 +48,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -48,9 +48,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
file_nb=$( eval "ls ${d}/${var_list[*]}_${f/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}_misstodis.nc 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${d}/${var_list[*]}_${f/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}_misstodis.nc 2>/dev/null" | wc -l )
fi fi
if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
echo "CDO_MISS OK" echo "-CDO_MISS: OK"
else else
echo "CDO_MISS ERROR" echo "-CDO_MISS: ERROR"
exit 1 exit 1
fi fi
fi fi
......
...@@ -23,7 +23,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -23,7 +23,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6} ym=${date:0:6}
# DIRECTORIES & FILES # DIRECTORIES & FILES
pabl="${SCRATCH_DIR}/NC_F320/${ym}/abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" pabl="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/abl_L50Z10_${BASE_NAME}_${date}.nc"
fabl=$(basename $pabl) fabl=$(basename $pabl)
dabl=$(dirname $pabl) dabl=$(dirname $pabl)
...@@ -33,9 +33,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -33,9 +33,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ -s ${pabl} ]; then if [ -s ${pabl} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=cdosplit_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} ${DIR_SRC}/job_cdosplit.sbatch ${date} sbatch --job-name=cdosplit_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},BASE_NAME=${BASE_NAME} ${DIR_SRC}/job_cdosplit.sbatch ${date}
else else
echo "CDO_SPLIT ERROR: input files not found"; exit 1 echo "-CDO_SPLIT: ERROR: input files not found"; exit 1
fi fi
fi fi
...@@ -45,9 +45,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -45,9 +45,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ${date} -eq ${date_end} ]; then if [ ${date} -eq ${date_end} ]; then
file_nb=$( eval "ls ${dabl}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fabl/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${dabl}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fabl/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
if [ $((nbday*var_nb)) -eq ${file_nb} ]; then if [ $((nbday*var_nb)) -eq ${file_nb} ]; then
echo "CDO_SPLIT OK" echo "-CDO_SPLIT: OK"
else else
echo "CDO_SPLIT ERROR" echo "-CDO_SPLIT: ERROR"
exit 1 exit 1
fi fi
fi fi
......
...@@ -15,22 +15,22 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -15,22 +15,22 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6} ym=${date:0:6}
# DIRECTORIES & FILES # DIRECTORIES & FILES
dout="${SCRATCH_DIR}/GRIB_N320/${ym}" dout="${SCRATCH_DIR}/GRIB_${GRID}/${ym}"
dreg="${SCRATCH_DIR}/NC_F320/${ym}" dreg="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}"
f3D="inst3D_ERA5_L*_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib" f3D="inst3D_${VLEVEL}_${BASE_NAME/_GF/_GN}_${date}.grib"
f2D="surf2D_ERA5_L*_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib" f2D="surf2D_L1_${BASE_NAME/_GF/_GN}_${date}.grib"
n3D="inst3D_ERA5_L*_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" n3D="inst3D_${VLEVEL}_${BASE_NAME}_${date}.nc"
n2D="surf2D_ERA5_L*_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc" n2D="surf2D_L1_${BASE_NAME}_${date}.nc"
# SUBMIT JOB # SUBMIT JOB
if [ ! -s ${dout}/${f3D} ] && [ ! -s ${dreg}/${n3D} ]; then if [ ! -s ${dout}/${f3D} ] && [ ! -s ${dreg}/${n3D} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=mars_inst3D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} ${DIR_SRC}/job_mars.sbatch ${DIR_SRC}/mars_inst3D_ana.req.base ${date} sbatch --job-name=mars_inst3D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},GRID=${GRID} ${DIR_SRC}/job_mars.sbatch ${DIR_SRC}/mars_inst3D_ana.req.base ${date}
fi fi
if [ ! -s ${dout}/${f2D} ] && [ ! -s ${dreg}/${n2D} ]; then if [ ! -s ${dout}/${f2D} ] && [ ! -s ${dreg}/${n2D} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=mars_surf2D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} ${DIR_SRC}/job_mars.sbatch ${DIR_SRC}/mars_surf2D_ana.req.base ${date} sbatch --job-name=mars_surf2D_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},GRID=${GRID} ${DIR_SRC}/job_mars.sbatch ${DIR_SRC}/mars_surf2D_ana.req.base ${date}
fi fi
# WAIT FOR THE LAST DATE TO FINISH # WAIT FOR THE LAST DATE TO FINISH
...@@ -41,11 +41,11 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -41,11 +41,11 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
fnb=$( eval "ls ${dout}/${f3D/${date}.grib/${ym}{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l ) fnb=$( eval "ls ${dout}/${f3D/${date}.grib/${ym}{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l )
nnb=$( eval "ls ${dreg}/${n3D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l ) nnb=$( eval "ls ${dreg}/${n3D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
if [[ ${nbday} -eq ${fnb} || ${nbday} -eq ${nnb} ]]; then echo "MARS INST3D OK"; else echo "MARS INST3D ERROR"; exit 1; fi if [[ ${nbday} -eq ${fnb} || ${nbday} -eq ${nnb} ]]; then echo "-MARS_INST3D: OK"; else echo "-MARS_INST3D: ERROR"; exit 1; fi
fnb=$( eval "ls ${dout}/${f2D/${date}.grib/${ym}{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l ) fnb=$( eval "ls ${dout}/${f2D/${date}.grib/${ym}{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l )
nnb=$( eval "ls ${dreg}/${n2D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l ) nnb=$( eval "ls ${dreg}/${n2D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
if [[ ${nbday} -eq ${fnb} || ${nbday} -eq ${nnb} ]]; then echo "MARS SURF2D OK"; else echo "MARS SURF2D ERROR"; exit 1; fi if [[ ${nbday} -eq ${fnb} || ${nbday} -eq ${nnb} ]]; then echo "-MARS_SURF2D: OK"; else echo "-MARS_SURF2D: ERROR"; exit 1; fi
fi fi
......
...@@ -20,8 +20,8 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do ...@@ -20,8 +20,8 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6} ym=${date:0:6}
# DIRECTORIES & FILES # DIRECTORIES & FILES
d="${SCRATCH_DIR}/NC_F320/${ym}" d="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}"
f="abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}_misstodis.nc" f="abl_L50Z10_${BASE_NAME}_${date}_misstodis.nc"
for v in ${var_list[@]}; do for v in ${var_list[@]}; do
...@@ -31,9 +31,9 @@ for v in ${var_list[@]}; do ...@@ -31,9 +31,9 @@ for v in ${var_list[@]}; do
if [ ! -s ${d}/${fout} ]; then if [ ! -s ${d}/${fout} ]; then
if [ -s ${d}/${finp} ]; then if [ -s ${d}/${finp} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=ncochunk_${date} --export=SCRATCH_DIR=${SCRATCH_DIR} /home/ar0s/PROD_ERA5_ABL/job_ncochunk.sbatch ${date} ${v} sbatch --job-name=ncochunk_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},BASE_NAME=${BASE_NAME},GRID=${GRID} ${DIR_SRC}/job_ncochunk.sbatch ${date} ${v}
else else
echo "NCO_CHUNK ERROR: input files not found"; exit 1 echo "-NCO_CHUNK: ERROR: input files not found"; exit 1
fi fi
fi fi
...@@ -49,9 +49,9 @@ if [ ${date} -eq ${date_end} ]; then ...@@ -49,9 +49,9 @@ if [ ${date} -eq ${date_end} ]; then
file_nb=$( eval "ls ${d}/${var_list[*]}_${fall} 2>/dev/null" | wc -l ) file_nb=$( eval "ls ${d}/${var_list[*]}_${fall} 2>/dev/null" | wc -l )
fi fi
if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
echo "NCO_CHUNK OK" echo "-NCO_CHUNK: OK"
else else
echo "NCO_CHUNK ERROR" echo "-NCO_CHUNK: ERROR"
exit 1 exit 1
fi fi
fi fi
......