FESOM2.5
Main changes
-
Complete refactoring of the code in order to implement modular structure. Now variables are wrapped in derived types. For tracers [#167, #185 ], dynamics [ #214, #219, #228, ], ice [#251, ]
-
Add OpenMP support [#196, #217 , #220, #222, #226, #227, #232, #233, #235, #236, #241, #242, #244, #246, #247, #256, #269, #293, #346, #406], with binary reproducibility #357
-
Implementation of binary restarts and parallel reading of restarts #260, #265, #296
-
Add capability to easilly extract dwarfs (computational kernels) from the code, so that they can be optimised separatelly (#297, #302, #303, #304, #367)
Improvements for coupling with atmospheric models
- Multiple fixes for AWI-CM3 #352, #374
- FESOM main split in three parts (as required for IFS coupling) #195
- Add a switch to build FESOM as library (for IFS coupling) #207 #229, #231
- Implement IFS interface #224, #238, #239, #327
- IFS coupling related changes #321, #324, #331, #332, #429, #433
- Send ocean variables to IFS to output them on atmospheric grid #435
- Big IFS related update #388, that includes:
- coupling of surface ocean currents (took nodal velocities instead of velocities on elements)
- optimization of coupling interface (packing of fields, p2p instead of alltoallv) following what was done for NEMO4
- extra diagnostics are available on IFS grid (MLD, ave T 300m, ave S 300m, 20C isotherm, etc) and thus in GRIB output
- reduced standard I/O output in single-executable runs
Compiler and HPC support
- nvfortran compiler support #266, #290, #291, #317, #328, #329, #376
- Use consistent target attribute (for Cray compiler) #198
- Compiles with OpenMP with cray compiler #200
- Add Levante support #338, #358, #365, #394
- Add LUMI support #387, #412, #406
- Add albedo support #391, #392, #400, #419
New features
- Automatic rotation for vector fields, no need or rotation in postprocessing #301, #335
- Allow topography to be read on elements and nodes #359
- Support for driving FESOM with the windstress (instead of the wind speed -> bulk formulas) from reanalysis #366
- Add MLD3 with cmor compliant density threshold of 0.03 kg/m³ #383
- Chlorophyll climatology can be used instead of constant value. Shall be activated through namelist #339
- Add Langmuir Parameterisation for TKE, update IDEMIX parameter #340
- Transposed 3D output files via preprocessor definition #193
- add the output of density class thickness to the DMOC diagnostic for the proper remapping to zcoordinates #372
- Additional IO output for upper levels for nextGEMS #436
Improvements for High resolution simulations
- Brunt-Vaisala frequency is smoothed spatially before it is given to the mixing schemes. This damps some mode which is expressed as a grid noise in the modelled fields (mainly at the equator) #287
- Smoothing Bv in vertical is necessary in order to avoid vertival noise in Kv/Av #385
- Fix bug, when visc_gamma0, visc_gamma1 & visc_gamma2 were used instead gamma0_tra, gamma1_tra & gamma2_tra in diff_part_bh #276
- Multiple bugs fixed in biharmonic tracer diffusion, that allow better results for high resolution simulations #277, #282
- Bug fix in pressure_bv (depth computatiopn for pressure contribution) #320
Bug fixes
- Multiple TKE+IDEMIX fixes #351
- fix bug with reading runoff and SSS #177
- Remove last occurence of execute_command_line function, was failing too often #318
- Fix KPP bug related to sw_pene #237
- Bug fix in update_atm_forcing. press_air array was accessed even if not allocated. #248
- CFLMAX was not initialized in vert_vel_ale #253
- Fixed treatment of sw_pene in cvmix_KPP #330
- Fixed depth sign in the parameterisation of Langmuir circulations (LC in TKE) #353
- zisotherm computation improved #401
- diag_densMOC assumed that GM is used. An IF condition was introduced #410
- Multiple bugfixes for cavity #390
- Make sure that the restart works from zstar towrads linfs #375
Documentation
- Includes the formerly separate documentation repository directly along with the source code #344