@@ -72,7 +72,7 @@ module io_MEANDATA
7272!
7373!- -------------------------------------------------------------------------------------------
7474!
75- type (Meandata), save , target :: io_stream(200 ) ! todo: find a way to increase the array withhout move_alloc to keep the derived types in Meandata intact
75+ type (Meandata), save , target :: io_stream(250 ) ! todo: find a way to increase the array withhout move_alloc to keep the derived types in Meandata intact
7676 integer , save :: io_NSTREAMS= 0
7777 real (kind= WP) :: ctime ! current time in seconds from the beginning of the year
7878!
@@ -533,6 +533,18 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
533533 if (use_REcoM) then
534534 call def_stream(nod2D, myDim_nod2D, ' benCalc' ,' Benthos calcite' ,' mmol' , Benthos(:,4 ), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
535535 end if
536+
537+ ! CASE ('denb ')
538+ ! Variable: denb
539+ ! Description: Benthic denitrification rate
540+ ! Function: Conversion of nitrate to N₂ gas in anoxic sediments
541+ ! Process: NO₃⁻ → NO₂⁻ → NO → N₂O → N₂ (anaerobic respiration pathway)
542+ ! Role: Permanent nitrogen loss from ocean; regulates ocean N inventory
543+ ! Units: mmol/m² (millimoles per square meter)
544+ ! if (use_REcoM) then
545+ ! call def_stream(nod2D, myDim_nod2D, 'denb','Benthic denitrification rate', 'mmol/m2', DenitBen(:), io_list(i)%freq, io_list(i)%unit, io_list(i)%precision, partit, mesh)
546+ ! end if
547+
536548! ciso
537549CASE (' benC_13 ' )
538550 if (use_REcoM) then
@@ -1111,6 +1123,37 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
11111123 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN' , ' Dissolved Inorganic Nitrogen' , ' [mmol/m3]' , tracers% data (j)% values(:,:), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
11121124 endif
11131125
1126+ if (tracers% data (j)% ltra_diag) then
1127+ ! horizontal advection
1128+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_hor_adv' , ' Horizontal advection part of dissolved Inorganic N' , ' [mmol/m3/s]' , tracers% work% tra_advhoriz(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1129+
1130+ ! horizontal advection LO
1131+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_lo_hor_adv' , ' LO Horizontal advection part of dissolved Inorganic N' , ' [mmol/m3]' , tracers% work% tra_advhoriz_LO(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1132+
1133+ ! vertical advection
1134+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_ver_adv' , ' Vertical advection part of dissolved Inorganic N' , ' [mmol/m3/s]' , tracers% work% tra_advvert(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1135+
1136+ ! vertical advection LO
1137+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_lo_ver_adv' , ' LO Vertical advection part of dissolved Inorganic N' , ' [mmol/m3]' , tracers% work% tra_advvert_LO(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1138+
1139+ ! horizontal diffusion
1140+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_tra_diff_part_hor_redi' , ' Horizontal diffusion of dissolved Inorganic N (includes Redi diffusivity if Redi=.true.)' , ' [mmol/m3/s]' , tracers% work% tra_diff_part_hor_redi(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1141+
1142+ if (.not. tracers% data (j)% i_vert_diff) then
1143+ ! vertical diffusion (Explicit)
1144+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_tra_diff_part_ver_expl' , ' Vertical diffusion of dissolved Inorganic N (Explicit)' , ' [mmol/m3/s]' , tracers% work% tra_diff_part_ver_expl(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1145+ end if
1146+
1147+ ! projection of horizontal Redi diffussivity onto vertical
1148+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_tra_diff_part_ver_redi_expl' , ' Projection of horizontal Redi diffussivity onto vertical for dissolved Inorganic N (Explicit)' , ' [mmol/m3/s]' , tracers% work% tra_diff_part_ver_redi_expl(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1149+
1150+ ! vertical diffusion (Implicit)
1151+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_tra_diff_part_ver_impl' , ' Vertical diffusion of dissolved Inorganic N (Implicit)' , ' [mmol/m3/s]' , tracers% work% tra_diff_part_ver_impl(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1152+
1153+ ! recom_sms
1154+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIN_recom_sms' , ' Recom SMS' , ' [mmol/m3/s]' , tracers% work% tra_recom_sms(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1155+ endif
1156+
11141157 else if (tracers% data (j)% ID== 1002 ) then
11151158 if (use_REcoM) then
11161159 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIC' , ' Dissolved Inorganic C' , ' [mmol/m3]' , tracers% data (j)% values(:,:), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
@@ -1119,9 +1162,15 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
11191162 ! horizontal advection
11201163 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIC_hor_adv' , ' Horizontal advection part of dissolved Inorganic C' , ' [mmol/m3/s]' , tracers% work% tra_advhoriz(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
11211164
1165+ ! horizontal advection LO
1166+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIC_lo_hor_adv' , ' LO Horizontal advection part of dissolved Inorganic C' , ' [mmol/m3]' , tracers% work% tra_advhoriz_LO(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1167+
11221168 ! vertical advection
11231169 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIC_ver_adv' , ' Vertical advection part of dissolved Inorganic C' , ' [mmol/m3/s]' , tracers% work% tra_advvert(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
11241170
1171+ ! vertical advection LO
1172+ call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIC_lo_ver_adv' , ' LO Vertical advection part of dissolved Inorganic C' , ' [mmol/m3]' , tracers% work% tra_advvert_LO(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1173+
11251174 ! horizontal diffusion
11261175 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIC_tra_diff_part_hor_redi' , ' Horizontal diffusion of dissolved Inorganic C (includes Redi diffusivity if Redi=.true.)' , ' [mmol/m3/s]' , tracers% work% tra_diff_part_hor_redi(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
11271176
@@ -1139,7 +1188,6 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
11391188 ! recom_sms
11401189 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DIC_recom_sms' , ' Recom SMS' , ' [mmol/m3/s]' , tracers% work% tra_recom_sms(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
11411190 end if
1142-
11431191 endif
11441192
11451193 else if (tracers% data (j)% ID== 1003 ) then
@@ -1149,8 +1197,10 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
11491197 if (tracers% data (j)% ltra_diag) then ! OG - tra_diag
11501198 ! horizontal advection
11511199 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' Alk_hor_adv' , ' Horizontal advection part of Total Alkalinity' , ' [mmol/m3]' , tracers% work% tra_advhoriz(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1152- ! horizontal advection LO
1200+
1201+ ! horizontal advection LO
11531202 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' Alk_lo_hor_adv' , ' LO Horizontal advection part of Total Alkalinity' , ' [mmol/m3]' , tracers% work% tra_advhoriz_LO(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1203+
11541204 ! vertical advection
11551205 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' Alk_ver_adv' , ' Vertical advection part of Total Alkalinity' , ' [mmol/m3]' , tracers% work% tra_advvert(:,:,j), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
11561206
@@ -1546,7 +1596,7 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
15461596 endif
15471597
15481598 ! =====================================================================
1549- ! Tracer IDs 1035-1036 : Only in FULL model configuration
1599+ ! Tracer IDs 1035-1037 : Only in FULL model configuration
15501600 ! These are Microzooplankton tracers
15511601 ! =====================================================================
15521602 else if (tracers% data (j)% ID== 1035 ) then
@@ -1567,14 +1617,14 @@ subroutine ini_mean_io(ice, dynamics, tracers, partit, mesh)
15671617 endif
15681618
15691619 ! =====================================================================
1570- ! Tracer ID 1037 : Only in FULL model configuration with rivers
1620+ ! Tracer ID 1038 : Only in FULL model configuration with rivers
15711621 ! This is Terrestrial DOC
15721622 ! =====================================================================
1573- else if (tracers% data (j)% ID== 1037 ) then
1623+ else if (tracers% data (j)% ID== 1038 ) then
15741624 if (use_REcoM .and. enable_coccos .and. enable_3zoo2det .and. useRivers) then
15751625 ! Full model with rivers: This is Terrestrial DOC
15761626 call def_stream((/ nl-1 , nod2D/ ), (/ nl-1 , myDim_nod2D/ ), ' DOCt' , ' Terrestrial Dissolved Organic Carbon' , ' [mmol/m3]' , tracers% data (j)% values(:,:), io_list(i)% freq, io_list(i)% unit, io_list(i)% precision, partit, mesh)
1577- endif
1627+ endif
15781628
15791629 else
15801630#endif
0 commit comments