diff --git a/configs/chpc_tools/myenv_inter.sh b/configs/chpc_tools/myenv_inter.sh index 7cbbd18..ba4d227 100644 --- a/configs/chpc_tools/myenv_inter.sh +++ b/configs/chpc_tools/myenv_inter.sh @@ -5,24 +5,35 @@ # we can always add more here if we want # source code -#export SOURCE=/home/gfearon/code/croco-v1.3.1/OCEAN/ -export SOURCE=/mnt/lustre/users/sillig/CROCO_TRAINING_Basic/1_CROCO_code/croco-v1.3.1/OCEAN/ +export SOURCE=/home/$USER/croco-v1.3.1/OCEAN/ -export RUNDIR=/home/gfearon/lustre/somisana-croco/configs/sa_west_02/croco_v1.3.1/ +export RUNDIR=/home/$USER/lustre/somisana-croco/configs/sa_west_02/croco_v1.3.1/ +#export RUNDIR=/home/$USER/lustre/somisana-croco/configs/sa_southeast_01/croco_v1.3.1/ # # dir with compile options -export EXENAME=C01 +export EXENAME=C05 # # MPI partitioning +#export MPI_NUM_X=6 +#export MPI_NUM_Y=4 export MPI_NUM_X=5 export MPI_NUM_Y=19 export MPI_NUM_PROCS=$(($MPI_NUM_X * $MPI_NUM_Y)) -# + # boundary and atmospheric forcing +export BULK_FILES=0 export ATMOS_BULK=ERA5 +# +export FORCING_FILES=0 export ATMOS_FRC=NA +# +export CLIMATOLOGY_FILES=0 +export BOUNDARY_FILES=1 export OGCM=GLORYS # +TIDE_FILES=1 +export TIDE_FRC=TPXO10 + # runtime input export INNAME=I01 diff --git a/configs/chpc_tools/run_croco_inter.pbs b/configs/chpc_tools/run_croco_inter.pbs index 4c688f1..4b0cfd5 100755 --- a/configs/chpc_tools/run_croco_inter.pbs +++ b/configs/chpc_tools/run_croco_inter.pbs @@ -2,7 +2,7 @@ #PBS -l select=4:ncpus=24:mpiprocs=24 #PBS -P ERTH1103 #PBS -q normal -#PBS -l walltime=02:00:00 +#PBS -l walltime=18:00:00 #PBS -o /home/gfearon/run_croco_inter_lengau/stdout #PBS -e /home/gfearon/run_croco_inter_lengau/stderr # @@ -29,17 +29,13 @@ source ${INPUTDIR_IN}/myenv_in.sh INPUTDIR_SRF=$RUNDIR/$ATMOS_BULK INPUTDIR_BRY=$RUNDIR/$OGCM INPUTDIR_GRD=$RUNDIR/GRID +INPUTDIR_TID=$RUNDIR/$TIDE_FRC MODEL=croco RUNNAME=${EXENAME}_${INNAME}_${OGCM}_${ATMOS_BULK} SCRATCHDIR=$RUNDIR/$RUNNAME/scratch OUTPUTDIR=$RUNDIR/$RUNNAME/output -BULK_FILES=1 -FORCING_FILES=0 -CLIMATOLOGY_FILES=1 -BOUNDARY_FILES=0 - ######################################################## # if [[ $TIME_SCHED == 0 ]]; then @@ -51,6 +47,7 @@ fi # GRDFILE=${MODEL}_grd FRCFILE=${MODEL}_frc +TIDFILE=${MODEL}_frc BLKFILE=${MODEL}_blk INIFILE=${MODEL}_ini CLMFILE=${MODEL}_clm @@ -168,6 +165,10 @@ while [ $NY != $NY_END ]; do echo "Getting ${BLKFILE}_${ATMOS_BULK}_${TIME}.nc${ENDF} from ${INPUTDIR_SRF}${ENDF}" $LN -sf ${INPUTDIR_SRF}${ENDF}/${BLKFILE}_${ATMOS_BULK}_${TIME}.nc${ENDF} ${BLKFILE}.nc${ENDF} fi + if [[ ${TIDE_FILES} == 1 ]]; then + echo "Getting ${TIDFILE}_${TIDE_FRC}_${TIME}.nc${ENDF} from ${INPUTDIR_TID}${ENDF}" + $LN -sf ${INPUTDIR_TID}${ENDF}/${TIDFILE}_${TIDE_FRC}_${TIME}.nc${ENDF} ${FRCFILE}.nc${ENDF} + fi LEVEL=$((LEVEL + 1)) done # diff --git a/configs/sa_southeast_01/croco_v1.3.1/README.md b/configs/sa_southeast_01/croco_v1.3.1/README.md index a1a17b8..a7eef9c 100644 --- a/configs/sa_southeast_01/croco_v1.3.1/README.md +++ b/configs/sa_southeast_01/croco_v1.3.1/README.md @@ -19,6 +19,8 @@ Compile options 03 - as per 01, define ONLINE 04 - as per 03, undef CLIMATOLOGY and define FRC_BRY 05 - as per 04, define ERA_ECMWF (ERA5 blk files are in a different format for ONLINE processing) +06 - as per 04, define TIDES +07 - as per 06, define ERA_ECMWF (ERA5 blk files are in a different format for ONLINE processing) Runtime input (\*.in files) --------------------------- diff --git a/configs/sa_southeast_01/croco_v1.3.1/run_croco_inter.bash b/configs/sa_southeast_01/croco_v1.3.1/run_croco_inter.bash index ba41035..c0032a0 100755 --- a/configs/sa_southeast_01/croco_v1.3.1/run_croco_inter.bash +++ b/configs/sa_southeast_01/croco_v1.3.1/run_croco_inter.bash @@ -22,6 +22,7 @@ source ${INPUTDIR_IN}/myenv_in.sh INPUTDIR_SRF=$RUNDIR/$ATMOS_BULK INPUTDIR_BRY=$RUNDIR/$OGCM INPUTDIR_GRD=$RUNDIR/GRID +INPUTDIR_TID=$RUNDIR/$TIDE_FRC MODEL=croco RUNNAME=${EXENAME}_${INNAME}_${OGCM}_${ATMOS_BULK} @@ -39,6 +40,7 @@ fi # GRDFILE=${MODEL}_grd FRCFILE=${MODEL}_frc +TIDFILE=${MODEL}_frc BLKFILE=${MODEL}_blk INIFILE=${MODEL}_ini CLMFILE=${MODEL}_clm @@ -80,7 +82,6 @@ chmod u+x $CODFILE #$CP -f $INPUTDIR_IN/AGRIF_FixedGrids.in $SCRATCHDIR #echo "Getting stations file from $INPUTDIR_IN" #$CP -f $INPUTDIR_IN/stations.in $SCRATCHDIR -#$CP -f $TIDEDIR/frc.nc $SCRATCHDIR # # Get the netcdf files for run initiation @@ -156,6 +157,10 @@ while [ $NY != $NY_END ]; do echo "Getting ${BLKFILE}_${ATMOS_BULK}_${TIME}.nc${ENDF} from ${INPUTDIR_SRF}${ENDF}" $LN -sf ${INPUTDIR_SRF}${ENDF}/${BLKFILE}_${ATMOS_BULK}_${TIME}.nc${ENDF} ${BLKFILE}.nc${ENDF} fi + if [[ ${TIDE_FILES} == 1 ]]; then + echo "Getting ${TIDFILE}_${TIDE_FRC}_${TIME}.nc${ENDF} from ${INPUTDIR_TID}${ENDF}" + $LN -sf ${INPUTDIR_TID}${ENDF}/${TIDFILE}_${TIDE_FRC}_${TIME}.nc${ENDF} ${FRCFILE}.nc${ENDF} + fi LEVEL=$((LEVEL + 1)) done # diff --git a/configs/sa_west_02/croco_v1.3.1/C07/cppdefs.h b/configs/sa_west_02/croco_v1.3.1/C07/cppdefs.h new file mode 100644 index 0000000..e8671c2 --- /dev/null +++ b/configs/sa_west_02/croco_v1.3.1/C07/cppdefs.h @@ -0,0 +1,1941 @@ +! $Id: cppdefs.h 1628 2015-01-10 13:53:00Z marchesiello $ +! +!====================================================================== +! CROCO is a branch of ROMS developped at IRD and INRIA, in France +! The two other branches from UCLA (Shchepetkin et al) +! and Rutgers University (Arango et al) are under MIT/X style license. +! CROCO specific routines (nesting) are under CeCILL-C license. +! +! CROCO website : http://www.croco-ocean.org +!====================================================================== +! +/* + This is "cppdefs.h": MODEL CONFIGURATION FILE + ==== == ============ ===== ============= ==== +*/ +/* + SELECT ACADEMIC TEST CASES +*/ +#undef BASIN /* Basin Example */ +#undef CANYON /* Canyon Example */ +#undef EQUATOR /* Equator Example */ +#undef INNERSHELF /* Inner Shelf Example */ +#undef SINGLE_COLUMN /* 1DV vertical mixing Example */ +#undef RIVER /* River run-off Example */ +#undef OVERFLOW /* Gravitational/Overflow Example */ +#undef SEAMOUNT /* Seamount Example */ +#undef SHELFRONT /* Shelf Front Example */ +#undef SOLITON /* Equatorial Rossby Wave Example */ +#undef THACKER /* Thacker wetting-drying Example */ +#undef UPWELLING /* Upwelling Example */ +#undef VORTEX /* Baroclinic Vortex Example */ +#undef INTERNAL /* Internal Tide Example */ +#undef IGW /* COMODO Internal Tide Example */ +#undef JET /* Baroclinic Jet Example */ +#undef SHOREFACE /* Shoreface Test Case on a Planar Beach */ +#undef RIP /* Rip Current Test Case */ +#undef SANDBAR /* Bar-generating Flume Example */ +#undef SWASH /* Swash Test Case on a Planar Beach */ +#undef TANK /* Tank Example */ +#undef MOVING_BATHY /* Moving Bathymetry Example */ +#undef ACOUSTIC /* Acoustic wave Example */ +#undef GRAV_ADJ /* Graviational Adjustment Example */ +#undef ISOLITON /* Internal Soliton Example */ +#undef KH_INST /* Kelvin-Helmholtz Instability Example */ +#undef TS_HADV_TEST /* Horizontal tracer advection Example */ +#undef DUNE /* Dune migration Example */ +#undef SED_TOY /* 1DV sediment toy Example */ +#undef TIDAL_FLAT /* 2DV tidal flat Example */ +#undef ESTUARY /* 3D tidal estuary Example */ +/* + ... OR REALISTIC CONFIGURATIONS +*/ +#undef COASTAL /* COASTAL Applications */ +#define REGIONAL /* REGIONAL Applications */ + + + +#if defined REGIONAL +/* +!==================================================================== +! REGIONAL (realistic) Configurations +!==================================================================== +! +!---------------------- +! BASIC OPTIONS +!---------------------- +! +*/ + /* Configuration Name */ +# define SA_WEST_02 + /* Parallelization */ +# undef OPENMP +# define MPI + /* Non-hydrostatic option */ +# undef NBQ +# undef CROCO_QH + /* Nesting */ +# undef AGRIF +# undef AGRIF_2WAY + /* OA and OW Coupling via OASIS (MPI) */ +# undef OA_COUPLING +# undef OW_COUPLING +# ifdef OW_COUPLING +# undef OW_COUPLING_FULL +# endif + /* Wave-current interactions */ +# undef MRL_WCI + /* Open Boundary Conditions */ +# define TIDES +# undef OBC_EAST +# define OBC_WEST +# define OBC_NORTH +# define OBC_SOUTH + /* Applications */ +# undef BIOLOGY +# undef FLOATS +# undef STATIONS +# undef PASSIVE_TRACER +# undef SEDIMENT +# undef MUSTANG +# undef BBL + /* I/O server */ +# undef XIOS + /* Calendar */ +# undef USE_CALENDAR + /* dedicated croco.log file */ +# undef LOGFILE +/* +!------------------------------------------------- +! PRE-SELECTED OPTIONS +! +! ADVANCED OPTIONS ARE IN CPPDEFS_DEV.H +!------------------------------------------------- +*/ + /* Parallelization */ +# ifdef MPI +# undef PARALLEL_FILES +# undef NC4PAR +# undef MPI_NOLAND +# undef MPI_TIME +# endif +# undef AUTOTILING + /* Non-hydrostatic options */ +# ifdef NBQ +# define W_HADV_TVD +# define W_VADV_TVD +# endif + /* Grid configuration */ +# define CURVGRID +# define SPHERICAL +# define MASKING +# undef WET_DRY +# define NEW_S_COORD + /* Model dynamics */ +# define SOLVE3D +# define UV_COR +# define UV_ADV + /* Equation of State */ +# define SALINITY +# define NONLIN_EOS + /* Surface Forcing */ +/* +! Bulk flux algorithms (options) +! by default : COARE3p0 paramet with GUSTINESS effects +! +! To change bulk param, define one the following keys (exclusive) : +! - define BULK_ECUMEV0 : ECUME_v0 param +! - define BULK_ECUMEV6 : ECUME_v6 param +! - define BULK_WASP : WASP param +! Note : gustiness effects can be added for all params +! by defining BULK_GUSTINESS +*/ +# define BULK_FLUX +# ifdef BULK_FLUX +# undef BULK_ECUMEV0 +# undef BULK_ECUMEV6 +# undef BULK_WASP +# define BULK_GUSTINESS +# define BULK_LW +# undef SST_SKIN +# undef ANA_DIURNAL_SW +# define ONLINE +# ifdef ONLINE +# define BULK_MONTH_1DIGIT +# undef AROME +# define ERA_ECMWF +# endif +# undef READ_PATM +# ifdef READ_PATM +# define OBC_PATM +# endif +# else +# define QCORRECTION +# define SFLX_CORR +# undef SFLX_CORR_COEF +# define ANA_DIURNAL_SW +# endif +# define SFLUX_CFB +# undef SEA_ICE_NOFLUX + /* Lateral Forcing */ +# undef CLIMATOLOGY +# ifdef CLIMATOLOGY +# define ZCLIMATOLOGY +# define M2CLIMATOLOGY +# define M3CLIMATOLOGY +# define TCLIMATOLOGY + +# define ZNUDGING +# define M2NUDGING +# define M3NUDGING +# define TNUDGING +# undef ROBUST_DIAG +# endif + +# define FRC_BRY +# ifdef FRC_BRY +# define Z_FRC_BRY +# define M2_FRC_BRY +# define M3_FRC_BRY +# define T_FRC_BRY +# endif + /* Lateral Momentum Advection (default UP3) */ +# define UV_HADV_UP3 +# undef UV_HADV_UP5 +# undef UV_HADV_WENO5 +# undef UV_HADV_TVD + /* Lateral Explicit Momentum Mixing */ +# undef UV_VIS2 +# ifdef UV_VIS2 +# define UV_VIS_SMAGO +# endif + /* Vertical Momentum Advection */ +# define UV_VADV_SPLINES +# undef UV_VADV_WENO5 +# undef UV_VADV_TVD + /* Lateral Tracer Advection (default UP3) */ +# undef TS_HADV_UP3 +# define TS_HADV_RSUP3 +# undef TS_HADV_UP5 +# undef TS_HADV_WENO5 + /* Lateral Explicit Tracer Mixing */ +# undef TS_DIF2 +# undef TS_DIF4 +# undef TS_MIX_S + /* Vertical Tracer Advection */ +# define TS_VADV_SPLINES +# undef TS_VADV_AKIMA +# undef TS_VADV_WENO5 + /* Sponge layers for UV and TS */ +# define SPONGE + /* Semi-implicit Vertical Tracer/Mom Advection */ +# define VADV_ADAPT_IMP + /* Bottom friction in fast 3D step */ +# define LIMIT_BSTRESS +# undef BSTRESS_FAST + /* Vertical Mixing */ +# undef BODYFORCE +# undef BVF_MIXING +# undef LMD_MIXING +# define GLS_MIXING +# ifdef LMD_MIXING +# define LMD_SKPP +# define LMD_BKPP +# define LMD_RIMIX +# define LMD_CONVEC +# define LMD_NONLOCAL +# undef LMD_DDMIX +# undef LMD_LANGMUIR +# endif + /* Wave-current interactions */ +# ifdef OW_COUPLING +# define MRL_WCI +# define BBL +# endif +# ifdef MRL_WCI +# ifndef OW_COUPLING +# undef WAVE_OFFLINE +# define ANA_WWAVE +# undef WKB_WWAVE +# endif +# undef WAVE_ROLLER +# define WAVE_STREAMING +# define WAVE_FRICTION +# define WAVE_RAMP +# ifdef WKB_WWAVE +# undef WKB_OBC_NORTH +# undef WKB_OBC_SOUTH +# define WKB_OBC_WEST +# undef WKB_OBC_EAST +# endif +# endif + /* Bottom Forcing */ +# define ANA_BSFLUX +# define ANA_BTFLUX + /* Point Sources - Rivers */ +# undef PSOURCE +# undef PSOURCE_NCFILE +# ifdef PSOURCE_NCFILE +# undef PSOURCE_NCFILE_TS +# endif + /* Open Boundary Conditions */ +# ifdef TIDES +# define SSH_TIDES +# define UV_TIDES +# undef POT_TIDES +# undef TIDES_MAS +# ifndef UV_TIDES +# define OBC_REDUCED_PHYSICS +# endif +# undef TIDERAMP +# endif +# define OBC_M2CHARACT +# undef OBC_M2ORLANSKI +# define OBC_M3ORLANSKI +# define OBC_TORLANSKI +# undef OBC_M2SPECIFIED +# undef OBC_M3SPECIFIED +# undef OBC_TSPECIFIED + /* Input/Output */ +# define AVERAGES +# define AVERAGES_K +# define OUTPUTS_SURFACE +# undef HOURLY_VELOCITIES + /* Exact restart */ +# undef EXACT_RESTART + /* Parallel reproducibility or restartabilty test */ +# undef RVTK_DEBUG +# undef RVTK_DEBUG_PERFRST +# if defined RVTK_DEBUG && !defined RVTK_DEBUG_PERFRST +! Parallel reproducibility test +# undef RVTK_DEBUG_ADVANCED +# define XXXRVTK_DEBUG_READ +# elif defined RVTK_DEBUG && defined RVTK_DEBUG_PERFRST +! Restartability test +# define EXACT_RESTART +# undef RVTK_DEBUG_ADVANCED +# define XXXRVTK_DEBUG_READ +# endif +! RVTK test (Restartability or Parallel reproducibility) +# if defined RVTK_DEBUG && defined BULK_FLUX && defined ONLINE +# define BULK_MONTH_1DIGIT +# endif +/* +! Diagnostics +!-------------------------------------------- +! 3D Tracer & momentum balance +! 2D Mixing layer balance +! Depth-mean vorticity and energy balance +! Eddy terms +!-------------------------------------------- +! +*/ +# undef DO_NOT_OVERWRITE +# undef RESTART_DIAGS + +# undef DIAGNOSTICS_TS +# undef DIAGNOSTICS_UV +# ifdef DIAGNOSTICS_TS +# undef DIAGNOSTICS_TS_ADV +# undef DIAGNOSTICS_TS_MLD +# endif + +# undef DIAGNOSTICS_TSVAR +# ifdef DIAGNOSTICS_TSVAR +# define DIAGNOSTICS_TS +# define DIAGNOSTICS_TS_ADV +# endif + +# undef DIAGNOSTICS_VRT +# undef DIAGNOSTICS_EK +# ifdef DIAGNOSTICS_EK +# undef DIAGNOSTICS_EK_FULL +# undef DIAGNOSTICS_EK_MLD +# endif + +# undef DIAGNOSTICS_BARO +# undef DIAGNOSTICS_PV +# undef DIAGNOSTICS_DISS +# ifdef DIAGNOSTICS_DISS +# define DIAGNOSTICS_PV +# endif + +# undef DIAGNOSTICS_EDDY + +# undef TENDENCY +# ifdef TENDENCY +# define DIAGNOSTICS_UV +# endif +/* +! Applications: +!--------------------------------- +! Biology, floats, Stations, +! Passive tracer, Sediments, BBL +!--------------------------------- +! + Quasi-monotone lateral advection scheme (WENO5) + for passive/biology/sediment tracers +*/ +# if defined PASSIVE_TRACER || defined BIOLOGY || defined SEDIMENT \ + || defined MUSTANG +# define BIO_HADV_WENO5 +# endif + /* Choice of Biology models */ +# ifdef BIOLOGY +# undef PISCES +# undef BIO_NChlPZD +# undef BIO_N2ChlPZD2 +# define BIO_BioEBUS + /* Biology options */ +# ifdef PISCES +# undef DIURNAL_INPUT_SRFLX +# define key_pisces +# define key_ligand +# undef key_pisces_quota +# undef key_sediment +# endif +# ifdef BIO_NChlPZD +# define OXYGEN +# endif +# ifdef BIO_BioEBUS +# define NITROUS_OXIDE +# endif + /* Biology diagnostics */ +# define DIAGNOSTICS_BIO +# if defined DIAGNOSTICS_BIO && defined PISCES +# define key_trc_diaadd +# endif +# endif + /* Lagrangian floats model */ +# ifdef FLOATS +# undef FLOATS_GLOBAL_ATTRIBUTES +# undef IBM +# undef RANDOM_WALK +# ifdef RANDOM_WALK +# define DIEL_MIGRATION +# define RANDOM_VERTICAL +# define RANDOM_HORIZONTAL +# endif +# endif + /* Stations recording */ +# ifdef STATIONS +# define ALL_SIGMA +# endif + /* USGS Sediment model */ +# ifdef SEDIMENT +# define SUSPLOAD +# define BEDLOAD +# define MORPHODYN +# endif + /* MUSTANG Sediment model */ +# ifdef MUSTANG +# undef key_MUSTANG_V2 +# undef key_MUSTANG_bedload +# undef MORPHODYN +# define key_sand2D +# define MUSTANG_CORFLUX +# undef key_tauskin_c_upwind +# undef WAVE_OFFLINE +# endif + +#elif defined COASTAL +/* +!==================================================================== +! COASTAL (realistic) Configurations +!==================================================================== +! +!---------------------- +! BASIC OPTIONS +!---------------------- +! +*/ + /* Configuration Name */ +# define VILAINE + /* Parallelization */ +# undef OPENMP +# undef MPI + /* Open Boundary Conditions */ +# define TIDES +# undef OBC_EAST +# define OBC_WEST +# undef OBC_NORTH +# define OBC_SOUTH + /* Applications */ +# undef BIOLOGY +# undef FLOATS +# undef STATIONS +# undef PASSIVE_TRACER +# undef SEDIMENT +# undef BBL +# define MUSTANG + /* I/O server */ +# undef XIOS + /* Custion IO */ +# define ZETA_DRY_IO +# define FILLVAL + /* Calendar */ +# undef START_DATE +# define USE_CALENDAR + /* dedicated croco.log file */ +# undef LOGFILE +/*! +!------------------------------------------------- +! PRE-SELECTED OPTIONS +! +! ADVANCED OPTIONS ARE IN CPPDEFS_DEV.H +!------------------------------------------------- +*/ + /* Parallelization */ +# ifdef MPI +# define NC4PAR +# undef MPI_NOLAND +# undef MPI_TIME +# endif +# undef AUTOTILING + /* Non-hydrostatic options */ +# ifdef NBQ +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# endif + /* Grid configuration */ +# define ANA_INITIAL +# define CURVGRID +# define SPHERICAL +# define MASKING +# define WET_DRY +# define NEW_S_COORD + /* Model dynamics */ +# define SOLVE3D +# define UV_COR +# define UV_ADV + /* Equation of State */ +# define SALINITY +# define NONLIN_EOS + /* Lateral Momentum Advection (default UP3) */ +# undef UV_HADV_UP3 +# define UV_HADV_WENO5 + /* Lateral Explicit Momentum Mixing */ +# define UV_VIS2 +# ifdef UV_VIS2 +# define UV_VIS_SMAGO +# endif + /* Vertical Momentum Advection */ +# undef UV_VADV_SPLINES +# define UV_VADV_WENO5 + /* Lateral Tracer Advection (default UP3) */ +# undef TS_HADV_UP3 +# define TS_HADV_WENO5 + /* Lateral Explicit Tracer Mixing */ +# define TS_DIF2 +# define TS_MIX_S + /* Vertical Tracer Advection */ +# undef TS_VADV_SPLINES +# define TS_VADV_WENO5 + /* Sponge layers for UV and TS */ +# define SPONGE + /* Semi-implicit Vertical Tracer/Mom Advection */ +# undef VADV_ADAPT_IMP + /* Bottom friction in fast 3D step */ +# define LIMIT_BSTRESS +# undef BSTRESS_FAST + /* Vertical Mixing */ +# define GLS_MIXING + /* Surface Forcing */ +# define BULK_FLUX +# ifdef BULK_FLUX +# undef ECUMEv0 +# undef ECUMEv6 +# undef WASP +# define GUSTINESS +# undef BULK_LW +# undef SST_SKIN +# undef ANA_DIURNAL_SW +# define ONLINE +# ifdef ONLINE +# define AROME +# undef ERA_ECMWF +# endif +# define READ_PATM +# ifdef READ_PATM +# define OBC_PATM +# endif +# else +# undef QCORRECTION +# undef SFLX_CORR +# undef SFLX_CORR_COEF +# undef ANA_DIURNAL_SW +# endif +# undef ANA_SSFLUX +# define ANA_STFLUX + /* Lateral Forcing */ +# undef ANA_BRY +# define FRC_BRY +# ifdef FRC_BRY +# define Z_FRC_BRY +# define M2_FRC_BRY +# undef M3_FRC_BRY +# define T_FRC_BRY +# endif + /* Bottom Forcing */ +# define ANA_BSFLUX +# define ANA_BTFLUX + /* Point Sources - Rivers */ +# define PSOURCE +# undef PSOURCE_MASS +# define PSOURCE_NCFILE +# ifdef PSOURCE_NCFILE +# define PSOURCE_NCFILE_TS +# endif + /* Open Boundary Conditions */ +# ifdef TIDES +# define M2FILTER_NONE +# define SSH_TIDES +# define UV_TIDES +# undef POT_TIDES +# define TIDES_MAS +# ifndef UV_TIDES +# define OBC_REDUCED_PHYSICS +# endif +# define TIDERAMP +# endif +# define OBC_M2CHARACT +# define OBC_M3ORLANSKI +# define OBC_TORLANSKI + /* Input/Output */ +# undef AVERAGES +# undef AVERAGES_K +# undef OUTPUTS_SURFACE +# undef HOURLY_VELOCITIES +/* +! Applications: +!--------------------------------- +! Biology, floats, Stations, +! Passive tracer, Sediments, BBL +!--------------------------------- +! + Quasi-monotone lateral advection scheme (WENO5) + for passive/biology/sediment tracers +*/ +# if defined PASSIVE_TRACER || defined BIOLOGY || defined SEDIMENT \ + || defined SUBSTANCE || defined MUSTANG +# define BIO_HADV_WENO5 +# endif + /* USGS Sediment model */ +# ifdef SEDIMENT +# define SUSPLOAD +# define BEDLOAD +# define MORPHODYN +# endif + /* MUSTANG Sediment model */ +# ifdef MUSTANG +# undef key_MUSTANG_V2 +# undef key_MUSTANG_bedload +# undef MORPHODYN +# define key_sand2D +# define MUSTANG_CORFLUX +# undef key_tauskin_c_upwind +# define WAVE_OFFLINE +# undef key_MUSTANG_specif_outputs +# endif +/* +! +!========================================================== +! IDEALIZED CONFIGURATIONS +!========================================================== +! +*/ +#elif defined BASIN +/* +! Basin Example +! ===== ======= +*/ +# undef OPENMP +# undef MPI +# define UV_ADV +# define UV_COR +# define UV_VIS2 +# define SOLVE3D +# define TS_DIF2 +# define BODYFORCE +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_BTFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined CANYON +/* +! Canyon Example +! ====== ======= +*/ +# undef OPENMP +# undef MPI +# define CANYON_STRAT +# define UV_ADV +# define UV_COR +# define SOLVE3D +# define EW_PERIODIC +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_BTFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined EQUATOR +/* +! Equator Example +! ======= ======= +! Boccaletti, G., R.C. Pacanowski, G.H. Philander and A.V. Fedorov, 2004, +! The Thermal Structure of the Upper Ocean, J.Phys.Oceanogr., 34, 888-902. +*/ +# undef OPENMP +# undef MPI +# define UV_ADV +# define UV_COR +# define UV_VIS2 +# define SOLVE3D +# define TS_DIF2 +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SRFLUX +# define ANA_SSFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define QCORRECTION +# define ANA_SST +# define LMD_MIXING +# define LMD_RIMIX +# define LMD_CONVEC +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined INNERSHELF +/* +! Inner Shelf Example +! ===== ===== ======= +*/ +# undef OPENMP +# undef MPI +# undef NBQ +# define INNERSHELF_EKMAN +# define INNERSHELF_APG +# define SOLVE3D +# define UV_COR +# define ANA_GRID +# define ANA_INITIAL +# define AVERAGES +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_BSFLUX +# define ANA_BTFLUX +# define ANA_SMFLUX +# define NS_PERIODIC +# define OBC_WEST +# define SPONGE +# ifndef INNERSHELF_EKMAN +# define UV_ADV +# define SALINITY +# define NONLIN_EOS +# define LMD_MIXING +# undef GLS_MIXING +# ifdef LMD_MIXING +# define LMD_SKPP +# define LMD_BKPP +# define LMD_RIMIX +# define LMD_CONVEC +# endif +# undef WAVE_MAKER_INTERNAL +# ifdef WAVE_MAKER_INTERNAL +# define ANA_BRY +# define Z_FRC_BRY +# define M2_FRC_BRY +# define M3_FRC_BRY +# define T_FRC_BRY +# endif +# endif +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined SINGLE_COLUMN +/* +! Single Column Example +! ====== ====== ======= +! +! Seven sets up are encompassed : +*/ +# define KATO_PHILIPS /* erosion of linear strat by constant wind stress */ +# undef WILLIS_DEARDORFF /* erosion of linear strat by constant surf buoyancy loss */ +# undef DIURNAL_CYCLE /* erosion of linear strat by constant surf buoyancy loss */ +# undef FORCED_EKBBL /* forced Ekman bottom boundary layer */ +# undef FORCED_DBLEEK /* forced Ekman bottom and surface boundary layers */ +# undef FORCED_NONROTBBL /* non rotating forced bottom boundary layer : Prandt layer */ +# undef FORCED_OSCNONROTBBL /* non rotating oscillatory forced bottom boundary layer */ +# undef OPENMP +# undef MPI +# define UV_ADV +# define NEW_S_COORD +# define UV_COR +# define SOLVE3D +# undef LMD_MIXING +# define GLS_MIXING +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_BTFLUX +# define EW_PERIODIC +# define NS_PERIODIC +# undef RVTK_DEBUG + +#elif defined INTERNAL +/* +! Internal Tide Example +! ======== ==== ======= +! +! Di Lorenzo, E, W.R. Young and S.L. Smith, 2006, Numerical and anlytical estimates of M2 +! tidal conversion at steep oceanic ridges, J. Phys. Oceanogr., 36, 1072-1084. +*/ +# undef OPENMP +# undef MPI +# define SOLVE3D +# define UV_COR +# define UV_ADV +# define BODYTIDE +# define ANA_GRID +# define ANA_INITIAL +# define ANA_BTFLUX +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_VMIX +# define EW_PERIODIC +# define NS_PERIODIC +# ifdef INTERNALSHELF +# undef EW_PERIODIC +# define OBC_EAST +# define OBC_WEST +# define SPONGE +# define ANA_SSH +# define ANA_M2CLIMA +# define ANA_M3CLIMA +# define ANA_TCLIMA +# define ZCLIMATOLOGY +# define M2CLIMATOLOGY +# define M3CLIMATOLOGY +# define TCLIMATOLOGY +# define M2NUDGING +# define M3NUDGING +# define TNUDGING +# endif +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined IGW +/* +! COMODO Internal Tide Example +! ====== ======== ==== ======= +! +! Pichon, A., 2007: Tests academiques de maree, Rapport interne n 21 du 19 octobre 2007, +! Service Hydrographique et Oceanographique de la Marine. +*/ + +# define EXPERIMENT3 +# undef OPENMP +# undef MPI +# undef NBQ +# define NEW_S_COORD +# define TIDES +# define TIDERAMP +# define SSH_TIDES +# define UV_TIDES +# define SOLVE3D +# define UV_ADV +# define UV_COR +# define UV_VIS2 +# undef VADV_ADAPT_IMP +# define SPHERICAL +# define CURVGRID +# define ANA_INITIAL +# define ANA_VMIX +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SRFLUX +# define ANA_SSFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define NS_PERIODIC +# define OBC_EAST +# define OBC_WEST +# undef SPONGE +# define ANA_SSH +# define ANA_M2CLIMA +# define ANA_M3CLIMA +# define ANA_TCLIMA +# define ZCLIMATOLOGY +# define M2CLIMATOLOGY +# define M3CLIMATOLOGY +# define TCLIMATOLOGY +# define M2NUDGING +# define M3NUDGING +# define TNUDGING +# undef ONLINE_ANALYSIS +# undef RVTK_DEBUG + +#elif defined RIVER +/* +! River run-off test problem +! ========================== +*/ +# undef OPENMP +# undef MPI +# define SOLVE3D +# define UV_ADV +# define UV_COR +# define NONLIN_EOS +# define SALINITY +# define ANA_GRID +# define MASKING +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define LMD_MIXING +# define LMD_SKPP +# define LMD_BKPP +# define LMD_RIMIX +# define LMD_CONVEC +# define PSOURCE +# undef PSOURCE_MASS +# define ANA_PSOURCE +# define NS_PERIODIC +# undef FLOATS +# ifdef FLOATS +# define RANDOM_WALK +# ifdef RANDOM_WALK +# define DIEL_MIGRATION +# define RANDOM_VERTICAL +# define RANDOM_HORIZONTAL +# endif +# endif +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined SEAMOUNT +/* +! Seamount Example +! ======== ======= +*/ +# undef OPENMP +# undef MPI +# define UV_ADV +# define UV_COR +# define SOLVE3D +# define SALINITY +# define NONLIN_EOS +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined SHELFRONT +/* +! Shelf Front Example +! ===== ===== ======= +*/ +# undef OPENMP +# undef MPI +# define UV_ADV +# define UV_COR +# define SOLVE3D +# define SALINITY +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define EW_PERIODIC +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined SOLITON +/* +! Equatorial Rossby Wave Example +! ========== ====== ==== ======= +*/ +# undef OPENMP +# undef MPI +# define UV_COR +# define UV_ADV +# define ANA_GRID +# define ANA_INITIAL +# define AVERAGES +# define EW_PERIODIC +# define ANA_SMFLUX +# define ANA_BTFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined THACKER +/* +! Thacker Example +! ======= ======= +! +! Thacker, W., (1981), Some exact solutions to the nonlinear +! shallow-water wave equations. J. Fluid Mech., 107, 499-508. +*/ +# undef OPENMP +# undef MPI +# define THACKER_2DV +# define SOLVE3D +# define UV_COR +# define UV_ADV +# undef UV_VIS2 +# define WET_DRY +# define NEW_S_COORD +# define ANA_GRID +# define ANA_INITIAL +# define ANA_BTFLUX +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined OVERFLOW +/* +! Gravitational/Overflow Example +! ====================== ======= +*/ +# undef OPENMP +# undef MPI +# define UV_ADV +# define UV_COR +# define UV_VIS2 +# define TS_DIF2 +# define TS_MIX_GEO +# define SOLVE3D +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_BTFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined UPWELLING +/* +! Upwelling Example +! ========= ======= +*/ +# undef OPENMP +# undef MPI +# define SOLVE3D +# define UV_COR +# define UV_ADV +# define ANA_GRID +# define ANA_INITIAL +# define AVERAGES +# define SALINITY +# define NONLIN_EOS +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_BSFLUX +# define ANA_BTFLUX +# define ANA_SMFLUX +# define LMD_MIXING +# define LMD_SKPP +# define LMD_BKPP +# define LMD_RIMIX +# define LMD_CONVEC +# define EW_PERIODIC +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined VORTEX +/* +! Baroclinic Vortex Example (TEST AGRIF) +! ========== ====== ======= ===== ====== +*/ +# undef OPENMP +# undef MPI +# undef AGRIF +# undef AGRIF_2WAY +# undef NBQ +# define SOLVE3D +# define UV_COR +# define UV_ADV +# define ANA_STFLUX +# define ANA_SMFLUX +# define ANA_BSFLUX +# define ANA_BTFLUX +# define ANA_VMIX +# define OBC_EAST +# define OBC_WEST +# define OBC_NORTH +# define OBC_SOUTH +# define SPONGE +# define ZCLIMATOLOGY +# define M2CLIMATOLOGY +# define M3CLIMATOLOGY +# define TCLIMATOLOGY +# define ZNUDGING +# define M2NUDGING +# define M3NUDGING +# define TNUDGING +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined JET +/* +! Baroclinic JET Example +! ========== === ======= +*/ +# define ANA_JET +# undef MPI +# undef NBQ +# define SOLVE3D +# define UV_COR +# define UV_ADV +# define UV_VIS2 +# ifdef ANA_JET +# define ANA_GRID +# define ANA_INITIAL +# endif +# define ANA_STFLUX +# define ANA_SMFLUX +# define ANA_BSFLUX +# define ANA_BTFLUX +# define ANA_VMIX +# define EW_PERIODIC +# define CLIMATOLOGY +# ifdef CLIMATOLOGY +# define ZCLIMATOLOGY +# define M2CLIMATOLOGY +# define M3CLIMATOLOGY +# define TCLIMATOLOGY +# define ZNUDGING +# define M2NUDGING +# define M3NUDGING +# define TNUDGING +# define ROBUST_DIAG +# define ZONAL_NUDGING +# ifdef ANA_JET +# define ANA_SSH +# define ANA_M2CLIMA +# define ANA_M3CLIMA +# define ANA_TCLIMA +# endif +# endif +# define LMD_MIXING +# ifdef LMD_MIXING +# undef ANA_VMIX +# define ANA_SRFLUX +# undef LMD_KPP +# define LMD_RIMIX +# define LMD_CONVEC +# endif +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined SHOREFACE +/* +! PLANAR BEACH Example +! ====== ===== ======= +! +! Uchiyama, Y., McWilliams, J.C. and Shchepetkin, A.F. (2010): +! Wave-current interaction in an oceanic circulation model with a +! vortex force formalism: Application to the surf zone. +! Ocean Modelling Vol. 34:1-2, pp.16-35. +*/ +# undef OPENMP +# undef MPI +# define SOLVE3D +# define UV_ADV +# undef MASKING +# define WET_DRY +# define NEW_S_COORD +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_SST +# define ANA_BTFLUX +# define NS_PERIODIC +# define OBC_WEST +# define SPONGE +# define MRL_WCI +# ifdef MRL_WCI +# undef WAVE_OFFLINE +# ifndef WAVE_OFFLINE +# define WKB_WWAVE +# define WKB_OBC_WEST +# define WAVE_FRICTION +# undef WAVE_ROLLER +# undef MRL_CEW +# endif +# endif +# define LMD_MIXING +# define LMD_SKPP +# define LMD_BKPP +# undef BBL +# undef SEDIMENT +# ifdef SEDIMENT +# define SUSPLOAD +# define BEDLOAD +# define TCLIMATOLOGY +# define TNUDGING +# define ANA_TCLIMA +# endif +# undef RVTK_DEBUG + +#elif defined SANDBAR +/* +! SANDBAR Example +! ======= ======= +! +! Roelvink, J. A. and Reniers, A. (1995). Lip 11d delta flume experiments +! – data report. Technical report, Delft, The Netherlands, Delft Hydraulics +*/ +# define SANDBAR_OFFSHORE /* LIP-1B */ +# undef SANDBAR_ONSHORE /* LIP-1C */ +# undef OPENMP +# undef MPI +# undef NBQ +# define SOLVE3D +# define UV_ADV +# define NEW_S_COORD +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_SST +# define ANA_BTFLUX +# define OBC_WEST +# define SPONGE +# define WET_DRY +# ifndef NBQ /* ! NBQ */ +# define MRL_WCI +# ifdef MRL_WCI +# define WKB_WWAVE +# define MRL_CEW +# define WKB_OBC_WEST +# define WAVE_ROLLER +# define WAVE_FRICTION +# define WAVE_BREAK_TG86 +# define WAVE_BREAK_SWASH +# define WAVE_STREAMING +# undef WAVE_RAMP +# endif +# define GLS_MIXING +# define GLS_KOMEGA +# undef LMD_MIXING +# ifdef LMD_MIXING +# define LMD_SKPP +# define LMD_BKPP +# define LMD_VMIX_SWASH +# endif +# define BBL +# else /* NBQ */ +# define MPI +# define NBQ_PRECISE +# define WAVE_MAKER +# define UV_ADV +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# define GLS_MIXING_3D +# define GLS_KOMEGA +# define ANA_BRY +# define Z_FRC_BRY +# define M2_FRC_BRY +# define M3_FRC_BRY +# define T_FRC_BRY +# define AVERAGES +# define AVERAGES_K +# define DIAGNOSTICS_EDDY +# endif /* NBQ */ +# define SEDIMENT +# ifdef SEDIMENT +# define SUSPLOAD +# ifndef NBQ +# define BEDLOAD +# endif +# define MORPHODYN +# define TCLIMATOLOGY +# define TNUDGING +# define ANA_TCLIMA +# endif +# undef STATIONS +# ifdef STATIONS +# define ALL_SIGMA +# endif +# undef DIAGNOSTICS_TS +# ifdef DIAGNOSTICS_TS +# define DIAGNOSTICS_TS_ADV +# endif +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined RIP +/* +! Rip Current Example +! === ======= ======= +! +! Weir, B., Uchiyama, Y.. (2010): +! A vortex force analysis of the interaction of rip +! currents and surface gravity wave +! JGR Vol. 116 +! +! Default is idealized Duck Beach with 3D topography +! RIP_TOPO_2D: Logshore uniform topography +! BISCA: realistic case with Input files +! GRANDPOPO: idealized Grand Popo Beach in Benin, +! longshore uniform +! WAVE_MAKER & NBQ : wave resolving simulation +! rather than wave-averaged (#undef MRL_WCI) +*/ +# undef BISCA +# undef RIP_TOPO_2D +# undef GRANDPOPO +# ifdef GRANDPOPO +# define RIP_TOPO_2D +# endif +# undef ANA_TIDES +# undef OPENMP +# undef MPI +# define SOLVE3D +# define NEW_S_COORD +# define UV_ADV +# undef NBQ +# ifdef NBQ +# define NBQ_PRECISE +# define WAVE_MAKER +# define WAVE_MAKER_SPECTRUM +# define WAVE_MAKER_DSPREAD +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# define GLS_MIXING_3D +# undef ANA_TIDES +# undef MRL_WCI +# define OBC_SPECIFIED_WEST +# define FRC_BRY +# define ANA_BRY +# define Z_FRC_BRY +# define M2_FRC_BRY +# define M3_FRC_BRY +# define T_FRC_BRY +# define AVERAGES +# define AVERAGES_K +# else +# define UV_VIS2 +# define UV_VIS_SMAGO +# define LMD_MIXING +# define LMD_SKPP +# define LMD_BKPP +# define MRL_WCI +# endif +# define WET_DRY +# ifdef MRL_WCI +# define WKB_WWAVE +# define WKB_OBC_WEST +# define WAVE_ROLLER +# define WAVE_FRICTION +# define WAVE_STREAMING +# define WAVE_BREAK_SWASH +# define MRL_CEW +# ifdef RIP_TOPO_2D +# define WAVE_RAMP +# endif +# endif +# ifndef BISCA +# define ANA_GRID +# endif +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_SST +# define ANA_BTFLUX +# if !defined BISCA && !defined ANA_TIDES +# define NS_PERIODIC +# else +# define OBC_NORTH +# define OBC_SOUTH +# endif +# define OBC_WEST +# define SPONGE +# ifdef ANA_TIDES +# define ANA_SSH +# define ANA_M2CLIMA +# define ANA_M3CLIMA +# define ZCLIMATOLOGY +# define M2CLIMATOLOGY +# define M3CLIMATOLOGY +# define M2NUDGING +# define M3NUDGING +# endif +# ifdef BISCA +# define BBL +# endif +# undef SEDIMENT +# ifdef SEDIMENT +# define SUSPLOAD +# define BEDLOAD +# undef MORPHODYN +# endif +# undef DIAGNOSTICS_UV +# undef RVTK_DEBUG + +#elif defined SWASH +/* +! SWASH PLANAR BEACH Example +! ===== ====== ===== ======= +! +*/ +# define SWASH_GLOBEX_B2 +# undef SWASH_GLOBEX_A3 +# undef OPENMP +# undef MPI +# define SOLVE3D +# define AVERAGES +# define NBQ +# define NBQ_PRECISE +# define WAVE_MAKER +# define UV_ADV +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# define GLS_MIXING_3D +# define NEW_S_COORD +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_SST +# define ANA_BTFLUX +# define OBC_WEST +# define OBC_SPECIFIED_WEST +# define ANA_BRY +# define Z_FRC_BRY +# define M2_FRC_BRY +# define M3_FRC_BRY +# define T_FRC_BRY +# define WET_DRY +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined TANK +/* +! Tank Example +! ==== ======= +! +! Chen, X.J., 2003. A fully hydrodynamic model for three-dimensional, +! free-surface flows. +! Int. J. Numer. Methods Fluids 42, 929â~@~S952. +*/ +# undef MPI +# define NBQ +# ifdef NBQ +# define NBQ_PRECISE +# endif +# define M2FILTER_NONE +# define SOLVE3D +# undef UV_ADV +# define NEW_S_COORD +# define ANA_GRID +# define ANA_INITIAL +# define ANA_BTFLUX +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined MOVING_BATHY +/* +! Moving Bathy Example +! ====== ===== ======= +! +! Auclair et al., Ocean Mod. 2014: Implementation of a time-dependent +! bathymetry in a free-surface ocean model: Application to internal +! wave generation +! +*/ +# undef MPI +# define ANA_MORPHODYN +# define NBQ +# define NBQ_PRECISE +# define M2FILTER_NONE +# define SOLVE3D +# define NEW_S_COORD +# undef PASSIVE_TRACER +# define UV_ADV +# define TS_HADV_WENO5 +# define TS_VADV_WENO5 +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# define ANA_GRID +# define ANA_INITIAL +# define ANA_VMIX +# define ANA_BTFLUX +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined ACOUSTIC +/* +! ACOUSTIC WAVE TESTCASE +! ======== ==== ======== +*/ +# undef MPI +# define NBQ +# ifdef NBQ +# undef NBQ_PRECISE +# endif +# undef UV_VIS2 +# define SOLVE3D +# define NEW_S_COORD +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_SRFLUX +# define ANA_BTFLUX +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined GRAV_ADJ +/* +! Gravitational Adjustment Example +! ============= ========== ======= +*/ +# undef OPENMP +# undef MPI +# undef NBQ +# undef XIOS +# define SOLVE3D +# define NEW_S_COORD +# define UV_ADV +# define TS_HADV_WENO5 +# define TS_VADV_WENO5 +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# ifdef NBQ +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# endif +# undef UV_VIS2 +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_BTFLUX +# undef PASSIVE_TRACER +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined ISOLITON +/* +! Gravitational Adjustment Example +! ============= ========== ======= +! +! Internal soliton case ISOLITON (non-hydrostatic) is setup from: +! Horn, D.A., J. Imberger, & G.N. Ivey, (2001). +! The degeneration of large-scale interfacial gravity waves in lakes. +! J. Fluid Mech., 434:181-207. +! +*/ +# undef MPI +# define NBQ +# undef XIOS +# define SOLVE3D +# define NEW_S_COORD +# define UV_ADV +# define TS_HADV_WENO5 +# define TS_VADV_WENO5 +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# undef UV_VIS2 +# undef TS_DIF2 +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# define ANA_BTFLUX +# undef PASSIVE_TRACER +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined KH_INST +/* +! Kelvin-Helmholtz Instability Example +! ================ =========== ======= +! +*/ +# undef KH_INSTY +# undef KH_INST3D +# undef MPI +# define NBQ +# undef NBQ_PRECISE +# undef XIOS +# define SOLVE3D +# define NEW_S_COORD +# define UV_ADV +# define TS_HADV_WENO5 +# define TS_VADV_WENO5 +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define W_HADV_WENO5 +# define W_VADV_WENO5 +# undef SALINITY +# undef PASSIVE_TRACER +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_STFLUX +# undef ANA_SRFLUX +# define ANA_BTFLUX +# define ANA_SSFLUX +# define ANA_BSFLUX +# ifndef KH_INSTY +# define EW_PERIODIC +# else +# define NS_PERIODIC +# endif +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined TS_HADV_TEST +/* +! Horizontal TRACER ADVECTION EXAMPLE +! ========== ====== ========= ======= +! +*/ +# undef SOLID_BODY_ROT /* Example with spatially varying velocity */ +# undef DIAGONAL_ADV /* Constant advection in the diagonal */ +# define SOLID_BODY_PER /* Example with a space and time-varying velocity */ + +# undef OPENMP +# undef MPI +# undef UV_ADV +# define NEW_S_COORD +# undef UV_COR +# define SOLVE3D +# define M2FILTER_NONE +# define ANA_VMIX +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define ANA_SSFLUX +# define NO_FRCFILE +# define SALINITY +# define EW_PERIODIC +# define NS_PERIODIC + +# define TS_HADV_UP3 /* Choose specific advection scheme */ +# undef TS_HADV_C4 +# undef TS_HADV_UP5 +# undef TS_HADV_WENO5 +# undef TS_HADV_C6 +# undef RVTK_DEBUG + +#elif defined DUNE +/* +! Dune test case example +! ==== ==== ==== ======= +! +*/ +# undef ANA_DUNE /* Analytical test case (Marieu) */ +# undef DUNE3D /* 3D Dune example */ + +# undef OPENMP +# undef MPI +# define M2FILTER_NONE +# define UV_ADV +# define NEW_S_COORD +# undef UV_COR +# define SOLVE3D +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SSFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_BSFLUX +# define ANA_BTFLUX +# define ANA_SMFLUX +# define OBC_WEST +# define OBC_EAST +# define ANA_SSH +# define ZCLIMATOLOGY +# define ANA_M2CLIMA +# define M2CLIMATOLOGY +# define SEDIMENT +# undef MUSTANG +# define MORPHODYN +# ifdef SEDIMENT +# undef SUSPLOAD +# define BEDLOAD +# undef BEDLOAD_WENO5 +# ifdef ANA_DUNE +# define BEDLOAD_MARIEU +# else +# define BEDLOAD_WULIN +# define TAU_CRIT_WULIN +# endif +# endif +# ifdef MUSTANG +# define key_MUSTANG_V2 +# define key_MUSTANG_bedload +# define key_tauskin_c_upwind +# endif +# define GLS_MIXING +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined SED_TOY +/* +! SED TOY (1D Single Column example) +! === === === ====== ====== ======== +! +*/ /* Choose an experiment : */ +# define SED_TOY_ROUSE /* Rouse */ +# undef SED_TOY_CONSOLID /* Consolidation */ +# undef SED_TOY_RESUSP /* Erosion and sediment resuspension */ +# undef SED_TOY_FLOC_0D /* Flocculation */ +# undef SED_TOY_FLOC_1D /* Flocculation */ + +# undef OPENMP +# undef MPI +# define NEW_S_COORD +# define SOLVE3D +# undef NONLIN_EOS +# define SALINITY +# undef UV_VIS2 +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define EW_PERIODIC +# define NS_PERIODIC + +# ifdef SED_TOY_ROUSE +# define ANA_VMIX +# define BODYFORCE +# endif + +# ifdef SED_TOY_FLOC_1D +# define ANA_VMIX +# define BODYFORCE +# endif + +# ifdef SED_TOY_FLOC_0D +# define ANA_VMIX +# define BODYFORCE +# endif + +# define SEDIMENT +# undef MUSTANG + +# ifdef MUSTANG +# if defined SED_TOY_FLOC_0D || defined SED_TOY_FLOC_1D +# define key_MUSTANG_flocmod +# define GLS_MIXING +# define GLS_KOMEGA +# endif +# endif + + +# ifdef SEDIMENT +# define SUSPLOAD +# undef BEDLOAD + +# ifdef SED_TOY_ROUSE +# define SED_TAU_CD_CONST +# endif + +# if defined SED_TOY_FLOC_1D || defined SED_TOY_CONSOLID || \ + defined SED_TOY_RESUSP +# undef BBL +# define GLS_MIXING +# define GLS_KOMEGA +# define MIXED_BED +# undef COHESIVE_BED +# endif + +# if defined SED_TOY_FLOC_0D || defined SED_TOY_FLOC_1D +# define FLOC_TURB_DISS +# undef FLOC_BBL_DISS +# define SED_FLOCS +# undef SED_DEFLOC +# endif + +# endif +# undef MORPHODYN +# define NO_FRCFILE +# undef RVTK_DEBUG + +#elif defined TIDAL_FLAT +/* +! TIDAL_FLAT Example +! ========== ======= +*/ +# undef OPENMP +# undef MPI +# undef NONLIN_EOS +# define NEW_S_COORD +# define SALINITY +# define UV_ADV +# define TS_HADV_WENO5 +# define TS_VADV_WENO5 +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define UV_COR +# define SOLVE3D +# define UV_VIS2 +# define GLS_MIXING +# define ANA_INITIAL +# define WET_DRY +# define TS_DIF2 +# define SPONGE +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define OBC_WEST +# define FRC_BRY +# ifdef FRC_BRY +# define ANA_BRY +# define Z_FRC_BRY +# define OBC_M2CHARACT +# define OBC_REDUCED_PHYSICS +# define M2_FRC_BRY +# undef M3_FRC_BRY +# define T_FRC_BRY +# endif +# undef SEDIMENT +# define MUSTANG +# ifdef SEDIMENT +# define SUSPLOAD +# undef BEDLOAD +# endif +# ifdef MUSTANG +# define key_sand2D +# undef key_MUSTANG_V2 +# endif +# define NO_FRCFILE +# undef ZETA_DRY_IO +# undef RVTK_DEBUG + +#elif defined ESTUARY +/* +! ESTUARY Example +! ======= ======= +*/ +# undef OPENMP +# undef MPI +# undef NONLIN_EOS +# define NEW_S_COORD +# define SALINITY +# define UV_ADV +# define TS_HADV_WENO5 +# define TS_VADV_WENO5 +# define UV_HADV_WENO5 +# define UV_VADV_WENO5 +# define UV_COR +# define SOLVE3D +# define UV_VIS2 +# define GLS_MIXING +# define ANA_INITIAL +# define WET_DRY +# define TS_DIF2 +# define SPONGE +# define ANA_GRID +# define ANA_INITIAL +# define ANA_SMFLUX +# define ANA_SRFLUX +# define ANA_STFLUX +# define ANA_SSFLUX +# define ANA_BTFLUX +# define ANA_BSFLUX +# define OBC_WEST +# define FRC_BRY +# ifdef FRC_BRY +# define ANA_BRY +# define Z_FRC_BRY +# define OBC_M2CHARACT +# define OBC_REDUCED_PHYSICS +# define M2_FRC_BRY +# undef M3_FRC_BRY +# define T_FRC_BRY +# endif +# undef SEDIMENT +# define MUSTANG +# ifdef SEDIMENT +# define SUSPLOAD +# undef BEDLOAD +# endif +# ifdef MUSTANG +# define key_sand2D +# undef key_MUSTANG_V2 +# endif +# define PSOURCE +# define ANA_PSOURCE +# define MASKING +# define NO_FRCFILE +# undef ZETA_DRY_IO +# undef RVTK_DEBUG + +#endif /* END OF CONFIGURATION CHOICE */ + +#include "cppdefs_dev.h" +#include "set_global_definitions.h" diff --git a/configs/sa_west_02/croco_v1.3.1/C07/param_.h b/configs/sa_west_02/croco_v1.3.1/C07/param_.h new file mode 100644 index 0000000..a04620b --- /dev/null +++ b/configs/sa_west_02/croco_v1.3.1/C07/param_.h @@ -0,0 +1,1009 @@ +! $Id: param.h 1619 2015-01-07 13:53:03Z marchesiello $ +! +!====================================================================== +! CROCO is a branch of ROMS developped at IRD and INRIA, in France +! The two other branches from UCLA (Shchepetkin et al) +! and Rutgers University (Arango et al) are under MIT/X style license. +! CROCO specific routines (nesting) are under CeCILL-C license. +! +! CROCO website : http://www.croco-ocean.org +!====================================================================== +! +!---------------------------------------------------------------------- +! Dimensions of Physical Grid and array dimensions +!---------------------------------------------------------------------- +! +! LLm,MMm Number of the internal points of the PHYSICAL grid. +! in the XI- and ETA-directions [physical side boundary +! points and peroodic ghost points (if any) are excluded]. +! +! Lm,Mm Number of the internal points [see above] of array +! covering a Message Passing subdomain. In the case when +! no Message Passing partitioning is used, these two are +! the same as LLm,MMm. +! +! N Number of vertical levels. +! + integer LLm,Lm,MMm,Mm,N, LLm0,MMm0 +#if defined AGRIF + integer LLmm2, MMmm2 +#endif + +#if defined BASIN + parameter (LLm0=60, MMm0=50, N=10) +#elif defined CANYON + parameter (LLm0=65, MMm0=48, N=16) +#elif defined EQUATOR + parameter (LLm0=40, MMm0=32, N=32) ! 100 km resolution +#elif defined KH_INST +# ifndef KH_INSTY +# ifdef KH_INST3D + parameter (LLm0=256, MMm0=32, N=256) ! 1 m resolution +# else + parameter (LLm0=128, MMm0=1, N=128) ! 2 m resolution +# endif +# else + parameter (LLm0=1, MMm0=256, N=256) +# endif +#elif defined ACOUSTIC + parameter (LLm0=64, MMm0=1, N=64) +#elif defined GRAV_ADJ +# ifdef NBQ +! parameter (LLm0=600, MMm0=1, N=60) ! 5 mm resolution + parameter (LLm0=300, MMm0=1, N=30) ! 10 mm resolution +# else +! parameter (LLm0=32, MMm0=1, N=10) ! 2 km resolution + parameter (LLm0=128, MMm0=1, N=40) ! 500 m resolution +! parameter (LLm0=512, MMm0=1, N=160) ! 125 m resolution +# endif +#elif defined ISOLITON + parameter (LLm0=60, MMm0=1, N=74) ! 10 cm resolution +#elif defined INNERSHELF + parameter (LLm0=200, MMm0=3, N=60) +#elif defined INTERNAL +! parameter (LLm0=120, MMm0=3, N=40) ! 10 km resolution + parameter (LLm0=800, MMm0=3, N=40) ! 1.5 km resolution +! parameter (LLm0=1600, MMm0=3, N=40) ! .75 km resolution +#elif defined IGW +# ifndef NBQ +! parameter (LLm0=878, MMm0=3, N=80) ! 1 km resolution + parameter (LLm0=878, MMm0=3, N=40) +! parameter (LLm0=878, MMm0=3, N=20) +# else + parameter (LLm0=256, MMm0=3, N=40) +# endif +#elif defined OVERFLOW + parameter (LLm0=4, MMm0=128, N=10) +#elif defined TS_HADV_TEST + parameter (LLm0=100, MMm0=100, N=5) +#elif defined SINGLE_COLUMN +# ifdef KATO_PHILIPS + parameter (LLm0=5 , MMm0=5, N=100) +# elif defined WILLIS_DEARDORFF || defined FORCED_NONROTBBL \ + || defined FORCED_OSCNONROTBBL + parameter (LLm0=5 , MMm0=5, N=50) +# elif defined FORCED_EKBBL + parameter (LLm0=5 , MMm0=5, N=40) +# elif defined FORCED_DBLEEK + parameter (LLm0=5 , MMm0=5, N=25) +# elif defined DIURNAL_CYCLE + parameter (LLm0=5 , MMm0=5, N=150) +# endif +#elif defined RIVER + parameter (LLm0=40, MMm0=80, N=20) +#elif defined SEAMOUNT + parameter (LLm0=64, MMm0=64, N=20) +#elif defined SHELFRONT + parameter (LLm0=3, MMm0=40, N=10) +#elif defined SOLITON + parameter (LLm0=96, MMm0=32, N=10) +#elif defined UPWELLING + parameter (LLm0=16, MMm0=64, N=16) +#elif defined VORTEX +! parameter (LLm0=360, MMm0=360, N=10) ! 5 km resolution +! parameter (LLm0=180, MMm0=180, N=10) ! 10 km resolution +! parameter (LLm0=90, MMm0=90, N=10) ! 20 km resolution + parameter (LLm0=60, MMm0=60, N=10) ! 30 km resolution +#elif defined JET +# ifdef ANA_JET +! parameter (LLm0=250, MMm0=1000, N=100) ! 2 km resolution +! parameter (LLm0=100, MMm0=400, N=80) ! 5 km resolution +! parameter (LLm0= 50, MMm0=200, N=60) ! 10 km resolution + parameter (LLm0= 25, MMm0=100, N=40) ! 20 km resolution +# else +! parameter (LLm0=300, MMm0=500, N=30) ! 2 km resolution +! parameter (LLm0=120, MMm0=200, N=30) ! 5 km resolution +! parameter (LLm0=60, MMm0=100, N=30) ! 10 km resolution + parameter (LLm0=30, MMm0=50, N=30) ! 20 km resolution +# endif +#elif defined SHOREFACE + parameter (LLm0=59, MMm0=1, N=20) ! 20 m Planar Beach +#elif defined SANDBAR +# ifndef NBQ + parameter (LLm0=100, MMm0=1, N=10) ! 3 m Sandbar +# else +! parameter (LLm0=180, MMm0=1, N=10) ! 1.0 m Sandbar +! parameter (LLm0=360, MMm0=1, N=20) ! 0.5 m Sandbar + parameter (LLm0=720, MMm0=1, N=20) ! 0.25 m Sandbar +# endif +#elif defined SWASH +! parameter (LLm0=100, MMm0=1, N=10) ! 1 m Swash + parameter (LLm0=800, MMm0=1, N=10) ! 12 cm Swash (GLOBEX) +#elif defined RIP +# ifdef BISCA + parameter (LLm0= 86, MMm0=92, N=20) ! 10 m Bisca Rip +# else +! parameter (LLm0=256, MMm0=256, N=20) ! 3 m resolution +! parameter (LLm0= 96, MMm0= 96, N=20) ! 8 m resolution + parameter (LLm0= 48, MMm0= 48, N=20) ! 16 m resolution +# endif +#elif defined THACKER +# ifdef THACKER_2DV + parameter (LLm0=200, MMm0=1, N=5 ) ! 1 km resolution +# else + parameter (LLm0=200, MMm0=200, N=5 ) ! 1 km resolution +# endif +#elif defined TANK +# ifndef TANKY + parameter (LLm0=50, MMm0=1, N=50) ! 20 cm resolution +# else + parameter (LLm0=1, MMm0=50, N=50) ! 20 cm resolution +# endif +#elif defined MOVING_BATHY + parameter (LLm0=500, MMm0=1, N=50) ! 8 mm resolution +! parameter (LLm0=1000, MMm0=1, N=100) ! 4 mm resolution +! parameter (LLm0=4000, MMm0=1, N=400) ! 1 mm resolution +#elif defined CALDEIRA + parameter (LLm0=100, MMm0=100, N=50) +#elif defined DUNE +# ifdef ANA_DUNE + parameter (LLm0=150, MMm0=1, N=20) ! 2 m resolution +# elif defined DUNE3D + parameter (LLm0=50, MMm0=50, N=20) ! 2 m resolution +# else + parameter (LLm0=50, MMm0=1, N=20) ! 2 m resolution +# endif +#elif defined SED_TOY +# ifdef SED_TOY_ROUSE + parameter (LLm0=5, MMm0=5, N=100) ! 5 cm resolution +# elif defined SED_TOY_FLOC_0D || defined SED_TOY_FLOC_1D + parameter (LLm0=5, MMm0=5, N=50) ! 10 cm resolution +# else + parameter (LLm0=4, MMm0=3, N=20) ! 1 m resolution +# endif +#elif defined TIDAL_FLAT + parameter (LLm0=200, MMm0=3, N=10) ! TIDAL_FLAT +#elif defined ESTUARY + parameter (LLm0=200, MMm0=90, N=5) ! ESTUARY +#elif defined REGIONAL +# if defined BENGUELA_LR + parameter (LLm0=41, MMm0=42, N=32) ! BENGUELA_LR +# elif defined BENGUELA_HR + parameter (LLm0=83, MMm0=85, N=32) ! BENGUELA_HR +# elif defined BENGUELA_VHR + parameter (LLm0=167, MMm0=170, N=32) ! BENGUELA_VHR +# elif defined SA_WEST_02 + parameter (LLm0=128, MMm0=446, N=30) ! BENGUELA_VHR +# else + parameter (LLm0=xx, MMm0=xx, N=xx) ! YOUR REGIONAL CONFIG +# endif +#elif defined COASTAL +# if defined VILAINE + parameter (LLm0=180, MMm0=130, N=10) ! VILAINE +# else + parameter (LLm0=94, MMm0=81, N=40) ! YOUR COASTAL CONFIG +# endif +#else + parameter (LLm0=xxx, MMm0=xxx, N=xxx) +#endif + +#ifdef AGRIF + common /scrum_physical_grid/ LLm,Lm,LLmm2,MMm,Mm,MMmm2 +#else + parameter (LLm=LLm0, MMm=MMm0) +#endif + +! +!---------------------------------------------------------------------- +! MPI related variables +!---------------------------------------------------------------------- +! + integer Lmmpi,Mmmpi,iminmpi,imaxmpi,jminmpi,jmaxmpi + common /comm_setup_mpi1/ Lmmpi,Mmmpi + common /comm_setup_mpi2/ iminmpi,imaxmpi,jminmpi,jmaxmpi +! +! Domain subdivision parameters +! ====== =========== ========== +! +! NPP Maximum allowed number of parallel threads; +! NSUB_X,NSUB_E Number of SHARED memory subdomains in XI- and +! ETA-directions; +! NNODES Total number of MPI processes (nodes); +! NP_XI,NP_ETA Number of MPI subdomains in XI- and ETA-directions; +! + integer NSUB_X, NSUB_E, NPP +#ifdef MPI + integer NP_XI, NP_ETA, NNODES + parameter (NP_XI=MPI_NUM_X, NP_ETA=MPI_NUM_Y, NNODES=NP_XI*NP_ETA) + parameter (NPP=1) + parameter (NSUB_X=1, NSUB_E=1) +#elif defined OPENMP + parameter (NPP=4) +# ifdef AUTOTILING + common/distrib/NSUB_X, NSUB_E +# else + parameter (NSUB_X=1, NSUB_E=NPP) +# endif +#else + parameter (NPP=1) +# ifdef AUTOTILING + common/distrib/NSUB_X, NSUB_E +# else + parameter (NSUB_X=1, NSUB_E=NPP) +# endif +#endif + +! +!---------------------------------------------------------------------- +! Number maximum of weights for the barotropic mode +!---------------------------------------------------------------------- +! + integer NWEIGHT + parameter (NWEIGHT=1000) + +! +!---------------------------------------------------------------------- +! Tides +!---------------------------------------------------------------------- +! +#if defined SSH_TIDES || defined UV_TIDES || defined POT_TIDES + integer Ntides ! Number of tides + ! ====== == ===== +# if defined IGW + parameter (Ntides=1) +# else + parameter (Ntides=8) +# endif +#endif +! +!---------------------------------------------------------------------- +! Wetting-Drying +!---------------------------------------------------------------------- +! +#ifdef WET_DRY + real D_wetdry ! Critical Depth for Drying cells + ! ======== ===== === ====== ===== +# if defined SWASH + parameter (D_wetdry=0.001) +# elif defined THACKER + parameter (D_wetdry=0.01) +# elif defined SANDBAR || defined TIDAL_FLAT || defined ESTUARY + parameter (D_wetdry=0.1) +# else + parameter (D_wetdry=0.2) +# endif +#endif +! +!---------------------------------------------------------------------- +! Minimum water depth above which wave forcing is applied +! (D_wavedry>D_wetdry if WET_DRY is activated) +!---------------------------------------------------------------------- +#ifdef MRL_WCI +# ifdef WAVE_DRY + real D_wavedry + parameter (D_wavedry=1.0) +# endif +#endif +! +!---------------------------------------------------------------------- +! Point sources, Floast, Stations +!---------------------------------------------------------------------- +! +#if defined PSOURCE || defined PSOURCE_MASS || defined PSOURCE_NCFILE + integer Msrc ! Number of point sources +# ifdef RIVER + parameter (Msrc=2) ! ====== == ===== ======= +# elif defined VILAINE + parameter (Msrc=2) ! ====== == ===== ======= +# elif defined ESTUARY + parameter (Msrc=1) ! ====== == ===== ======= +# else + parameter (Msrc=30) ! ====== == ===== ======= +# endif +#endif +#ifdef FLOATS + integer Mfloats ! Maximum number of floats + parameter (Mfloats=32000) ! ======= ====== == ====== +#endif +#ifdef STATIONS + integer NS ! Number of output stations + parameter (NS=5) ! ====== == ====== ======== + integer Msta ! Maximum number of stations + parameter (Msta=1000) ! ======= ====== == ======== +#endif + +! +!---------------------------------------------------------------------- +! Derived dimension parameters +!---------------------------------------------------------------------- +! + integer stdout, Np, padd_X,padd_E +#ifdef AGRIF + common/scrum_deriv_param/padd_X,padd_E +#endif +#ifdef LOGFILE + common /stdout/stdout +#else + parameter (stdout=6) +#endif + parameter (Np=N+1) +#ifndef AGRIF +# ifdef MPI + parameter (Lm=(LLm+NP_XI-1)/NP_XI, Mm=(MMm+NP_ETA-1)/NP_ETA) +# else + parameter (Lm=LLm, Mm=MMm) +# endif + parameter (padd_X=(Lm+2)/2-(Lm+1)/2) + parameter (padd_E=(Mm+2)/2-(Mm+1)/2) +#endif + +#if defined AGRIF || defined AUTOTILING + integer NSA, N2d,N3d,N1dXI,N1dETA +#if !defined NBQ + parameter (NSA=28) +#else + parameter (NSA=35) +#endif + common /scrum_private_param/ N2d,N3d,N1dXI,N1dETA +#else + integer NSA, N2d,N3d, size_XI,size_ETA + integer se,sse, sz,ssz +#if !defined NBQ + parameter (NSA=28) +#else + parameter (NSA=35) +#endif +# ifdef ALLOW_SINGLE_BLOCK_MODE + parameter (size_XI=6+Lm, size_ETA=6+Mm) +# else + parameter (size_XI=7+(Lm+NSUB_X-1)/NSUB_X) + parameter (size_ETA=7+(Mm+NSUB_E-1)/NSUB_E) +# endif + parameter (sse=size_ETA/Np, ssz=Np/size_ETA) + parameter (se=sse/(sse+ssz), sz=1-se) + parameter (N2d=size_XI*(se*size_ETA+sz*Np)) + parameter (N3d=size_XI*size_ETA*Np) +#endif + +! +!---------------------------------------------------------------------- +! I/O : flag for type sigma vertical transformation +!---------------------------------------------------------------------- +! +#ifdef NEW_S_COORD + real Vtransform + parameter (Vtransform=2) +#else + real Vtransform + parameter (Vtransform=1) +#endif + +! +!---------------------------------------------------------------------- +! Number of tracers +!---------------------------------------------------------------------- +! +#ifdef SOLVE3D + integer NT, NTA, itemp, NTot + integer ntrc_temp, ntrc_salt, ntrc_pas, ntrc_bio, ntrc_sed + integer ntrc_subs, ntrc_substot +! +# ifdef TEMPERATURE + parameter (itemp=1) + parameter (ntrc_temp=1) +# else + parameter (itemp=0) + parameter (ntrc_temp=0) +# endif +# ifdef SALINITY + parameter (ntrc_salt=1) +# else + parameter (ntrc_salt=0) +# endif +# ifdef PASSIVE_TRACER +# ifdef KH_INST + parameter (ntrc_pas=2) +# else + parameter (ntrc_pas=1) +# endif +# else + parameter (ntrc_pas=0) +# endif +# ifdef BIOLOGY +# ifdef PISCES +# ifdef key_pisces_quota +# ifdef key_ligand + parameter (ntrc_bio=40) +# else + parameter (ntrc_bio=39) +# endif +# else +# ifdef key_ligand + parameter (ntrc_bio=25) +# else + parameter (ntrc_bio=24) +# endif +# endif +# elif defined BIO_NChlPZD +# ifdef OXYGEN + parameter (ntrc_bio=6) +# else + parameter (ntrc_bio=5) +# endif +# elif defined BIO_N2ChlPZD2 + parameter (ntrc_bio=7) +# elif defined BIO_BioEBUS +# ifdef NITROUS_OXIDE + parameter (ntrc_bio=12) +# else + parameter (ntrc_bio=11) +# endif +# endif +# else + parameter (ntrc_bio=0) +# endif /* BIOLOGY */ + +/*! === SUBSTANCE ===*/ +! +# if defined SUBSTANCE +! ntrc_subs : number of advected substances (not fixed, neither benthic) + integer itsubs1, itsubs2, ntfix +# ifdef SED_TOY +# if defined SED_TOY_FLOC_0D || defined SED_TOY_FLOC_1D + parameter (ntrc_subs=15 , ntfix=0, ntrc_substot=ntrc_subs+ntfix ) +# else + parameter (ntrc_subs=6 , ntfix=0, ntrc_substot=ntrc_subs+ntfix ) +# endif +# elif defined TIDAL_FLAT + parameter (ntrc_subs=3 , ntfix=0, ntrc_substot=ntrc_subs+ntfix ) +# elif defined ESTUARY + parameter (ntrc_subs=2 , ntfix=0, ntrc_substot=ntrc_subs+ntfix ) +# elif defined VILAINE + parameter (ntrc_subs=3 , ntfix=0, ntrc_substot=ntrc_subs+ntfix ) +# else + parameter (ntrc_subs=2 , ntfix=0, ntrc_substot=ntrc_subs+ntfix ) +# endif + parameter (itsubs1= itemp+ntrc_salt+ntrc_pas+ntrc_bio+1 ) + parameter (itsubs2= itemp+ntrc_salt+ntrc_pas+ntrc_bio+ntrc_subs ) +# else + parameter (ntrc_subs=0, ntrc_substot=0) +# endif /* SUBSTANCE */ + +! +# ifdef SEDIMENT +! NSAND Number of sand classes +! NMUD Number of mud classes +! NGRAV Number of gravel classes (not implemented...) +! NST Number of sediment (tracer) size classes +! NLAY Number of layers in sediment bed +! + integer NSAND, NMUD, NGRAV, NST, NLAY +# ifdef DUNE +# ifdef ANA_DUNE + parameter (NSAND=1, NMUD=0, NGRAV=0) + parameter (NLAY=11) +# else + parameter (NSAND=2, NMUD=0, NGRAV=0) + parameter (NLAY=10) +# endif +# elif defined SED_TOY +# if defined SED_TOY_RESUSP || defined SED_TOY_CONSOLID + parameter (NSAND=2, NMUD=2, NGRAV=0) + parameter (NLAY=41) +# elif defined SED_TOY_FLOC_0D || defined SED_TOY_FLOC_1D + parameter (NSAND=4, NMUD=15, NGRAV=0) + parameter (NLAY=20) +# elif defined SED_TOY_ROUSE + parameter (NSAND=0, NMUD=6, NGRAV=0) + parameter (NLAY=1) +# endif +# else + parameter (NSAND=2, NMUD=0, NGRAV=0) + parameter (NLAY=1) +# endif + parameter (ntrc_sed=NSAND+NMUD+NGRAV) + parameter (NST=ntrc_sed) +# else + parameter (ntrc_sed=0) +# endif /* SEDIMENT */ +! +! Total number of active tracers +! + parameter (NTA=itemp+ntrc_salt) + +! +! Total number of tracers +! +# ifdef SUBSTANCE + parameter (NT=itemp+ntrc_salt+ntrc_pas+ntrc_bio+ntrc_sed+ntrc_subs) + parameter (NTot=NT+ntfix) +# else + parameter (NT=itemp+ntrc_salt+ntrc_pas+ntrc_bio+ntrc_sed) + parameter (NTot=NT) +# endif /* SUBSTANCE */ + +# ifdef MUSTANG + ! vertical dimension (ksdmin:ksdmax) of variables in sediment + ! (ksdmax=max number of layers) + integer ksdmin,ksdmax +# if defined ANA_DUNE || defined key_ANA_bedload + parameter (ksdmin=1,ksdmax=11) +# elif defined TIDAL_FLAT || defined ESTUARY + parameter (ksdmin=1,ksdmax=3) +# else + parameter (ksdmin=1,ksdmax=10) +# endif +# endif /* MUSTANG */ + +# if defined SEDIMENT && defined AGRIF + integer Agrif_lev_sedim + parameter (Agrif_lev_sedim=0) +# endif + +# ifdef GLS_MIXING + integer NGLS + parameter(NGLS=2) + integer itke + parameter(itke=1) + integer igls + parameter(igls=2) +# endif + +#endif /* SOLVE3D */ + +! +!---------------------------------------------------------------------- +! Tracer identification indices +!---------------------------------------------------------------------- +! +#if defined SOLVE3D + integer ntrc_diats, ntrc_diauv, ntrc_diabio + integer ntrc_diavrt, ntrc_diaek, ntrc_diapv + integer ntrc_diaeddy, ntrc_surf +# ifdef BIOLOGY + & , itrc_bio +# endif +# ifdef SEDIMENT + & , itrc_sed, itrc_sand, itrc_mud, itrc_grav +# endif +# ifdef SALINITY + & , isalt +# endif +# ifdef PASSIVE_TRACER + & , itpas +# endif +! +# ifdef BIOLOGY +# ifdef PISCES + & , iDIC_, iTAL_, iOXY_, iCAL_, iPO4_ + & , iPOC_, iSIL_, iPHY_, iZOO_, iDOC_ + & , iDIA_, iMES_, iBSI_, iFER_ + & , iBFE_, iGOC_, iSFE_, iDFE_, iDSI_ + & , iNFE_, iNCH_, iDCH_, iNO3_, iNH4_ + & , iLGW_, iDON_, iDOP_, iPON_, iPOP_ + & , iNPH_, iPPH_, iNDI_, iPDI_, iPIC_ + & , iNPI_, iPPI_, iPFE_, iPCH_, iGON_ + & , iGOP_ +# ifdef DIAGNOSTICS_BIO +# ifdef key_trc_diaadd + & , Nhi,Nco3,Naksp,Netot,Nprorca + & , Nprorcad,Npronew,Npronewd + & , Nprobsi,Nprofed,Nprofen + & , Ngrapoc,Ngrapoc2 + & , Nmico2,Nmeso2 + & , Nnitrifo2,Nfixo2,Nremino2 + & , Npronewo2,Nprorego2 + & , Nfld,Nflu16,Nkgco2,Natcco2,Nsinking + & , Nsinkfer,Nsinksil,Nironsed + & , Nsinkcal,Nheup,Nnitrpot + & , Nirondep,Nsildep,Npo4dep + & , Nno3dep,Nnh4dep +# endif +# endif + & , NumFluxTerms,NumVSinkTerms,NumGasExcTerms +# elif defined BIO_NChlPZD + & , iNO3_, iChla, iPhy1, iZoo1 + & , iDet1 +# ifdef OXYGEN + & , iO2 +# endif + & , NFlux_NewProd, NFlux_Grazing, NFlux_SlopFeed + & , NFlux_Pmort, NFlux_Zmetab, NFlux_Zmort, NFlux_ReminD + & , NumFluxTermsN +# ifdef OXYGEN + & , OGain_NewProd, OLoss_Zmetab + & , OLoss_ReminD, NumFluxTermsO, OFlux_GasExc + & , NumGasExcTerms, NumFluxTerms +# else + & , NumGasExcTerms + & , NumFluxTerms +# endif + & , NFlux_VSinkP1, NFlux_VSinkD1 + & , NumVSinkTerms +# elif defined BIO_N2ChlPZD2 + & , iNO3_, iNH4_, iChla, iPhy1, iZoo1 + & , iDet1, iDet2 + & , NFlux_NewProd + & , NFlux_RegProd + & , NFlux_Nitrific + & , NFlux_Grazing + & , NFlux_SlopFeed + & , NFlux_Pmort + & , NFlux_Zmetab + & , NFlux_Zmort + & , NFlux_ReminD1, NFlux_ReminD2 + & , NFlux_CoagPhy, NFlux_CoagSDet + & , NumFluxTermsN, NumFluxTerms, NumGasExcTerms + & , NFlux_VSinkP1 + & , NFlux_VSinkD1, NFlux_VSinkD2 + & , NumVSinkTerms + +# elif defined BIO_BioEBUS + & , iNO3_, iNO2_, iNH4_, iPhy1, iPhy2, iZoo1, iZoo2 + & , iDet1, iDet2, iDON, iO2 +# ifdef NITROUS_OXIDE + & , iN2O +# endif + & , NFlux_lightlimitP1, NFlux_lightlimitP2 + & , NFlux_templimitP1, NFlux_templimitP2 + & , NFlux_NO3limitP1, NFlux_NO2limitP1 + & , NFlux_NH4limitP1, NFlux_NO3limitP2 + & , NFlux_NO2limitP2, NFlux_NH4limitP2 + & , NFlux_ProdNO3P1, NFlux_ProdNO3P2 + & , NFlux_ProdNO2P1, NFlux_ProdNO2P2 + & , NFlux_Nitrif1, NFlux_Nitrif2, NFlux_ProdNH4P1 + & , NFlux_ProdNH4P2, NFlux_P1Z1Grazing + & , NFlux_P2Z1Grazing, NFlux_P1mort, NFlux_P2mort + & , NFlux_P1Z2Grazing, NFlux_P2Z2Grazing + & , NFlux_Z1Z2Grazing, NFlux_Z1metab, NFlux_Z1mort + & , NFlux_Z2metab, NFlux_Z2mort, NFlux_HydrolD1 + & , NFlux_ReminOxyD1, NFlux_Denitr1D1 + & , NFlux_Denitr2D1 + & , NFlux_HydrolD2, NFlux_ReminOxyD2 + & , NFlux_Denitr1D2, NFlux_Denitr2D2 + & , NFlux_ReminOxyDON + & , NFlux_Denitr1DON, NFlux_Denitr2DON + & , NFlux_NO2anammox + & , NFlux_NH4anammox, O2Flux_GasExc, NumFluxTermsN +# ifdef NITROUS_OXIDE + & , NFlux_paramN2O, N2OFlux_GasExc +# endif + & , NumFluxTerms, NumGasExcTerms + & , NFlux_VSinkP2, NFlux_VSinkD1 + & , NFlux_VSinkD2, NumVSinkTerms +# endif +# endif /* BIOLOGY */ + +# ifdef SEDIMENT + & ,isand1,imud1,isand2,imud2,igrav1,igrav2 +# endif + +! +! ================ Parameters ===================== +! + +# ifdef SALINITY + parameter (isalt=itemp+1) +# endif +# ifdef PASSIVE_TRACER + parameter (itpas=itemp+ntrc_salt+1) +# endif + +! +! === BIOLOGY === +! +# ifdef BIOLOGY +# ifdef PISCES + parameter (itrc_bio=itemp+ntrc_salt+ntrc_pas+1) + parameter (iDIC_=itrc_bio, iTAL_=iDIC_+1, + & iOXY_=iDIC_+2, iCAL_=iDIC_+3, iPO4_=iDIC_+4, + & iPOC_=iDIC_+5, iSIL_=iDIC_+6, iPHY_=iDIC_+7, + & iZOO_=iDIC_+8, iDOC_=iDIC_+9, iDIA_=iDIC_+10, + & iMES_=iDIC_+11, iBSI_=iDIC_+12, iFER_=iDIC_+13, + & iBFE_=iDIC_+14, iGOC_=iDIC_+15, iSFE_=iDIC_+16, + & iDFE_=iDIC_+17, iDSI_=iDIC_+18, iNFE_=iDIC_+19, + & iNCH_=iDIC_+20, iDCH_=iDIC_+21, iNO3_=iDIC_+22, + & iNH4_=iDIC_+23) +# ifdef key_ligand + parameter (iLGW_=iDIC_+24) +# endif +# ifdef key_pisces_quota +# ifdef key_ligand + parameter (iDON_=iDIC_+25, iDOP_=iDIC_+26, iPON_=iDIC_+27, + & iPOP_=iDIC_+28, iNPH_=iDIC_+29, iPPH_=iDIC_+30, + & iNDI_=iDIC_+31, iPDI_=iDIC_+32, iPIC_=iDIC_+33, + & iNPI_=iDIC_+34, iPPI_=iDIC_+35, iPFE_=iDIC_+36, + & iPCH_=iDIC_+37, iGON_=iDIC_+38, iGOP_=iDIC_+39) +# else + parameter (iDON_=iDIC_+24, iDOP_=iDIC_+25, iPON_=iDIC_+26, + & iPOP_=iDIC_+27, iNPH_=iDIC_+28, iPPH_=iDIC_+29, + & iNDI_=iDIC_+30, iPDI_=iDIC_+31, iPIC_=iDIC_+32, + & iNPI_=iDIC_+33, iPPI_=iDIC_+34, iPFE_=iDIC_+35, + & iPCH_=iDIC_+36, iGON_=iDIC_+37, iGOP_=iDIC_+38) +# endif +# endif +# ifdef key_trc_diaadd + parameter (Nhi = 1, + & Nco3 = 2, + & Naksp = 3, + & Netot = 4, + & Nprorca = 5, + & Nprorcad = 6, + & Npronew = 7, + & Npronewd = 8, + & Nprobsi = 9, + & Nprofen = 10, + & Nprofed = 11, + & Npronewo2 = 12, + & Nprorego2 = 13, + & Ngrapoc = 14, + & Ngrapoc2 = 15, + & Nmico2 = 16, + & Nmeso2 = 17, + & Nnitrifo2 = 18, + & Nremino2 = 19, + & Nfixo2 = 20, + & Nirondep = 21, + & Nironsed = 22, + & NumFluxTerms = Nironsed) + + parameter (Nfld = 1, + & Nflu16 = 2, + & Nkgco2 = 3, + & Natcco2 = 4, + & Nsinking = 5, + & Nsinkfer = 6, + & Nsinksil = 7, + & Nsinkcal = 8, + & Nheup = 9, + & Nsildep = 10, + & Npo4dep = 11, + & Nno3dep = 12, + & Nnh4dep = 13, + & Nnitrpot = 14, + & NumGasExcTerms = 0, + & NumVSinkTerms = Nnitrpot) +# else + parameter (NumFluxTerms = 0) + parameter (NumGasExcTerms = 0, NumVSinkTerms = 0) +# endif + +# elif defined BIO_NChlPZD + parameter (itrc_bio=itemp+ntrc_salt+ntrc_pas+1) + parameter (iNO3_=itrc_bio, iChla=iNO3_+1, + & iPhy1=iNO3_+2, + & iZoo1=iNO3_+3, + & iDet1=iNO3_+4) +# ifdef OXYGEN + parameter (iO2=iNO3_+5) +# endif + parameter (NFlux_NewProd = 1, + & NFlux_Grazing = 2, + & NFlux_SlopFeed = 3, + & NFlux_Pmort = 4, + & NFlux_Zmetab = 5, + & NFlux_Zmort = 6, + & NFlux_ReminD = 7, + & NumFluxTermsN = 7, +# ifdef OXYGEN + & OGain_NewProd = 8, + & OLoss_Zmetab = 9, + & OLoss_ReminD = 10, + & NumFluxTermsO = 3, + & OFlux_GasExc = 1, + & NumGasExcTerms = 1, + & NumFluxTerms = 10, +# else + & NumGasExcTerms = 0, + & NumFluxTerms = 7, +# endif + & NFlux_VSinkP1 = 1, + & NFlux_VSinkD1 = 2, + & NumVSinkTerms = 2) + +# elif defined BIO_N2ChlPZD2 + parameter (itrc_bio=itemp+ntrc_salt+ntrc_pas+1) + parameter (iNO3_=itrc_bio, iNH4_=iNO3_+1, iChla=iNO3_+2, + & iPhy1=iNO3_+3, + & iZoo1=iNO3_+4, + & iDet1=iNO3_+5, iDet2=iNO3_+6) + parameter (NFlux_NewProd = 1, + & NFlux_RegProd = 2, + & NFlux_Nitrific = 3, + & NFlux_Grazing = 4, + & NFlux_SlopFeed = 5, + & NFlux_Pmort = 6, + & NFlux_Zmetab = 7, + & NFlux_Zmort = 8, + & NFlux_CoagPhy = 9, + & NFlux_CoagSDet = 10, + & NFlux_ReminD1 = 11, + & NFlux_ReminD2 = 12, + & NumFluxTermsN = 12, + & NumFluxTerms = 12, + & NumGasExcTerms = 0, + & NFlux_VSinkP1 = 1, + & NFlux_VSinkD1 = 2, + & NFlux_VSinkD2 = 3, + & NumVSinkTerms = 3) + +# elif defined BIO_BioEBUS +# ifdef NITROUS_OXIDE + parameter (itrc_bio=itemp+ntrc_salt+ntrc_pas+1) +# else + parameter (itrc_bio=itemp+ntrc_salt+ntrc_pas+1) +# endif + + parameter (iNO3_=itrc_bio, iNO2_=iNO3_+1, iNH4_=iNO3_+2, + & iPhy1=iNO3_+3, iPhy2=iNO3_+4, + & iZoo1=iNO3_+5, iZoo2=iNO3_+6, + & iDet1=iNO3_+7, iDet2=iNO3_+8, + & iDON=iNO3_+9, iO2=iNO3_+10) + +# ifdef NITROUS_OXIDE + parameter (iN2O=iNO3_+11) +# endif + + parameter( NFlux_lightlimitP1=1 + & , NFlux_lightlimitP2=2 + & , NFlux_templimitP1=3 + & , NFlux_templimitP2=4 + & , NFlux_NO3limitP1=5 + & , NFlux_NO2limitP1=6 + & , NFlux_NH4limitP1=7 + & , NFlux_NO3limitP2=8 + & , NFlux_NO2limitP2=9 + & , NFlux_NH4limitP2=10 + & , NFlux_ProdNO3P1=11 + & , NFlux_ProdNO3P2=12 + & , NFlux_ProdNO2P1=13 + & , NFlux_ProdNO2P2=14 + & , NFlux_Nitrif1=15 + & , NFlux_Nitrif2=16 + & , NFlux_ProdNH4P1=17 + & , NFlux_ProdNH4P2=18 + & , NFlux_P1Z1Grazing=19 + & , NFlux_P2Z1Grazing=20 + & , NFlux_P1mort=21 + & , NFlux_P2mort=22 + & , NFlux_P1Z2Grazing=23 + & , NFlux_P2Z2Grazing=24 + & , NFlux_Z1Z2Grazing=25 + & , NFlux_Z1metab=26 + & , NFlux_Z1mort=27 + & , NFlux_Z2metab=28 + & , NFlux_Z2mort=29 + & , NFlux_HydrolD1=30 + & , NFlux_ReminOxyD1=31 + & , NFlux_Denitr1D1=32 + & , NFlux_Denitr2D1=33 + & , NFlux_HydrolD2=34 + & , NFlux_ReminOxyD2=35 + & , NFlux_Denitr1D2=36 + & , NFlux_Denitr2D2=37 + & , NFlux_ReminOxyDON=38 + & , NFlux_Denitr1DON=39 + & , NFlux_Denitr2DON=40 + & , NFlux_NO2anammox=41 + & , NFlux_NH4anammox=42 +# ifdef NITROUS_OXIDE + & , NFlux_paramN2O=43 + & , NumFluxTermsN=NFlux_paramN2O +# else + & , NumFluxTermsN=NFlux_NH4anammox +# endif + & , NumFluxTerms=NumFluxTermsN + & , O2Flux_GasExc=1 +# ifdef NITROUS_OXIDE + & , N2OFlux_GasExc=2 + & , NumGasExcTerms=2 +# else + & , NumGasExcTerms=1 +# endif + & , NFlux_VSinkP2=1 + & , NFlux_VSinkD1=2 + & , NFlux_VSinkD2=3 + & , NumVSinkTerms=3) +# endif /* PISCES ... */ + +! +! === BIOLOGY DIAGS === +! + +# if defined BIO_NChlPZD || defined BIO_N2ChlPZD2 || defined PISCES \ + || defined BIO_BioEBUS +# ifdef DIAGNOSTICS_BIO + parameter (ntrc_diabio=NumFluxTerms+ + & NumGasExcTerms+NumVSinkTerms) +# else + parameter (ntrc_diabio=0) +# endif +# else + parameter (ntrc_diabio=0) +# endif +# else + parameter (ntrc_diabio=0) +# endif /* BIOLOGY */ + +! +! === SEDIMENTS === +! + +# ifdef SEDIMENT + parameter (itrc_sed=itemp+ntrc_salt+ntrc_pas+ntrc_bio+1) + parameter (itrc_sand=itrc_sed,itrc_mud=itrc_sand+NSAND) + parameter (itrc_grav=itrc_mud+NGRAV) + parameter (isand1=1,imud1=isand1+NSAND) + parameter (igrav1=imud1+NMUD) + parameter (isand2=isand1+NSAND-1,imud2=imud1+NMUD-1) + parameter (igrav2=igrav1+NGRAV-1) +# endif + +! +! === u,v and tracer equations Diagnostics === +! +# ifdef DIAGNOSTICS_TS +# ifdef DIAGNOSTICS_TS_MLD + parameter (ntrc_diats=16*NT) +# else + parameter (ntrc_diats=8*NT) +# endif +# else + parameter (ntrc_diats=0) +# endif +# ifdef DIAGNOSTICS_UV + parameter (ntrc_diauv=24) +# else + parameter (ntrc_diauv=0) +# endif +# ifdef DIAGNOSTICS_VRT + parameter (ntrc_diavrt=16) +# else + parameter (ntrc_diavrt=0) +# endif +# ifdef DIAGNOSTICS_EK +# ifdef DIAGNOSTICS_EK_MLD + parameter (ntrc_diaek=28) +# else + parameter (ntrc_diaek=16) +# endif +# else + parameter (ntrc_diaek=0) +# endif +# ifdef DIAGNOSTICS_PV + parameter (ntrc_diapv=12) +# else + parameter (ntrc_diapv=0) +# endif +# if defined DIAGNOSTICS_EDDY && ! defined XIOS + parameter (ntrc_diaeddy=15) +# else + parameter (ntrc_diaeddy=0) +# endif +# if defined OUTPUTS_SURFACE && ! defined XIOS + parameter (ntrc_surf=5) +# else + parameter (ntrc_surf=0) +# endif +#endif /*SOLVE3D */ + +! +!---------------------------------------------------------------------- +! Max time increment for computing bottom stress at the 3D fast time +! steps +!---------------------------------------------------------------------- +! +#ifdef BSTRESS_FAST + integer inc_faststep_max + parameter(inc_faststep_max = 10) +#endif diff --git a/configs/sa_west_02/croco_v1.3.1/README.md b/configs/sa_west_02/croco_v1.3.1/README.md index 9e3c529..6e3e906 100644 --- a/configs/sa_west_02/croco_v1.3.1/README.md +++ b/configs/sa_west_02/croco_v1.3.1/README.md @@ -19,6 +19,8 @@ Compile options 03 - as per 01, define ONLINE 04 - as per 03, undef CLIMATOLOGY and define FRC_BRY 05 - as per 04, define ERA_ECMWF (ERA5 blk files are in a different format for ONLINE processing) +06 - as per 04, define TIDES +07 - as per 06, define ERA_ECMWF (ERA5 blk files are in a different format for ONLINE processing) Runtime input (\*.in files) --------------------------- diff --git a/configs/sa_west_02/croco_v1.3.1/run_croco_inter.bash b/configs/sa_west_02/croco_v1.3.1/run_croco_inter.bash index ba41035..c0032a0 100755 --- a/configs/sa_west_02/croco_v1.3.1/run_croco_inter.bash +++ b/configs/sa_west_02/croco_v1.3.1/run_croco_inter.bash @@ -22,6 +22,7 @@ source ${INPUTDIR_IN}/myenv_in.sh INPUTDIR_SRF=$RUNDIR/$ATMOS_BULK INPUTDIR_BRY=$RUNDIR/$OGCM INPUTDIR_GRD=$RUNDIR/GRID +INPUTDIR_TID=$RUNDIR/$TIDE_FRC MODEL=croco RUNNAME=${EXENAME}_${INNAME}_${OGCM}_${ATMOS_BULK} @@ -39,6 +40,7 @@ fi # GRDFILE=${MODEL}_grd FRCFILE=${MODEL}_frc +TIDFILE=${MODEL}_frc BLKFILE=${MODEL}_blk INIFILE=${MODEL}_ini CLMFILE=${MODEL}_clm @@ -80,7 +82,6 @@ chmod u+x $CODFILE #$CP -f $INPUTDIR_IN/AGRIF_FixedGrids.in $SCRATCHDIR #echo "Getting stations file from $INPUTDIR_IN" #$CP -f $INPUTDIR_IN/stations.in $SCRATCHDIR -#$CP -f $TIDEDIR/frc.nc $SCRATCHDIR # # Get the netcdf files for run initiation @@ -156,6 +157,10 @@ while [ $NY != $NY_END ]; do echo "Getting ${BLKFILE}_${ATMOS_BULK}_${TIME}.nc${ENDF} from ${INPUTDIR_SRF}${ENDF}" $LN -sf ${INPUTDIR_SRF}${ENDF}/${BLKFILE}_${ATMOS_BULK}_${TIME}.nc${ENDF} ${BLKFILE}.nc${ENDF} fi + if [[ ${TIDE_FILES} == 1 ]]; then + echo "Getting ${TIDFILE}_${TIDE_FRC}_${TIME}.nc${ENDF} from ${INPUTDIR_TID}${ENDF}" + $LN -sf ${INPUTDIR_TID}${ENDF}/${TIDFILE}_${TIDE_FRC}_${TIME}.nc${ENDF} ${FRCFILE}.nc${ENDF} + fi LEVEL=$((LEVEL + 1)) done #