Historique des versions

The complete list of all the modifications introduced into MARS from V8.18 version is available under the text/plain list_modif_V8.18_V9.06.txt

The list below synthetizes the evolution of the MARS3d code

V11.00 (revision 99) (2017/25/04)
(=revision 2325 in development trunk)

Here is the REFERENCE VERSION of the MARS code.

  * spatial extension of surf is enlarged (liminm2:limaxp2,ljminm2:ljmaxp2)
  * new tool for interpolation sigma to Z (INTERPSIG2Z)
  * Read exctinction coefficient from daily climatological file (-Dkey_daily_climato_kpar)
  * Introduction of  Adaptative Courant-number-dependent implicit scheme for vertical advection (Shchepetkin 2015 )
    using CPP key :  -Dkey_adapt_imp_vert_adv
    To find out where the limitation is active : -Dkey_adapt_imp_vert_adv_suivi
  * budget corrected for open borders fluxes
  * Add key_zerograd to use the possibility of zero gradient condition for substances open boundaries.
  * Separation between horizontal/vertical transport/mixing and settling/deposit/erosion
    - Processing horizontal and vertical transport of particulate substances in the same way as dissolved variables
    - Processing settling and water/sediment fluxes with one or several fractionnal step,
      but without horizontal transport and with constant water level.
   * Add complementary module Oyster : 3 possiblities :
      - key oyster_benthos (replace key_huitres) : oyster act in benthic filtration but are not state variables
      - key_oyster_DEB : oyster growth simulated by DEB model
      - key_oyster_SFG : oyster growth simulated by SFG model ("Scope for growth")
      ==> l_subs2D (in comsubstance) replace l_sand2D (in sedimento)
      ==> elimination of a lot routines : parsubs_adv_*.h, parsubobc3dapply.F90
           parsubadvdifmacho3d, parsubadv[x/y/z]macho and parsubsadvdif[x/y]*
      ==> two new routines : parsubeq.F90 and parsubeq_sig.F90
  * add possibility to use a dzsmax variable in space (if l_dzsmaxuni=.False. in parasedim.txt)
  * update erosion formulations
    add in namelists : E0_sand_option ,ero_option,xexp_ero
    E0_sand_option  = 0 if E0_sand= E0_sand read in this namelist
                    = 1 if E0_sand evaluated with Van Rijn (1984) formulation
                    = 2 if E0_sand evaluated with erodimetry formulation
    ero_option= 0 : pure mud behavior (for all particles and whatever the mixture)
              = 1 : linear interpolation between sand and mud behavior
              = 2 : formulation derived from that of J. Vareilles (2013)
              = 3 : formulations proposed by B. Mengual (2015)
  * choice of using readjustement of hsed at the beginning of the simulation (l_init_hsed=TRUE by default)
  * add new option : l_outsed_saltemp = false if no  temp and sal output in sediment
  * small corrections in initialization ustarbot and ws3
  * update module consolidation and dissolved substances behavior
     - Change vocabulary : dtconsol => dt_sed ; dtcalconsol=> dtcal_sed etc.. phieau_sed2w => phieau_s2w
     - add a new boolean : l_dyn_insed (dynamic in sediment)
     - add a new CPP key : key_nodiss_insed (dissolved substances, temperature and salinity not computing in sediment)
     - taking into account phieau_s2w before dynamics (in step.F90 ) instead of after (in initflux)
  * update sand/mud erosion formulation from B. Mengual propositions (2016) used only if ero_option=3
  * Upgrade COUPLING directory
   * add tool to reorder trajectories
   * fix a bug
   1 AGRIF
     * set_bc : from /0,1/ to /0,0/ to interpolate the mother field on the cell (only) around the zoom
                for ssh_interp_id,traceur_id,turb_id,kz_id,nz_id,cv_wat_id
     * Reorganization and tuning Agrif_User.F90 and agrifupdate.F90
       - Change updatez and updatewz procnames
       - Recalculate wz only on the zoom area in the parent
     * Restart functionnality
       For 2 ways nesting, save and read water fluxes.
       Allow to reestimate the horizontal and vertical velocities and then to match the normal process with AGRIF and get a perfect restart.
     * separation of procnames surf_id and fwet_id
     * introduction of ssh_interp_init_id, traceur_init_id and cv_wat_init_id procnames to use a larger MaskMaxSearch
       value (15 but 5 by default) for the initialialization of ssh and traceurs over the child grids.
   2. MPI (travaux M. Honnorat)
      Review of toolmpi.F90 : Improved exchange velocities
       - elimination of the passage in contiguous elements since an array contains by definition contiguous elements
         This change is more efficient on short messages (50% faster) than on long messages (2%) (tested on test program)
      - tables declared and no longer allocated dynamically
      - use of MPI_IN_PLACE when the message exchanged is replaced by the final message
      - ASSERT test (x <= 0 and y> = 0) keyed key_debug_mpi
        (verification of exchanges for negative indices on the left and bottom and positive on the right and on the top)
    3. OASIS :
      - update to be compatible (and more generic for the future) with python tools used to prepare the rstrt.nc files and oasis_grid.
