Installation error

Hey, guys!

Can someone help me with this error. I am using 1) intel/19.0.5 3) hdf5/1.10.6/intel-19.0.5-mvapich-2.3.3 5) netcdf-fortran/4.5.2/intel-19.0.5-mvapich-2.3.3 7) gcc/9.3.0
2) mvapich2/2.3.3/intel-19.0.5 4) netcdf-c/4.7.3/intel-19.0.5-mvapich-2.3.3 6) python/3.8.5-anaconda

get_psource_ts_.f(1721): error #5082: Syntax error, found IDENTIFIER ‘GOT_TSRC’ when expecting one of: ( % [ . = =>
if (mynode.eq.0) write(stdout,3) got_tsrc(itrc)=.false.
-----------------------------------------------^
get_psource_ts_.f(1721): error #6458: This name must be the name of a variable with a derived type (structure type). [WRITE]
if (mynode.eq.0) write(stdout,3) got_tsrc(itrc)=.false.
-------------------------------^
get_psource_ts_.f(1721): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands.
if (mynode.eq.0) write(stdout,3) got_tsrc(itrc)=.false.
--------------------------------------------------------------^
get_psource_ts_.f(2075): remark #6375: Because of COMMON, the alignment of object is inconsistent with its type - potential performance impact. [BLK_ORIGIN_DATE_IN_SEC]
REAL(kind=8) :: blk_origin_date_in_sec
----------------------^
compilation aborted for get_psource_ts_.f (code 1)
make: *** [get_psource_ts.o] Error 1

It seems that your are using intel for fortran, but gcc for c. You should rather use icc. Maybe also your anaconda env may create some issues…

set source, compilation and run directories

SOURCE=/work/liangjh/packages/croco-v2.0.0/OCEAN/
SCRDIR=./Compile
RUNDIR=pwd
ROOT_DIR=$SOURCE/…

determine operating system

OS=uname
echo “OPERATING SYSTEM IS: $OS”

compiler options

export CC=icc
export FC=ifort
export F90=ifort
export F77=ifort
export MPIF90=mpiifort

set MPI directories if needed

MPIF90=“/home/packages/compilers/intel/mpi/2021.5.1/bin/mpif90”
MPILIB=“-L/home/packages/compilers/intel/mpi/2021.5.1/lib/ -lmpi -limf -lm”
MPIINC=“-I/home/packages/compilers/intel/mpi/2021.5.1/include”

set NETCDF directories

#-----------------------------------------------------------

Use :

#-lnetcdf : version netcdf-3.6.3 –
#-lnetcdff -lnetcdf : version netcdf-4.1.2 –
#-lnetcdff : version netcdf-fortran-4.2-gfortran –
#-----------------------------------------------------------

#NETCDFLIB=“-L/usr/local/lib -lnetcdf”
#NETCDFINC=“-I/usr/local/include”
NETCDFLIB=$(nf-config --flibs)
NETCDFINC=-I$(nf-config --includedir)

/home/packages/compilers/intel/mpi/2021.5.1/bin/mpif90 -c -O2 -mcmodel=medium -fdefault-integer-8 -fdefault-real-8 -I/usr/local/packages/netcdf-fortran/4.5.3/bchyu67/include -I/home/packages/compilers/intel/mpi/2021.5.1/include get_vbc_.f -o get_vbc.o
get_vbc_.f:666:32:

       bustr(i,j)=SIGN(1.D0, bustr(i,j))*
                            1

Error: ‘b’ argument of ‘sign’ intrinsic at (1) must be the same type and kind as ‘a’
get_vbc_.f:674:32:

       bvstr(i,j)=SIGN(1.D0, bvstr(i,j))*
                            1

Error: ‘b’ argument of ‘sign’ intrinsic at (1) must be the same type and kind as ‘a’
gmake: *** [Makedefs:15: get_vbc.o] Error 1

instate of this if i write following. what i get?
MPIF90=“mpiifort”
MPILIB=“”
MPIINC=“”

