diff --git a/INPUT_FILES/NORESM_FILES/job_nemo.sh b/INPUT_FILES/NORESM_FILES/job_nemo.sh new file mode 100755 index 0000000..5c9357a --- /dev/null +++ b/INPUT_FILES/NORESM_FILES/job_nemo.sh @@ -0,0 +1,130 @@ +#!/bin/bash +#SBATCH --account=nn5002k +#SBATCH --job-name=LNAA10KM +####SBATCH --qos=devel +#SBATCH --partition=normal +#SBATCH --time=80:00:00 +#SBATCH --nodes=8 +#SBATCH --ntasks-per-node=128 +#SBATCH --mail-type=ALL # Mail events (NONE, BEGIN, END, FAIL, ALL) +#SBATCH --mail-user=robinson.hordoir@hi.no # email to user +#SBATCH --output=NAA10KM.out +#SBATCH --error=NAA10KM.err +export DISPLAY="" +# +export CRAY_ROOTFS=DSL +set -x +ulimit -c unlimited +# +# +Y1=1962 +Y2=1971 +np=1024 + +PAR_NAME=NAA10KM + +# Where Make sure I am in the ctore outputs +OUTDIR=/cluster/work/users/robinson/NAA10KM/OUTPUT_NORESM +# Where to store restarts +RESTARTS=/cluster/work/users/robinson/NAA10KM/RESTARTS_NORESM +RUNDIR=/cluster/work/users/robinson/NAA10KM/RUNDIR_NORESM +cd ${RUNDIR} +# change read permissions of output files +umask a+r +# For hexagon use: +JY=${Y1} +JYP=`expr ${JY} + 1` +JYM=`expr ${JY} - 1` + +while [ ${JY} -le ${Y2} ]; do + + # Test if leap year + leapy=$(leap.ksh $JY) + touch * + rm -rf ocean.output* + cp namelist_cfg_naa10km namelist_cfg + + sed -i "s/XXXX/${JY}/g" namelist_cfg + if [ ${leapy} -eq 0 ]; then + sed -i 's/NTSTEP/105120/g' namelist_cfg + fi + if [ ${leapy} -eq 1 ]; then + sed -i 's/NTSTEP/105120/g' namelist_cfg + fi + + + + ## link to restart files + rm -rf restart_*.nc + + pr=0 + while [ $pr -lt $np ] ; do + if [ $pr -lt 10 ] ; then + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_000${pr}.nc restart_oce_000${pr}.nc + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_000${pr}.nc restart_ice_000${pr}.nc + + else + if [ $pr -lt 100 ] ; then + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_00${pr}.nc restart_oce_00${pr}.nc + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_00${pr}.nc restart_ice_00${pr}.nc + + else + if [ $pr -lt 1000 ] ; then + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_0${pr}.nc restart_oce_0${pr}.nc + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_0${pr}.nc restart_ice_0${pr}.nc + + else + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_${pr}.nc restart_oce_${pr}.nc + ln -s ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_${pr}.nc restart_ice_${pr}.nc + + fi + fi + fi + ((pr+=1)) + done + + + + mpirun -n ${np} ./nemo.exe + chmod a+r ./* + + #### Mv outputs + + mv *${PAR_NAME}_*${JY}0101_${JY}1231_*.nc ${OUTDIR} + + JY=`expr ${JY} + 1` + JYP=`expr ${JY} + 1` + JYM=`expr ${JY} - 1` + + + ## Mv restart files into standard name files for next run + pr=0 + while [ $pr -lt $np ] ; do + if [ $pr -lt 10 ] ; then + mv *${PAR_NAME}*_restart_oce_000${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_000${pr}.nc + mv *${PAR_NAME}*_restart_ice_000${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_000${pr}.nc + + else + if [ $pr -lt 100 ] ; then + mv *${PAR_NAME}*_restart_oce_00${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_00${pr}.nc + mv *${PAR_NAME}*_restart_ice_00${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_00${pr}.nc + + else + if [ $pr -lt 1000 ] ; then + mv *${PAR_NAME}*_restart_oce_0${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_0${pr}.nc + mv *${PAR_NAME}*_restart_ice_0${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_0${pr}.nc + + else + mv *${PAR_NAME}*_restart_oce_${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_oce_in_${pr}.nc + mv *${PAR_NAME}*_restart_ice_${pr}.nc ${RESTARTS}/${JY}_${PAR_NAME}_restart_ice_in_${pr}.nc + + fi + fi + fi + ((pr+=1)) + done + +done + +exit $? +# diff --git a/INPUT_FILES/NORESM_FILES/namelist_cfg_naa10km b/INPUT_FILES/NORESM_FILES/namelist_cfg_naa10km index 59d3bbc..3b1aa96 100755 --- a/INPUT_FILES/NORESM_FILES/namelist_cfg_naa10km +++ b/INPUT_FILES/NORESM_FILES/namelist_cfg_naa10km @@ -41,7 +41,7 @@ &namdom ! time and space domain !----------------------------------------------------------------------- ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time - rn_rdt = 600. ! time step for the dynamics and tracer + rn_rdt = 300. ! time step for the dynamics and tracer ln_meshmask = .false. ! =T create a mesh file / !----------------------------------------------------------------------- @@ -108,7 +108,7 @@ !----------------------------------------------------------------------- &namsbc ! Surface Boundary Condition manager (default: NO selection) !----------------------------------------------------------------------- - nn_fsbc = 2 ! frequency of SBC module call + nn_fsbc = 4 ! frequency of SBC module call ! ! (control sea-ice & iceberg model call) ! Type of air-sea fluxes ln_usr = .false. ! user defined formulation (T => check usrdef_sbc)