lon --> longitude..
      - new  paraoasis.txt
    4. adaption environnement for new calculator datarmor

V9.06 (revision 85) (2012/19/10)
(=revision 1490 in development trunk)



  1. General :
    • Improvement of the portability of the ionc library
    • Reading of compacted variables (variables in short type)
    • NetCDF format : agrees with Climate/Forecast-1.6, OCO-1.3.1, COMODO-1.0
  2. Physics :
    • Correction bug of the restart functionality when using 2 equations to estimate the turbulence (turb_nbeq=2)
  3. Ecosystem :
    • sedimentology :
      • introduction of the generalized sigma
      • modification of the turbulence (WARNING : modification of the results)
      • Introduction of the key_parsub_wquickupwind and key_parsub_wcompact
    • wave : Review of the reading of wave variables
    • contaminant : correction if the volatilization

When using tracers with settling velocity you must chose a scheme for the vertical advection :
# -Dkey_parsub_wquickupwind ! QUICK scheme along the vertical (tracer advection)
# -Dkey_parsub_wcompact ! Upwind Compact and Conservative scheme along the vertical (tracer advection)
# defaut (no choice) ! centered scheme


- Update of BATHY/V8toV9 tool according to the evolution of ionc4


V9.05 (revision 74) (2012/04/04)
(=revision 1452 in development trunk)

Due to important bugs corrected from V8.19 (especially those related to the tides and the wetting-drying), this version is highly recommended for all the users. Besides corrections 1-11 (see mars3d-bug forum), the ameliorations of the code are technical, this means you do not have to tune your parameterization of the code again.


1. General :

  • Bugs 1-11 in mars3d are corrected
  • The spatial extention of such variables has been extended (in particular ssh(liminm2:limaxp2,ljminm2:ljmaxp2) but also h0,htx,hty,pa,dx,dy,kz...)
  • ~Generic~ search of the name of the dimensions in netcdf files in order to get the dimensions along X and Y of a file. Actually, the tested names are lon,longitude,LON,LONGITUDE and lat,latitude,LAT,LATITUDE (JF Le Roux).
  • On land, velocities are set to valmanq (fill_value), instead of 0 previously. Pay attention in your post-processing !
  • files updated to the COMODO convention, based on NetCDF Climate and Forecast (CF) Metadata Convention (1.4). The modifications concern:
    • Introduction of dimensions ni_u,nj_u,...,nk (instead of level) and nk_w to specify the location of the variables according to the Arakawa C grid
    • the location of each variable is specified in the standard name for u,v,f,w locations
    • The standard names follow the CF conventions
  • Introduction of name_in_longitude_u, name_in_longitude_v, name_in_longitude_f variables in paramain.txt to specify the name of the logitude/latitude fields read from the bathymetry file
  • bathy.F90 : the manual addition of the wall at the eastern boundary for rank 0 is removed
  • The Initial Condition issued from extract (or from a restart file) are checked. The run is stopped if values of the initial fields are abnormal in the wetting domain
  • Verifications and reading of the correct record done by the MASTER only
  • See important news below