and compiler
export CC=mpiicc
export FC=mpiifort

Thank you so much for the quick response.

OPERATING SYSTEM IS: Linux
file namelist_pisces exists in Run directory
Mustang namelist directory MUSTANG_NAMELIST exists
Unknown Fortran Compiler

OK. then unset FC using : unset FC unset CC unset MPIF90
after that
export CC=mpiicc
export FC=mpiifort
and source intel compiler if it needed, you can ask Linux which compiler is CC and FC.
using this following command:
which mpiicc
which mpiifort
I hope you will find your Fortran Compiler is known.
and get your own intel compiler

and jump to Solved Jump to solution

Thank you so much, I can find the compiler just fine.
which mpiicc
/home/packages/compilers/intel/mpi/2021.5.1/bin/mpiicc
which mpiifort
/home/packages/compilers/intel/mpi/2021.5.1/bin/mpiifort

Going through the script jobcomp, you have only options for ifort, gfortran, and pgfortran.
if [[ $FC == ifort || $FC == ifc ]] ; then
elif [[ $FC == gfortran ]] ; then
elif [[ $FC == pgfortran || $FC == nvfortran ]] ; then

should I change it to #

Set compilation options

if [[ $OS == Linux || $OS == Darwin ]] ; then # ===== LINUX =====
if [[ $FC == ifort || $FC == ifc || $FC == mpiifort ]] ; then
CPP1=“cpp -traditional -DLinux -DIfort”
CFT1=mpiifort
FFLAGS1=“-O2 -mcmodel=medium -fno-alias -i4 -r8 -fp-model precise”

check your qopenmp is already there. don’t change too much.
as I said before I am sticks to there.
send your cppdefs.h jobcomp.sh for testing CROCO 2.0.
tomorrow I will send you, how it’s gone.

I can not upload the attachments since I am a new user.

Here is my jobcom.sh file.

#!/bin/bash
####################################################

COMPILATION JOB

####################################################

This script assumes default compilation options, to

change those options :

it can either be edited to add your own options

or take into account the following

environment variables for compilation choices :

CROCO_NETCDFLIB : netcdf library

CROCO_NETCDFINC : netcdf include

CROCO_PRISM_ROOT_DIR : OASIS-MCT directory

CROCO_XIOS_ROOT_DIR : XIOS directory

CROCO_CFT1 : compiler

CROCO_FFLAGS1 : compilation otpions

Note that environment variables overwrite hard-coded

options

set source, compilation and run directories

SOURCE=./
SCRDIR=./Compile
RUNDIR=pwd
ROOT_DIR=$SOURCE/…

determine operating system

OS=uname
echo “OPERATING SYSTEM IS: $OS”

compiler options

export CC=icc
export FC=ifort
export F90=ifort
export F77=ifort
export MPIF90=mpiifort

set MPI directories if needed

#MPIF90=‘/home/packages/compilers/intel/compiler/2022.0.2/linux/bin/mpif90’
MPILIB=‘-L/home/packages/compilers/intel/mpi/2021.5.1/lib -lmpi’
MPIINC=‘-I/home/packages/compilers/intel/mpi/2021.5.1/include’

#MPIF90=‘/home/packages/compilers/intel/compiler/2022.0.2/linux/bin/mpif90’
#MPILIB=‘-L/home/packages/compilers/intel/compiler/2022.0.2/linux/lib -lmpi’
#MPIINC=‘-I/home/packages/compilers/intel/compiler/2022.0.2/linux/include’

#MPIF90=‘/usr/local/packages/mpich/3.4.2/s3bq4iw/bin/mpif90’
#MPILIB=‘-L/usr/local/packages/mpich/3.4.2/s3bq4iw/lib -lmpi’
#MPIinc=‘-I/usr/local/packages/mpich/3.4.2/s3bq4iw/include’

#MPIF90=‘/usr/local/packages/mvapich2/2.3.7/intel-2021.5.0/bin/mpif90’
#MPILIB=‘-L/usr/local/packages/mvapich2/2.3.7/intel-2021.5.0/lib -lmpi’
#MPIinc=‘-I/usr/local/packages/mvapich2/2.3.7/intel-2021.5.0/include’

