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
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
date_end=$(date -d "${date_beg} + 1 month - 1 day" +"%C%y%m%d" )
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
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 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
./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_cdogrid.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
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
./subjob_ablvint.sh ${date_beg} ${date_end} ${var_name}; [ $? -eq 1 ] && exit 1
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
./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
......
......@@ -13,20 +13,20 @@ set +xv
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"
p3D="${SCRATCH_DIR}/NC_F320/${date:0:6}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
pmsk="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc"
p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}/surf2D_L1_${BASE_NAME}_${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_${BASE_NAME%_ana*}_NNint_20120101.nc"
cp -av ${p2D} ${p3D} ${pmsk} $TMPDIR/.
cp -v /home/ar0s/SRC/NEMO/main/tools/ABL_TOOLS/main_uvg_hpg.exe $TMPDIR/.
time cp -av ${p2D} ${p3D} ${pmsk} $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
cat $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
......@@ -15,16 +15,16 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; 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"
p3D="${SCRATCH_DIR}/NC_F320/${date:0:6}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
pmsk="/ec/res5/project/mercator/ATMO_FORCINGS/ERA5_ABL50_F320_v1/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc"
fabl=$(basename ${p3D/inst3D/abl}) ; fabl=${fabl/L107-137/L50Z10}
p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}/surf2D_L1_${BASE_NAME}_${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_${BASE_NAME%_ana*}_NNint_20120101.nc"
fabl=$(basename ${p3D/inst3D/abl}) ; fabl=${fabl/${VLEVEL}/L50Z10}
cp -av ${p2D} ${p3D} ${pmsk} $TMPDIR/.
if [[ -n "${var_name}" && ${var_name} =~ "hpg" ]] || [ -z "${var_name}" ]; then cp -av ${p3D/inst3D/hpg} $TMPDIR/.; fi
cp -v /home/ar0s/SRC/NEMO/main/tools/ABL_TOOLS/main_vinterp.exe $TMPDIR/.
time cp -av ${p2D} ${p3D} ${pmsk} $TMPDIR/.
if [[ -n "${var_name}" && ${var_name} =~ "hpg" ]] || [ -z "${var_name}" ]; then time cp -av ${p3D/inst3D/hpg} $TMPDIR/.; fi
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
if [ -n "${var_name}" ]; then
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
$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
......@@ -15,11 +15,18 @@ if [ -n "$1" ]; then pinp=$1; 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})
mv -v $TMPDIR/$(basename ${pout}) ${pout}
time mv -v $TMPDIR/$(basename ${pout}) ${pout}
exit 0
......@@ -16,13 +16,13 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; fi
if [ -n "$2" ]; then var=$2; else exit 1; fi
d="${SCRATCH_DIR}/NC_F320/${date:0:6}"
f="abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
d="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}"
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
......@@ -12,16 +12,16 @@ set +xv
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 )
cp -a ${pabl} ${TMPDIR}/.
time cp -a ${pabl} ${TMPDIR}/.
cd $TMPDIR; pwd
cdo -v splitname,swap $(basename ${pabl}) _$(basename ${pabl%.nc})
ls -l $TMPDIR
#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
......@@ -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)
mkdir -pv ${SCRATCH_DIR}/GRIB_N320/${date:0:6}
mv -v $TMPDIR/*_${date}.grib ${SCRATCH_DIR}/GRIB_N320/${date:0:6}
mkdir -pv ${SCRATCH_DIR}/GRIB_${GRID}/${date:0:6}
mv -v $TMPDIR/*_${date}.grib ${SCRATCH_DIR}/GRIB_${GRID}/${date:0:6}
exit 0
......@@ -16,13 +16,13 @@ set +xv
if [ -n "$1" ]; then date=$1; else exit 1; fi
if [ -n "$2" ]; then var=$2; else exit 1; fi
d="${SCRATCH_DIR}/NC_F320/${date:0:6}"
f="${var}_abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}_misstodis.nc"
d="${SCRATCH_DIR}/NC_${GRID/N/F}/${date:0:6}"
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
mv -v $TMPDIR/${f%.nc}_cnk64.nc ${d}/.
time mv -v $TMPDIR/${f%.nc}_cnk64.nc ${d}/.
exit 0
......@@ -35,6 +35,7 @@ retrieve,
#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 = 107/to/137, # L137: 2013/06/25 06:00 -> ongoing + ERA5
#levelist = 137, # L137: 2013/06/25 06:00 -> ongoing + ERA5
# TIME
......@@ -84,8 +85,10 @@ retrieve,
#area = 7.70/262.0/31.0/296.0,
# NANUK
#area = 35./0./90./360.,
# GULFSTREAM
#area = 50.0/-90.0/20.0/-30.0,
# 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))
#
# GRIB PARAMETERS DATABASE: https://codes.ecmwf.int/grib/param-db/
......@@ -13,7 +13,6 @@ retrieve,
# MODEL
expver = 0001,
# IFS
#class = od,
# ERAI
......@@ -44,10 +43,16 @@ retrieve,
# SPECTRAL GRID
#truncation = NONE,
#truncation = AUTO = NONE = 639,
# ERAI
#truncation = 255,
# ERA5
#truncation = 639,
truncation = AUTO,
#resol = AV,
# ERAI (T255)
# INTERMEDIATE SPATIAL GRID
#intgrid = AUTO = NONE,
# ERAI
#intgrid = N128,
# ERA5 (T639)
#intgrid = N320,
......@@ -78,8 +83,11 @@ retrieve,
#area = 7.70/262.0/31.0/296.0,
# NANUK
#area = 35./0./90./360.,
# GULFSTREAM
#area = 50.0/-90.0/20.0/-30.0,
# 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
# DIRECTORIES & FILES
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
......@@ -32,7 +32,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
mkdir -pv ${DIR_SAVE}/${v^^}
mv -v ${d}/${finp} ${DIR_SAVE}/${v^^}/${fout}
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
......@@ -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 )
fi
if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
echo "MOVE_TO_PERM OK"
eval "rm -v ${SCRATCH_DIR}/NC_F320/${ym}/*{${date_beg}..${date_end}}*.nc"
eval "rm -v ${SCRATCH_DIR}/GRIB_N320/${ym}/*{${date_beg}..${date_end}}*.grib"
echo "CLEANING OK"
echo "-MOVE_TO_PERM: OK"
eval "rm -v ${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/*{${date_beg}..${date_end}}*.nc"
eval "rm -v ${SCRATCH_DIR}/GRIB_${GRID}/${ym}/*{${date_beg}..${date_end}}*.grib"
echo "-CLEANING: OK"
exit 0
else
echo "MOVE_TO_PERM ERROR"
echo "-MOVE_TO_PERM: ERROR"
exit 1
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
ym=${date:0:6}
# DIRECTORIES & FILES
p2D="${SCRATCH_DIR}/NC_F320/${ym}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
p3D="${SCRATCH_DIR}/NC_F320/${ym}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
pmsk="${SCRATCH_DIR}/NC_F320/${ym}/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc"
p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/surf2D_L1_${BASE_NAME}_${date}.nc"
p3D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/inst3D_L107-137_${BASE_NAME}_${date}.nc"
pmsk="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/mask0_${BASE_NAME%_ana*}_NNint_20120101.nc"
f2D=$(basename $p2D) ; d2D=$(dirname $p2D)
f3D=$(basename $p3D) ; d3D=$(dirname $p3D)
fmsk=$(basename $pmsk) ; dmsk=$(dirname $pmsk)
......@@ -27,9 +27,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
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
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
echo "ABL_HPG ERROR: input files not found"; exit 1
echo "-ABL_HPG: ERROR: input files not found"; exit 1
fi
fi
......@@ -39,9 +39,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
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 )
if [ ${nbday} -eq ${file_nb} ]; then
echo "ABL_HPG OK"
echo "-ABL_HPG: OK"
else
echo "ABL_HPG ERROR"; exit 1
echo "-ABL_HPG: ERROR"; exit 1
fi
fi
......
......@@ -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) ))
if [ -n "$3" ]; then var_name=$3; fi
for d in $(seq -f "%02g" 0 $((nbday-1))); do
# TIME
......@@ -16,20 +17,20 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6}
# DIRECTORIES & FILES
p2D="${SCRATCH_DIR}/NC_F320/${ym}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
p3D="${SCRATCH_DIR}/NC_F320/${ym}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
pmsk="${SCRATCH_DIR}/NC_F320/${ym}/mask0_ERA5_GLO_TLAUTO_IGNONE_GF320_NNint_20120101.nc"
p2D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/surf2D_L1_${BASE_NAME}_${date}.nc"
p3D="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/inst3D_${VLEVEL}_${BASE_NAME}_${date}.nc"
pmsk="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}/mask0_${BASE_NAME%_ana*}_NNint_20120101.nc"
f2D=$(basename $p2D) ; d2D=$(dirname $p2D)
f3D=$(basename $p3D) ; d3D=$(dirname $p3D)
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}
if [ ! -s ${d2D}/${var_name:+"${var_name}_"}${fabl} ]; 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
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
echo "ABL_VINT ERROR: input files not found"; exit 1
fi
......@@ -41,13 +42,14 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
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 )
if [ ${nbday} -eq ${file_nb} ]; then
echo "ABL_VINT OK"
echo "-ABL_VINT: OK"
else
echo "ABL_VINT ERROR"
echo "-ABL_VINT: ERROR"
exit 1
fi
fi
done
exit 0
......@@ -15,11 +15,11 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6}
# DIRECTORIES & FILES
p2D="${SCRATCH_DIR}/GRIB_N320/${ym}/surf2D_ERA5_L1_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib"
p3D="${SCRATCH_DIR}/GRIB_N320/${ym}/inst3D_ERA5_L107-137_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib"
dout="${SCRATCH_DIR}/NC_F320/${ym}" ; mkdir -p ${dout}
f2D=$(basename ${p2D/GN320/GF320reg}) ; f2D=${f2D%.grib}.nc
f3D=$(basename ${p3D/GN320/GF320reg}) ; f3D=${f3D%.grib}.nc
p2D="${SCRATCH_DIR}/GRIB_${GRID}/${ym}/surf2D_L1_${BASE_NAME/_GF/_GN}_${date}.grib"
p3D="${SCRATCH_DIR}/GRIB_${GRID}/${ym}/inst3D_${VLEVEL}_${BASE_NAME/_GF/_GN}_${date}.grib"
dout="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}" ; mkdir -p ${dout}
f2D="surf2D_L1_${BASE_NAME}_${date}.nc"
f3D="inst3D_${VLEVEL}_${BASE_NAME}_${date}.nc"
d2D=$(dirname $p2D) ; d3D=$(dirname $p3D)
if [ ! -s ${dout}/${f2D} ]; then
......@@ -28,9 +28,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ -s ${p2D} ]; then
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
echo "CDO_GRID2D ERROR: input files not found"; exit 1
echo "-CDO_GRID2D: ERROR: input files not found"; exit 1
fi
fi
......@@ -38,12 +38,12 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ! -s ${dout}/${f3D} ]; then
mkdir -pv ${dout}
if [ -s ${p3D} ]; then
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
echo "CDO_GRID3D ERROR: input files not found"; exit 1
echo "-CDO_GRID3D: ERROR: input files not found"; exit 1
fi
fi
......@@ -53,15 +53,15 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
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 )
if [ ${nbday} -eq ${file_nb} ]; then
echo "CDO_GRID 2D OK"
echo "-CDO_GRID2D: OK"
else
echo "ERROR CDO_GRID 2D"; exit 1
echo "-CDO_GRID2D: ERROR"; exit 1
fi
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
echo "CDO_GRID 3D OK"
echo "-CDO_GRID3D: OK"
else
echo "ERROR CDO_GRID 3D"; exit 1
echo "-CDO_GRID3D: ERROR"; exit 1
fi
fi
......
......@@ -20,8 +20,8 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6}
# DIRECTORIES & FILES
d="${SCRATCH_DIR}/NC_F320/${ym}"
f="abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
d="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}"
f="abl_L50Z10_${BASE_NAME}_${date}.nc"
for v in ${var_list[@]}; do
......@@ -31,9 +31,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ ! -s ${d}/${fout} ]; 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
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
echo "CDO_MISS ERROR: input files not found"; exit 1
echo "-CDO_MISS: ERROR: input files not found"; exit 1
fi
fi
......@@ -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 )
fi
if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
echo "CDO_MISS OK"
echo "-CDO_MISS: OK"
else
echo "CDO_MISS ERROR"
echo "-CDO_MISS: ERROR"
exit 1
fi
fi
......
......@@ -23,7 +23,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6}
# 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)
dabl=$(dirname $pabl)
......@@ -33,9 +33,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
if [ -s ${pabl} ]; then
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
echo "CDO_SPLIT ERROR: input files not found"; exit 1
echo "-CDO_SPLIT: ERROR: input files not found"; exit 1
fi
fi
......@@ -45,9 +45,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
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 )
if [ $((nbday*var_nb)) -eq ${file_nb} ]; then
echo "CDO_SPLIT OK"
echo "-CDO_SPLIT: OK"
else
echo "CDO_SPLIT ERROR"
echo "-CDO_SPLIT: ERROR"
exit 1
fi
fi
......
......@@ -15,22 +15,22 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6}
# DIRECTORIES & FILES
dout="${SCRATCH_DIR}/GRIB_N320/${ym}"
dreg="${SCRATCH_DIR}/NC_F320/${ym}"
f3D="inst3D_ERA5_L*_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib"
f2D="surf2D_ERA5_L*_GLO_TLAUTO_IGNONE_GN320_ana01h_${date}.grib"
n3D="inst3D_ERA5_L*_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
n2D="surf2D_ERA5_L*_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}.nc"
dout="${SCRATCH_DIR}/GRIB_${GRID}/${ym}"
dreg="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}"
f3D="inst3D_${VLEVEL}_${BASE_NAME/_GF/_GN}_${date}.grib"
f2D="surf2D_L1_${BASE_NAME/_GF/_GN}_${date}.grib"
n3D="inst3D_${VLEVEL}_${BASE_NAME}_${date}.nc"
n2D="surf2D_L1_${BASE_NAME}_${date}.nc"
# SUBMIT JOB
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
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
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
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
# WAIT FOR THE LAST DATE TO FINISH
......@@ -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 )
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 )
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
......
......@@ -20,8 +20,8 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
ym=${date:0:6}
# DIRECTORIES & FILES
d="${SCRATCH_DIR}/NC_F320/${ym}"
f="abl_ERA5_L50Z10_GLO_TLAUTO_IGNONE_GF320reg_ana01h_${date}_misstodis.nc"
d="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}"
f="abl_L50Z10_${BASE_NAME}_${date}_misstodis.nc"
for v in ${var_list[@]}; do
......@@ -31,9 +31,9 @@ for v in ${var_list[@]}; do
if [ ! -s ${d}/${fout} ]; 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
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
echo "NCO_CHUNK ERROR: input files not found"; exit 1
echo "-NCO_CHUNK: ERROR: input files not found"; exit 1
fi
fi
......@@ -49,9 +49,9 @@ if [ ${date} -eq ${date_end} ]; then
file_nb=$( eval "ls ${d}/${var_list[*]}_${fall} 2>/dev/null" | wc -l )
fi
if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
echo "NCO_CHUNK OK"
echo "-NCO_CHUNK: OK"
else
echo "NCO_CHUNK ERROR"
echo "-NCO_CHUNK: ERROR"
exit 1
fi
fi
......