Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AWIESM 2.5 FESOM branch #478

Open
wants to merge 70 commits into
base: wiso-refactoring
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
0183086
another attempt to implement a consistent kinetic energy diagnostic. …
dsidoren Jul 24, 2022
d455eab
commented some check statements which flood the output
dsidoren Jul 24, 2022
e058a1b
removed some unsused things
dsidoren Jul 24, 2022
f7bf5fb
OMP issues in energy diagnostic fixed
dsidoren Jul 25, 2022
6dd373a
a working energy diagnostic implementation. the balances are conserve…
dsidoren Jul 27, 2022
c04d59f
forgot to update MOD_ÂDYN.F90 during the last commit
dsidoren Jul 27, 2022
05cd29e
log the energy diagnostic at every timestep
dsidoren Jul 27, 2022
1e07be8
added W*RHO to the diagnostic of the energy. et finally equals kineti…
dsidoren Aug 30, 2022
accdcb1
energy diagnostic: wind stress and bottom drag added
dsidoren Aug 30, 2022
c3425dd
vertical smooth for bvfreq. S. Koldunov reported noise in bv in verti…
dsidoren Oct 11, 2022
8b21825
add the output of density class thickness to the DMOC diagnostic for…
patrickscholz Oct 18, 2022
3763c80
more energy diagnostic added. computation of turbulent fluxes shall b…
dsidoren Nov 13, 2022
481daaf
ke_umean was not updated. fixed!
dsidoren Nov 16, 2022
031afc1
Merge branch 'refactoring' into refactoring_smooth_bv_vertical
koldunovn Nov 26, 2022
64d837e
energy diagnostic bug: ke_wind_xVEL was not computed properly. fixed!
dsidoren Dec 5, 2022
f6ad109
bug in energy diagnostic: ke_drag_xVEL was not properly computed!
dsidoren Dec 5, 2022
498549f
update levante environment
koldunovn Dec 9, 2022
6aec024
Update oce_dyn.F90
dsidoren Dec 16, 2022
3161b81
added computation of fields required to compute APE generation throug…
dsidoren Dec 21, 2022
8f88449
Merge branch 'refactoring' into refactoring_improveDMOC
patrickscholz Jan 18, 2023
c1722cf
multithreading suddenly produces an error on Levante, disable it unti…
hegish Jan 19, 2023
8beb0eb
Merge pull request #414 from FESOM/levante_disable_multithreading
patrickscholz Jan 19, 2023
636cd6b
Merge branch 'refactoring' into refactoring_improveDMOC
dsidoren Jan 23, 2023
75151cc
Merge pull request #372 from FESOM/refactoring_improveDMOC
dsidoren Jan 23, 2023
ba9c336
Merge branch 'refactoring' into fesom2.0_energy
dsidoren Jan 23, 2023
211dc00
removed the old energy diagnostic. it is now made online (see branch …
dsidoren Jan 23, 2023
1365c40
namelist.io changed (ldiag_energy -> ldiag_Ri)
dsidoren Jan 23, 2023
2298a1b
ladiag_energy removed from namelist.io
dsidoren Jan 23, 2023
996ad4e
diagnostic of vertical turbulent fluxes for tracers (KvdTdz, KvdSdZ) …
dsidoren Jan 23, 2023
d217bc9
Merge branch 'fesom2.0_Ri' of https://github.com/FESOM/fesom2 into fe…
dsidoren Jan 23, 2023
f05650e
remove ldiag_energy setting in namelist.io for the channel test
dsidoren Jan 23, 2023
daaa6e0
Merge branch 'fesom2.0_Ri' into fesom2.0_energy
dsidoren Jan 24, 2023
0b296c6
Energy diagnostics is more "friengly" coded. Can be activated through…
dsidoren Jan 24, 2023
fec8c2d
config/namelist.io added turbulent flux diagnostics 'ldiag_turbflux'
dsidoren Jan 24, 2023
967055b
Update namelist.dyn
dsidoren Jan 24, 2023
e00488a
Merge pull request #416 from FESOM/fesom2.0_energy
koldunovn Jan 24, 2023
e90163a
fixing performance relevant issues in energy diagnostics
dsidoren Jan 24, 2023
81137b4
Merge pull request #417 from FESOM/fesom2.0_energy
koldunovn Jan 24, 2023
2868edb
further adapt jobscripts for albedo, and fix bug in job_xxxx_chain
patrickscholz Feb 1, 2023
12e457c
switch off parallel RESTART and multithreaded I/O until issues are c…
patrickscholz Feb 1, 2023
993f5ca
Merge branch 'refactoring' into refactoring_albedo_env
patrickscholz Feb 1, 2023
9d321a5
Merge pull request #419 from FESOM/refactoring_albedo_env
patrickscholz Feb 1, 2023
6711a3b
Update gen_modules_diag.F90
dsidoren Feb 3, 2023
ba13fc2
Update gen_modules_diag.F90
dsidoren Feb 3, 2023
19eb01d
Update gen_modules_diag.F90
dsidoren Feb 6, 2023
dcff54e
Merge pull request #422 from FESOM/dsidoren-patch-7
patrickscholz Feb 6, 2023
934a1a8
add paper to readme
JanStreffing Feb 7, 2023
40fbbd6
Merge pull request #423 from FESOM/JanStreffing-patch-2
koldunovn Feb 7, 2023
acf511f
Merge branch 'refactoring' into refactoring_smooth_bv_vertical
dsidoren Feb 7, 2023
1d3ddd3
smooth_bv_vertical in oce_ale_pressure_bv.F90 -> pressure_bv will act…
dsidoren Feb 7, 2023
09de730
Merge pull request #385 from FESOM/refactoring_smooth_bv_vertical
dsidoren Feb 8, 2023
af936b7
added sw to the flux into sea ice (sea ice flux needs to be the total…
dsidoren Feb 22, 2023
4954d3b
Merge branch 'refactoring' into ifs_fix
dsidoren Feb 22, 2023
5494bba
Merge pull request #427 from FESOM/ifs_fix
koldunovn Feb 22, 2023
4f0c864
after many days of work with the tight collaboration with Thomas Rackow
dsidoren Feb 27, 2023
c740433
FESOM/IFS shall now deliver an excellent climate
dsidoren Feb 27, 2023
35f4130
Merge pull request #429 from FESOM/ifs_fix
koldunovn Feb 27, 2023
dbe5bcd
reverting the changes required for IFS/FESOM. The needed task has bee…
dsidoren Mar 1, 2023
b200854
Merge pull request #430 from FESOM/ifs_fesom_fix
koldunovn Mar 1, 2023
dd1d31f
hopefully improved coupling interfaces with IFS
dsidoren Mar 13, 2023
acbd622
Merge branch 'refactoring' into ifs_fesom_fix
dsidoren Mar 13, 2023
4b9e3bd
Merge pull request #433 from FESOM/ifs_fesom_fix
koldunovn Mar 14, 2023
3fcaa8e
add 20C isotherm to the exchanged fields
trackow Dec 22, 2022
565fbe2
make tempzavg and saltzavg public
trackow Dec 22, 2022
3eb8515
add 300m-average temp and salt to the exchanged fields
trackow Dec 22, 2022
952e9ea
Merge pull request #435 from FESOM/refactoring-c3
dsidoren Mar 15, 2023
d724f47
IO output upper levels for nextGEMS (see config/namelist.io.nextGEMS)
Mar 15, 2023
f25237b
using annual constant runoff from COREI/II in IFS/FESOM
Mar 15, 2023
8e6d03c
Merge pull request #436 from FESOM/nextGEMS
koldunovn Mar 15, 2023
b40d4b6
Merged FESOM-2.5 into wiso-refactoring and resolved conflicts
YuchenSun33 Jul 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ References

* **[Version with ICEPACK sea ice thermodynamics]** 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.

* **[Version coupled with OpenIFS atmosphere]** Streffing, J., Sidorenko, D., Semmler, T., Zampieri, L., Scholz, P., Andrés-Martínez, M., et al ( 2022). AWI-CM3 coupled climate model: description and evaluation experiments for a prototype post-CMIP6 model. Geoscientific Model Development, 15. https://doi.org/10.5194/gmd-15-6399-2022

Documentation for FESOM2
************************

Expand Down
1 change: 1 addition & 0 deletions config/namelist.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ use_freeslip = .false. ! Switch on free slip
use_wsplit = .false. ! Switch for implicite/explicte splitting of vert. velocity
wsplit_maxcfl= 1.0 ! maximum allowed CFL criteria in vertical (0.5 < w_max_cfl < 1.)
! in older FESOM it used to be w_exp_max=1.e-3
ldiag_KE=.false. ! activates energy diagnostics
/

3 changes: 2 additions & 1 deletion config/namelist.io
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
ldiag_solver =.false.
lcurt_stress_surf=.false.
ldiag_curl_vel3 =.false.
ldiag_energy =.false.
ldiag_Ri =.false.
ldiag_turbflux =.false.
ldiag_salt3D =.false.
ldiag_dMOC =.false.
ldiag_DVD =.false.
Expand Down
53 changes: 53 additions & 0 deletions config/namelist.io.nextGEMS
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
&diag_list
ldiag_solver =.false.
lcurt_stress_surf=.false.
ldiag_curl_vel3 =.false.
ldiag_Ri =.false.
ldiag_turbflux =.false.
ldiag_salt3D =.false.
ldiag_dMOC =.false.
ldiag_DVD =.false.
ldiag_forc =.false.
ldiag_extflds =.false.
/

&nml_general
io_listsize =100 !number of streams to allocate. shallbe large or equal to the number of streams in &nml_list
vec_autorotate =.false.
lnextGEMS=.true.
nlev_upper=10
/

! for sea ice related variables use_ice should be true, otherewise there will be no output
! for 'curl_surf' to work lcurt_stress_surf must be .true. otherwise no output
! for 'fer_C', 'bolus_u', 'bolus_v', 'bolus_w', 'fer_K' to work Fer_GM must be .true. otherwise no output
! 'otracers' - all other tracers if applicable
! for 'dMOC' to work ldiag_dMOC must be .true. otherwise no output
&nml_list
io_list = 'sst ',1, 'm', 4,
'sss ',1, 'm', 4,
'ssh ',1, 'm', 4,
'uice ',1, 'm', 4,
'vice ',1, 'm', 4,
'a_ice ',1, 'm', 4,
'm_ice ',1, 'm', 4,
'm_snow ',1, 'm', 4,
'MLD1 ',1, 'm', 4,
'MLD2 ',1, 'm', 4,
'MLD3 ',1, 'm', 4,
'tx_sur ',1, 'm', 4,
'ty_sur ',1, 'm', 4,
'temp ',3, 'h', 4,
'salt ',3, 'h', 8,
'N2 ',1, 'y', 4,
'Kv ',1, 'y', 4,
'u ',3, 'h', 4,
'v ',3, 'h', 4,
'unod ',1, 'y', 4,
'vnod ',1, 'y', 4,
'w ',3, 'h', 4,
'Av ',1, 'y', 4,
'bolus_u ',1, 'y', 4,
'bolus_v ',1, 'y', 4,
'bolus_w ',1, 'y', 4,
/
2 changes: 0 additions & 2 deletions setups/test_pi/setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ namelist.ice:
evp_rheol_steps: 120

namelist.io:
diag_list:
ldiag_energy: False
nml_list:
io_list:
"sst ":
Expand Down
2 changes: 0 additions & 2 deletions setups/test_souf/setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,6 @@ namelist.ice:
evp_rheol_steps: 150

namelist.io:
diag_list:
ldiag_energy: False
nml_list:
io_list:
"sst ":
Expand Down
12 changes: 11 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,19 @@ if(ALEPH_CRAYMPICH_WORKAROUNDS)
endif()
if(ALBEDO_INTELMPI_WORKAROUNDS)
add_compile_options(-DENABLE_ALBEDO_INTELMPI_WORKAROUNDS)
add_compile_options(-DDISABLE_PARALLEL_RESTART_READ)
endif()

if(${FESOM_PLATFORM_STRATEGY} STREQUAL levante.dkrz.de )
message(STATUS "multithreading disabled for Levante") # multithreading suddenly produces an error, disable it until a fix is found. issue #413
option(DISABLE_MULTITHREADING "disable asynchronous operations" ON)
elseif(${FESOM_PLATFORM_STRATEGY} STREQUAL albedo )
message(STATUS "multithreading disabled for Albedo") # multithreading suddenly produces an error, disable it until a fix is found. issue #413
option(DISABLE_MULTITHREADING "disable asynchronous operations" ON)
else()
option(DISABLE_MULTITHREADING "disable asynchronous operations" OFF)
endif()

option(DISABLE_MULTITHREADING "disable asynchronous operations" ON)
option(ENABLE_OPENACC "compile with OpenACC support" OFF)
set(NV_GPU_ARCH "cc80" CACHE STRING "GPU arch for nvfortran compiler (cc35,cc50,cc60,cc70,cc80,...)")

Expand Down
19 changes: 16 additions & 3 deletions src/MOD_DYN.F90
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ MODULE MOD_DYN
real(kind=WP), allocatable, dimension(:,:,:):: uvnode

! instant vertical vel arrays
real(kind=WP), allocatable, dimension(:,:) :: w, w_e, w_i, cfl_z, fer_w
real(kind=WP), allocatable, dimension(:,:) :: w, w_e, w_i, w_old, cfl_z, fer_w

! sea surface height arrays
real(kind=WP), allocatable, dimension(:) :: eta_n, d_eta, ssh_rhs, ssh_rhs_old
Expand Down Expand Up @@ -110,8 +110,21 @@ MODULE MOD_DYN
logical :: use_wsplit = .false.
! maximum allowed CFL criteria in vertical (0.5 < w_max_cfl < 1.)
! in older FESOM it used to be w_exp_max=1.e-3
real(kind=WP) :: wsplit_maxcfl= 1.0

real(kind=WP) :: wsplit_maxcfl= 1.0
! energy diagnostic part: will be computed inside the model ("hard integration"):
logical :: ldiag_ke = .true.
! different contributions to velocity change. will be computed inside the code.
real(kind=WP), allocatable, dimension(:,:,:) :: ke_adv, ke_cor, ke_pre, ke_hvis, ke_vvis, ke_du2, ke_umean, ke_u2mean
real(kind=WP), allocatable, dimension(:,:) :: ke_wind, ke_drag
! same as above but multiplied by velocity. we need both for later computation of turbulent fluxes
real(kind=WP), allocatable, dimension(:,:,:) :: ke_adv_xVEL, ke_cor_xVEL, ke_pre_xVEL, ke_hvis_xVEL, ke_vvis_xVEL
real(kind=WP), allocatable, dimension(:,:) :: ke_wind_xVEL, ke_drag_xVEL
real(kind=WP), allocatable, dimension(:,:) :: ke_wrho !we use pressure to compute (W*dens) as it appeares much easier to compute (P*dW) instead of (dP*w)
real(kind=WP), allocatable, dimension(:,:) :: ke_dW, ke_Pfull !for later computation of turbulent fluxes from the term above
real(kind=WP), allocatable, dimension(:,:,:) :: ke_adv_AB, ke_cor_AB
real(kind=WP), allocatable, dimension(:,:,:) :: ke_rhs_bak
! surface fields to compute APE generation
real(kind=WP), allocatable, dimension(:) :: ke_J, ke_D, ke_G, ke_D2, ke_n0, ke_JD, ke_GD, ke_swA, ke_swB
!___________________________________________________________________________
contains
#if defined(__PGI)
Expand Down
4 changes: 1 addition & 3 deletions src/gen_model_setup.F90
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ subroutine setup_model(partit)
! use i_therm_param
use g_forcing_param
use g_config
use diagnostics, only: ldiag_solver,lcurt_stress_surf,lcurt_stress_surf, ldiag_energy, &
use diagnostics, only: ldiag_solver,lcurt_stress_surf,lcurt_stress_surf, ldiag_Ri, ldiag_TurbFlux, &
ldiag_dMOC, ldiag_DVD, diag_list
use g_clock, only: timenew, daynew, yearnew
use g_ic3d
Expand All @@ -28,10 +28,8 @@ subroutine setup_model(partit)
read (fileunit, NML=geometry)
read (fileunit, NML=calendar)
read (fileunit, NML=run_config)
!!$ read (fileunit, NML=machine)
close (fileunit)

!PS partit%flag_debug=flag_debug

! ==========
! compute dt
Expand Down
Loading