Skip to content

CROCO

PISCES Activation

1. CPP Key Settings

In the CROCO regional model, PISCES and its different versions must be compiled by activating the dedicated CPP keys in the cppdefs.h file.

First of all, you need to activate the use of the BIOLOGY component # define BIOLOGY in the “Applications” section, which refers to the marine biogeochemistry models distributed with the CROCO code.

                      /* Applications */
# define  BIOLOGY
# undef  FLOATS
# undef  STATIONS

You must then specify that you want to use the PISCES model by activating the PISCES key in the Choice of Biology model section. The model already activated must be deactivated (# undef BIO_BioEBUS) so as not to use the 2 marine biogeochemistry models at the same time, which would cause the run to fail.

                      /*   Choice of Biology models   */
# ifdef BIOLOGY
#  define  PISCES
#  undef  BIO_NChlPZD
#  undef  BIO_N2ChlPZD2
#  undef BIO_BioEBUS

In the Biology option section, select the version of PISCES you want to use. The default version activated is PISCES-Operational with prognostic ligands.

                      /*   Biology options    */
#  ifdef PISCES
#   undef  DIURNAL_INPUT_SRFLX
#   define key_pisces
#   define key_ligand
#   undef key_pisces_quota
#   undef key_pisces_npzd
#   undef key_sediment
#  endif

To use PISCES-Research, enable the key_pisces_quota CPP key.

                      /*   Biology options    */
#  ifdef PISCES
#   undef  DIURNAL_INPUT_SRFLX
#   define key_pisces
#   define key_ligand
#   define key_pisces_quota
#   undef key_pisces_npzd
#   undef key_sediment
#  endif

To use PISCES-Simple, enable the key_pisces_npzd CPP key and disable the key_ligand CPP key as this version does not take prognostic ligand representation into account.

                      /*   Biology options    */
#  ifdef PISCES
#   undef  DIURNAL_INPUT_SRFLX
#   define key_pisces
#   undef key_ligand
#   undef key_pisces_quota
#   define key_pisces_npzd
#   undef key_sediment
#  endif

Finally, if you want to use the PISCES Sediment module, activate the key_sediment CPP key with PISCES-Operational.

                      /*   Biology options    */
#  ifdef PISCES
#   undef  DIURNAL_INPUT_SRFLX
#   define key_pisces
#   define key_ligand
#   undef key_pisces_quota
#   undef key_pisces_npzd
#   define key_sediment
#  endif

Once you have selected your PISCES version as well as other CPP key options and parameter options relative to your grid in param.h, compile the CROCO and PISCES codes (see the CROCO Compiling section).

Set up your CROCO-PISCES regional configuration

CROCO is a regional model, so you will need to build your domain, the intial and boundary conditions, etc... for the ocean and the biogeochemistry using the tools developed for this purpose. Follow the CROCO user guide.

2. PISCES Namelist Settings

Depending on the version of PISCES selected, you will need to list the associated prognostic tracers in the PISCES namelist in your configuration directory. This is done in the nampistrc namelist block of the namelist_pisces_cfg file. Below you will find examples for the three versions of PISCES, with prognostic ligands enabled for PISCES-Operational and PISCES-Research.

nampistrc PISCES-Operational + prognostic ligands
!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
&nampistrc     !   tracers definition
!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
!
!              !    name   !           title of the field              !   units
!              !           !                                           !
!              !           !                                           !
   tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mmol/m3'
   tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'meq/m3 '
   tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mmol/m3'
   tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mmol/m3'
   tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mmol/m3'
   tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mmol/m3'
   tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mmol/m3'
   tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mmol/m3'
   tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mmol/m3'
   tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mmol/m3'
   tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mmol/m3'
   tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mmol/m3'
   tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mmol/m3'
   tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mmol/m3'
   tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mmol/m3'
   tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mmol/m3'
   tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mmol/m3'
   tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mmol/m3'
   tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mmol/m3'
   tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mmol/m3'
   tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mg/m3'
   tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mg/m3'
   tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mmol/m3'
   tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mmol/m3'
   tracer(25)  = 'LGW     ' , 'Ligands Concentration                  ',  'mmol/m3'
nampistrc PISCES-Research + prognostic ligands
!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
&nampistrc     !   tracers definition
!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
!
!              !    name   !           title of the field              !   units
!              !           !                                           !
!              !           !                                           !
   tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mmol/m3'
   tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'meq/m3 '
   tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mmol/m3'
   tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mmol/m3'
   tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mmol/m3'
   tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mmol/m3'
   tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mmol/m3'
   tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mmol/m3'
   tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mmol/m3'
   tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mmol/m3'
   tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mmol/m3'
   tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mmol/m3'
   tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mmol/m3'
   tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mmol/m3'
   tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mmol/m3'
   tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mmol/m3'
   tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mmol/m3'
   tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mmol/m3'
   tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mmol/m3'
   tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mmol/m3'
   tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mg/m3'
   tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mg/m3'
   tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mmol/m3'
   tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mmol/m3'
   tracer(25)  = 'LGW     ' , 'Ligands Concentration                  ',  'mmol/m3'
   tracer(26)  = 'DON     ' , 'Dissolved organic N Concentration      ',  'mmol/m3'
   tracer(27)  = 'DOP     ' , 'Dissolved organic P Concentration      ',  'mmol/m3'
   tracer(28)  = 'PON     ' , 'Small PON Concentration                ',  'mmol/m3'
   tracer(29)  = 'POP     ' , 'Small POP Concentration                ',  'mmol/m3'
   tracer(30)  = 'PHYN    ' , 'Nanophytoplankton N biomass            ',  'mmol/m3'
   tracer(31)  = 'PHYP    ' , 'Nanophytoplankton P biomass            ',  'mmol/m3'
   tracer(32)  = 'DIAN    ' , 'Diatoms N biomass                      ',  'mmol/m3'
   tracer(33)  = 'DIAP    ' , 'Diatoms P biomass                      ',  'mmol/m3'
   tracer(34)  = 'PIC     ' , 'Picophytoplankton C biomass            ',  'mmol/m3'
   tracer(35)  = 'PICN    ' , 'Picophytoplankton N biomass            ',  'mmol/m3'
   tracer(36)  = 'PICP    ' , 'Picophytoplankton P biomass            ',  'mmol/m3'
   tracer(37)  = 'PFe     ' , 'Picophytoplankton Fe biomass           ',  'mmol/m3'
   tracer(38)  = 'PCHL    ' , 'Picophytoplankton Chl biomass          ',  'mg/m3'
   tracer(39)  = 'GON     ' , 'Big PON Concentration                  ',  'mmol/m3'
   tracer(40)  = 'GOP     ' , 'Big POP Concentration                  ',  'mmol/m3'
nampistrc PISCES-Simple
!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
&nampistrc     !   tracers definition
!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
!
!              !    name   !           title of the field              !   units
!              !           !                                           !
!
   tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mmol/m3'
   tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'meq/m3 '
   tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mmol/m3'
   tracer(4)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mmol/m3'
   tracer(5)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mmol/m3'
   tracer(6)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mmol/m3'
   tracer(7)   = 'DOC     ' , 'Dissolved organic Concentration        ',  'mmol/m3'
   tracer(8)   = 'NO3     ' , 'Nitrates Concentration                 ',  'mmol/m3'
   tracer(9)   = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mmol/m3'

Activation of External Supplies

By default, the namelist_pisces_cfg is distributed in CROCO with the external nutrient input Boolean parameters set to .false.. You must activate these parameters, in particular the sedimentary source of Fe and the atmospheric dust deposition of Fe, Si and PO\(_4\), in order to obtain a simulation that takes these important inputs into account.

Outputs

In CROCO, there are two ways of managing PISCES model output files, with or without the XIOS server. When you want to use PISCES, we encourage you to use XIOS, as it offers a greater flexibility in managing the many prognostic and diagnostic variables of the PISCES model. Furthermore, several diagnostics are only available with XIOS.

Sediment module output management

Output files from the PISCES sediment module can only be managed with XIOS in CROCO for the time being.

1. With XIOS

To manage ouputs with XIOS, once installed on your computing environment (see the XIOS documentation), you need to activate the XIOS CPP key in the cppdefs.hfile.

                      /* I/O server */
# define  XIOS
Then edit the compilation script jobcomp to add the path to your XIOS library

# set XIOS directory if needed
#
#-----------------------------------------------------------
XIOS_ROOT_DIR=$HOME/xios-2.5

Once the CROCO-PISCES code has been compiled (./jobcomp), you can create the file_def_croco.xml file with the prognostic and diagnostic tracers corresponding to your version of PISCES in your run directory as well as the other XML files required for XIOS.

./process_xios_xml.sh

You will then be able to modify this file to configure the variables and the different output frequencies of these variables according to your needs. Here is an example of prognostic variables at different output frequencies. More information here.

  <file_group id="PISCES" output_freq="1mo"  output_level="10" enabled=".true.">
        <file id="file30" name_suffix="_pisces" >
            <field_group group_ref="ave_grid" />
               <field_group id="pisces_fields" operation="average">
                   <field field_ref="DIC"       name="DIC"      />
                   <field field_ref="Alkalini"  name="Alkalini" />
                   <field field_ref="O2"        name="O2"       />
                   <field field_ref="POC"       name="POC"      />
                   <field field_ref="DOC"       name="DOC"      />
                   <field field_ref="PHY"       name="PHY"      />
                   <field field_ref="ZOO"       name="ZOO"      />
                   <field field_ref="NO3"       name="NO3"      />
                   <field field_ref="Fer"       name="Fer"      />
                   <field field_ref="NH4"       name="NH4"      />
                   <field field_ref="PO4"       name="PO4"      />
                   <field field_ref="Si"        name="Si"       />
                   <field field_ref="GOC"       name="GOC"      />
                   <field field_ref="NCHL"      name="TCHL" > NCHL+DCHL </field>
               </field_group>
        </file>
  </file_group>

  <file_group id="PISCES" output_freq="5d"  output_level="10" enabled=".true.">
        <file id="file32" name_suffix="_pisces" >
            <field_group group_ref="ave_grid" />
               <field_group id="pisces_fields" operation="average">
                   <field field_ref="DIC"       name="DIC"      />
                   <field field_ref="Alkalini"  name="Alkalini" />
                   <field field_ref="NO3"       name="NO3"      />
                   <field field_ref="Fer"       name="Fer"      />
                   <field field_ref="PO4"       name="PO4"      />
                   <field field_ref="Si"        name="Si"       />
                   <field field_ref="NCHL"      name="TCHL" > NCHL+DCHL </field>
               </field_group>
        </file>
  </file_group>

2. Without XIOS

If you are not using the XIOS server, you do not need to do anything special. All PISCES outputs are already enabled in the croco.in file.

Warning

In this case, not all diagnostics offered by the PISCES model are available. You cannot generate output files from the sediment module either.

primary_history_fields: zeta UBAR VBAR  U  V   wrtT(1:NT)
                          T    T   T   T  T    50*T
auxiliary_history_fields:   rho Omega  W  Akv  Akt  Aks  Bvf  Visc3d Diff3d  HBL HBBL Bostr Bustr Bvstr Wstr Ustr Vstr Shfl Swfl rsw rlw lat sen HEL
                             F   F     T   F    T    F   F    F       F       T   T    T     F      F     T    T    T    T    T   30*T
...

primary_averages: zeta UBAR VBAR  U  V   wrtT(1:NT)
                   T    T    T    T  T   50*T
auxiliary_averages: rho Omega  W  Akv  Akt  Aks  Bvf Visc3d Diff3d HBL HBBL Bostr Bustr Bvstr Wstr Ustr Vstr Shfl Swfl rsw rlw lat sen HEL
                     F   T     T   F    T    F    F    F     F      T   T    T     F     F     T   T    T     T    T   30*T
...

diagnostics_bio:   ldefdiabio   nwrtdiabio    nrpfdiabio /filename
                        T          72             0
    CROCO_FILES/croco_diabio.nc

diagbio_avg: ldefdiabio_avg  ntsdiabio_avg  nwrtdiabio_avg  nprfdiabio_avg /filename
                  T              1              72              0
    CROCO_FILES/croco_diabio_avg.nc

Initialization and Restart

As in NEMO, initialization of PISCES prognostic tracers can be performed according to three different means:

  • Constant fields: This is the default option when the run does not start from a restart file or initialisation data. Prognostic tracers are initialized from constant values over the whole domain. This initialisation is performed in the trcini_pisces.F90 routine.
  • 3D fields: Tracers are initialized from 3D distributions which are read from an input file croco_ini.nc. This file is created using the CROCO preprocessing tools according to your grid domain.
  • Restart: Tracers are initialized from a restart file created by a previous simulation. The restart file is read as soon as it exists in the CROCO_FILES directory with the file name specified in cn_pisrst_in.
    !-----------------------------------------------------------------------
    &nampisrst     !   parameters for restarting 
    !-----------------------------------------------------------------------
       cn_pisrst_in  = "croco_rst_pisces_ini.nc"   !  name of the input restart file name of pisces
       cn_pisrst_indir = "CROCO_FILES"           !  directory from which to read input pisces restarts
       cn_pisrst_out = "croco_rst_pisces.nc"   !  suffix of pass. restart name (output)
       cn_pisrst_outdir = "CROCO_FILES"          !  directory to which to write output pisces restarts
    
    In that third case, neither of the two other initialization methods can be used.

Boundary Conditions

To create your domain and associated conditions, please refer to the documentation for CROCO's preprocessing tools.

When using CROCO's Matlab preprocessing tools to create your initial, climatological, boundary conditions, and atmospheric deposition file, you must specify in the crocotools_param.h file that you want to create them for PISCES.

makebry    = 1;   % lateral boundary data
makepisces = 1;   % initial and boundary data for PISCES model
makequota  = 0;   % initial and boundary data for quota version of PISCES model

make_quota should be set to 1 if you want to create these files for PISCES-Research.

To create the biogeochemical conditions at the boundaries of your domain, when you create your grid, input files, dynamic boundary conditions, climatology, etc. using CROCO's Matlab preprocessing tools, simply run, at the end of the creation file process, the make_biol command in Matlab to add the PISCES biogeochemical variables to all of the files.

Once the atmospheric deposition file croco_frcbio.nc has been created, you can enable/disable the Fe, Si, PO\(_4\) dust supply, the nitrogen deposition, and the sedimentary Fe input using the following booleans in the PISCES namelist.

!-----------------------------------------------------------------------
&nampisbc     !   parameters for inputs deposition
!-----------------------------------------------------------------------
   ln_dust     =  .true.   ! boolean for dust input from the atmosphere
   ln_ndepo    =  .true.   ! boolean for atmospheric deposition of N
   ln_ironsed  =  .true.   ! boolean for Fe input from sediments
   sedfeinput  =  1.E-9    ! Coastal release of Iron
   mfrac       =  0.035    ! Fe mineral fraction of dust
   wdust       =  2.0      ! Dust sinking speed
!                          ! ln_ligand
   lgw_rath    =  0.2      ! Weak ligand ratio from sed hydro sources