2. Physics :

  • OBC of tracers (T, S, substances) : introduction of the coefficient obc_coefrel to allow a pure prescription of OGCM values or a relaxation with a time scale of 1/obc_coefrel
    • obc_coefrel=0, pure prescription of T,S,substances (obc_sw...)
    • obc_coefrel/=0, relaxation towards OGCM values according to the coef dt*obc_coefrel (sal(k,i,j)*(1.0_rsh-dtrelax)+obc_sw(k,1,j)*dtrelax)
  • river discharge
    • read both .dat and .csv format. Keep the correct extension of data files !
    • if river_thickness=-1., the amount of river discharge is distributed throughout the water column
  • Huge review of the bottom stress in the 3d equations of the dynamics (S. Petton, F. Dumas, P. Lazure, V. Garnier)
    • Implicitation of the bottom stress (consistence between 2d and 3d)
    • removing of min , max in the formulation of the bottom stress, but adding of a safety catch : the bottom stress is estimated at a distance from the bottom further than z0
    • the degree of implicitation is tuned by the coefficients cfroe and cfroi in parameters.F90
  • Turbulence
    • Introduction of the mixing length due to surface waves (see z0surf in paraspec.txt)
    • duplication of nz and kz at kmax (= nz/kz(kmax-1)). We increase the mixing at the surface.
  • introduction of a new solution for tides : the OSU TOPEX/Poseidon Global Inverse Solution TPX0 (P. Douillet). Use preprocessing tool under $HOMEMARS/../TOOLS/PREPROCESSING/TPX07

3. Ecosystem :

  • sedimentology : corrections
  • Eco3m : correction of Makefile.caparmor

4. Trajectory and IBM :

  • Upgrade and parallelization in MPI (OMP not implemented) (M. Huret, T. Odaka)



  • update functionality
  • runmpi_connect
  • Tools to save the old bathymetry files (not issued from BMGTools) in the correct format : $HOMEMARS/../TOOLS/BATHY/V8toV9 (S. Petton)
  • Preprocessing to prepare TPX07 date files : $HOMEMARS/../TOOLS/PREPROCESSING/TPX07 (P. Douillet)
  • for MPI : decoupe tool gives more secure domain division (mpi.txt file). To be used with a bathymetry in the V9 format.
  • to compress the output file by variable in NetCDF4 (and decrease the size of the file by a factor up to 3), use the following command :
ncks -L 1 filein.nc fileout.nc

Follow instructions in mars_envir_manual.pdf (pp 48-55) on the website or under $HOMEMARS/../DOC. You need to select properly the netcdf library, the modules on Caparmor and the compilor.

  • DIRNC = /home1/caparmor/rramel/netcdf4.1.2 ---> sequential I/O with intel compiler
  • DIRNC = /home1/caparmor/rramel/netcdf4.1.2_par ---> parallel I/O with intel compiler
  • DIRNC = /home1/caparmor/rramel/netcdf4.1.2_mpt ---> parallel I/O with intel compiler and MPT

This third solution is much faster if you write your output files onto caparmor (/work partition)
The runmp[i/t]_connect has been upgraded. See the same pages.

To run with MPI and OMP, the runmp[i/t]omp_connect script has been created. The use of MPI + OMP is recommended because the run are faster. Nevertheless pay attention to favor the division of the domain along X axis, because OMP parallelizes the calculation along j loops (along Y).

The performances of the code are domain dependent. The following script can help you to test different parallelizations and analyse the results to keep the fastest one. A first script (lance_testnc4) launches a configuration in sequential, OMP, MPI (with different domain decompositions) automatically and the timerun.py estimates the time run. The Readme explains how to proceed.

The use has been simplified (see mars_envir_manual.pdf pp 41). The command "gmake update "OLDREV=XXX" "NEWREV=YYY" ", installs the old revision, updates the code (and tell you if there is conflict that you have to resolved by yourself) and installs the new revision of the code. Consequently, to upgrade the routines of your configuration, you need to :

  • change the HOMEMARS
  • create a new configuration : mkconfdir..
  • copy your old routines and Makefile.caparmor : gmake copyconfig
  • upgrade your old routines (gmake update "OLDREV=XXX" "NEWREV=YYY")
  • solve the conflict if any
  • update the Makefile.caparmor
  • compile the code

The "update" command upgrades the user 's routines but not the files in $RDIR directory (para*txt files and files in ../inputs directory)
Sorry, the "update" command is available to get the V9 version of the code from V8.18 versions or older but not from V8.19.

If your bathymetry files are not issued from BMGTools, you need to estimate and save the longitude and latitude variables at locations t,u,v,f in a new bathymetric file. It is really simple, thanks to S. Petton, and takes 3 minutes.
The code and Readme are available under $HOMEMARS/../TOOLS/BATHY/V8toV9

