Releases: FESOM/fesom2
FESOM2.1
Changes in development
- moved to GitHib for development.
- meshes under version control now (https://gitlab.awi.de/fesom)
- Simple tests (compile, run, compare results) for GitHub repository (on every commit). First implementations is in #4.
- Updated documentation (https://fesom2.readthedocs.io/en/latest/)
Major changes
- Parallel and asynchronous output writing (#14).
- Added Icepack sea ice thermodynamics (Zampieri et al., 2021) #70
- Added backscatter parameterisation (Juricke et al., 2019) #64
- Initial version of cavities #48, and its improvement #110
- New defaults in the namelists and a system to create setups from yaml files (#55). Most prominent changes are: Partial cells, zstar and unrotated mesh are now default options, JRA55-do is default forcing.
- New license (LGPL), as requested by some partners, so FESOM2 can be used as a library by comertial software #74
- Add an option to smooth tracer (smooth_bh_tra), which is nessesary for very high resolution setups #81
- Fix partial cells to work more stable in high resolution setups #27
Minor changes
- Print compile time git SHA at runtime (#13) to undetify version the model was compiled with.
- More information in netCDF output (#18 #31 #33). Provide some info on model version and setup.
- Fix bug with partitioner, that sometimes lead to wrong size of triangles #20
- Add several extra parameters to the sea ice namelist (#34)
- Introduce MAX_PATH length, to remove limit on the paths #65
- Ice deformation tensor is stored as an array (on elements) and can bу written out (4cfe296)
- Remove old METIS4 (66b0b74)
- Add cray ftn compiler support (#89)
- Fix coupled (to OpenIFS) thermodynamics where water instead of snow density was used for heat capacity (#93)
- Fix PPM bug #117
- Add density / buoyancy flux as output variable #116
References
Juricke, S., Danilov, S., Kutsenko, A., & Oliver, M. (2019). Ocean kinetic energy backscatter parametrizations on unstructured grids: Impact on mesoscale turbulence in a channel. Ocean Modelling, 138, 51–67. https://doi.org/10.1016/j.ocemod.2019.03.009
Zampieri, Lorenzo, Frank Kauker, Jörg Fröhle, Hiroshi Sumata, Elizabeth C. Hunke, and Helge Goessling. Impact of Sea-Ice Model Complexity on the Performance of an Unstructured-Mesh Sea-ice/ocean Model Under Different Atmospheric Forcings. Washington: American Geophysical Union, 2020. https://dx.doi.org/10.1002/essoar.10505308.1.
Beginning of major refactoring
- Refactoring of the code to get rid of global memory modules. A derived type for the mesh structure has been created and all the routines modified such that they receive the mesh as an argument. let us see whether this strategy will work. If so all other modules shall be processed in a similar manner.
- Add discrete variance decay (DVD) computation of Klingbeil et al., 2014.
- Kick out unused namelist flags from namelist.config.
- Include new scheme + parameters for the vertical tunning of Gent McWilliams.
2.0.5
- Two small bugs in sea ice are fixed (Lorenzo Zampieri)
- The
easy backscatter
viscosity is now the default. - Remove
use_ALE flag
since ALE is used always now. - Support
gfortran
compiler. - Support compilation on Ubuntu.
- Continuous work on CVMIX options.
- Add diagnostic to calculate MOC in density coordinates.
Control forcing and IO from namelists. Initial CVMIX implementation.
I/O control has been added via namelist.io.
The format for a new entry is:
('name ', frequency, frequency unit, precision). 'name' shall consist of 10 symbols. Add blanks if too short.
In order to add a new variable as a stream you need:
1. add this to namelist.io
2. modify io_meandata.F90 accordingly as it has been made for other variables.
CVMIX
Add FESOM interfaces for CVMIX-TKE(Turbulent-Kinetic-Energy) and IDEMIX (Internal-Wave-Energy) vertical mixing parameterization. Still needs to be fully tested, but so we can unify the Infrastructure for CVMIX
Generic forcing
The new way to define atmospheric forcing for FESOM2. Now one can use a namelist.forcing
to provide pathways to forcing files.
Other changes
- Some colorful screen output to highlight important things.
- Fix a bug regarding max limiter of GM coefficient
- Layerwise I/O for restarts and meandata.
- Unify restart for zlevel and zstar.
- Floating sea ice to zstar and different EVP schemes.
- Change the default scheme to calculate pgf to shchepetkin.
- Actualize and restructure routines for calculating the pressure gradient force.
- Fix bug for zlevel and zstar (but also a bit for linfs) in how to balance the fresh water flux to the ocean and to avoid the ssh of drifting away.
- FIX MINOR BUG WITH MAJOR IMPLICATIONS FOR ZLEVEL AND ZSTAR. This bugfix makes zlevel and zstar finally as stable as linfs and solves partially also the issues regarding the boundary current.
- Tested functionality of partial bottom cells for the linfs case, performs at the same time step like the full cell case, different options to calculate the bottom pressure gradient force in case of partial bottom cells are available.
- Timings for setup, output, and diagnostics added.
2.0.3 scaling paper release
A version of the code that was used for the "Measuring and optimizing the parallel performance of unstructured ocean model FESOM2" submitted to GMD.
2.0.2 stable release (Scholz)
The same as 2.0.2, but to make Zenodo happy.
2.0.2 stable release (scaling paper)
Stable version with solver changes from Natalja. Before merge with generic forcing branch from Dima.
- Simplified and switched on partition check for isolated nodes.
- Added pipelined BiCGstab algorithm.
- Added BiCGstab with integrated RAS preconditioner.
- Added SOLBICGS_RAS.
- Multiple optimization changes from Nataja.
- Add time measurements for different parts of the code.
- Improved plotting and data analysis from Patrick
- Diagnostic for calculating the kinetic energy budget.
- Compile partitioner
fesom_ini
with cmake. - Proper treatment of periodical boundaries when reading 3D climatology.
- Monin-Obukhov is added above KPP to increase mixing in Summer.
- Deep convection is added along this line as well like in FESOM 1.4 (if KPP fails to do it by itself).
- Fix bug in the extrapolation of the pressure gradient force at the bottom, make partial cells work with linfs.
- Check if the force_rotation flag setted in namelist.config fits to the grid that is loaded, so that an already rotated grid doesnt get rotated again and that for an unrotated grid the rotation is not forgoten.
[[Commit of the year!]]
- New procedure for treatment of initial conditions, now they directly read from netCDF files.
- Change backround diffusivity to FESOM1.4 latest scheme, and be sure that PP and KPP use same subfunction to calculate background diffusivity.
- Generalised tracer input (adding tracers is now easy).
- Fixed a bug in the Redi scheme which led to non conservation of the total tracer has been fully eliminated (treatment of mixing coefficients in implicit vertical diffusion operator was ambigious).
- Focal flux implementation for KPP has produced uncertainties in 8th digit after 1000 timesteps, now commented out.
- Salt Plume Parameterization from FESOM 1.4 (the realization from Wang et al. 2014) has been ported to FESOM2. Here it is coded for the Northern hemisphere only. Additional tuning for FESOM2 is required, otherwise the surface waters become too fresh and the subsurface too salty.
- Possibility to output fields in
real4
. - Add support for compilation on JUWELS.
First stable FESOM 2 release
This is the version used in Scholz et al paper.