Skip to content

Commit

Permalink
Merge pull request #436 from FESOM/nextGEMS
Browse files Browse the repository at this point in the history
Next gems
  • Loading branch information
koldunovn authored Mar 15, 2023
2 parents 952e9ea + f25237b commit 8e6d03c
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 3 deletions.
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: 1 addition & 1 deletion src/ifs_interface/ifs_interface.F90
Original file line number Diff line number Diff line change
Expand Up @@ -832,7 +832,7 @@ SUBROUTINE nemogcmcoup_lim2_update( mype, npes, icomm, &
ice_heat_flux=0. ! Done. This is qns__ice currently. Is this the non-solar heat flux? ! non solar heat fluxes below ! (qns)
oce_heat_flux=0. ! Done. This is qns__oce currently. Is this the non-solar heat flux?
!
runoff(:)=0. ! not used apparently. What is runoffIN, ocerunoff?
!runoff(:)=0. ! not used apparently. What is runoffIN, ocerunoff?
!evaporation(:)=0.
!ice_thermo_cpl.F90: !---- total evaporation (needed in oce_salt_balance.F90)
!ice_thermo_cpl.F90: evaporation = evap_no_ifrac*(1.-a_ice) + sublimation*a_ice
Expand Down
12 changes: 10 additions & 2 deletions src/io_meandata.F90
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ module io_MEANDATA
!
integer, save :: io_listsize =0
logical, save :: vec_autorotate=.FALSE.
logical, save :: lnextGEMS=.FALSE.
integer, save :: nlev_upper=1
type io_entry
CHARACTER(len=15) :: id ='unknown '
INTEGER :: freq =0
Expand Down Expand Up @@ -132,7 +134,7 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
type(t_tracer), intent(in) , target :: tracers
type(t_dyn) , intent(in) , target :: dynamics
type(t_ice) , intent(in) , target :: ice
namelist /nml_general / io_listsize, vec_autorotate
namelist /nml_general / io_listsize, vec_autorotate, lnextGEMS, nlev_upper
namelist /nml_list / io_list

#include "associate_part_def.h"
Expand Down Expand Up @@ -617,7 +619,13 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
END SELECT ! --> SELECT CASE (trim(io_list(i)%id))
END DO ! --> DO i=1, io_listsize


if (lnextGEMS) then
call def_stream((/nlev_upper, nod2D/), (/nlev_upper, myDim_nod2D/), 'temp_upper', 'temperature', 'C', tracers%data(1)%values(:nlev_upper,:), 3, 'h', 4, partit, mesh)
call def_stream((/nlev_upper, nod2D/), (/nlev_upper, myDim_nod2D/), 'salt_upper', 'salinity', 'psu', tracers%data(2)%values(:nlev_upper,:), 3, 'h', 8, partit, mesh)
call def_stream((/nlev_upper, elem2D/), (/nlev_upper, myDim_elem2D/), 'u_upper', 'zonal velocity','m/s', dynamics%uv(1,:nlev_upper,:), 3, 'h', 4, partit, mesh)
call def_stream((/nlev_upper, elem2D/), (/nlev_upper, myDim_elem2D/), 'v_upper', 'meridional velocity','m/s', dynamics%uv(2,:nlev_upper,:), 3, 'h', 4, partit, mesh)
call def_stream((/nlev_upper+1, nod2D/), (/nlev_upper+1, myDim_nod2D/), 'w_upper', 'vertical velocity', 'm/s', dynamics%w(:nlev_upper+1,:), 3, 'h', 4, partit, mesh)
end if
!___________________________________________________________________________
! Richardson number diagnostics
if (ldiag_Ri) then
Expand Down

0 comments on commit 8e6d03c

Please sign in to comment.