[[TOC(heading=Release_v3.2)]] = '''Release 3.2''' = Last edited [[Timestamp]] [[BR]] [[BR]] == '''Major improvements''' == === New Physics === * tidal mixing parametrisation (bottom intensification) + Indonesian specific tidal mixing * RGB light penetration + ocean color * TKE / TKE_old : simplification of the restart strategy and its plug in step * TKE change in the surface boundary condition, especially in coupled mode (mean stress module send by the atmosphere) === System simplification === * Suppression of rigid-lid option and no more island specific treatment * 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 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. 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 [[BR]] * Technical requirement * a XML-F90 parser, svn co http://forge.ipsl.jussieu.fr/ioserver/svn/XMLF90 * an additional library svn co http://forge.ipsl.jussieu.fr/ioserver/svn/XMLIO_SERVER 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 :  * Functionalities * Just use iom_put to output the variable easily  * Use in addition dedicated processors for output (server mode), then an additional executable is needed (''server mode'') * How to use it : 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. * Nota 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.1 : *-----(*-----*-----*-----*-----*)-----(*-----*-----*-----*-----*) Nemo_v3.2 : (*-----*-----*-----*-----*)-----(*-----*-----*-----*-----*)-----* }}} === Achievement of the coupled interface === === VVL reactivation === * Purpose * 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 still a bit doubtful for obc and agrif cases (key_obc or key_agrif) and to be checked for 3.3. * In practice * The repartition of ssh is now done 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))) * 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. ---- == '''Minor bug fixes / enhancements''' == Ticket in '''bold''' includes some severe BUGs that have to be corrected in the release v3.2.[[BR]] * '''AGRIF''' [[BR]] ||#443||Coordinates cannot be read under AGRIF|||||| ||#415||runtime array allocation error with AGRIF|||||| ||#341||Interpolation on the fly with AGRIF||'''Rachid ?'''|||| ||#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 ...|||||| * '''ENV'''ironment [[BR]] ||#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''' [[BR]] ||#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''' [[BR]] ||#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''' [[BR]] ||#320||update modules of the off-line||'''Christian''', off-line should be OK for v3.2, no?||OFF|| * '''OPA''' [[BR]] Physics[[BR]] ||#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 documentation||'''Gurvan'''||DOC|| ||#458||tidal mixing: paper documentation||'''Gurvan'''||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[[BR]] ||'''#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 [[BR]] ||'''#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)[[BR]] ||#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[[BR]] ||#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 Fly||Seem 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[[BR]] ||#437||Distribution 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[[BR]] ||#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||