For the rank0, use the bathymetry file /export/home11/mars/CONFIG/TOBY/DATA/hxhy_rang0_oco1.4.nc


On Caparmor, you can add the following aliases in your .cshrc

  • ncdump, ferret, ncview:alias modnc4 'module use /export/home13/previmer/op/bin/modules ; module load netcdf4 ; module load ferret ; module load nco-netcdf4'
  • python : alias modpython 'module purge ; module use /home11/caparmor/mars/PYTHON/modulefiles ; module load cdat-git'
  • matlab : you need to install the version 2011 of matlab

Off Caparmor, you must install netcdf4, and create the library for sequential and MPI configurations.
A notice is available under the website to help you (but we do not support your own install) : application/msword mars_NetCDF4_interface.doc

(=revision 1313 in development trunk)


1. General :

  • Bugs 1-9 in mars3d are corrected
  • introduction of a key key_gfortran to compile in gfortran
  • files follow the COMODO 0.1 norm, based on NetCDF Climate and Forecast (CF) Metadata Convention (1.4), MyOcean Information System and Service Desk specifications : Gridded Data Formats. MYO-MIS-TN-INT-GRIDS, 19/03/2010, v1.0/r0.3, CD-OCO Csv & Netcdf OCO user's manuel. COR-DO/DTI-MUT/07.159, 27/01/2011, Version 1.3, CR des reunions et ateliers du projet MARMO. v1.1, 02/09/2010. The modifications concern:
    • Dimensions are ni,nj
    • longitude and latitude are 2D variables and saved at location t,u,v,f
    • dx,dy are saved at location t,u,v,f
    • attributes content and coordinates
  • Generalization of the initialization of the grid to irregular or rotated grids.
    • Readding of the longitude and latitude at locations t,u,v,f (bathy.F90)
    • Calculations of dx,dy,dx_u,dy_u,dx_v,dy_v,dx_p,dy_p in gridmetrics.F90 fron the latitude and longitude values
    • IMPORTANT WARNING : the bathymetric files must be upgraded from MARS code if not issued from BMGTool (see below). It is really easy to do

2. Physics :

  • Estimate and saving of all the terms of the dynamics (3D) equations (P. Lazure)
  • introduction of the surge functionality in 3D
  • turbulence routines parallelized in OMP
  • Modifications of the test on icon to come back to the original meaning of icon : icon defines whether buoyancy effects are taken into account
    • 0 : no salinity, temperature and buoyancy computation
    • 1 : salinity, temperature and buoyancy are computed but the internal pressure gradient is not accounted for.
    • 2 : salinity, temperature and buoyancy are computed and the internal pressure gradient is accounted for.
    • WARNING This modification may change the results of your simulation if icon==1

(=revision 1224 in development trunk)

= V8.19 plus a new interface between netcdf and MARS.

  • The io_netcdf.f90 library has been udgraded in fortran 90 and is now replaced by the module ionc4.F90 in MARS. The call to the routines of opening/creation of netcdf files, of reading and writing, is now more generic. The following file application/vnd.ms-excel ionc2ionc4.xls summarizes the agreement the libraries io_netcdf.f90 and ionc4.F90.
  • You can read and save your data in netcdf4 (HDF5) format (l_out_nc4par=.true.): the size of the data files is reduced and you save your data in a unique file during the run. No more connection of files after the run !
  • To save disk place, the data can be packed (l_out_pack=.true.)
  • A library can be created from this module, follow instructions in the Readme under $HOMEMARS/../LIB/libionc4.

A documentation about netcdf4 and the ionc4 interface is available here : application/msword mars_NetCDF4_interface.doc


V8.19 (revision 71) (2011/04/18) 
(= revision 1222 in development trunk)

This version is the new REFERENCE one and V8.19 is highly recommended for all the users. The modellers using the following functionalities MUST update their configuration up to V8.19.


  • you work with substances with settling velocities;
  • you use the following modules : sedimentology, contaminant, trajectories and IBM;
  • you force your circulation with a constant radiative flux and an homogeneous or stationary wind field;
  • you deal with wet-drying and/or small depths