#MPIF90=‘/usr/local/packages/openmpi/4.1.3/intel-2021.5.0/bin/mpif90’
#MPILIB=‘-L/usr/local/packages/openmpi/4.1.3/intel-2021.5.0/lib -lmpi’
#MPIinc=‘-I/usr/local/packages/openmpi/4.1.3/intel-2021.5.0/include’

set NETCDF directories

#-----------------------------------------------------------

Use :

#-lnetcdf : version netcdf-3.6.3 –
#-lnetcdff -lnetcdf : version netcdf-4.1.2 –
#-lnetcdff : version netcdf-fortran-4.2-gfortran –
#-----------------------------------------------------------

#NETCDFLIB=“-L/usr/local/lib -lnetcdf”
#NETCDFINC=“-I/usr/local/include”
#NETCDFLIB=$(nf-config --flibs)
#NETCDFINC=-I$(nf-config --includedir)
#NETCDFLIB=“-L/usr/local/packages/netcdf-fortran/4.5.3/bchyu67/lib -lnetcdff -L/usr/local/packages/netcdf-c/4.8.1/uqu66fh/lib -lnetcdff”
#NETCDFINC=“-I/usr/local/packages/netcdf-fortran/4.5.3/bchyu67/include -I/usr/local/packages/netcdf-c/4.8.1/uqu66fh/include”

NETCDFLIB=$(nf-config --flibs)
NETCDFINC=-I$(nf-config --includedir)

#NETCDFLIB=“-L/usr/local/packages/netcdf-fortran/4.6.1/6jdhy7f/lib -lnetcdf -L/usr/local/packages/netcdf-c/4.9.2/uki3wlx/lib -lnetcdf”
#NETCDFINC=“-I/usr/local/packages/netcdf-fortran/4.6.1/6jdhy7f/include -I/usr/local/packages/netcdf-c/4.9.2/uki3wlx/include”

set OASIS-MCT (or OASIS3) directories if needed

PRISM_ROOT_DIR=…/…/…/oasis3-mct/compile_oa3-mct

set XIOS directory if needed

if coupling with OASIS3-MCT is activated :

=> you need to use XIOS compiled with the “–use_oasis oasis3_mct” flag

#-----------------------------------------------------------
XIOS_ROOT_DIR=$HOME/xios

END OF USER’S MODIFICATIONS

####################################################

Use GNU Make command, else make

MAKE=gmake
MAKE=make
which $MAKE > /dev/null 2>&1 || MAKE=make

clean scratch area

rm -rf $SCRDIR
mkdir $SCRDIR

AGRIF sources directory

AGRIF_SRC=${ROOT_DIR}/AGRIF

copy SOURCE code

