Version 8 (modified by gm, 5 years ago) (diff)

disappearance of “configuration hard coding”

Last edited Timestamp?



User interface

The idea here is to introduce in the code a few number of user routine with a clear interface that the user can fill up rolling his desires. This strategy will be applied for the standard configurations (GYRE, ORCA2, AMM, …) For example, the analytical forcing of gyre configuration instead of being part of the inner part of the code (sbc_gyre) it will put put in a my_sbc.F90 module given in the MY_SRC directory of the GYRE configuration.

Typically, the my_… will be related to horizontal mesh, vertical grid, initial state and forcing. In each cases what should come out of those routine will be pass as arguments, so the user will know exactly what they have to define.


Inside the ocean code (OPA)

Here follows a brief description of "hard coding" associated to build in configuration (mostly ORCA configuration) and suggestion about what we plan to done with them
Item in bold are those that are still to be done


cla.F90, domzgr.F90, dynspg_flt.F90 :

cross land advection only defined in ORCA2 case
(gibraltar and Bad el Mendeb straits) and no more used
==⇒>> module to be suppress
DONE in 2015/dev_r5721_CNRS9_NOC3_LDF

closea.F90 :

suppress closed seas in forced mode (typically Caspian Sea, Azov Sea…)
or balance their fresh water budget in coupled mode …
==⇒>> How to deal with that ? idea user_defined module for close.F90


diafwb.F90 :

only diagnostics of the global fresh water budget and of transport of mass salt and heat in some straits:
Gibraltar, Red Sea, Baltic Sea etc. for ORCA 4°, 2° & 1°
==⇒>> module to be suppress idea user_defined module for that


diaptr.F90 :

Computes meridional transports and zonal means (of heat salt velocities).
Inefficient on MPP as require global communication. Better to compute off line.
Suppress the module and add the output of the vertical average of u.T , v.T , u.S, v.S
from which exact poleward heat transport can be computed…
==⇒>> module to be suppress (?) discussion still open as in ESM, they want those diags directly in the output…


domhgr.F90 :

hard coded reduction of scale factors in some straits in ORCA configurations
(typically straits of Gibraltar, Bab el Mandeb, Danish, Lombok, Sumba, etc).
The input coordinates.nc file have to contain the information
(+ add in TOOLS a fortran program as an example of how to modify a coordinates.nc file)
==⇒>> remove hard coded part
DONE in 2015/dev_r5721_CNRS9_NOC3_LDF


dommsk.F90 :

hard coded increase of lateral friction at the coast in some straits.
Add a external file to be read that contains the specification of lateral friction
(+ add in TOOLS a fortran program as an example of how to specify the input file)
==⇒>> remove hard coded part


domvvl.F90 :

modifications associated with the reduction of scale factors in some straits. No more needed:
addition of unaltered surface (e1e2u, e1e2v) in coordinates.nc when scale factors are reduced in some straits.
==⇒>> remove hard coded part, modify coordinates.nc
DONE in 2015/dev_r5721_CNRS9_NOC3_LDF


dtatsd, dtauvd.F90 :

in ORCA_R2 case, some hand made alterations in Red and Med Seas as well as changes associated with cross-land advection.
Can be removed. If someone wants similar things, he has to modify the T-S data file.
==⇒>> remove hard coded part


istate.F90 :

analytical initial state for EEL and GYRE
==⇒>> to be kept util USER defined modules are introduced


ldfslp.F90 :

alteration of the slope for ORCA 4° only. No more needed.
==⇒>> remove hard coded part
DONE in 2015/dev_r5721_CNRS9_NOC3_LDF


ldftra.F90 (ldf_eiv) :

hard coded alteration of the eiv coef. in orca2 case.
Now the eiv coef. can be provided in a file
==⇒>> remove hard coded part
DONE in 2015/dev_r5721_CNRS9_NOC3_LDF


p4zsbc.F90 :

hard coded enhance coastal supply of iron for ORCA2.
Since a file is provided that can contains the specificity of ORCA 2°
==⇒>> remove hard coded part


sbcrnf.F90 :

hard coded runoff reduction only associated to the ORCA2_LIM.
It is associated with an old runoff file may lead to bug!
==⇒>> remove hard coded part
DONE in 2015/dev_r5721_CNRS9_NOC3_ZDF


traadv_cen2.F90 :

hard coded upstream in vicinity of river mouth and freezing point.
As cen2 is no more used in ORCA configuration,
just remove everything and keep a standard 2nd order centered scheme.
==⇒>> remove hard coded part
DONE in 2015/dev_r5721_CNRS9_NOC3_LDF (now traadv_cen.F90)

trabbl.F90 :

ORCA 4° & 2°, regional enhancement of ah_bbl
==⇒>> to be suppress
DONE in 2015/dev_r5721_CNRS9_NOC3_ZDF   but not incorporate in the 2015 merge 

ldfdyn.F90 :

specific viscosity in ORCA 2° and ORCA 1°. Read them in an input file
(+ add in TOOLS a fortran program as an example of how generate the input file)
==⇒>> remove hard coded part
DONE in 2015/dev_r5721_CNRS9_NOC3_LDF

tradmp.F90 ; trcdmp.F90 :

hard coded definition of damping area for ORCA 2°, 1°, 0.5°. Read them in an input file
(+ add in TOOLS a fortran program as an example of how generate the input file)
==⇒>> remove hard coded part
DONE in nemo_v3_6_STABLE and following version

trcdmp.F90 :

hard coded definition of damping in closed seas for ORCA 2°, 1°, 0.5°.
==⇒>> Find a solution similar to what will be done for closed seas in OPA (close.F90)