Remark : V8.19 will remain stable because we have introduced important modifications inV9 already. These V9 modifications will not be published before a long phase of validation but V8 branch will not be upgraded anymore (except if bug).


  1. Physics :
    • Continuity of the bottom stress between 2D and 3D dynamics. The Strickler coefficient has been removed, follow indications in bottom_stress notice to parametrize the friction length z0. WARNING : This modification changes the results. (P. Le Hir, F. Dumas)
    • Estimate the fraction of a cell that is wet. In paraspec.txt, fwetmin must be as small as possible (0.01) to use this functionality. This functionality is off if fwetmin=1.0 (the default). (P. Le Hir, F. Dumas)
    • Important bug corrected on tosx and tosx in case l_meteo_stat=.true. or l_meteo_hom=.true. and l_sflx_solarcst=.true. WARNING : Change results for sure !
  2. Ecosystem :
    • key_subs_part_eqsubdt saves a lot of computations (and time) as soon as you run with substances characterized with the same maximum settling velocity. The number of sub time step is automatically estimated from the maximum settling velocity (prescribed in variable.dat)
    • Sedimentology : corrections
    • Contaminant : evolutions
  3. Trajectory :
    • 3D : important release (M. Huret, M. Sourisseau)
    • 2D : not available anymore
    • this functionality cannot be used with MPI
    • Introduction of an Individual Based Model (M. Huret, M. Sourisseau)


- connect : at least 10 times fater !!!
- UPDATE functionality
- runmpiomp_connect : you can choose the number of OMP cpus inside each MPI node

UPDATE functionality

In the .cshrc define :

  • setenv HTTPSVNROOT https://forge.ifremer.fr/svn/mars3d (the path has changed)
  • setenv extranet_login yours

To update the user routine, type the unique command

  • gmake update "OLDREV=XXX" "NEWREV=YYY"

(instead of gmake install "OLDREV=XXX" "NEWREV=YYY" ; update -s)

runmpiomp_connect functionality

The evolution concerns the choice of the number of OMP cpus inside a same node when one uses both OMP and OMP parallelisations

usage : runmpi_connect name_run name_file number_cpu number_omp "1(one file)/2(several files)" concatdir

  • (argument 1) at the end of each job, you will get name_run0.oJOB_NUMBER and name_run1.oJOB_NUMBER
  • (argument 2) name_file is name_suffix, with name defined in output.dat and suffix defined in paracom.txt
  • (argument 3) number_cpu is the totale number of cpu (number of nodes * number of OMP cpus)
  • (argument 4) number_omp is the number of cpus used for OMP - must be lower than 8 on Caparmor -
  • (argument 5) To gather files faster, it is better to write CPU parts into a global file created under a /home directory. You can specify the directory of concatenation through a 5th argument.

The complete list of all the modifications introduced into MARS from V8.00 version is available under an openoffice .ods file


V8.18 (revision 69) (2011/01/28) 
(= revision 1154 in development trunk)

This version corrects the reference one (V8.17). The modellers using the following functionalities MUST update their configuration up to V8.18.


  • you work with substances ;
  • you use AGRIF ;
  • you run in 3D with tide (l_obc_tide=.false.) and you do not read open boundary conditions from an OGCM for the 3d velocities (l_obc_ogcm_ruvz=.false.) ;
  • you force your circulation with a constant radiative flux and river discharges ;
  • you increase the viscosity inside sponge layers (l_spong*=.true.) ;
  • you use the key_sflx_solar_gill cpp key ;
  • you deal with wet-drying and generalized sigma ;
  • you use 2-equation turbulence scheme

Conclusion : V8.18 is highly recommended for all the users (you do not not which parametrization you might try in a few months)

EVOLUTIONS (different from subjects detailed above)

  1. General :
    • 95% of the variables (depending on time or not) have been allocated
    • Parallelization OMP+MPI can be used together. According to your number of CPUs and the size of your subdomain, you can save 30% of the running time.
  2. Physics :
    • introduction of diffusion along isopycnes (T/S only, on progress) (L. Debreu, T. Duhaut, F. Dumas)
    • introduction of a fourth order centered scheme for the advection of the tracers (T/S only, on progress) (L. Debreu, T. Duhaut, F. Dumas)
    • OBC characteristic method : correction
  3. Ecosystem :
    • Sedimentology : mass balance has been improved


- $HOMEMARS/../TOOLS/MPI2D_DOMAIN/decoupe.f90 : corrections


