13. Adding Rivers#

If you want to include rivers in your simulation domain, there are several variables to define as:

  • the number of rivers: Nsrc

  • the position of the rivers on the model grid: Isrc and Jsrc

  • the zonal or meridional axis of the river flow: Dsrc

  • if flow (and concentration) is constant, the flow rate of the river (in m3/s): Qbar (positive or negative)

  • if flow (and concentration) is variable, and read from a netCDF file, the direction of the flow qbardir:

    • 1 for west-east / south-north

    • -1 for east-west / north-south

  • the type of tracer advected by the river: Lsrc

  • the value/concentration: Tsrc

13.1. Constant flow and concentration#

For this you need to define the cpp-keys in cppdefs.h

#define PSOURCE

And re-compile.

Then in the croco.in file

psource:   Nsrc  Isrc  Jsrc  Dsrc  Qbar [m3/s]    Lsrc        Tsrc
         2
                 3    54     1    200.       T T      20. 15.
                 3    40     0    200.       T T      20. 15.

where Nsrc=2 is the number of rivers processed, then each line describes a river. Let’s describe the parameter for river #1:

  • Isrc=3, Jsrc=54 are the i, j indices where the river is positioned

  • Dsrc=1 indicates the orientation (here meridional => along V direction)

  • 200 is the runoff flow value in m3/s, oriented to the east

  • T T are true/false indications for reading or not the following variables (here temperature and salinity)

  • 20 and 15 are respectively the temperature and salinity of the river. You can edit these parameters.

Warning

The sources points must be placed on U or V points on the C-grid and not on rho-points

You can then run the model:

qsub job_croco_mpi.pbs

13.2. Variable flow read in a netCDF file and constant concentration#

Instead of using a constant flow, you can use variable flow. For that you need read it from a netcdf file. First define the dedicated cpp-key in cppdefs.h

#define PSOURCE_NCFILE

And re-compile the model.

Then you also need to prepare the netcdf river runoff input file.

For that, you can choose one of the option :

Warning

The order of the sources in the croco.in file must match the order of the netcdf file. It’s impliticly the case if you generate your runoff file with the croco_tools or croco_pytools which give you the lines to add into your croco.in

13.3. Variable flow and variable concentration from a netCDF file#

To run CROCO with a variable concentration of river tracers, you need to define the following cpp-key in cppdefs.h

#define PSOURCE_NCFILE_TS

You also need to prepare your netcdf input file following the tools documentation (Matlab or Python) and adapt your croco.in file :

psource_ncfile:   Nsrc  Isrc  Jsrc  Dsrc qbardir  Lsrc  Tsrc   runoff file name
                         CROCO_FILES/croco_runoff.nc
               2
                      25  34  0  -1   30*T   16.0387 25.0368
                      30  19  0  -1   30*T   16.1390 25.1136

You also can edit these parameters.

Warning

The Tsrc value reported in croco.in are the annual-mean tracer values, they are just for information. The real tracer concentration (Tsrc) are read in the runoff netCDF file created.

13.4. Using a nest#

The above procedure can be applied to a nested grid to generate

croco_runoff.nc.1

Note

The runoff has a default vertical profile defined in CROCO as an exponential vertical distribution of velocity. It is in analytical.F, subroutine ana_psource if you need to change it.