= '''disappearance of “configuration hard coding”''' = Last edited [[Timestamp]] [[PageOutline]] ---- ---- == 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 forcing, horizontal mesh, vertical grid. 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 [[BR]] '''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 ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF 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 [[BR]] '''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 [[BR]] '''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 (?)''' [[BR]] '''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 ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF 2015/dev_r5721_CNRS9_NOC3_LDF] [[BR]] '''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 ''' [[BR]] '''domvvl.F90''' : modifications associated with the reduction of scale factors in some straits. No more necessary (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 ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF 2015/dev_r5721_CNRS9_NOC3_LDF] [[BR]] '''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 ''' [[BR]] '''istate.F90''' : analytical initial state for EEL and GYRE ''' ===>>> to be kept''' [[BR]] '''ldfslp.F90''' : alteration of the slope for ORCA 4° only. No more necessary ===>>> remove hard coded part   '''    DONE in ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF 2015/dev_r5721_CNRS9_NOC3_LDF] [[BR]] '''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 ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF 2015/dev_r5721_CNRS9_NOC3_LDF] [[BR]] '''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 ''' [[BR]] '''sbcrnf.F90''' : hard coded uunoff reduction only associated to the ORCA2_LIM. It is associated with an old runoff file may lead to bug! ''' ===>>> remove hard coded part ''' [[BR]] '''traadv_cen2.F90''' : hard coded upstream in vicinity of river mouth and freezing point. As cen2 is no more used in ORCA configuration, juste remove everything and keep a standard 2nd order centered scheme. ===>>> remove hard coded part   '''    DONE in ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF 2015/dev_r5721_CNRS9_NOC3_LDF] (now traadv_cen.F90) [[BR]] trabbl.F90 : ORCA 4° & 2°, regional enhancement of ah_bbl ''' ===>>> to be suppress ''' '''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 ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF 2015/dev_r5721_CNRS9_NOC3_LDF] [[BR]] '''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 ''' ----