V8.17 (revision 67) (2010/10/15) 
(= revision 1059 in development trunk)

This version is the REFERENCE one and will be stable for at least one year. All the users are invited to update their configuration.


  1. In the Makefile*, the default CPP keys are the ones we used to use for the last years. They might not be the recommended ones. All the available CPP keys are listed in the Makfile*. The users are invited to test the following CPP keys that should improve the results :
    • for the tides : -Dkey_tide_fes2004
    • for the tracer advection : -Dkey_tssub_adv_ultimatequickest and -Dkey_tssub_adv_ultimatequickestmacho, -Dkey_tssub_wcompact
    • for wet-drying : -Dkey_dyn_wetdry_fct
    • for the dynamics : -Dkey_dyn_pg_djcs
    • for the radiative atmospherical fluxes : -Dkey_sflx_solar_luyten or -Dkey_sflx_solar_gill (the use of flux estimated by the atmospheric model might be better)
    • for the turbulent atmospherical fluxes : -Dkey_sflx_turb_fairall
    • for substances with settling velocity : -Dkey_subs_part_eqsubdt
    Nevertheless, conclusions can differ depending on the area of the configuration, the spatial resolution... Only the comparison with data and the analysis of the simulated results will help the user conclude about the choice of the CPP key.
  2. Results will differ because of a different implementation of the Alternating Direction Implicit (ADI) time scheme


  1. General :
    • Running times are shortened in MPI.
  2. Physics :
    • OBC : * The characteristics method is updated for 2D fields
      * Ranks and rotated grid : the barotropic velocities are saved and read every half time steps.
      * Cyclic OBC : the lapack library is not used anymore.
    • Wet drying : a flux corrected transposrt scheme has been introduced. It allows to keep positive water depths over wet-drying areas. Add the -Dkey_dyn_wetdry_fct CPP key to use this scheme
    • River and outflow : The river discharge (and outflow) can be distributed throughout a river thickness. WARNING : The format of the RIVER.DAT file has been modified.
    • ADI : different coding to save time.
    • Atmospherical turbulent fluxes : use of the modified module of the wind to be consistent with the estimated turbulent coefficients Ch,ce and cd.
    • Restart functionaly : validated
    • The global variable representing the sea surface height is ssh. xeu,xev,xe3... are the local variables of some routines. The ssh field is unique whatever the time step.
  3. Ecosystem :
    • Substances with settling velocity : the parametrization of the maximum settling velocity in variable.dat file is essentiel because it used to prescribe the sub time step with which the particulate substance will be advected. It must be different from 0. You can also define this sub time step in subreaddat.F90 by yourself, the default estimate (from the maximum settling velocity and the minimum layer thickness) is probably too restrictive.
    • Sedimentology : important corrections.
    • Biology : Substances with settling velocity are advected by a sub time step. The call to verti_bio is commented.

subbudgetdomain.dat : new file to define the area over which the mass balance will be estimated

- $HOMEMARS/../TOOLS/MPI2D_DOMAIN/test_mpi.f90 : error messages
- $HOMEMARS/../TOOLS/mars_hxhyfile_tonetcdffile.f90 : the dimensions are the longitude and latitude instead of ni and nj


