New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
2009WP/Release_v3.2 – NEMO
wiki:2009WP/Release_v3.2

Version 52 (modified by rblod, 14 years ago) (diff)

--

Release v3.2


content

  • New Physics : tidal mixing ; RGB light penetration + ocean color ;
  • Cleaning of lib_mpp

SHMEM option has been removed north fold treatment is now done once for all in a new routine lbcnfd.F909 instead of being duplicated suppression of routines related to islands treatment (rigid lid

  • suppression of redundant east-west communication phase (ORCA grid case)
  • IOM for the output

Purposes :

  • add flexibility for outputs
  • eventually use dedicated processors for output

Using histwrite is still the default behaviour for safety. Nevertheless, iom_put can be activated with the cpp_key key_iomput and should become the default (only) in the future.

Iom_put allows to distribute and add desired output fields everywhere in the code without specific declaration in diawri :

Ex : CALL iom_put( "ssh" , sshn ) in sshwzv It is based on :

When using modipsl environment, they are extracting automatically with NEMO. Both are delivered under GPL licence but not under the responsibility of the NEMO team. Actually two levels of functionalities are available : 1- Just use iom_put to output the variable easily 2- Use in addition dedicated processors for output (server mode), then an additional executable is needed At execution time, when key_iomput has been activated, two additional files are required (and provided with the standard configuration):

  • xmlio_server.def : a namelist to define if we are in server mode or not
  • iodef.xml : an xml file to be completed with precision on the variable called by iom_put in nemo (name for output, frequency, file)

In server mode only, user has to define a mpi configuration file (for instance mpi.conf) looking like: -p 10 -e ./opa <-------- means 10 cpu for opa -p 2-e ./ioserver <--------- means 2 cpu for IO Then mpirun –f mpi.conf IOM for output has been implemented in OPA, TOP, LIM3 and LIM3, it is tested in NVTK, it is currently not compatible with AGRIF (key_agrif) and not implemented in diaptr.

As a consequence of the code reorganisation, average of output fields have been shift of one time step, for instance with nwrite=5, nit000=1, nitend=10 : Nemo_v3.1:

*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*

Nemo_v3.2 : *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*

  • achievement of the coupled interface
  • VVL reactivation

correct bugs and missing calls for variable volume revisit free-surface time-splitting algorithm to reach stability and satisfying results

have vvl option available for all type of coordinates (z, zps, s)

This part has induced a full restructuration of the code (even when not using vvl option) , since we made the choice to compute the ssh at the beginning of each time step (from continuity equation), instead of deducing it immediately from barotropic contribution as it was done before (dynspg_* routines). As a consequence, ssh should not be corrected in the rest of the code, which is a bit doubtful for obc and agrif cases (key_obc or key_agrif).

Repartition on the whole water column, so key_sigma_vll has been suppressed. Reference coordinate is referred as e3t_0 for instance, and pre-processing (in domzgr_substitute.h90) is used to define before, now, after scale factors, for instance :

# define fsdept_n(i,j,k) (fsdept_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))) For use of vvl, we introduced, time varying scale factors(_b,_n_a). Without vvl, we have obviously : fse3t_a = fse3t_n = fse3t_b = fse3t When using vvl, it would be more consistent to use exactly corresponding scale factors (for instance before for diffusion). It has been done only vertical diffusion for tracers at this time. Time stepping routines (tranxt and dynnxt) have been modified to work either on vertically averaged values in vvl case. Regarding the time-splitting algorithm :

  • for stability reason, we came back to an average on 2 time steps (2*nn_baro)
  • because of vvl, we are now computing velocities instead of transport. BDY routines have been changed in consequence, OBC not.

It has been tested with bdy (zps*) and on global ORCA025 configuration. VVL restartability is not ensured.

  • Improved time-stepping achitecture

...


Minor bug fixes / enhancements

Ticket in bold includes some severe BUGs that have to be corrected in the release v3.2.

  • AGRIF
#443 Coordinates cannot be read under AGRIF
#415 runtime array allocation error with AGRIF
#341 Interpolation on the fly with AGRIFRachid ?
#261 AGRIF syntax problem with allocation of FLD arrays
#108 AGRIF with ice
#107 AGRIF with time-splitting
#106 AGRIF with time-splitting
#73 tradmp.F90 never called when using AGRIF ...
  • ENVironment
#409 ins_make [ -t "target host" ] Done
#407 alias and csh Done
#396 Add a first guess of ORCA2_LIM_PISCES configuration in libIGCM
#240 setting up and running NVTK on new target Done NVTK
  • LIM2
#194 LIM-2 damping option true identified bug. No real pressure to solve it urgently limdmp_2.F90 ==> v3.3 or later
#364 wrong sign in lbc_lnk for gradients in limadv.F90 Done
  • LIM3
#464 Hard coded number of ice categories true identified bug. No simple solution. limdia.F90 ==> v3.3 or later
#439 Array index out of bounds in limsbc.F90 Done
#400 LIM3 : useless akappa and alambd arrays ?We agree, a cleaning of useless array is required. Should be done latter, when introducing EVP rheology in LIM2. ==> v3.3
#364 wrong sign in lbc_lnk for gradients in limadv.F90 Done
#354 ORCA-LIM3 MPI problem? Apparently, it was a user error. The ticket can be closed. Rachid, do you agree? invalid
#243 simplification of computation of snow-ice energy in limthd_ent I (Gurvan) don't understand this ticket. Ask Martin for further info. postponed form v3.3
#195 LIM-3 a damping option should be added for regional configurations pending issue, can be included in Brice timetable ==> v3.3 or later
  • OFF
#320 update modules of the off-line Christian, off-line should be OK for v3.2, no? OFF
  • OPA

Physics

#462 Bug in zdftmx when using zdfddm change the order of the call in step. Done step.F90
#459 RGB light penetration + ocean color: paper documentationGurvan DOC
#458 tidal mixing: paper documentationGurvan DOC
#457 tidal mixing: optimisation Done zdftmx.F90
#435 wrong index in ldfslp.F90 Done ldfslp.F90
#371 Mixed laplacian and bilaplacian operators Lap-bilap option, code provided and checked through the NVTK. Gurvan for code review: as provided it does not work, waiting for a reply from ed.blockley. probably not in v3.2 dynldf.F90 , ldfdyn.F90 , ldfdyn_oce.F90
#361 Proposal for diaptr Required for IPPC runs, routines provided. Claude + Gurvan ? diaptr.F90 + namelist
#239 diaptr code duplication / deficiencies clearly a problem to be solved... who? Claude/Sebastian?? diaptr.F90
#356 eosbn2: should we update the equation of state ? This should be added in the roadmap 2010 together with an option for P instead of z in eos ==> v3.4 or later
#331 No bottom friction if mbathy=2 to be solved together with #233. See Andrew work
#233 bottom friction issue... true identified bug. A clean solution is under development by Andrew. To be done in v3.2

Vertical coordinate

#434 mesh_zgr inconsistency when using zps done domwri.F90
#381 bugs in "subroutine zgr_sco" to be checked domzgr.F90
#366 sbot_min not properly used in hybrid coordinate option (zgr_sco module in domzgr) small true identified bug. easy to fix. To be done in v3.2 (Gurvan) domzgr.F90

VVL re-activation

#382 bugs in "subroutine dom_vvl" fse3w computation Already corrected see domzgr_substitute.h90 ticket to be closed
#337 partial cells and vvl This contains an improvement to the hydrostatic pressure gradient correction in vvl case. To be checked by Rachid + Gurvan. In the trunk, we are currently using the sco correction which works ==> v3.2 or v3.3
#232 Optimization of dynspg_ts with key_vvl Already included in the trunk (see dynspg_ts). ticket to be closed
#329 vvl and time splitting 2 points here: (1) correct thickness timestep : should be OK in Rachid's latest version of dynspg_ts ; to be checked in v3.2. (2) removal of asselin filter on the barotropic part in dynnxt.F90 : I (Gurvan) don't think it is a good idea. dynspg_ts.F90
#328 vertical velocity and key_vvl We agree. In the current trunk, the call to wzv (now ssh_wzv) is done at the begining of step. The vertical velocity has to be removed from the restart file To be done in v3.2 Rachid + Gurvan restart.F90
#209 Bug in domvvl : wrong e3u e3v and e3f scale factors + change name of mut to ee_t partly solved in the trunk (see domvvl). The suppression of 3D arrays (mut, muu, muv, muf) does not work, we don't understand why (it will not be done in v3.2). The change in trazdf_imp and exp are still a pending issue to be solved in v3.2 (Rachid + Gurvan) trazdf_imp.F90 , trazdf_exp.F90

Surface module (SBC)

#436 Implementation of CICE and UM coupling code as part of S0.1 and S0.3 On-going work. Waiting for Exeter input ==> v3.3 or later
#406 optimize sbcssr.F90 routine Done sbcssr.F90

Bugs

#433 #363 potential non initialized value in trazdf_imp Done
#424 missing lbc_lnk in sbcmod Sebastian answer properly to this ticket. Don't think we need to do something invalid
#419 Bug in dynvor_een when flux form is activated add to CALL lbc_lnk( zwz, 'F', 1. ), Done dynvor.F90
#403 Calculation of avmb in zdf_tke_init Done
#377 SBC fldread additions Improvment to SBC, code provided and checked through the NVTK. Sebastian for code review? fldread.F90 , iom.F90 , bdydta.F90 , sbcblk_clio.F90 , sbcflx.F90 , sbcice_if.F90 , sbcrnf.F90 , sbc_ssr.F90 , domain.F90 , in_out_manager.F90
#375 fldread and Interpolation on the FlySeem easy to do, waiting for steven feedback... fldread.F90
#365 wrong scale factors used in bdyvol Done
#368 bug in calendar of lim and top outputs done for lim. status of top? Christian? to be closed if Christian is ok
#342 #468 wrong computation of the heat contain done + associated with a full review for mld diag... done
#332 Mistake in comment in nam_dynvor Invalid
#244 tradmp A priori, this was done intentionally by Gurvan. Gurvan check it again! no action?
#129 Use of F95 signed zero causes incorrect results True identified problem. Specific compiler option added to circumvent it. A cleaner solution is to remove all SIGN instruction from the code, especially in sea-ice. ==> v3.3 or later
#127 Arrays go out of bounds true identified bug. rather easy to fix but using a other technique than the one proposed in the ticket. To be done in v3.2 (for diafwb.F90, see gm's comments and routines attached to the ticket. There is 2 other bug corrected in diafwb. For cla.F90, there is several other bugs, so at the end I completely re-wrote the module, merging cla, cla_div and cla_dynspg. See gm's comments and routines attached to the ticket. ) cla.F90 , diafwb.F90 suppress cla_div, cla_dynspg

IO issues

#437Distribution of "CALL iom_put" in NEMO-TOP Brice, Christian. On going work in the trunk. To be achieved in v3.2 whole NEMO
#410 PGF90-F-0004-Unable to open MODULE file netcdf.mod (fliocom.f90: 5) ???
#405 bug in diawri_dimg.h90 Done
#374 Addition of clobber and chunksize when opening NetCDF files Done. Wait for ioipsl improvement to extent modifications to all NetCDF files created in the code, and really close the ticket wait for ioipsl
#372 problem with netcdf syncing Invalid bug report Closed closed
#359 cleaning of calendar variables Sebastian + Gurvan action? phycst.F90 and others...
#343 no more runoff in outputs... keep runoff in the output only with IOM outputs, no more with standard one. Done done in changeset:1482
#314 wrong name of trends output file : key_trdmld, key_trmld_trc Christian : Done for trdmld_trc.F90 ; for trdmld, we need to re-organize the initialization part ==> v3.3
#296 obcdta_bt out of date To be solved together with major rewriting of OBC by MERCATOR. Rachid, you agree? ==> v3.3 or later
#237 Undefined behaviour writing to ocean.output from multiple pes done done
#201 simplified definition of the model time step Minor improvement. in v3.2 only if we have enough time ==> v3.2 or later

Misc. staff

#447 IOF and cutting along latitude waiting for steven feedback...
#445 Performance of NEMO 3.1 idem as for #447
#200 dtatem & dtasal : cleaning - move the call from step to tradmp - merge in 1 module This should be added in the roadmap 2010 together with the system consolidation / simplification ==> v3.4 or later
#379 clean lib_mpp Done lib_mpp.F90, lbcnfd .F90 , lbclnk.F90