ls ${SOURCE}/.F > /dev/null 2>&1 && \cp ${SOURCE}/.F $SCRDIR
ls ${SOURCE}/.F90 > /dev/null 2>&1 && \cp ${SOURCE}/.F90 $SCRDIR
ls ${SOURCE}/.h > /dev/null 2>&1 && \cp ${SOURCE}/.h $SCRDIR
ls ${SOURCE}/.py > /dev/null 2>&1 && \cp ${SOURCE}/.py $SCRDIR
ls ${SOURCE}/Make* > /dev/null 2>&1 && \cp ${SOURCE}/Make* $SCRDIR
ls ${SOURCE}/jobcomp > /dev/null 2>&1 && \cp ${SOURCE}/jobcomp $SCRDIR
ls ${SOURCE}/amr.in > /dev/null 2>&1 && \cp ${SOURCE}/amr.in $SCRDIR
ls ${AGRIF_SRC} > /dev/null 2>&1 && \cp -r ${AGRIF_SRC} $SCRDIR
ls ${ROOT_DIR}/XIOS/.F > /dev/null 2>&1 && \cp ${ROOT_DIR}/XIOS/.F $SCRDIR
ls ${ROOT_DIR}/PISCES/* > /dev/null 2>&1 && \cp -r ${ROOT_DIR}/PISCES/* $SCRDIR
ls ${ROOT_DIR}/PISCES/SED/* > /dev/null 2>&1 && \cp ${ROOT_DIR}/PISCES/SED/* $SCRDIR
ls ${ROOT_DIR}/PISCES/kRGB61* > /dev/null 2>&1 && \cp ${ROOT_DIR}/PISCES/kRGB61* $RUNDIR
ls ${ROOT_DIR}/MUSTANG/* > /dev/null 2>&1 && \cp -r ${ROOT_DIR}/MUSTANG/* $SCRDIR
ls ${ROOT_DIR}/OBSTRUCTION/* > /dev/null 2>&1 && \cp -r ${ROOT_DIR}/OBSTRUCTION/* $SCRDIR

if [[ -e “namelist_pisces_ref” ]] ; then
echo " file namelist_pisces exists in Run directory"
else
\cp -f ${ROOT_DIR}/PISCES/namelist_pisces* $RUNDIR
echo " file namelist_pisces copied from source directory"
fi

if [[ -d MUSTANG_NAMELIST ]]; then
echo " Mustang namelist directory MUSTANG_NAMELIST exists"
else
mkdir -p $RUNDIR/MUSTANG_NAMELIST
\cp -rf ${ROOT_DIR}/MUSTANG/MUSTANG_NAMELIST/txt $RUNDIR/MUSTANG_NAMELIST/.
echo " file para
txt copied from source directory"
fi

overwrite with local files

ls *.F90 > /dev/null 2>&1 && \cp -f *.F90 $SCRDIR
ls *.F > /dev/null 2>&1 && \cp -f *.F $SCRDIR
ls *.h > /dev/null 2>&1 && \cp -f *.h $SCRDIR
ls .h90 > /dev/null 2>&1 && \cp -f .h90 $SCRDIR
ls Make
> /dev/null 2>&1 && \cp -f Make
$SCRDIR
ls jobcomp > /dev/null 2>&1 && \cp -f jobcomp $SCRDIR

Change directory

cd $SCRDIR

generates LDFLAGS1 according to users notifications

LDFLAGS1=“${CROCO_NETCDFLIB-$NETCDFLIB}”
CPPFLAGS1=“${CROCO_NETCDFINC-$NETCDFINC} -ICROCOFILES/AGRIF_INC”

Set compilation options

if [[ $OS == Linux || $OS == Darwin ]] ; then # ===== LINUX =====
if [[ $FC == ifort || $FC == ifc ]] ; then
CPP1=“cpp -traditional -DLinux -DIfort”
CFT1=ifort
FFLAGS1=“-O0 -g -i4 -r8 -traceback”

FFLAGS1="-O0 -g -i4 -r8 -traceback -check bounds \

-check uninit -CA -CB -CS -ftrapuv -fpe1"

	LDFLAGS1="$LDFLAGS1"
elif [[ $FC == gfortran ]] ; then
	CPP1="cpp -traditional -DLinux"
	CFT1=gfortran
	FFLAGS1="-O2 -mcmodel=medium -fdefault-real-8 -fdefault-double-8 -std=legacy"

FFLAGS1="-O0 -g -fdefault-real-8 -fdefault-double-8 -std=legacy -fbacktrace \

-ffpe-trap=invalid,zero,overflow -fbounds-check -finit-real=nan -finit-integer=8888"

	LDFLAGS1="$LDFLAGS1"
elif [[ $FC == pgfortran || $FC == nvfortran ]] ; then
	CPP1="cpp  -traditional -DLinux -DXLF"
	CFT1=$FC
	FFLAGS1="-g -fast -r8 -i4 -mcmodel=medium -Mbackslash"
#FFLAGS1="-g -O0 -C -Kieee -r8 -i4 -traceback"
if [[ $HOSTNAME == "jean-zay"* ]]; then
	CPP1=$CPP1" -DJEANZAY"
fi
else
	echo "Unknown Fortran Compiler"
	exit
fi

elif [[ $OS == CYGWIN_NT-10.0 ]] ; then # ======== CYGWIN =======
CPP1=“cpp -traditional -DLinux”
CFT1=“gfortran”
FFLAGS1=“-O4 -fdefault-real-8 -fdefault-double-8 -march=native -mtune=native”
elif [[ $OS == AIX ]] ; then # ===== IBM =====
CPP1=“cpp”
CFT1=“xlf95 -I$HOME/include/”
MAKEAGRIF=“Makefile.ibm.64”
FFLAGS1=“-q64 -qwarn64 -qfixed -qrealsize=8 -qintsize=8 -qhot
-qalias=noaryovrlp -qthreaded -O3 -qarch=pwr4 -qtune=pwr4 -qunroll=yes”
else
echo “Unknown Operating System”
exit
fi

Netcdf for netcdf.mod in F90

FFLAGS1=“$FFLAGS1 $NETCDFINC”

determine if AGRIF compilation is required

unset COMPILEAGRIF
echo “Checking COMPILEAGRIF…”
if $($CPP1 testkeys.F | grep -i -q agrifisdefined) ; then
echo " => AGRIF activated"
COMPILEAGRIF=TRUE
FFLAGS1=“$FFLAGS1 -IAGRIF”
LDFLAGS1=“-LAGRIF -lagrif $LDFLAGS1”

we use the AGRIF Makedefs.generic definition

cp -f Makedefs.generic.AGRIF Makedefs.generic

fi

determine if MPI compilation is required

unset COMPILEMPI
echo “Checking COMPILEMPI…”
if $($CPP1 testkeys.F | grep -i -q mpiisdefined) ; then
echo " => MPI activated"
COMPILEMPI=TRUE
LDFLAGS1=“$LDFLAGS1 $MPILIB”
CPPFLAGS1=“$CPPFLAGS1 $MPIINC”
FFLAGS1=“$FFLAGS1 $MPIINC”
CFT1=“${MPIF90}”
fi

Take environment variables for compiler and options

FFLAGS1=${CROCO_FFLAGS1-$FFLAGS1}
CFT1=${CROCO_CFT1-$CFT1}

- Determine if XIOS librairies is required

- if it is the case :

=> if XIOS compiled with oasis, add the OASIS inc. files and librairies

=> pre-processing (using cpp) of the xml files required by XIOS

unset COMPILEXIOS
echo “Checking COMPILEXIOS…”
XIOS_ROOT_DIR=${CROCO_XIOS_ROOT_DIR-$XIOS_ROOT_DIR}
if $($CPP1 testkeys.F | grep -i -q xiosisdefined) ; then
echo " => XIOS activated"
COMPILEXIOS=TRUE
LDFLAGS1=“$LDFLAGS1 $XIOS_ROOT_DIR/lib/libxios.a -lstdc++ -lnetcdff -lnetcdf”
CPPFLAGS1=“$CPPFLAGS1 -I$XIOS_ROOT_DIR/inc”
FFLAGS1=“$FFLAGS1 -I$XIOS_ROOT_DIR/inc”

    ln -fs $XIOS_ROOT_DIR/bin/xios_server.exe $RUNDIR/.

fi

determine if OASIS librairies are required

unset COMPILEOASIS
echo “Checking COMPILEOASIS…”
PRISM_ROOT_DIR=${CROCO_PRISM_ROOT_DIR-$PRISM_ROOT_DIR}
if $($CPP1 testkeys.F | grep -i -q oacplisdefined) ; then
echo " => OASIS activated"
CHAN=MPI1
LIBPSMILE=“${PRISM_ROOT_DIR}/lib/libpsmile.${CHAN}.a
${PRISM_ROOT_DIR}/lib/libmct.a
${PRISM_ROOT_DIR}/lib/libmpeu.a
${PRISM_ROOT_DIR}/lib/libscrip.a”
PSMILE_INCDIR=“-I${PRISM_ROOT_DIR}/build/lib/psmile.${CHAN}
-I${PRISM_ROOT_DIR}/build/lib/mct”
COMPILEOASIS=TRUE
LDFLAGS1=“$LDFLAGS1 $LIBPSMILE $NETCDFLIB”
CPPFLAGS1=“$CPPFLAGS1 ${PSMILE_INCDIR} $NETCDFINC”
FFLAGS1=“$FFLAGS1 ${PSMILE_INCDIR} $NETCDFINC”
fi

prepare and compile the library

if [[ $COMPILEAGRIF ]] ; then

Find the default C compiler

CC1=$(echo -e 'dummy_target:\n\t@echo $(CC)' | $MAKE -f - dummy_target)
CFLAGS1=$(echo -e 'dummy_target:\n\t@echo $(CFLAGS)' | $MAKE -f - dummy_target)

Test if the C compiler is the GNU Compiler

if True add ‘-fcommon’ to CFLAGS

if command -v "$CC1" >/dev/null && "$CC1" -v 2>&1 | grep -q "gcc version"; then
echo "Using the GNU C compiler. Adding -fcommon to CFLAGS"
CFLAGS1="$CFLAGS1 -fcommon"
fi

compile the AGRIF librairy

if [[ $COMPILEMPI ]] ; then
	$MAKE -C AGRIF FC="$CFT1" CPP="$CPP1" CPPFLAGS="-DAGRIF_MPI $MPIINC" FFLAGS="$FFLAGS1" CFLAGS="$CFLAGS1"
else
	$MAKE -C AGRIF FC="$CFT1" CPP="$CPP1" FFLAGS="$FFLAGS1" CFLAGS="$CFLAGS1"
fi
if [[ $OS == Darwin ]] ; then          # DARWIN

run RANLIB on Darwin system

	ranlib AGRIF/libagrif.a
fi

mkdir CROCOFILES
mkdir -p CROCOFILES/AGRIF_MODELFILES
mkdir -p CROCOFILES/AGRIF_INC
$CPP1 amr.in | grep -v -e ! -e '#' -e % -e '*' > CROCOFILES/amr.scrum
mv AGRIF/conv CROCOFILES/.
for i in *.h *.h90 ; do
	echo $i
	cat cppdefs.h $i | cpp -P | grep -v -e ! -e '#' -e % -e '*' > CROCOFILES/$i
done
mv -f CROCOFILES/private_scratch_AMR.h CROCOFILES/private_scratch.h

fi

determine if OPENMP compilation is needed

unset COMPILEOMP
echo “Checking COMPILEOMP…”
if $($CPP1 testkeys.F | grep -i -q openmp) ; then
COMPILEOMP=TRUE
if [[ $OS == Linux || $OS == Darwin ]] ; then
if [[ $FC == gfortran ]] ; then
FFLAGS1=“$FFLAGS1 -fopenmp”
elif [[ $FC == ifort || $FC == ifc ]] ; then
INTEL_VERSION=$(ifort --version 2>&1 | grep -oP “(\d+)” | head -n1)
# Compare the version with 18
if [[ “$INTEL_VERSION” -gt 18 ]]; then
FFLAGS1=“$FFLAGS1 -qopenmp”
else
FFLAGS1=“$FFLAGS1 -openmp”
fi
else
FFLAGS1=“$FFLAGS1 -openmp”
fi
elif [[ $OS == CYGWIN_NT-10.0 ]] ; then
FFLAGS1==“$FFLAGS1 -fopenmp”
elif [[ $OS == AIX ]] ; then
FFLAGS1=“$FFLAGS1 -qsmp=omp”
CFT1=“xlf95_r”
fi
fi

determine if OPENACC compilation is needed

unset COMPILEOPENACC
echo “Checking COMPILEOPENACC…”
if $($CPP1 testkeys.F | grep -i -q openaccisdefined) ; then
COMPILEOPENACC=TRUE
if [[ $FC == pgfortran || $FC == nvfortran ]] ; then
FFLAGS1=“$FFLAGS1 -acc -Minfo=accel”
fi
fi

rewrite Makedefs according to previous flags

with openmp flags if needed

rm -f Makedefs
echo ‘s?$(FFLAGS1)?’$FFLAGS1’?g’ > flags.tmp
echo ‘s?$(LDFLAGS1)?’$LDFLAGS1’?g’ >> flags.tmp
echo ‘s?$(CPP1)?’$CPP1’?g’ >> flags.tmp
echo ‘s?$(CFT1)?’$CFT1’?g’ >> flags.tmp
echo ‘s?$(CPPFLAGS1)?’$CPPFLAGS1’?g’ >> flags.tmp
sed -f flags.tmp Makedefs.generic > Makedefs
rm -f flags.tmp

compile croco

$MAKE depend || exit 1
$MAKE || exit 2

[[ -f croco ]] && mv croco $RUNDIR
[[ -f partit ]] && mv partit $RUNDIR
[[ -f ncjoin ]] && mv ncjoin $RUNDIR

cppdef.h

!======================================================================
! CROCO is a branch of ROMS developped at IRD, INRIA,
! Ifremer, CNRS and Univ. Toulouse III 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 /
#undef KILPATRICK /
2D sst front*/
#undef SEAGRASS /* 2DV over seagrass using OBSTRUCTION module*/
/*
… OR REALISTIC CONFIGURATIONS
/
#undef COASTAL /
COASTAL Applications /
#define REGIONAL /
REGIONAL Applications */