V8.16 (revision 65)  (2010/07/26) 
(= revision 957 in development trunk)


  1. Physics : Atmospheric forcings :
    • Atmospherical fields are updated to n+1/2 before the estimate of the dynamics
    • to estimate the turbulent fluxes (latent and sensible fluxes), one can use :
      * a default parametrization (close to Clark et al (1995) -key_sflx_turb_default-
      * Luyten and De Mulder (1992) parametrization -key_sflx_turb_luyten + imeteo_dragtype and imeteo_exchtype parameters in paraspect.txt namelist -
      * Large et Yeager (2004) parametrization - key_sflx_turb_large -
      * Fairall et al (2003) parametrization - key_sflx_turb_fairall -
      * Ayina and Bentamy (2007) parametrization - sflx_turb_ayina -
    • the wind stresses are compatible with turbulent estimates, except for the default cpp key for which the wind stresses come from Luyten and De Mulder (1992) parametrization.
    • The Fairall et al (2003) parametrization is widely used and recommended. Nevertheless, perform your own tests and validate your results in your favourite coastal area.
  2. Substances :
    • The simulation is stopped if nv_tot (the number of substances read from variables.dat file) is different from nb_var (defined in parameters.F90)


V8.15 (revision 64)  (2010/07/23) 
(= revision 951 in development trunk + routines parsubobc2dapply.F90 and parsubobc3dapply.F90 of r953)


  1. If the number of variables deduced from the variables.dat file is different from the nb_var parameter in parameter.F90,the code is not stopped any more, there is a warning in warning.log file. Nevertheless, the code is not safe if nv_tot/=nb_var, so compile with the appropriate nb_var parameter.
  2. Results differ in 2D.
  3. Results might differ for different reasons : refer to list_modif_V8.ods file on mars internet site.


  1. General :
    • Running times are shortened in MPI.
    • MPI : A unique listing.XXX.YYY is filled.
  2. Physics :
    • OBC :
      * Characteristics method updated for 2D fields.
      * Ranks : the barotropic velocities are saved and read every half time steps. Not ready for rotated grids.
    • MPI introduced for cyclic test cases.
    • OMP introduced into Ultimate Quickest Macho scheme.
    • Introduction of a new vertical advection scheme : an Upwind Compact and Conservative scheme (L. Debreu) (-Dkey_tssub_wcompact CPP key). This scheme is recommended.
  3. Waves :
    • module for reading and spatial interpolation of different fields related to the waves.
  4. Ecosystem :
    • The module of sedimentology is updated and parallelized with MPI (research purpose in relation with PHYSED)
    • Introduction of contaminants through the air-sea interface
    • Substances with settling velocities :
      * The advection is solved with a sub time step (parsub* routines). You can define this sub time step in subreaddat.F90 by yourself, the default estimate (from the maximum settling velocity and the minimum layer thickness) is probably too restrictive.
      * Compare your results and running times with and without the key_subs_part_eqsubdt CPP : they must be the same (might for the running time). This CPP key might be useless.
  5. Eco3m :
    • Mars has been coupled with eco3m for research purpose ((V.M. Faure, N. Bousserez, M. Baklouti)
  6. Trajectory :
    • Introduction of a vertical behavior
    • MPI has not been introduced yet
  7. Agrif :
    • Updated to the new time scheme.
    • MPI has been introduced (many thanks to Laurent Debreu).
    • To be used in collaboration with F. Dumas


- runmpi_connect : to save time under Caparmor, a 5th argument ($HOME) specifies the directory where the global file champs_suffix.nc.all is created and filled. When finished, it is moved into the $RDIR/CONF/CONF-CASE directory
- $HOMEMARS/../TOOLS/MPI2D_DOMAIN/test_mpi.f90 is usefull the verify the MPI domain decomposition.


revision 59 = V8.14 (2010/04/05)


  1. key_sflx_ir_default becomes key_sflx_ir_swimbank
  2. Results differ if time step is modified during the simulation (according to the tides...)
  3. Results differ with the use of generalized sigma


  1. General :
    • Reading of longitude, latitude at xe,u,v location (key_grid_rotated cpp)
  2. Ecosysteme :
    • Resolution of equation of particulate variables (with settling velocity) with a sub-time step (on progress)
  3. Technics :
    • Introduction of f_hz function to estimate the vertical scale factor


revision 58 = V8.13 (2010/03/11)


  1. By default, the turbulence scheme chosen in paraspec.txt is the Gaspard's one.
  2. Makefile file :
    • Update your Makefile.caparmor by comparison with Makefile.caparmor_ref file and pay attention to the lines defining CPP and INCDIR variables.


  1. Physics :
    • one can add several river discharges at the same cell
  2. Ecosysteme :
    • cv_wat is an allocatable variable
    • mortality of dissolved substances (t90 functionality) is introduced in 3d
  3. Waves :
    • reading and saving of waves variables (from WW3)
    • coupling of mars and ww3 with palm (research only)
  4. Technics :
    • the cpp (c++) preprocessing is replaced by the fpp (fortran) preprocessing
    • the key_dyn_pg_djcs CPP key replaces the key_pg_djcs CPP key
    • introduction of toolcpp.h routine to manage AGRIF and MPI (in the future) from the preprocessing and get the code more readable


connect.f90 : (case pasi/=1 or pasj/=1)


revision 57 = V8.12


  1. Physics :
    • reading of atmospherical variables,
    • correction of river temperatures,
    • correction of the initialization from a file



revision 55 = V8.11


  1. Physics :
    • turbulence (formulations with 2 equations : k-kl,k-epsilon,k-omega)



revision 54 = V8.10


  1. If the simulation is stopped, check out the error_suffix.log file
  2. The rain (read from atmospherical file) is supposed to be a cumulative flux and is divided by the time step of the file


  1. General :
    • warning and error management
      • warning_suffix.log warns you about small mistakes. Try to get the file empty
      • error_suffix.log describes the error encountered and the job is stopped. I must have this file as empty to run a simulation.
  2. Physics :
    • dates verified
    • atmospherical flux
      • checking of units and readding
      • the rain (from atmospherical file) is supposed to be a cumulative flux and is divided by the time step (read from the file)
  3. Ecosystem :
    • module of biology :
      • OMP (not tested yet)
    • module of contaminant
      • introduction of bacterial death rate according to light


  • output.dat
  • paraspec.txt


  • connect.f90 : evolution for restart files concatenation

ionetcdf library must be recompiled (minor correction)


revision 52 = V8.07


  1. Physics :
    • correction bug MPI for small depths
    • correction bug relative to the characteristics method for OBC (l_obc_char)
  2. Ecosystem :
    • module of sedimentology : restart file
  3. MPI : correction sign for test on h0

connect.f90 : evolution for restart files concatenation


revision 51 = V8.05


  1. Physics :
    • reproductibility of the simulation if you restart from a restart file because the run has been interrupted
    • generalized sigma : correction initialization of hcx_sig and hcy_sig
  2. Ecosystem :
    • module of biology
      • removing on old module using number instead of variables iv_
      • correction bug MPI

mars_hxhyfile_tonetcdffile.f90 : compatibility with BMGTools


revision 50 = V8.04


  1. Physics : none
  2. Ecosystem :
    • module of sedimentology : corrections
    • module of biology
      • changes of iv_ names
      • automatic initialisation of iv* indexes
      • key_diag_output removed, l_out_subs_diag automatically set to .true. if one of the diagnostic variables must be saved

connect.f90 : evolution


revision 49 = V8.03


  1. Physics :
    • Bathymetry : the topography and mean level are read from a netCDF file. Use mars_hxhyfile_tonetcdffile.f90 program to convert your binary files to the netcdf file.
    • Reproductibility of the simulation if you restart from a restart file because the run has been interrupted : on progress
  2. Ecosystem :
    • module of sedimentology and contaminants : evolutions



revision 48 = V8.02


  1. Physics :
    • Tides
      • in lagoons (near Banuyls and Marseilles) : introduction of level estimate from harmonic recomposition (key_tide_lagoon)
      • CPP keys key_fes2004 becomes key_tide_fes2004, key_shom becomes key_tide_shom,...
    • Tools : functions f_dzu and f_dzw to estimate thickness layer available from toolgeom.F90
  2. Ecosystems :
    • module of biology : Initialization of iv_XXX and id_XXX indexes from standard names read in variable.dat and vardiag.dat


revision 47 = V8.01


  1. Physics :
    • Generalized sigma : correct estimate of the barotropic velocity at the the initialization of the run and for OBC fields
    • State equation : to estimate the buoyancy from Blumberg formulation the depth is set to 1000mbar or 10 m (potential estimate)
    • Outputs : viscosity and turbulence fields, more cumulative atmospherical variables
    • Surge functionality : over the Bay of Biscay shelf, estimate of tide level (from harmonic composition) corrected by wind and atmospherical influence (deduced from 2 previous ranks runned with and without meteorology forcing)
    • Harmonic composition from fes99 file is removed
    • Meteorology
      • sflx_rad_maxdepth : variable introduced in paramain.txt (experts only) to allow the penetration of the radiative flux down to a specific dept
      • meteo.F90 : fcc,sat,rh initialized if l_meteo_hom only
  2. Ecosystems :
    • Introduction of a module of contaminants (B. Thouvenin) (on progress)
    • Correction of the module of sedimentology (F. Cayocca P. Le Hir) (on progress)
    • Correction of coupling with SWAN (J. Thiebot) (on progress)


revision 44 = V8.00 - Official Version (Sept 2009)