#if defined REGIONAL
/*
!====================================================================
! REGIONAL (realistic) Configurations
!====================================================================
!
!----------------------
! BASIC OPTIONS
!----------------------
!
/
/
Configuration Name */

define BENGUELA_LR

                  /* 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

undef WAVE_SMFLUX

endif

                  /* Wave-current interactions */

undef MRL_WCI

                  /* Open Boundary Conditions */

define TIDES

define OBC_EAST

undef OBC_WEST

undef OBC_NORTH

define OBC_SOUTH

                  /* Applications */

define 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 */

define LOGFILE

/*
!-------------------------------------------------
! PRE-SELECTED OPTIONS
!
! ADVANCED OPTIONS ARE IN CPPDEFS_DEV.H
!-------------------------------------------------
/
/
Parallelization */

ifdef MPI

define 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
*/

undef ABL1D

ifdef ABL1D

define BULK_FLUX

undef ANA_ABL_LSDATA

undef ANA_ABL_VGRID

define STRESS_AT_RHO_POINTS

define ABL_NUDGING

define ABL_NUDGING_DYN

define ABL_NUDGING_TRA

undef ABL_DYN_RESTORE_EQ

undef SFLUX_CFB

else

define BULK_FLUX

endif

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

undef ONLINE

ifdef ONLINE

undef AROME

undef 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

undef 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) */

undef UV_HADV_UP3

undef UV_HADV_UP5

define UV_HADV_WENO5

undef UV_HADV_TVD

                  /* 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

undef UV_VADV_TVD

                  /* Lateral Tracer Advection (default UP3) */

undef TS_HADV_UP3

undef TS_HADV_RSUP3

define TS_HADV_UP5

undef TS_HADV_WENO5

                  /* Lateral Explicit Tracer Mixing */

define TS_DIF2

undef TS_DIF4

define TS_MIX_S

                  /* Vertical Tracer Advection  */

undef TS_VADV_SPLINES

undef TS_VADV_AKIMA

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 */

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 */

define PSOURCE

define PSOURCE_NCFILE

ifdef PSOURCE_NCFILE

define PSOURCE_NCFILE_TS

endif

                  /* Open Boundary Conditions */

ifdef TIDES

define SSH_TIDES

define UV_TIDES

define POT_TIDES

undef TIDES_MAS

define 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

undef 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

define 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_pisces_light

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 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

too many things are just un-commented.
Screenshot 2024-07-11 9.33.58 PM
still CROCO is not working ?

If I make the changes that I referred to it compiles just fine with mpiifort.