New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
trcnam_medusa.F90 in branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA – NEMO

source: branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90 @ 7224

Last change on this file since 7224 was 7224, checked in by jpalmier, 7 years ago

JPALM --14-11-2015 -- add MEDUSA CMIP6 diags

File size: 87.6 KB
RevLine 
[5726]1MODULE trcnam_medusa
2   !!======================================================================
3   !!                      ***  MODULE trcnam_medusa  ***
4   !! TOP :   initialisation of some run parameters for MEDUSA bio-model
5   !!======================================================================
6   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
7   !!              -   !  2008-08  (K. Popova) adaptation for MEDUSA
8   !!              -   !  2008-11  (A. Yool) continuing adaptation for MEDUSA
9   !!              -   !  2010-03  (A. Yool) updated for branch inclusion
10   !!              -   !  2011-04  (A. Yool) updated for ROAM project
11   !!              -   !  2013-05  (A. Yool) renamed (from trclsm) for v3.5
[7224]12   !!              -   !  2015-11  (J. Palmieri) added iom_use for diags
13   !!              -   !  2016-11  (A. Yool) updated diags for CMIP6
[5726]14   !!----------------------------------------------------------------------
15#if defined key_medusa
16   !!----------------------------------------------------------------------
17   !!   'key_medusa'   :                                       MEDUSA model
18   !!----------------------------------------------------------------------
19   !! trc_nam_medusa      : MEDUSA model initialisation
20   !!----------------------------------------------------------------------
21   USE oce_trc         ! Ocean variables
22   USE par_trc         ! TOP parameters
23   USE trc             ! TOP variables
24   USE sms_medusa      ! sms trends
25   USE iom             ! I/O manager
[5937]26   !!USE trc_nam_dia     ! JPALM 13-11-2015 -- if iom_use for diag
[5726]27
28   !! AXY (04/02/14): necessary to find NaNs on HECTOR
29   USE, INTRINSIC :: ieee_arithmetic 
30
31   IMPLICIT NONE
32   PRIVATE
33
[5937]34   PUBLIC   trc_nam_medusa       ! called by trcnam.F90 module
35   PUBLIC   trc_nam_iom_medusa   ! called by trcnam.F90 module
[5726]36
37   !!* Substitution
38#  include "domzgr_substitute.h90"
39   !!----------------------------------------------------------------------
40   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
41   !! $Id$
42   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
43   !!----------------------------------------------------------------------
44
45CONTAINS
46
47   SUBROUTINE trc_nam_medusa
48      !!----------------------------------------------------------------------
49      !!                     ***  trc_nam_medusa  *** 
50      !!
51      !! ** Purpose :   read MEDUSA namelist
52      !!
53      !! ** input   :   file 'namelist.trc.sms' containing the following
54      !!             namelist: natbio, natopt, and natdbi ("key_trc_diabio")
55      !!
56      !! ekp: namelist nabio contains ALL parameters of the ecosystem
57      !!      point sourses and sinks PLUS sediment exchange
58      !!      dia_bio - used by Lobster to output all point terms
59      !!                (sourses and sinks of bio)
60      !!      dia_add - additional diagnostics for biology such as
61      !!                primary production (2d depth integrated field or 3d)
62      !!----------------------------------------------------------------------
63      !!
64      INTEGER            :: ji,jj,jk
65      REAL(wp)           :: fthk, fdep, fdep1
66      REAL(wp)           :: q1, q2, q3
67      !
68      NAMELIST/natbio/ xxi,xaln,xald,jphy,xvpn,xvpd,          &
[6715]69      &    xsin0,xnsi0,xuif,jliebig, jq10,                    &
[5726]70      &    xthetam,xthetamd,xnln,xnld,xsld,xfln,xfld,         &
71      &  xgmi,xgme,xkmi,xkme,xphi,xbetan,xbetac,xkc,          &
72      &    xpmipn,xpmid,xpmepn,xpmepd,xpmezmi,xpmed,          &
73      &  xmetapn,xmetapd,xmetazmi,xmetazme,                   &
74      &  jmpn,xmpn,xkphn,jmpd,xmpd,xkphd,jmzmi,xmzmi,xkzmi,   &
75      &    jmzme,xmzme,xkzme,jmd,jsfd,xmd,xmdc,               &
76      &  xthetapn,xthetapd,xthetazmi,xthetazme,xthetad,       &
77      &    xrfn,xrsn,vsed,xhr,                                &
78      &  jiron,xfe_mass,xfe_sol,xfe_sed,xLgT,xk_FeL,xk_sc_Fe, &
79      &  jexport,jfdfate,jrratio,jocalccd,xridg_r0,           &
80      &    xfdfrac1,xfdfrac2,xfdfrac3,                        &
81      &    xcaco3a,xcaco3b,xmassc,xmassca,xmasssi,xprotca,    &
82      &    xprotsi,xfastc,xfastca,xfastsi,                    &
83      &  jorgben,jinorgben,xsedn,xsedfe,xsedsi,xsedc,xsedca,  &
84      &    xburial,                                           &
85      &  jriver_n,jriver_si,jriver_c,jriver_alk,jriver_dep,   &
86      &    friver_dep,                                        &
87      &  xsdiss,                                              &
88      &  vsed,xhr,                                            &
[5841]89      &  sedlam,sedlostpoc,jpkb,jdms,jdms_input,jdms_model
[5726]90#if defined key_roam
91      NAMELIST/natroam/ xthetaphy,xthetazoo,xthetanit,        &
92      &    xthetarem,xo2min,                                  &
93      &    f3_pH,f3_h2co3,f3_hco3,f3_co3,f3_omcal,f3_omarg,   &
94      &    f2_ccd_cal,f2_ccd_arg
95#endif
96      NAMELIST/natopt/xkg0,xkr0,xkgp,xkrp,xlg,xlr,rpig
97      INTEGER :: jl, jn
98      INTEGER :: ios                 ! Local integer output status for namelist read
99      TYPE(DIAG), DIMENSION(jp_medusa_2d)  :: meddia2d
100      TYPE(DIAG), DIMENSION(jp_medusa_3d)  :: meddia3d
101      TYPE(DIAG), DIMENSION(jp_medusa_trd) :: meddiabio
102      CHARACTER(LEN=32)   ::   clname
103      !!
104      NAMELIST/nammeddia/ meddia3d, meddia2d     ! additional diagnostics
105
106      !!----------------------------------------------------------------------
107
108      IF(lwp) WRITE(numout,*)
109      clname = 'namelist_medusa'
110      IF(lwp) WRITE(numout,*) ' trc_nam_medusa: read MEDUSA namelist'
111      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
112# if defined key_debug_medusa
113      CALL flush(numout)
114# endif
115
116
117      CALL ctl_opn( numnatp_ref, TRIM( clname )//'_ref', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
118      CALL ctl_opn( numnatp_cfg, TRIM( clname )//'_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
119      IF(lwm) CALL ctl_opn( numonp     , 'output.namelist.pis' , 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
120
121# if defined key_debug_medusa
122      CALL flush(numout)
123      IF (lwp) write (numout,*) '------------------------------'
124      IF (lwp) write (numout,*) 'Jpalm - debug'
125      IF (lwp) write (numout,*) 'open namelist_medusa -- OK'
126      IF (lwp) write (numout,*) 'Now, read namilists inside :'
127      IF (lwp) write (numout,*) ' '
128# endif
129      !
130# if defined key_debug_medusa
131      CALL flush(numout)
132# endif
133      !
134# if defined key_debug_medusa
135      IF (lwp) write (numout,*) '------------------------------'
136      IF (lwp) write (numout,*) 'Jpalm - debug'
137      IF (lwp) write (numout,*) 'Just before reading namelist_medusa :: nammeddia'
138      IF (lwp) write (numout,*) ' '
139      CALL flush(numout)
140# endif
141
142     IF( ( .NOT.lk_iomput .AND. ln_diatrc ) .OR. ( ln_diatrc .AND. lk_medusa ) ) THEN
143         !
[5841]144         ! Namelist nammeddia
[5726]145         ! -------------------
[5841]146         REWIND( numnatp_ref )              ! Namelist nammeddia in reference namelist : MEDUSA diagnostics
[5726]147         READ  ( numnatp_ref, nammeddia, IOSTAT = ios, ERR = 901)
148901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nammeddia in reference namelist', lwp )
149
[5841]150         REWIND( numnatp_cfg )              ! Namelist nammeddia in configuration namelist : MEDUSA diagnostics
[5726]151         READ  ( numnatp_cfg, nammeddia, IOSTAT = ios, ERR = 902 )
152902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nammeddia in configuration namelist', lwp )
153         IF(lwm) WRITE ( numonp, nammeddia )
154
155# if defined key_debug_medusa
156         IF (lwp) write (numout,*) '------------------------------'
157         IF (lwp) write (numout,*) 'Jpalm - debug'
158         IF (lwp) write (numout,*) 'reading namelist_medusa :: nammeddia OK'
159         IF (lwp) write (numout,*) 'Check number of variable in nammeddia:'
160         IF (lwp) write (numout,*) 'jp_medusa_2d: ',jp_medusa_2d ,'jp_medusa_3d: ',jp_medusa_3d
161         IF (lwp) write (numout,*) ' '
162         CALL flush(numout)
163# endif
164         DO jl = 1, jp_medusa_2d
165            jn = jp_msa0_2d + jl - 1
166# if defined key_debug_medusa
167            IF (lwp) write (numout,*) 'Check what is readden in nammeddia: -- 2D'
168            IF (lwp) write (numout,*) jl,'meddia2d-sname: ',meddia2d(jl)%sname 
169            IF (lwp) write (numout,*) jl,'meddia2d-lname: ',meddia2d(jl)%lname 
170            IF (lwp) write (numout,*) jl,'meddia2d-units: ',meddia2d(jl)%units 
171            CALL flush(numout)
172# endif
173            ctrc2d(jn) = meddia2d(jl)%sname
174            ctrc2l(jn) = meddia2d(jl)%lname
175            ctrc2u(jn) = meddia2d(jl)%units
176         END DO
177
178         DO jl = 1, jp_medusa_3d
179            jn = jp_msa0_3d + jl - 1
180# if defined key_debug_medusa
181            IF (lwp) write (numout,*) 'Check what is readden in nammeddia: -- 3D'
182            IF (lwp) write (numout,*) jl,'meddia3d-sname: ',meddia3d(jl)%sname 
183            IF (lwp) write (numout,*) jl,'meddia3d-lname: ',meddia3d(jl)%lname
184            IF (lwp) write (numout,*) jl,'meddia3d-units: ',meddia3d(jl)%units
185            CALL flush(numout)
186# endif
187            ctrc3d(jn) = meddia3d(jl)%sname
188            ctrc3l(jn) = meddia3d(jl)%lname
189            ctrc3u(jn) = meddia3d(jl)%units
190         END DO
191
192         IF(lwp) THEN                   ! control print
193# if defined key_debug_medusa
194            IF (lwp) write (numout,*) '------------------------------'
195            IF (lwp) write (numout,*) 'Jpalm - debug'
196            IF (lwp) write (numout,*) 'Var name assignation OK'
197            IF (lwp) write (numout,*) 'next check var names'
198            IF (lwp) write (numout,*) ' '
199            CALL flush(numout)
200# endif
201            WRITE(numout,*)
202            WRITE(numout,*) ' Namelist : natadd'
203            DO jl = 1, jp_medusa_3d
204               jn = jp_msa0_3d + jl - 1
205               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
206                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
207            END DO
208            WRITE(numout,*) ' '
209
210            DO jl = 1, jp_medusa_2d
211               jn = jp_msa0_2d + jl - 1
212               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
213                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
214            END DO
215            WRITE(numout,*) ' '
216         ENDIF
217         !
218      ENDIF   
219         !
220# if defined key_debug_medusa
221            CALL flush(numout)
222# endif
223
224      ! 1.4 namelist natbio : biological parameters
225      ! -------------------------------------------
226     
227      xxi         = 0.
228      xaln        = 0.
229      xald        = 0.
230      jphy        = 0
231      xvpn        = 0.
232      xvpd        = 0.
233      xthetam     = 0.
234      xthetamd    = 0.
235!!
236      xsin0       = 0.
237      xnsi0       = 0.
238      xuif        = 0.
239!!
240      jliebig     = 0
241      xnln        = 0.
242      xnld        = 0.
243      xsld        = 0.
244      xfln        = 0.
245      xfld        = 0.
246!!
247      xgmi        = 0.
248      xgme        = 0.
249      xkmi        = 0.
250      xkme        = 0.
251      xphi    = 0.
252      xbetan      = 0.
253      xbetac      = 0.
254      xkc         = 0.
255      xpmipn      = 0.
256      xpmid       = 0.
257      xpmepn      = 0.
258      xpmepd      = 0.
259      xpmezmi     = 0.
260      xpmed       = 0.
261!!
262      xmetapn     = 0.
263      xmetapd     = 0.
264      xmetazmi    = 0.
265      xmetazme    = 0.
266!!
267      jmpn        = 0
268      xmpn        = 0.
269      xkphn       = 0.
270      jmpd        = 0
271      xmpd        = 0.
272      xkphd       = 0.
273      jmzmi       = 0
274      xmzmi       = 0.
275      xkzmi       = 0.
276      jmzme       = 0
277      xmzme       = 0.
278      xkzme       = 0.
279!!
280      jmd         = 0
281      jsfd        = 0
282      xmd         = 0.
283      xmdc        = 0.
284!!
285      xthetapn    = 0.
286      xthetapd    = 0.
287      xthetazmi   = 0.
288      xthetazme   = 0.
289      xthetad     = 0.
290      xrfn        = 0.
291      xrsn        = 0.  !: (NOT USED HERE; RETAINED FOR LOBSTER)
292!!
293      jiron       = 0
294      xfe_mass    = 0.
295      xfe_sol     = 0.
296      xfe_sed     = 0.
297      xLgT        = 0.
298      xk_FeL     = 0.
299      xk_sc_Fe    = 0.
300!!
301      jexport     = 0
302      jfdfate     = 0
303      jrratio     = 0
304      jocalccd    = 0
305      xridg_r0    = 0.
306      xfdfrac1   = 0.
307      xfdfrac2   = 0.
308      xfdfrac3   = 0.
309      xcaco3a    = 0.
310      xcaco3b    = 0.
311      xmassc     = 0.
312      xmassca    = 0.
313      xmasssi    = 0.
314      xprotca    = 0.
315      xprotsi    = 0.
316      xfastc     = 0.
317      xfastca    = 0.
318      xfastsi    = 0.
319!!
320      jorgben     = 0
321      jinorgben   = 0
322      xsedn       = 0.
323      xsedfe      = 0.
324      xsedsi      = 0.
325      xsedc       = 0.
326      xsedca      = 0.
327      xburial     = 0.
328!!
329      jriver_n    = 0
330      jriver_si   = 0
331      jriver_c    = 0
332      jriver_alk  = 0
333      jriver_dep  = 1
334!!
335      xsdiss     = 0.
336!!
337      vsed        = 0.
338      xhr         = 0.
339!!
340      sedlam     = 0.
341      sedlostpoc  = 0.
342      jpkb    = 0.
343      jdms        = 0
[5841]344      jdms_input  = 0
345      jdms_input  = 3
[5726]346           
347      !REWIND(numnatm)
348      !READ(numnatm,natbio)
349         ! Namelist natbio
350         ! -------------------
[5841]351         REWIND( numnatp_ref )              ! Namelist natbio in reference namelist : MEDUSA diagnostics
[5736]352         READ  ( numnatp_ref, natbio, IOSTAT = ios, ERR = 903)
[5841]353903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natbio in reference namelist', lwp )
[5726]354
[5841]355         REWIND( numnatp_cfg )              ! Namelist natbio in configuration namelist : MEDUSA diagnostics
[5736]356         READ  ( numnatp_cfg, natbio, IOSTAT = ios, ERR = 904 )
[5841]357904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natbio in configuration namelist', lwp )
[5726]358         IF(lwm) WRITE ( numonp, natbio )
359
360!! Primary production and chl related quantities
361!!       xxi         :  conversion factor from gC to mmolN
362!!       xaln        :  Chl-a specific initial slope of P-I curve for non-diatoms
363!!       xald        :  Chl-a specific initial slope of P-I curve for diatoms
364!!       jphy        :  phytoplankton T-dependent growth switch
365!!       xvpn        :  maximum growth rate for non-diatoms
366!!       xvpd        :  maximum growth rate for diatoms
367!!       xthetam     :  maximum Chl to C ratio for non-diatoms     
368!!       xthetamd    :  maximum Chl to C ratio for diatoms     
369!!
370!! Diatom silicon parameters
371!!       xsin0       :  minimum diatom Si:N ratio
372!!       xnsi0       :  minimum diatom N:Si ratio
373!!       xuif        :  hypothetical growth ratio at infinite Si:N ratio
374!!
375!! Nutrient limitation
376!!       jliebig     :  Liebig nutrient uptake switch
377!!       xnln        :  half-sat constant for DIN uptake by non-diatoms
378!!       xnld        :  half-sat constant for DIN uptake by diatoms
379!!       xsl         :  half-sat constant for Si uptake by diatoms
380!!       xfld        :  half-sat constant for Fe uptake by diatoms 
381!!       xfln        :  half-sat constant for Fe uptake by non-datoms
382!!
383!! Grazing
384!!       xgmi        :  microzoo maximum growth rate
385!!       xgme        :  mesozoo maximum growth rate
386!!       xkmi        :  microzoo grazing half-sat parameter
387!!       xkme        :  mesozoo grazing half-sat parameter
388!!       xphi        :  micro/mesozoo grazing inefficiency
389!!       xbetan      :  micro/mesozoo N assimilation efficiency
390!!       xbetac      :  micro/mesozoo C assimilation efficiency
391!!       xkc         :  micro/mesozoo net C growth efficiency
392!!       xpmipn      :  grazing preference of microzoo for non-diatoms
393!!       xpmid       :  grazing preference of microzoo for diatoms
394!!       xpmepn      :  grazing preference of mesozoo for non-diatoms
395!!       xpmepd      :  grazing preference of mesozoo for diatoms
396!!       xpmezmi     :  grazing preference of mesozoo for microzoo
397!!       xpmed       :  grazing preference of mesozoo for detritus
398!!
399!! Metabolic losses
400!!       xmetapn     :  non-diatom metabolic loss rate
401!!       xmetapd     :  diatom     metabolic loss rate
402!!       xmetazmi    :  microzoo   metabolic loss rate
403!!       xmetazme    :  mesozoo    metabolic loss rate
404!!
405!! Mortality/Remineralisation
406!!       jmpn        :  non-diatom mortality functional form
407!!       xmpn        :  non-diatom mortality rate
408!!       xkphn       :  non-diatom mortality half-sat constant
409!!       jmpd        :  diatom     mortality functional form
410!!       xmpd        :  diatom mortality rate
411!!       xkphd       :  diatom mortality half-sat constant
412!!       jmzmi       :  microzoo   mortality functional form
413!!       xmzmi       :  microzoo mortality rate
414!!       xkzmi       :  microzoo mortality half-sat constant
415!!       jmzme       :  mesozoo    mortality functional form
416!!       xmzme       :  mesozoo mortality rate
417!!       xkzme       :  mesozoo mortality half-sat constant
418!!
419!! Remineralisation
420!!       jmd         :  detritus T-dependent remineralisation switch
421!!       jsfd        :  accelerate seafloor detritus remin. switch
422!!       xmd         :  detrital nitrogen remineralisation rate
423!!       xmdc        :  detrital carbon remineralisation rate
424!!
425!! Stochiometric ratios
426!!       xthetapn    :  non-diatom C:N ratio
427!!       xthetapd    :  diatom C:N ratio
428!!       xthetazmi   :  microzoo C:N ratio
429!!       xthetazme   :  mesozoo C:N ratio
430!!       xthetad     :  detritus C:N ratio
431!!       xrfn        :  phytoplankton Fe:N ratio
432!!  xrsn        :  diatom Si:N ratio (*NOT* used)
433!!
434!! Iron parameters
435!!       jiron       :  iron scavenging submodel switch
436!!       xfe_mass    :  iron atomic mass
437!!  xfe_sol     :  aeolian iron solubility
438!!  xfe_sed     :  sediment iron input
439!!  xLgT      :  total ligand concentration (umol/m3)
440!!  xk_FeL       :  dissociation constant for (Fe + L)
441!!  xk_sc_Fe    :  scavenging rate of "free" iron
442!! 
443!! Fast-sinking detritus parameters
444!!       jexport     :  fast detritus remineralisation switch
445!!       jfdfate     :  fate of fast detritus at seafloor switch
446!!       jrratio     :  rain ratio switch
447!!       jocalccd    :  CCD switch
448!!       xridg_r0    :  Ridgwell rain ratio coefficient
449!!       xfdfrac1    :  fast-sinking fraction of diatom nat. mort. losses
450!!       xfdfrac2    :  fast-sinking fraction of meszooplankton mort. losses
451!!       xfdfrac3    :  fast-sinking fraction of diatom silicon grazing losses
452!!       xcaco3a     :  polar (high latitude) CaCO3 fraction
453!!       xcaco3b     :  equatorial (low latitude) CaCO3 fraction
454!!       xmassc      :  organic C mass:mole ratio, C106 H175 O40 N16 P1
455!!       xmassca     :  calcium carbonate mass:mole ratio, CaCO3
456!!       xmasssi     :  biogenic silicon mass:mole ratio, (H2SiO3)n
457!!       xprotca     :  calcium carbonate protection ratio
458!!       xprotsi     :  biogenic silicon protection ratio
459!!       xfastc      :  organic C remineralisation length scale
460!!       xfastca     :  calcium carbonate dissolution length scale
461!!       xfastsi     :  biogenic silicon dissolution length scale
462!!
463!! Benthic
464!!       jorgben     :  does   organic detritus go to the benthos?
465!!       jinorgben   :  does inorganic detritus go to the benthos?
466!!       xsedn       :  organic   nitrogen sediment remineralisation rate
467!!       xsedfe      :  organic   iron     sediment remineralisation rate
468!!       xsedsi      :  inorganic silicon  sediment dissolution      rate
469!!       xsedc       :  organic   carbon   sediment remineralisation rate
470!!       xsedca      :  inorganic carbon   sediment dissolution      rate
471!!       xburial     :  burial rate of seafloor detritus
472!!
473!! Riverine inputs
474!!       jriver_n    :  riverine N          input?
475!!       jriver_si   :  riverine Si         input?
476!!       jriver_c    :  riverine C          input?
477!!       jriver_alk  :  riverine alkalinity input?
478!!       jriver_dep  :  depth of riverine   input?
479!!
480!! Miscellaneous
481!!       xsdiss      :  diatom frustule dissolution rate
482!!
483!! Gravitational sinking     
484!!       vsed        :  detritus gravitational sinking rate
485!!       xhr         :  coeff for Martin's remineralisation profile
486!!
487!! Additional parameters
488!!       sedlam      :  time coeff of POC in sediments
489!!      sedlostpoc   :  sediment geol loss for POC
490!!       jpkb        :  vertical layer for diagnostic of the vertical flux
491!!                      NOTE that in LOBSTER it is a first vertical layers where
492!!                      biology is active 
493!!
494!! UKESM1 - new diagnostics  !! Jpalm
495!!       jdms        :  include dms diagnostics
[5841]496!!  jdms_input  :  use instant (0) or diel-avg (1) inputs
497!!       jdms_model  :  choice of DMS model passed to atmosphere
498!!                      1 = ANDR, 2 = SIMO, 3 = ARAN, 4 = HALL
[5726]499!!
500      IF(lwp) THEN
501!!
502!! AXY (08/11/13): compilation key notification
503         WRITE(numout,*) '=== Compilation keys'
504#if defined key_roam
505         WRITE(numout,*)     &
506         &   ' key_roam                                                               = ACTIVE'
507#else
508         WRITE(numout,*)     &
509         &   ' key_roam                                                               = INACTIVE'
510#endif       
511#if defined key_axy_carbchem
512         WRITE(numout,*)     &
513         &   ' key_axy_carbchem                                                       = ACTIVE'
514#else
515         WRITE(numout,*)     &
516         &   ' key_axy_carbchem                                                       = INACTIVE'
517#endif       
[5841]518#if defined key_mocsy
519         WRITE(numout,*)     &
520         &   ' key_mocsy                                                              = ACTIVE'
521#else
522         WRITE(numout,*)     &
523         &   ' key_mocsy                                                              = INACTIVE'
524#endif       
525#if defined key_avgqsr_medusa
526         WRITE(numout,*)     &
527         &   ' key_avgqsr_medusa                                                      = ACTIVE'
528#else
529         WRITE(numout,*)     &
530         &   ' key_avgqsr_medusa                                                      = INACTIVE'
531#endif       
[5726]532#if defined key_bs_axy_zforce
533         WRITE(numout,*)     &
534         &   ' key_bs_axy_zforce                                                      = ACTIVE'
535#else
536         WRITE(numout,*)     &
537         &   ' key_bs_axy_zforce                                                      = INACTIVE'
538#endif       
539#if defined key_bs_axy_yrlen
540         WRITE(numout,*)     &
541         &   ' key_bs_axy_yrlen                                                       = ACTIVE'
542#else
543         WRITE(numout,*)     &
544         &   ' key_bs_axy_yrlen                                                       = INACTIVE'
545#endif       
546#if defined key_deep_fe_fix
547         WRITE(numout,*)     &
548         &   ' key_deep_fe_fix                                                        = ACTIVE'
549#else
550         WRITE(numout,*)     &
551         &   ' key_deep_fe_fix                                                        = INACTIVE'
552#endif       
553#if defined key_axy_nancheck
554         WRITE(numout,*)     &
555         &   ' key_axy_nancheck                                                       = ACTIVE'
556#else
557         WRITE(numout,*)     &
558         &   ' key_axy_nancheck                                                       = INACTIVE'
559#endif       
560# if defined key_axy_pi_co2
561         WRITE(numout,*)     &
562         &   ' key_axy_pi_co2                                                         = ACTIVE'
563#else
564         WRITE(numout,*)     &
565         &   ' key_axy_pi_co2                                                         = INACTIVE'
566# endif
[5841]567# if defined key_debug_medusa
568         WRITE(numout,*)     &
569         &   ' key_debug_medusa                                                       = ACTIVE'
570#else
571         WRITE(numout,*)     &
572         &   ' key_debug_medusa                                                       = INACTIVE'
573# endif
[5726]574         WRITE(numout,*) ' '
575
576         WRITE(numout,*) 'natbio'
577         WRITE(numout,*) ' '
578!!
579!! Primary production and chl related quantities
580         WRITE(numout,*) '=== Primary production'
581         WRITE(numout,*)     &
582         &   ' conversion factor from gC to mmolN,                        xxi         =', xxi
583         WRITE(numout,*)     &
584         &   ' Chl-a specific initial slope of P-I curve for non-diatoms, xaln        = ', xaln
585         WRITE(numout,*)     &
586         &   ' Chl-a specific initial slope of P-I curve for diatoms,     xald        = ', xald
587         if (jphy.eq.1) then
588            WRITE(numout,*) &
589            &   ' phytoplankton growth is *temperature-dependent*            jphy        = ', jphy
[6715]590         elseif (jphy.eq.2) then
591            WRITE(numout,*) &
592            &   ' phytoplankton growth is *temperature-dependent(Q10)*       jphy        = ', jphy
[5726]593         elseif (jphy.eq.0) then
594            WRITE(numout,*) &
595            &   ' phytoplankton growth is *temperature-independent*          jphy        = ', jphy
596         endif
597         WRITE(numout,*)     &
598         &   ' maximum growth rate for non-diatoms,                       xvpn        = ', xvpn
599         WRITE(numout,*)     &
600         &   ' maximum growth rate for diatoms,                           xvpn        = ', xvpd
601         WRITE(numout,*)     &
602         &   ' maximum Chl to C ratio for non-diatoms,                    xthetam     = ', xthetam
603         WRITE(numout,*)     &
604         &   ' maximum Chl to C ratio for diatoms,                        xthetamd    = ', xthetamd
[6715]605         WRITE(numout,*)     &
606         &   ' specific Q10 value (jphy==2),                                  jq10    = ', jq10
[5726]607!!
608!! Diatom silicon parameters
609         WRITE(numout,*) '=== Diatom silicon parameters'
610         WRITE(numout,*)     &
611         &   ' minimum diatom Si:N ratio,                                 xsin0       = ', xsin0
612         WRITE(numout,*)     &
613         &   ' minimum diatom N:Si ratio,                                 xnsi0       = ', xnsi0
614         WRITE(numout,*)     &
615         &   ' hypothetical growth ratio at infinite Si:N ratio,          xuif        = ', xuif
616!!
617!! Nutrient limitation
618         WRITE(numout,*) '=== Nutrient limitation'
619         if (jliebig.eq.1) then
620            WRITE(numout,*) &
621            &   ' nutrient uptake is a Liebig Law (= most limiting) function jliebig     = ', jliebig
622         elseif (jliebig.eq.0) then
623            WRITE(numout,*) &
624            &   ' nutrient uptake is a multiplicative function               jliebig     = ', jliebig
625         endif
626         WRITE(numout,*)     &
627         &   ' half-sat constant for DIN uptake by non-diatoms,           xnln        = ', xnln
628         WRITE(numout,*)     &
629         &   ' half-sat constant for DIN uptake by diatoms,               xnld        = ', xnld
630         WRITE(numout,*)     &
631         &   ' half-sat constant for Si uptake by diatoms,                xsld        = ', xsld
632         WRITE(numout,*)     &
633         &   ' half-sat constant for Fe uptake by non-diatoms,            xfln        = ', xfln
634         WRITE(numout,*)     &
635         &   ' half-sat constant for Fe uptake by diatoms,                xfld        = ', xfld
636!!
637!! Grazing
638         WRITE(numout,*) '=== Zooplankton grazing'
639         WRITE(numout,*)     &
640         &   ' microzoo maximum growth rate,                              xgmi        = ', xgmi
641         WRITE(numout,*)     &
642         &   ' mesozoo maximum growth rate,                               xgme        = ', xgme
643         WRITE(numout,*)     &
644         &   ' microzoo grazing half-sat parameter,                       xkmi        = ', xkmi
645         WRITE(numout,*)     &
646         &   ' mesozoo grazing half-sat parameter,                        xkme        = ', xkme
647         WRITE(numout,*)     &
648         &   ' micro/mesozoo grazing inefficiency,                        xphi        = ', xphi
649         WRITE(numout,*)     &
650         &   ' micro/mesozoo N assimilation efficiency,                   xbetan      = ', xbetan
651         WRITE(numout,*)     &
652         &   ' micro/mesozoo C assimilation efficiency,                   xbetac      = ', xbetan
653         WRITE(numout,*)     &
654         &   ' micro/mesozoo net C growth efficiency,                     xkc         = ', xkc
655         WRITE(numout,*)     &
656         &   ' grazing preference of microzoo for non-diatoms,            xpmipn      = ', xpmipn
657         WRITE(numout,*)     &
658         &   ' grazing preference of microzoo for detritus,               xpmid       = ', xpmid
659         WRITE(numout,*)     &
660         &   ' grazing preference of mesozoo for non-diatoms,             xpmepn      = ', xpmepn
661         WRITE(numout,*)     &
662         &   ' grazing preference of mesozoo for diatoms,                 xpmepd      = ', xpmepd
663         WRITE(numout,*)     &
664         &   ' grazing preference of mesozoo for microzoo,                xpmezmi     = ', xpmezmi
665         WRITE(numout,*)     &
666         &   ' grazing preference of mesozoo for detritus,                xpmed       = ', xpmed
667!!
668!! Metabolic losses
669         WRITE(numout,*) '=== Metabolic losses'
670         WRITE(numout,*)     &
671         &   ' non-diatom metabolic loss rate,                            xmetapn     = ', xmetapn
672         WRITE(numout,*)     &
673         &   ' diatom     metabolic loss rate,                            xmetapd     = ', xmetapd
674         WRITE(numout,*)     &
675         &   ' microzoo   metabolic loss rate,                            xmetazmi    = ', xmetazmi
676         WRITE(numout,*)     &
677         &   ' mesozoo    metabolic loss rate,                            xmetazme    = ', xmetazme
678!!
679!! Mortality losses
680         WRITE(numout,*) '=== Mortality losses'
681         if (jmpn.eq.1) then
682            WRITE(numout,*)     &
683            &   ' non-diatom mortality functional form,            LINEAR    jmpn        = ', jmpn
684         elseif (jmpn.eq.2) then
685            WRITE(numout,*)     &
686            &   ' non-diatom mortality functional form,         QUADRATIC    jmpn        = ', jmpn
687         elseif (jmpn.eq.3) then
688            WRITE(numout,*)     &
689            &   ' non-diatom mortality functional form,        HYPERBOLIC    jmpn        = ', jmpn
690         elseif (jmpn.eq.4) then
691            WRITE(numout,*)     &
692            &   ' non-diatom mortality functional form,           SIGMOID    jmpn        = ', jmpn
693         endif
694         WRITE(numout,*)     &
695         &   ' non-diatom mortality rate,                                 xmpn        = ', xmpn
696         WRITE(numout,*)     &
697         &   ' non-diatom mortality half-sat constant                     xkphn       = ', xkphn
698         if (jmpd.eq.1) then
699            WRITE(numout,*)     &
700            &   ' diatom mortality functional form,                LINEAR    jmpd        = ', jmpd
701         elseif (jmpd.eq.2) then
702            WRITE(numout,*)     &
703            &   ' diatom mortality functional form,             QUADRATIC    jmpd        = ', jmpd
704         elseif (jmpd.eq.3) then
705            WRITE(numout,*)     &
706            &   ' diatom mortality functional form,            HYPERBOLIC    jmpd        = ', jmpd
707         elseif (jmpd.eq.4) then
708            WRITE(numout,*)     &
709            &   ' diatom mortality functional form,               SIGMOID    jmpd        = ', jmpd
710         endif
711         WRITE(numout,*)     &
712         &   ' diatom mortality rate,                                     xmpd        = ', xmpd
713         WRITE(numout,*)     &
714         &   ' diatom mortality half-sat constant                         xkphd       = ', xkphd
715         if (jmzmi.eq.1) then
716            WRITE(numout,*)     &
717            &   ' microzoo mortality functional form,              LINEAR    jmzmi       = ', jmzmi
718         elseif (jmzmi.eq.2) then
719            WRITE(numout,*)     &
720            &   ' microzoo mortality functional form,           QUADRATIC    jmzmi       = ', jmzmi
721         elseif (jmzmi.eq.3) then
722            WRITE(numout,*)     &
723            &   ' microzoo mortality functional form,          HYPERBOLIC    jmzmi       = ', jmzmi
724         elseif (jmzmi.eq.4) then
725            WRITE(numout,*)     &
726            &   ' microzoo mortality functional form,             SIGMOID    jmzmi       = ', jmzmi
727         endif
728         WRITE(numout,*)     &
729         &   ' microzoo mortality rate,                                   xmzmi       = ', xmzmi
730         WRITE(numout,*)     &
731         &   ' mesozoo mortality half-sat constant,                       xkzmi       = ', xkzmi
732         if (jmzme.eq.1) then
733            WRITE(numout,*)     &
734            &   ' mesozoo mortality functional form,               LINEAR    jmzme       = ', jmzme
735         elseif (jmzme.eq.2) then
736            WRITE(numout,*)     &
737            &   ' mesozoo mortality functional form,            QUADRATIC    jmzme       = ', jmzme
738         elseif (jmzme.eq.3) then
739            WRITE(numout,*)     &
740            &   ' mesozoo mortality functional form,           HYPERBOLIC    jmzme       = ', jmzme
741         elseif (jmzme.eq.4) then
742            WRITE(numout,*)     &
743            &   ' mesozoo mortality functional form,              SIGMOID    jmzme       = ', jmzme
744         endif
745         WRITE(numout,*)     &
746         &   ' mesozoo mortality rate,                                    xmzme       = ', xmzme
747         WRITE(numout,*)     &
748         &   ' mesozoo mortality half-sat constant,                       xkzme       = ', xkzme
749!!
750!! Remineralisation
751         WRITE(numout,*) '=== Remineralisation'
752         if (jmd.eq.1) then
753            WRITE(numout,*) &
754            &   ' detritus remineralisation is *temperature-dependent*       jmd         = ', jmd
[6715]755         elseif (jmd.eq.2) then
756            WRITE(numout,*) &
757            &   ' detritus remineralisation is *temperature-dependent(Q10)*  jmd         = ', jmd
[5726]758         elseif (jmd.eq.0) then
759            WRITE(numout,*) &
760            &   ' detritus remineralisation is *temperature-independent*     jmd         = ', jmd
761         endif
762         if (jsfd.eq.1) then
763            WRITE(numout,*) &
764            &   ' detritus seafloor remineralisation is *accelerated*        jsfd        = ', jsfd
765         else
766            WRITE(numout,*) &
767            &   ' detritus seafloor remineralisation occurs at same rate     jsfd        = ', jsfd
768         endif
769         WRITE(numout,*)     &
770         &   ' detrital nitrogen remineralisation rate,                   xmd         = ', xmd
771         WRITE(numout,*)     &
772         &   ' detrital carbon remineralisation rate,                     xmdc        = ', xmdc
773!!
774!! Stochiometric ratios
775         WRITE(numout,*) '=== Stoichiometric ratios'
776         WRITE(numout,*)     &
777         &   ' non-diatom C:N ratio,                                      xthetapn    = ', xthetapn
778         WRITE(numout,*)     &
779         &   ' diatom C:N ratio,                                          xthetapd    = ', xthetapd
780         WRITE(numout,*)     &
781         &   ' microzoo C:N ratio,                                        xthetazmi   = ', xthetazmi
782         WRITE(numout,*)     &
783         &   ' mesozoo C:N ratio,                                         xthetazme   = ', xthetazme
784         WRITE(numout,*)     &
785         &   ' detritus C:N ratio,                                        xthetad     = ', xthetad
786         WRITE(numout,*)     &
787         &   ' phytoplankton Fe:N ratio,                                  xrfn        = ', xrfn
788         WRITE(numout,*)     &
789         &   ' diatom Si:N ratio,                                         xrsn        = ', xrsn
790!!   
791!! Iron parameters
792         WRITE(numout,*) '=== Iron parameters'
793         if (jiron.eq.1) then
794            WRITE(numout,*)     &
795            &   ' Dutkiewicz et al. (2005) iron scavenging                   jiron       = ', jiron
796         elseif (jiron.eq.2) then
797            WRITE(numout,*)     &
798            &   ' Moore et al. (2004) iron scavenging                        jiron       = ', jiron
799         elseif (jiron.eq.3) then
800            WRITE(numout,*)     &
801            &   ' Moore et al. (2008) iron scavenging                        jiron       = ', jiron
802         elseif (jiron.eq.4) then
803            WRITE(numout,*)     &
804            &   ' Galbraith et al. (2010) iron scavenging                    jiron       = ', jiron
805         else
806            WRITE(numout,*)     &
807            &   ' There is **no** iron scavenging                            jiron       = ', jiron
808         endif
809         WRITE(numout,*)     &
810         &   ' iron atomic mass,                                          xfe_mass    = ', xfe_mass
811         WRITE(numout,*)     &
812         &   ' aeolian iron solubility,                                   xfe_sol     = ', xfe_sol
813         WRITE(numout,*)     &
814         &   ' sediment iron input,                                       xfe_sed     = ', xfe_sed
815         WRITE(numout,*)     &
816         &   ' total ligand concentration (umol/m3),                      xLgT        = ', xLgT
817         WRITE(numout,*)     &
818         &   ' dissociation constant for (Fe + L),                        xk_FeL      = ', xk_FeL
819         WRITE(numout,*)     &
820         &   ' scavenging rate for free iron,                             xk_sc_Fe    = ', xk_sc_Fe
821!!
822!! Fast-sinking detritus parameters
823         WRITE(numout,*) '=== Fast-sinking detritus'
824         if (jexport.eq.1) then
825            WRITE(numout,*) &
826            &   ' fast-detritus remin. uses Dunne et al. (2007; ballast)     jexport     = ', jexport
827         elseif (jexport.eq.2) then
828            WRITE(numout,*) &
829            &   ' fast-detritus remin. uses Martin et al. (1987)             jexport     = ', jexport
830         elseif (jexport.eq.2) then
831            WRITE(numout,*) &
832            &   ' fast-detritus remin. uses Henson et al. (2011)             jexport     = ', jexport
833         endif
834         if (jfdfate.eq.1) then
835            WRITE(numout,*) &
836            &   ' fast-detritus reaching seafloor becomes slow-detritus      jfdfate     = ', jfdfate
837         elseif (jfdfate.eq.0) then
838            WRITE(numout,*) &
839            &   ' fast-detritus reaching seafloor instantly remineralised    jfdfate     = ', jfdfate
840         endif
841#if defined key_roam
842         if (jrratio.eq.0) then
843            WRITE(numout,*) &
844            &   ' Dunne et al. (2005) rain ratio submodel                    jrratio     = ', jrratio
845         elseif (jrratio.eq.1) then
846            WRITE(numout,*) &
847            &   ' Ridgwell et al. (2007) rain ratio submodel (surface omega) jrratio     = ', jrratio
848         elseif (jrratio.eq.2) then
849            WRITE(numout,*) &
850            &   ' Ridgwell et al. (2007) rain ratio submodel (3D omega)      jrratio     = ', jrratio
851         endif
852#else         
853         jrratio = 0
854         WRITE(numout,*) &
855         &   ' Dunne et al. (2005) rain ratio submodel                    jrratio     = ', jrratio
856#endif         
857#if defined key_roam
858         if (jocalccd.eq.0) then
859            WRITE(numout,*) &
860            &   ' Default, fixed CCD used                                    jocalccd    = ', jocalccd
861         elseif (jocalccd.eq.1) then
862            WRITE(numout,*) &
863            &   ' Calculated, dynamic CCD used                               jocalccd    = ', jocalccd
864         endif
865#else         
866         jocalccd = 0
867         WRITE(numout,*) &
868         &   ' Default, fixed CCD used                                    jocalccd    = ', jocalccd
869#endif
870         WRITE(numout,*)     &
871         &   ' Ridgwell rain ratio coefficient,                           xridg_r0    = ', xridg_r0
872         WRITE(numout,*)     &
873         &   ' fast-sinking fraction of diatom nat. mort. losses,         xfdfrac1    = ', xfdfrac1
874         WRITE(numout,*)     &
875         &   ' fast-sinking fraction of mesozooplankton mort. losses,     xfdfrac2    = ', xfdfrac2
876         WRITE(numout,*)     &
877         &   ' fast-sinking fraction of diatom silicon grazing losses,    xfdfrac3    = ', xfdfrac3
878         WRITE(numout,*)     &
879         &   ' polar (high latitude) CaCO3 fraction,                      xcaco3a     = ', xcaco3a
880         WRITE(numout,*)     &
881         &   ' equatorial (low latitude) CaCO3 fraction,                  xcaco3b     = ', xcaco3b
882         WRITE(numout,*)     &
883         &   ' organic C mass:mole ratio, C106 H175 O40 N16 P1,           xmassc      = ', xmassc
884         WRITE(numout,*)     &
885         &   ' calcium carbonate mass:mole ratio, CaCO3,                  xmassca     = ', xmassca
886         WRITE(numout,*)     &
887         &   ' biogenic silicon mass:mole ratio, (H2SiO3)n,               xmasssi     = ', xmasssi
888         WRITE(numout,*)     &
889         &   ' calcium carbonate protection ratio,                        xprotca     = ', xprotca
890         WRITE(numout,*)     &
891         &   ' biogenic silicon protection ratio,                         xprotsi     = ', xprotsi
892         WRITE(numout,*)     &
893         &   ' organic C remineralisation length scale,                   xfastc      = ', xfastc
894         WRITE(numout,*)     &
895         &   ' calcium carbonate dissolution length scale,                xfastca     = ', xfastca
896         WRITE(numout,*)     &
897         &   ' biogenic silicon dissolution length scale,                 xfastsi     = ', xfastsi
898!!
899!! Benthos parameters
900         WRITE(numout,*) '=== Benthos parameters'
901         WRITE(numout,*)     &
902         &   ' does   organic detritus go to the benthos?,                jorgben     = ', jorgben
903         WRITE(numout,*)     &
904         &   ' does inorganic detritus go to the benthos?,                jinorgben   = ', jinorgben
905!!
906!! Some checks on parameters related to benthos parameters
907         if (jorgben.eq.1 .and. jsfd.eq.1) then
908            !! slow detritus going to benthos at an accelerated rate
909            WRITE(numout,*) '  === WARNING! ==='
910            WRITE(numout,*) '  jsfd *and* jorgben are active - please check that you wish this'
911            WRITE(numout,*) '  === WARNING! ==='
912         endif
913         if (jorgben.eq.1 .and. jfdfate.eq.1) then
914            !! fast detritus going to benthos but via slow detritus
915            WRITE(numout,*) '  === WARNING! ==='
916            WRITE(numout,*) '  jfdfate *and* jorgben are active - please check that you wish this'
917            WRITE(numout,*) '  === WARNING! ==='
918         endif
919         if (jorgben.eq.0 .and. jinorgben.eq.1) then
920            !! inorganic fast detritus going to benthos but organic fast detritus is not
921            WRITE(numout,*) '  === WARNING! ==='
922            WRITE(numout,*) '  jinorgben is active but jorgben is not - please check that you wish this'
923            WRITE(numout,*) '  === WARNING! ==='
924         endif
925         WRITE(numout,*)     &
926         &   ' organic   nitrogen sediment remineralisation rate,         xsedn       = ', xsedn
927         WRITE(numout,*)     &
928         &   ' organic   iron     sediment remineralisation rate,         xsedfe      = ', xsedfe
929         WRITE(numout,*)     &
930         &   ' inorganic silicon  sediment remineralisation rate,         xsedsi      = ', xsedsi
931         WRITE(numout,*)     &
932         &   ' organic   carbon   sediment remineralisation rate,         xsedc       = ', xsedc
933         WRITE(numout,*)     &
934         &   ' inorganic carbon   sediment remineralisation rate,         xsedca      = ', xsedca
935         WRITE(numout,*)     &
936         &   ' burial rate of seafloor detritus,                          xburial     = ', xburial
937!!
938!! Riverine inputs
939         WRITE(numout,*) '=== Riverine inputs'
940         if (jriver_n.eq.0) then
941            WRITE(numout,*)     &
942            &   ' *no* riverine N input,                                     jriver_n    = ', jriver_n
943         elseif (jriver_n.eq.1) then
944            WRITE(numout,*)     &
945            &   ' riverine N concentrations specified,                       jriver_n    = ', jriver_n
946         elseif (jriver_n.eq.2) then
947            WRITE(numout,*)     &
948            &   ' riverine N inputs specified,                               jriver_n    = ', jriver_n
949         endif
950         if (jriver_si.eq.0) then
951            WRITE(numout,*)     &
952            &   ' *no* riverine Si input,                                    jriver_si   = ', jriver_si
953         elseif (jriver_si.eq.1) then
954            WRITE(numout,*)     &
955            &   ' riverine Si concentrations specified,                      jriver_si   = ', jriver_si
956         elseif (jriver_si.eq.2) then
957            WRITE(numout,*)     &
958            &   ' riverine Si inputs specified,                              jriver_si   = ', jriver_si
959         endif
960         if (jriver_c.eq.0) then
961            WRITE(numout,*)     &
962            &   ' *no* riverine C input,                                     jriver_c    = ', jriver_c
963         elseif (jriver_c.eq.1) then
964            WRITE(numout,*)     &
965            &   ' riverine C concentrations specified,                       jriver_c    = ', jriver_c
966         elseif (jriver_c.eq.2) then
967            WRITE(numout,*)     &
968            &   ' riverine C inputs specified,                               jriver_c    = ', jriver_c
969         endif
970         if (jriver_alk.eq.0) then
971            WRITE(numout,*)     &
972            &   ' *no* riverine alkalinity input,                            jriver_alk  = ', jriver_alk
973         elseif (jriver_alk.eq.1) then
974            WRITE(numout,*)     &
975            &   ' riverine alkalinity concentrations specified,              jriver_alk  = ', jriver_alk
976         elseif (jriver_alk.eq.2) then
977            WRITE(numout,*)     &
978            &   ' riverine alkalinity inputs specified,                      jriver_alk  = ', jriver_alk
979         endif
980         !! AXY (19/07/12): prevent (gross) stupidity on part of user
981         if (jriver_dep.lt.1.or.jriver_dep.ge.jpk) then
982            jriver_dep = 1
983         endif
984         WRITE(numout,*)     &
985         &   ' riverine input applied to down to depth k = ...            jriver_dep  = ', jriver_dep
986!!
987!! Miscellaneous
988         WRITE(numout,*) '=== Miscellaneous'
989         WRITE(numout,*)     &
990         &   ' diatom frustule dissolution rate,                          xsdiss      = ', xsdiss
991!!
992!! Gravitational sinking     
993         WRITE(numout,*) '=== Gravitational sinking'
994         WRITE(numout,*)     &
995         &   ' detritus gravitational sinking rate,                       vsed        = ', vsed
996         WRITE(numout,*)     & 
997         &   ' coefficient for Martin et al. (1987) remineralisation,     xhr         = ', xhr
998!!
999!! Non-Medusa parameters
1000         WRITE(numout,*) '=== Non-Medusa parameters'
1001         WRITE(numout,*)     & 
1002         &   ' time coeff of POC in sediments,                            sedlam      = ', sedlam
1003         WRITE(numout,*)     &
1004         &   ' Sediment geol loss for POC,                                sedlostpoc  = ', sedlostpoc
1005         WRITE(numout,*)     &
1006         &   ' Vert layer for diagnostic of vertical flux,                jpkp        = ', jpkb
1007!!
[5841]1008!! UKESM1 - new diagnostics  !! Jpalm; AXY (08/07/15)
[5726]1009         WRITE(numout,*) '=== UKESM1-related parameters'
1010         WRITE(numout,*)     &
1011         &   ' include DMS diagnostic?,                                   jdms        = ', jdms
[5841]1012         if (jdms_input .eq. 0) then
1013            WRITE(numout,*)     &
1014            &   ' use instant (0) or diel-avg (1) inputs,                    jdms_input  = instantaneous'
1015         else
1016            WRITE(numout,*)     &
1017            &   ' use instant (0) or diel-avg (1) inputs,                    jdms_input  = diel-average'
1018         endif
1019    if (jdms_model .eq. 1) then
1020            WRITE(numout,*)     &
1021            &   ' choice of DMS model passed to atmosphere,                  jdms_model  = Anderson et al. (2001)'
1022    elseif (jdms_model .eq. 2) then
1023            WRITE(numout,*)     &
1024            &   ' choice of DMS model passed to atmosphere,                  jdms_model  = Simo & Dachs (2002)'
1025    elseif (jdms_model .eq. 3) then
1026            WRITE(numout,*)     &
1027            &   ' choice of DMS model passed to atmosphere,                  jdms_model  = Aranami & Tsunogai (2004)'
1028    elseif (jdms_model .eq. 4) then
1029            WRITE(numout,*)     &
1030            &   ' choice of DMS model passed to atmosphere,                  jdms_model  = Halloran et al. (2010)'
1031         endif
[5726]1032!!
1033      ENDIF
1034!!
1035!! Key depth positions (with thanks to Andrew Coward for bug-fixing this bit)
1036      DO jk = 1,jpk
1037         !! level thickness
1038         fthk  = e3t_1d(jk)
1039         !! level depth (top of level)
1040         fdep  = gdepw_1d(jk)
1041         !! level depth (bottom of level)
1042         fdep1 = fdep + fthk
1043         !!
1044         if (fdep.lt.100.0.AND.fdep1.gt.100.0) then        !  100 m
1045            i0100 = jk
1046         elseif (fdep.lt.150.0.AND.fdep1.gt.150.0) then    !  150 m (for BASIN)
1047            i0150 = jk
1048         elseif (fdep.lt.200.0.AND.fdep1.gt.200.0) then    !  200 m
1049            i0200 = jk
1050         elseif (fdep.lt.500.0.AND.fdep1.gt.500.0) then    !  500 m
1051            i0500 = jk
1052         elseif (fdep.lt.1000.0.AND.fdep1.gt.1000.0) then  ! 1000 m
1053            i1000 = jk
1054         elseif (fdep1.lt.1100.0) then                     ! 1100 m (for Moore et al. sedimentary iron)
1055            i1100 = jk
1056         endif
1057      enddo
1058      !!
1059      IF(lwp) THEN
1060          WRITE(numout,*) '=== Position of key depths'
1061          WRITE(numout,*)     & 
1062          &   ' jk position of  100 m horizon                              i0100       = ', i0100
1063          WRITE(numout,*)     &
1064          &   ' jk position of  150 m horizon                              i0150       = ', i0150
1065          WRITE(numout,*)     & 
1066          &   ' jk position of  200 m horizon                              i0200       = ', i0200
1067          WRITE(numout,*)     & 
1068          &   ' jk position of  500 m horizon                              i0500       = ', i0500
1069          WRITE(numout,*)     & 
1070          &   ' jk position of 1000 m horizon                              i1000       = ', i1000
1071          WRITE(numout,*)     & 
1072          &   ' jk position of 1100 m horizon [*]                          i1100       = ', i1100
1073          WRITE(numout,*) 'Got here ' , SIZE(friver_dep)
1074          CALL flush(numout)
1075      ENDIF
1076
1077#if defined key_roam
1078
1079      ! 1.4b namelist natroam : ROAM parameters
1080      ! ---------------------------------------
1081     
1082      xthetaphy = 0.
1083      xthetazoo = 0.
1084      xthetanit = 0.
1085      xthetarem = 0.
1086      xo2min    = 0.
1087
1088      !READ(numnatm,natroam)
[5841]1089         ! Namelist natroam
[5726]1090         ! -------------------
[5841]1091         REWIND( numnatp_ref )              ! Namelist natroam in reference namelist : MEDUSA diagnostics
1092         READ  ( numnatp_ref, natroam, IOSTAT = ios, ERR = 905)
1093905      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natroam in reference namelist', lwp )
[5726]1094
[5841]1095         REWIND( numnatp_cfg )              ! Namelist natroam in configuration namelist : MEDUSA diagnostics
1096         READ  ( numnatp_cfg, natroam, IOSTAT = ios, ERR = 906 )
1097906      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natroam in configuration namelist', lwp )
1098         IF(lwm) WRITE ( numonp, natroam )
[5726]1099
1100!! ROAM carbon, alkalinity and oxygen cycle parameters
1101!!       xthetaphy :  oxygen evolution/consumption by phytoplankton
1102!!       xthetazoo :  oxygen consumption by zooplankton
1103!!       xthetanit :  oxygen consumption by nitrogen remineralisation
1104!!       xthetarem :  oxygen consumption by carbon remineralisation
1105!!       xo2min    :  oxygen minimum concentration
1106
1107      IF(lwp) THEN
1108          WRITE(numout,*) 'natroam'
1109          WRITE(numout,*) ' '
1110!!
1111!! ROAM carbon, alkalinity and oxygen cycle parameters
1112          WRITE(numout,*) '=== ROAM carbon, alkalinity and oxygen cycle parameters'
1113          WRITE(numout,*)     &
1114          &   ' oxygen evolution/consumption by phytoplankton              xthetaphy   = ', xthetaphy
1115          WRITE(numout,*)     &
1116          &   ' oxygen consumption by zooplankton                          xthetazoo   = ', xthetazoo
1117          WRITE(numout,*)     &
1118          &   ' oxygen consumption by nitrogen remineralisation            xthetanit   = ', xthetanit
1119          WRITE(numout,*)     &
1120          &   ' oxygen consumption by carbon remineralisation              xthetarem   = ', xthetarem
1121          WRITE(numout,*)     &
1122          &   ' oxygen minimum concentration                               xo2min      = ', xo2min
1123       ENDIF
1124
1125#endif
1126
1127      CALL flush(numout)
1128
1129      ! 1.5 namelist natopt : parameters for optic
1130      ! ------------------------------------------
1131
1132      xkg0  = 0.
1133      xkr0  = 0.
1134      xkgp  = 0.
1135      xkrp  = 0.
1136      xlg   = 0.
1137      xlr   = 0.
1138      rpig  = 0.
1139
1140      !READ(numnatm,natopt)
1141         ! Namelist natopt
1142         ! -------------------
[5841]1143         REWIND( numnatp_ref )              ! Namelist natopt in reference namelist : MEDUSA diagnostics
[5736]1144         READ  ( numnatp_ref, natopt, IOSTAT = ios, ERR = 907)
[5841]1145907      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natopt in reference namelist', lwp )
[5726]1146
[5841]1147         REWIND( numnatp_cfg )              ! Namelist natopt in configuration namelist : MEDUSA diagnostics
[5736]1148         READ  ( numnatp_cfg, natopt, IOSTAT = ios, ERR = 908 )
[5841]1149908      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natopt in configuration namelist', lwp )
[5726]1150         IF(lwm) WRITE ( numonp, natopt )
1151
1152      IF(lwp) THEN
1153         WRITE(numout,*) 'natopt'
1154         WRITE(numout,*) ' '
1155         WRITE(numout,*) ' green   water absorption coeff  xkg0  = ',xkg0
1156         WRITE(numout,*) ' red water absorption coeff      xkr0  = ',xkr0
1157         WRITE(numout,*) ' pigment red absorption coeff    xkrp  = ',xkrp
1158         WRITE(numout,*) ' pigment green absorption coeff  xkgp  = ',xkgp
1159         WRITE(numout,*) ' green chl exposant              xlg   = ',xlg
1160         WRITE(numout,*) ' red   chl exposant              xlr   = ',xlr
1161         WRITE(numout,*) ' chla/chla+phea ratio            rpig  = ',rpig
1162         WRITE(numout,*) ' '
1163
1164      ENDIF
1165
1166      IF(lwp) THEN
1167         WRITE(numout,*) 'NaN check'
1168         WRITE(numout,*) ' '
1169         q1 = -1.
1170         q2 = 0.
1171         q3 = log(q1)
1172         write (numout,*) 'q3 = ', q3
1173         if ( ieee_is_nan( q3 ) ) then
1174            write (numout,*) 'NaN detected'
1175         else
1176            write (numout,*) 'NaN not detected'
1177         endif
1178         WRITE(numout,*) ' '
1179       ENDIF
1180
1181   END SUBROUTINE trc_nam_medusa
1182   
[5931]1183   SUBROUTINE trc_nam_iom_medusa
[7224]1184      !!---------------------------------------------------------------------
[5931]1185      !!                     ***  ROUTINE trc_nam_iom_medusa  ***
1186      !!
1187      !! ** Purpose : read all diag requested in iodef file through iom_use
1188      !!              So it is done only once
1189      !!            ** All diagnostic MEDUSA could asked are registered in
1190      !!            the med_diag type with a boolean value
1191      !!            So if required, one diagnostic will be true.
1192      !!
1193      !!---------------------------------------------------------------------
1194      !!
1195      !!
1196      !!----------------------------------------------------------------------           
1197      !! Variable conventions
1198      !!----------------------------------------------------------------------
1199      !!
[5937]1200      IF (iom_use("INVTN")) THEN
[5931]1201          med_diag%INVTN%dgsave = .TRUE.
1202      ELSE
1203          med_diag%INVTN%dgsave = .FALSE.
1204      ENDIF
[5937]1205      IF  (iom_use("INVTSI")) THEN
[5931]1206          med_diag%INVTSI%dgsave = .TRUE.
1207      ELSE
1208          med_diag%INVTSI%dgsave = .FALSE.
1209      ENDIF
[5937]1210      IF  (iom_use("INVTFE")) THEN
[5931]1211          med_diag%INVTFE%dgsave = .TRUE.
1212      ELSE
1213          med_diag%INVTFE%dgsave = .FALSE.
1214      ENDIF
[5937]1215      IF  (iom_use("PRN")) THEN
[5931]1216          med_diag%PRN%dgsave = .TRUE.
1217      ELSE
1218          med_diag%PRN%dgsave = .FALSE.
1219      ENDIF
[5937]1220      IF  (iom_use("MPN")) THEN
[5931]1221          med_diag%MPN%dgsave = .TRUE.
1222      ELSE
1223          med_diag%MPN%dgsave = .FALSE.
1224      ENDIF
[5937]1225      IF  (iom_use("PRD")) THEN
[5931]1226          med_diag%PRD%dgsave = .TRUE.
1227      ELSE
1228          med_diag%PRD%dgsave = .FALSE.
1229      ENDIF
[5937]1230      IF  (iom_use("MPD")) THEN
[5931]1231          med_diag%MPD%dgsave = .TRUE.
1232      ELSE
1233          med_diag%MPD%dgsave = .FALSE.
1234      ENDIF
[5937]1235      IF  (iom_use("DSED")) THEN
[5931]1236          med_diag%DSED%dgsave = .TRUE.
1237      ELSE
1238          med_diag%DSED%dgsave = .FALSE.
1239      ENDIF
[5937]1240      IF  (iom_use("OPAL")) THEN
[5931]1241          med_diag%OPAL%dgsave = .TRUE.
1242      ELSE
1243          med_diag%OPAL%dgsave = .FALSE.
1244      ENDIF
[5937]1245      IF  (iom_use("OPALDISS")) THEN
[5931]1246          med_diag%OPALDISS%dgsave = .TRUE.
1247      ELSE
1248          med_diag%OPALDISS%dgsave = .FALSE.
1249      ENDIF
[5937]1250      IF  (iom_use("GMIPn")) THEN
[5931]1251          med_diag%GMIPn%dgsave = .TRUE.
1252      ELSE
1253          med_diag%GMIPn%dgsave = .FALSE.
1254      ENDIF
[5937]1255      IF  (iom_use("GMID")) THEN
[5931]1256          med_diag%GMID%dgsave = .TRUE.
1257      ELSE
1258          med_diag%GMID%dgsave = .FALSE.
1259      ENDIF
[5937]1260      IF  (iom_use("MZMI")) THEN
[5931]1261          med_diag%MZMI%dgsave = .TRUE.
1262      ELSE
1263          med_diag%MZMI%dgsave = .FALSE.
1264      ENDIF
[5937]1265      IF  (iom_use("GMEPN")) THEN
[5931]1266          med_diag%GMEPN%dgsave = .TRUE.
1267      ELSE
1268          med_diag%GMEPN%dgsave = .FALSE.
1269      ENDIF
[5937]1270      IF  (iom_use("GMEPD")) THEN
[5931]1271          med_diag%GMEPD%dgsave = .TRUE.
1272      ELSE
1273          med_diag%GMEPD%dgsave = .FALSE.
1274      ENDIF
[5937]1275      IF  (iom_use("GMEZMI")) THEN
[5931]1276          med_diag%GMEZMI%dgsave = .TRUE.
1277      ELSE
1278          med_diag%GMEZMI%dgsave = .FALSE.
1279      ENDIF
[5937]1280      IF  (iom_use("GMED")) THEN
[5931]1281          med_diag%GMED%dgsave = .TRUE.
1282      ELSE
1283          med_diag%GMED%dgsave = .FALSE.
1284      ENDIF
[5937]1285      IF  (iom_use("MZME")) THEN
[5931]1286          med_diag%MZME%dgsave = .TRUE.
1287      ELSE
1288          med_diag%MZME%dgsave = .FALSE.
1289      ENDIF
[5937]1290      IF  (iom_use("DEXP")) THEN
[5931]1291          med_diag%DEXP%dgsave = .TRUE.
1292      ELSE
1293          med_diag%DEXP%dgsave = .FALSE.
1294      ENDIF
[5937]1295      IF  (iom_use("DETN")) THEN
[5931]1296          med_diag%DETN%dgsave = .TRUE.
1297      ELSE
1298          med_diag%DETN%dgsave = .FALSE.
1299      ENDIF
[5937]1300      IF  (iom_use("MDET")) THEN
[5931]1301          med_diag%MDET%dgsave = .TRUE.
1302      ELSE
1303          med_diag%MDET%dgsave = .FALSE.
1304      ENDIF
[5937]1305      IF  (iom_use("AEOLIAN")) THEN
[5931]1306          med_diag%AEOLIAN%dgsave = .TRUE.
1307      ELSE
1308          med_diag%AEOLIAN%dgsave = .FALSE.
1309      ENDIF
[5937]1310      IF  (iom_use("BENTHIC")) THEN
[5931]1311          med_diag%BENTHIC%dgsave = .TRUE.
1312      ELSE
1313          med_diag%BENTHIC%dgsave = .FALSE.
1314      ENDIF
[5937]1315      IF  (iom_use("SCAVENGE")) THEN
[5931]1316          med_diag%SCAVENGE%dgsave = .TRUE.
1317      ELSE
1318          med_diag%SCAVENGE%dgsave = .FALSE.
1319      ENDIF
[5937]1320      IF  (iom_use("PN_JLIM")) THEN
[5931]1321          med_diag%PN_JLIM%dgsave = .TRUE.
1322      ELSE
1323          med_diag%PN_JLIM%dgsave = .FALSE.
1324      ENDIF
[5937]1325      IF  (iom_use("PN_NLIM")) THEN
[5931]1326          med_diag%PN_NLIM%dgsave = .TRUE.
1327      ELSE
1328          med_diag%PN_NLIM%dgsave = .FALSE.
1329      ENDIF
[5937]1330      IF  (iom_use("PN_FELIM")) THEN
[5931]1331          med_diag%PN_FELIM%dgsave = .TRUE.
1332      ELSE
1333          med_diag%PN_FELIM%dgsave = .FALSE.
1334      ENDIF
[5937]1335      IF  (iom_use("PD_JLIM")) THEN
[5931]1336          med_diag%PD_JLIM%dgsave = .TRUE.
1337      ELSE
1338          med_diag%PD_JLIM%dgsave = .FALSE.
1339      ENDIF
[5937]1340      IF  (iom_use("PD_NLIM")) THEN
[5931]1341          med_diag%PD_NLIM%dgsave = .TRUE.
1342      ELSE
1343          med_diag%PD_NLIM%dgsave = .FALSE.
1344      ENDIF
[5937]1345      IF  (iom_use("PD_FELIM")) THEN
[5931]1346          med_diag%PD_FELIM%dgsave = .TRUE.
1347      ELSE
1348          med_diag%PD_FELIM%dgsave = .FALSE.
1349      ENDIF
[5937]1350      IF  (iom_use("PD_SILIM")) THEN
[5931]1351          med_diag%PD_SILIM%dgsave = .TRUE.
1352      ELSE
1353          med_diag%PD_SILIM%dgsave = .FALSE.
1354      ENDIF
[5937]1355      IF  (iom_use("PDSILIM2")) THEN
[5931]1356          med_diag%PDSILIM2%dgsave = .TRUE.
1357      ELSE
1358          med_diag%PDSILIM2%dgsave = .FALSE.
1359      ENDIF
[5937]1360      IF  (iom_use("SDT__100")) THEN
[5931]1361          med_diag%SDT__100%dgsave = .TRUE.
1362      ELSE
1363          med_diag%SDT__100%dgsave = .FALSE.
1364      ENDIF
[5937]1365      IF  (iom_use("SDT__200")) THEN
[5931]1366          med_diag%SDT__200%dgsave = .TRUE.
1367      ELSE
1368          med_diag%SDT__200%dgsave = .FALSE.
1369      ENDIF
[5937]1370      IF  (iom_use("SDT__500")) THEN
[5931]1371          med_diag%SDT__500%dgsave = .TRUE.
1372      ELSE
1373          med_diag%SDT__500%dgsave = .FALSE.
1374      ENDIF
[5937]1375      IF  (iom_use("SDT_1000")) THEN
[5931]1376          med_diag%SDT_1000%dgsave = .TRUE.
1377      ELSE
1378          med_diag%SDT_1000%dgsave = .FALSE.
1379      ENDIF
[5937]1380      IF  (iom_use("TOTREG_N")) THEN
[5931]1381          med_diag%TOTREG_N%dgsave = .TRUE.
1382      ELSE
1383          med_diag%TOTREG_N%dgsave = .FALSE.
1384      ENDIF
[5937]1385      IF  (iom_use("TOTRG_SI")) THEN
[5931]1386          med_diag%TOTRG_SI%dgsave = .TRUE.
1387      ELSE
1388          med_diag%TOTRG_SI%dgsave = .FALSE.
1389      ENDIF
[5937]1390      IF  (iom_use("REG__100")) THEN
[5931]1391          med_diag%REG__100%dgsave = .TRUE.
1392      ELSE
1393          med_diag%REG__100%dgsave = .FALSE.
1394      ENDIF
[5937]1395      IF  (iom_use("REG__200")) THEN
[5931]1396          med_diag%REG__200%dgsave = .TRUE.
1397      ELSE
1398          med_diag%REG__200%dgsave = .FALSE.
1399      ENDIF
[5937]1400      IF  (iom_use("REG__500")) THEN
[5931]1401          med_diag%REG__500%dgsave = .TRUE.
1402      ELSE
1403          med_diag%REG__500%dgsave = .FALSE.
1404      ENDIF
[5937]1405      IF  (iom_use("REG_1000")) THEN
[5931]1406          med_diag%REG_1000%dgsave = .TRUE.
1407      ELSE
1408          med_diag%REG_1000%dgsave = .FALSE.
1409      ENDIF
[5937]1410      IF  (iom_use("FASTN")) THEN
[5931]1411          med_diag%FASTN%dgsave = .TRUE.
1412      ELSE
1413          med_diag%FASTN%dgsave = .FALSE.
1414      ENDIF
[5937]1415      IF  (iom_use("FASTSI")) THEN
[5931]1416          med_diag%FASTSI%dgsave = .TRUE.
1417      ELSE
1418          med_diag%FASTSI%dgsave = .FALSE.
1419      ENDIF
[5937]1420      IF  (iom_use("FASTFE")) THEN
[5931]1421          med_diag%FASTFE%dgsave = .TRUE.
1422      ELSE
1423          med_diag%FASTFE%dgsave = .FALSE.
1424      ENDIF
[5937]1425      IF  (iom_use("FASTC")) THEN
[5931]1426          med_diag%FASTC%dgsave = .TRUE.
1427      ELSE
1428          med_diag%FASTC%dgsave = .FALSE.
1429      ENDIF
[5937]1430      IF  (iom_use("FASTCA")) THEN
[5931]1431          med_diag%FASTCA%dgsave = .TRUE.
1432      ELSE
1433          med_diag%FASTCA%dgsave = .FALSE.
1434      ENDIF
[5937]1435      IF  (iom_use("FDT__100")) THEN
[5931]1436          med_diag%FDT__100%dgsave = .TRUE.
1437      ELSE
1438          med_diag%FDT__100%dgsave = .FALSE.
1439      ENDIF
[5937]1440      IF  (iom_use("FDT__200")) THEN
[5931]1441          med_diag%FDT__200%dgsave = .TRUE.
1442      ELSE
1443          med_diag%FDT__200%dgsave = .FALSE.
1444      ENDIF
[5937]1445      IF  (iom_use("FDT__500")) THEN
[5931]1446          med_diag%FDT__500%dgsave = .TRUE.
1447      ELSE
1448          med_diag%FDT__500%dgsave = .FALSE.
1449      ENDIF
[5937]1450      IF  (iom_use("FDT_1000")) THEN
[5931]1451          med_diag%FDT_1000%dgsave = .TRUE.
1452      ELSE
1453          med_diag%FDT_1000%dgsave = .FALSE.
1454      ENDIF
[5937]1455      IF  (iom_use("RG__100F")) THEN
[5931]1456          med_diag%RG__100F%dgsave = .TRUE.
1457      ELSE
1458          med_diag%RG__100F%dgsave = .FALSE.
1459      ENDIF
[5937]1460      IF  (iom_use("RG__200F")) THEN
[5931]1461          med_diag%RG__200F%dgsave = .TRUE.
1462      ELSE
1463          med_diag%RG__200F%dgsave = .FALSE.
1464      ENDIF
[5937]1465      IF  (iom_use("RG__500F")) THEN
[5931]1466          med_diag%RG__500F%dgsave = .TRUE.
1467      ELSE
1468          med_diag%RG__500F%dgsave = .FALSE.
1469      ENDIF
[5937]1470      IF  (iom_use("RG_1000F")) THEN
[5931]1471          med_diag%RG_1000F%dgsave = .TRUE.
1472      ELSE
1473          med_diag%RG_1000F%dgsave = .FALSE.
1474      ENDIF
[5937]1475      IF  (iom_use("FDS__100")) THEN
[5931]1476          med_diag%FDS__100%dgsave = .TRUE.
1477      ELSE
1478          med_diag%FDS__100%dgsave = .FALSE.
1479      ENDIF
[5937]1480      IF  (iom_use("FDS__200")) THEN
[5931]1481          med_diag%FDS__200%dgsave = .TRUE.
1482      ELSE
1483          med_diag%FDS__200%dgsave = .FALSE.
1484      ENDIF
[5937]1485      IF  (iom_use("FDS__500")) THEN
[5931]1486          med_diag%FDS__500%dgsave = .TRUE.
1487      ELSE
1488          med_diag%FDS__500%dgsave = .FALSE.
1489      ENDIF
[5937]1490      IF  (iom_use("FDS_1000")) THEN
[5931]1491          med_diag%FDS_1000%dgsave = .TRUE.
1492      ELSE
1493          med_diag%FDS_1000%dgsave = .FALSE.
1494      ENDIF
[5937]1495      IF  (iom_use("RGS_100F")) THEN
[5931]1496          med_diag%RGS_100F%dgsave = .TRUE.
1497      ELSE
1498          med_diag%RGS_100F%dgsave = .FALSE.
1499      ENDIF
[5937]1500      IF  (iom_use("RGS_200F")) THEN
[5931]1501          med_diag%RGS_200F%dgsave = .TRUE.
1502      ELSE
1503          med_diag%RGS_200F%dgsave = .FALSE.
1504      ENDIF
[5937]1505      IF  (iom_use("RGS_500F")) THEN
[5931]1506          med_diag%RGS_500F%dgsave = .TRUE.
1507      ELSE
1508          med_diag%RGS_500F%dgsave = .FALSE.
1509      ENDIF
[5937]1510      IF  (iom_use("RGS1000F")) THEN
[5931]1511          med_diag%RGS1000F%dgsave = .TRUE.
1512      ELSE
1513          med_diag%RGS1000F%dgsave = .FALSE.
1514      ENDIF
[5937]1515      IF  (iom_use("REMINN")) THEN
[5931]1516          med_diag%REMINN%dgsave = .TRUE.
1517      ELSE
1518          med_diag%REMINN%dgsave = .FALSE.
1519      ENDIF
[5937]1520      IF  (iom_use("REMINSI")) THEN
[5931]1521          med_diag%REMINSI%dgsave = .TRUE.
1522      ELSE
1523          med_diag%REMINSI%dgsave = .FALSE.
1524      ENDIF
[5937]1525      IF  (iom_use("REMINFE")) THEN
[5931]1526          med_diag%REMINFE%dgsave = .TRUE.
1527      ELSE
1528          med_diag%REMINFE%dgsave = .FALSE.
1529      ENDIF
[5937]1530      IF  (iom_use("REMINC")) THEN
[5931]1531          med_diag%REMINC%dgsave = .TRUE.
1532      ELSE
1533          med_diag%REMINC%dgsave = .FALSE.
1534      ENDIF
[5937]1535      IF  (iom_use("REMINCA")) THEN
[5931]1536          med_diag%REMINCA%dgsave = .TRUE.
1537      ELSE
1538          med_diag%REMINCA%dgsave = .FALSE.
1539      ENDIF
[5937]1540      IF  (iom_use("SEAFLRN")) THEN
[5931]1541          med_diag%SEAFLRN%dgsave = .TRUE.
1542      ELSE
1543          med_diag%SEAFLRN%dgsave = .FALSE.
1544      ENDIF
[5937]1545      IF  (iom_use("SEAFLRSI")) THEN
[5931]1546          med_diag%SEAFLRSI%dgsave = .TRUE.
1547      ELSE
1548          med_diag%SEAFLRSI%dgsave = .FALSE.
1549      ENDIF
[5937]1550      IF  (iom_use("SEAFLRFE")) THEN
[5931]1551          med_diag%SEAFLRFE%dgsave = .TRUE.
1552      ELSE
1553          med_diag%SEAFLRFE%dgsave = .FALSE.
1554      ENDIF
[5937]1555      IF  (iom_use("SEAFLRC")) THEN
[5931]1556          med_diag%SEAFLRC%dgsave = .TRUE.
1557      ELSE
1558          med_diag%SEAFLRC%dgsave = .FALSE.
1559      ENDIF
[5937]1560      IF  (iom_use("SEAFLRCA")) THEN
[5931]1561          med_diag%SEAFLRCA%dgsave = .TRUE.
1562      ELSE
1563          med_diag%SEAFLRCA%dgsave = .FALSE.
1564      ENDIF
[5937]1565      IF  (iom_use("MED_QSR")) THEN
[5931]1566          med_diag%MED_QSR%dgsave = .TRUE.
1567      ELSE
1568          med_diag%MED_QSR%dgsave = .FALSE.
1569      ENDIF
[5937]1570      IF  (iom_use("MED_XPAR")) THEN
[5931]1571          med_diag%MED_XPAR%dgsave = .TRUE.
1572      ELSE
1573          med_diag%MED_XPAR%dgsave = .FALSE.
1574      ENDIF
[5937]1575      IF  (iom_use("INTFLX_N")) THEN
[5931]1576          med_diag%INTFLX_N%dgsave = .TRUE.
1577      ELSE
1578          med_diag%INTFLX_N%dgsave = .FALSE.
1579      ENDIF
[5937]1580      IF  (iom_use("INTFLX_SI")) THEN
[5931]1581          med_diag%INTFLX_SI%dgsave = .TRUE.
1582      ELSE
1583          med_diag%INTFLX_SI%dgsave = .FALSE.
1584      ENDIF
[5937]1585      IF  (iom_use("INTFLX_FE")) THEN
[5931]1586          med_diag%INTFLX_FE%dgsave = .TRUE.
1587      ELSE
1588          med_diag%INTFLX_FE%dgsave = .FALSE.
1589      ENDIF
[5937]1590      IF  (iom_use("INT_PN")) THEN
[5931]1591          med_diag%INT_PN%dgsave = .TRUE.
1592      ELSE
1593          med_diag%INT_PN%dgsave = .FALSE.
1594      ENDIF
[5937]1595      IF  (iom_use("INT_PD")) THEN
[5931]1596          med_diag%INT_PD%dgsave = .TRUE.
1597      ELSE
1598          med_diag%INT_PD%dgsave = .FALSE.
1599      ENDIF
[5937]1600      IF  (iom_use("ML_PRN")) THEN
[5931]1601          med_diag%ML_PRN%dgsave = .TRUE.
1602      ELSE
1603          med_diag%ML_PRN%dgsave = .FALSE.
1604      ENDIF
[5937]1605      IF  (iom_use("ML_PRD")) THEN
[5931]1606          med_diag%ML_PRD%dgsave = .TRUE.
1607      ELSE
1608          med_diag%ML_PRD%dgsave = .FALSE.
1609      ENDIF
[5937]1610      IF  (iom_use("OCAL_CCD")) THEN
[5931]1611          med_diag%OCAL_CCD%dgsave = .TRUE.
1612      ELSE
1613          med_diag%OCAL_CCD%dgsave = .FALSE.
1614      ENDIF
[5937]1615      IF  (iom_use("OCAL_LVL")) THEN
[5931]1616          med_diag%OCAL_LVL%dgsave = .TRUE.
1617      ELSE
1618          med_diag%OCAL_LVL%dgsave = .FALSE.
1619      ENDIF
[5937]1620      IF  (iom_use("FE_0000")) THEN
[5931]1621          med_diag%FE_0000%dgsave = .TRUE.
1622      ELSE
1623          med_diag%FE_0000%dgsave = .FALSE.
1624      ENDIF
[5937]1625      IF  (iom_use("FE_0100")) THEN
[5931]1626          med_diag%FE_0100%dgsave = .TRUE.
1627      ELSE
1628          med_diag%FE_0100%dgsave = .FALSE.
1629      ENDIF
[5937]1630      IF  (iom_use("FE_0200")) THEN
[5931]1631          med_diag%FE_0200%dgsave = .TRUE.
1632      ELSE
1633          med_diag%FE_0200%dgsave = .FALSE.
1634      ENDIF
[5937]1635      IF  (iom_use("FE_0500")) THEN
[5931]1636          med_diag%FE_0500%dgsave = .TRUE.
1637      ELSE
1638          med_diag%FE_0500%dgsave = .FALSE.
1639      ENDIF
[5937]1640      IF  (iom_use("FE_1000")) THEN
[5931]1641          med_diag%FE_1000%dgsave = .TRUE.
1642      ELSE
1643          med_diag%FE_1000%dgsave = .FALSE.
1644      ENDIF
[5937]1645      IF  (iom_use("MED_XZE")) THEN
[5931]1646          med_diag%MED_XZE%dgsave = .TRUE.
1647      ELSE
1648          med_diag%MED_XZE%dgsave = .FALSE.
1649      ENDIF
[5937]1650      IF  (iom_use("WIND")) THEN
[5931]1651          med_diag%WIND%dgsave = .TRUE.
1652      ELSE
1653          med_diag%WIND%dgsave = .FALSE.
1654      ENDIF
[5937]1655      IF  (iom_use("ATM_PCO2")) THEN
[5931]1656          med_diag%ATM_PCO2%dgsave = .TRUE.
1657      ELSE
1658          med_diag%ATM_PCO2%dgsave = .FALSE.
1659      ENDIF
[5937]1660      IF  (iom_use("OCN_PH")) THEN
[5931]1661          med_diag%OCN_PH%dgsave = .TRUE.
1662      ELSE
1663          med_diag%OCN_PH%dgsave = .FALSE.
1664      ENDIF
[5937]1665      IF  (iom_use("OCN_PCO2")) THEN
[5931]1666          med_diag%OCN_PCO2%dgsave = .TRUE.
1667      ELSE
1668          med_diag%OCN_PCO2%dgsave = .FALSE.
1669      ENDIF
[5937]1670      IF  (iom_use("OCNH2CO3")) THEN
[5931]1671          med_diag%OCNH2CO3%dgsave = .TRUE.
1672      ELSE
1673          med_diag%OCNH2CO3%dgsave = .FALSE.
1674      ENDIF
[5937]1675      IF  (iom_use("OCN_HCO3")) THEN
[5931]1676          med_diag%OCN_HCO3%dgsave = .TRUE.
1677      ELSE
1678          med_diag%OCN_HCO3%dgsave = .FALSE.
1679      ENDIF
[5937]1680      IF  (iom_use("OCN_CO3")) THEN
[5931]1681          med_diag%OCN_CO3%dgsave = .TRUE.
1682      ELSE
1683          med_diag%OCN_CO3%dgsave = .FALSE.
1684      ENDIF
[5937]1685      IF  (iom_use("CO2FLUX")) THEN
[5931]1686          med_diag%CO2FLUX%dgsave = .TRUE.
1687      ELSE
1688          med_diag%CO2FLUX%dgsave = .FALSE.
1689      ENDIF
[5937]1690      IF  (iom_use("OM_CAL")) THEN
[5931]1691          med_diag%OM_CAL%dgsave = .TRUE.
1692      ELSE
1693          med_diag%OM_CAL%dgsave = .FALSE.
1694      ENDIF
[5937]1695      IF  (iom_use("OM_ARG")) THEN
[5931]1696          med_diag%OM_ARG%dgsave = .TRUE.
1697      ELSE
1698          med_diag%OM_ARG%dgsave = .FALSE.
1699      ENDIF
[5937]1700      IF  (iom_use("TCO2")) THEN
[5931]1701          med_diag%TCO2%dgsave = .TRUE.
1702      ELSE
1703          med_diag%TCO2%dgsave = .FALSE.
1704      ENDIF
[5937]1705      IF  (iom_use("TALK")) THEN
[5931]1706          med_diag%TALK%dgsave = .TRUE.
1707      ELSE
1708          med_diag%TALK%dgsave = .FALSE.
1709      ENDIF
[5937]1710      IF  (iom_use("KW660")) THEN
[5931]1711          med_diag%KW660%dgsave = .TRUE.
1712      ELSE
1713          med_diag%KW660%dgsave = .FALSE.
1714      ENDIF
[5937]1715      IF  (iom_use("ATM_PP0")) THEN
[5931]1716          med_diag%ATM_PP0%dgsave = .TRUE.
1717      ELSE
1718          med_diag%ATM_PP0%dgsave = .FALSE.
1719      ENDIF
[5937]1720      IF  (iom_use("O2FLUX")) THEN
[5931]1721          med_diag%O2FLUX%dgsave = .TRUE.
1722      ELSE
1723          med_diag%O2FLUX%dgsave = .FALSE.
1724      ENDIF
[5937]1725      IF  (iom_use("O2SAT")) THEN
[5931]1726          med_diag%O2SAT%dgsave = .TRUE.
1727      ELSE
1728          med_diag%O2SAT%dgsave = .FALSE.
1729      ENDIF
[5937]1730      IF  (iom_use("CAL_CCD")) THEN
[5931]1731          med_diag%CAL_CCD%dgsave = .TRUE.
1732      ELSE
1733          med_diag%CAL_CCD%dgsave = .FALSE.
1734      ENDIF
[5937]1735      IF  (iom_use("ARG_CCD")) THEN
[5931]1736          med_diag%ARG_CCD%dgsave = .TRUE.
1737      ELSE
1738          med_diag%ARG_CCD%dgsave = .FALSE.
1739      ENDIF
[5937]1740      IF  (iom_use("SFR_OCAL")) THEN
[5931]1741          med_diag%SFR_OCAL%dgsave = .TRUE.
1742      ELSE
1743          med_diag%SFR_OCAL%dgsave = .FALSE.
1744      ENDIF
[5937]1745      IF  (iom_use("SFR_OARG")) THEN
[5931]1746          med_diag%SFR_OARG%dgsave = .TRUE.
1747      ELSE
1748          med_diag%SFR_OARG%dgsave = .FALSE.
1749      ENDIF
[5937]1750      IF  (iom_use("N_PROD")) THEN
[5931]1751          med_diag%N_PROD%dgsave = .TRUE.
1752      ELSE
1753          med_diag%N_PROD%dgsave = .FALSE.
1754      ENDIF
[5937]1755      IF  (iom_use("N_CONS")) THEN
[5931]1756          med_diag%N_CONS%dgsave = .TRUE.
1757      ELSE
1758          med_diag%N_CONS%dgsave = .FALSE.
1759      ENDIF
[5937]1760      IF  (iom_use("C_PROD")) THEN
[5931]1761          med_diag%C_PROD%dgsave = .TRUE.
1762      ELSE
1763          med_diag%C_PROD%dgsave = .FALSE.
1764      ENDIF
[5937]1765      IF  (iom_use("C_CONS")) THEN
[5931]1766          med_diag%C_CONS%dgsave = .TRUE.
1767      ELSE
1768          med_diag%C_CONS%dgsave = .FALSE.
1769      ENDIF
[5937]1770      IF  (iom_use("O2_PROD")) THEN
[5931]1771          med_diag%O2_PROD%dgsave = .TRUE.
1772      ELSE
1773          med_diag%O2_PROD%dgsave = .FALSE.
1774      ENDIF
[5937]1775      IF  (iom_use("O2_CONS")) THEN
[5931]1776          med_diag%O2_CONS%dgsave = .TRUE.
1777      ELSE
1778          med_diag%O2_CONS%dgsave = .FALSE.
1779      ENDIF
[5937]1780      IF  (iom_use("O2_ANOX")) THEN
[5931]1781          med_diag%O2_ANOX%dgsave = .TRUE.
1782      ELSE
1783          med_diag%O2_ANOX%dgsave = .FALSE.
1784      ENDIF
[5937]1785      IF  (iom_use("RR_0100")) THEN
[5931]1786          med_diag%RR_0100%dgsave = .TRUE.
1787      ELSE
1788          med_diag%RR_0100%dgsave = .FALSE.
1789      ENDIF
[5937]1790      IF  (iom_use("RR_0500")) THEN
[5931]1791          med_diag%RR_0500%dgsave = .TRUE.
1792      ELSE
1793          med_diag%RR_0500%dgsave = .FALSE.
1794      ENDIF
[5937]1795      IF  (iom_use("RR_1000")) THEN
[5931]1796          med_diag%RR_1000%dgsave = .TRUE.
1797      ELSE
1798          med_diag%RR_1000%dgsave = .FALSE.
1799      ENDIF
[5937]1800      IF  (iom_use("IBEN_N")) THEN
[5931]1801          med_diag%IBEN_N%dgsave = .TRUE.
1802      ELSE
1803          med_diag%IBEN_N%dgsave = .FALSE.
1804      ENDIF
[5937]1805      IF  (iom_use("IBEN_FE")) THEN
[5931]1806          med_diag%IBEN_FE%dgsave = .TRUE.
1807      ELSE
1808          med_diag%IBEN_FE%dgsave = .FALSE.
1809      ENDIF
[5937]1810      IF  (iom_use("IBEN_C")) THEN
[5931]1811          med_diag%IBEN_C%dgsave = .TRUE.
1812      ELSE
1813          med_diag%IBEN_C%dgsave = .FALSE.
1814      ENDIF
[5937]1815      IF  (iom_use("IBEN_SI")) THEN
[5931]1816          med_diag%IBEN_SI%dgsave = .TRUE.
1817      ELSE
1818          med_diag%IBEN_SI%dgsave = .FALSE.
1819      ENDIF
[5937]1820      IF  (iom_use("IBEN_CA")) THEN
[5931]1821          med_diag%IBEN_CA%dgsave = .TRUE.
1822      ELSE
1823          med_diag%IBEN_CA%dgsave = .FALSE.
1824      ENDIF
[5937]1825      IF  (iom_use("OBEN_N")) THEN
[5931]1826          med_diag%OBEN_N%dgsave = .TRUE.
1827      ELSE
1828          med_diag%OBEN_N%dgsave = .FALSE.
1829      ENDIF
[5937]1830      IF  (iom_use("OBEN_FE")) THEN
[5931]1831          med_diag%OBEN_FE%dgsave = .TRUE.
1832      ELSE
1833          med_diag%OBEN_FE%dgsave = .FALSE.
1834      ENDIF
[5937]1835      IF  (iom_use("OBEN_C")) THEN
[5931]1836          med_diag%OBEN_C%dgsave = .TRUE.
1837      ELSE
1838          med_diag%OBEN_C%dgsave = .FALSE.
1839      ENDIF
[5937]1840      IF  (iom_use("OBEN_SI")) THEN
[5931]1841          med_diag%OBEN_SI%dgsave = .TRUE.
1842      ELSE
1843          med_diag%OBEN_SI%dgsave = .FALSE.
1844      ENDIF
[5937]1845      IF  (iom_use("OBEN_CA")) THEN
[5931]1846          med_diag%OBEN_CA%dgsave = .TRUE.
1847      ELSE
1848          med_diag%OBEN_CA%dgsave = .FALSE.
1849      ENDIF
[5937]1850      IF  (iom_use("BEN_N")) THEN
[5931]1851          med_diag%BEN_N%dgsave = .TRUE.
1852      ELSE
1853          med_diag%BEN_N%dgsave = .FALSE.
1854      ENDIF
[5937]1855      IF  (iom_use("BEN_FE")) THEN
[5931]1856          med_diag%BEN_FE%dgsave = .TRUE.
1857      ELSE
1858          med_diag%BEN_FE%dgsave = .FALSE.
1859      ENDIF
[5937]1860      IF  (iom_use("BEN_C")) THEN
[5931]1861          med_diag%BEN_C%dgsave = .TRUE.
1862      ELSE
1863          med_diag%BEN_C%dgsave = .FALSE.
1864      ENDIF
[5937]1865      IF  (iom_use("BEN_SI")) THEN
[5931]1866          med_diag%BEN_SI%dgsave = .TRUE.
1867      ELSE
1868          med_diag%BEN_SI%dgsave = .FALSE.
1869      ENDIF
[5937]1870      IF  (iom_use("BEN_CA")) THEN
[5931]1871          med_diag%BEN_CA%dgsave = .TRUE.
1872      ELSE
1873          med_diag%BEN_CA%dgsave = .FALSE.
1874      ENDIF
[5937]1875      IF  (iom_use("RUNOFF")) THEN
[5931]1876          med_diag%RUNOFF%dgsave = .TRUE.
1877      ELSE
1878          med_diag%RUNOFF%dgsave = .FALSE.
1879      ENDIF
[5937]1880      IF  (iom_use("RIV_N")) THEN
[5931]1881          med_diag%RIV_N%dgsave = .TRUE.
1882      ELSE
1883          med_diag%RIV_N%dgsave = .FALSE.
1884      ENDIF
[5937]1885      IF  (iom_use("RIV_SI")) THEN
[5931]1886          med_diag%RIV_SI%dgsave = .TRUE.
1887      ELSE
1888          med_diag%RIV_SI%dgsave = .FALSE.
1889      ENDIF
[5937]1890      IF  (iom_use("RIV_C")) THEN
[5931]1891          med_diag%RIV_C%dgsave = .TRUE.
1892      ELSE
1893          med_diag%RIV_C%dgsave = .FALSE.
1894      ENDIF
[5937]1895      IF  (iom_use("RIV_ALK")) THEN
[5931]1896          med_diag%RIV_ALK%dgsave = .TRUE.
1897      ELSE
1898          med_diag%RIV_ALK%dgsave = .FALSE.
1899      ENDIF
[5937]1900      IF  (iom_use("DETC")) THEN
[5931]1901          med_diag%DETC%dgsave = .TRUE.
1902      ELSE
1903          med_diag%DETC%dgsave = .FALSE.
1904      ENDIF
[5937]1905      IF  (iom_use("SDC__100")) THEN
[5931]1906          med_diag%SDC__100%dgsave = .TRUE.
1907      ELSE
1908          med_diag%SDC__100%dgsave = .FALSE.
1909      ENDIF
[5937]1910      IF  (iom_use("SDC__200")) THEN
[5931]1911          med_diag%SDC__200%dgsave = .TRUE.
1912      ELSE
1913          med_diag%SDC__200%dgsave = .FALSE.
1914      ENDIF
[5937]1915      IF  (iom_use("SDC__500")) THEN
[5931]1916          med_diag%SDC__500%dgsave = .TRUE.
1917      ELSE
1918          med_diag%SDC__500%dgsave = .FALSE.
1919      ENDIF
[5937]1920      IF  (iom_use("SDC_1000")) THEN
[5931]1921          med_diag%SDC_1000%dgsave = .TRUE.
1922      ELSE
1923          med_diag%SDC_1000%dgsave = .FALSE.
1924      ENDIF
[5937]1925      IF  (iom_use("INVTC")) THEN
[5931]1926          med_diag%INVTC%dgsave = .TRUE.
1927      ELSE
1928          med_diag%INVTC%dgsave = .FALSE.
1929      ENDIF
[5937]1930      IF  (iom_use("INVTALK")) THEN
[5931]1931          med_diag%INVTALK%dgsave = .TRUE.
1932      ELSE
1933          med_diag%INVTALK%dgsave = .FALSE.
1934      ENDIF
[5937]1935      IF  (iom_use("INVTO2")) THEN
[5931]1936          med_diag%INVTO2%dgsave = .TRUE.
1937      ELSE
1938          med_diag%INVTO2%dgsave = .FALSE.
1939      ENDIF
[5937]1940      IF  (iom_use("LYSO_CA")) THEN
[5931]1941          med_diag%LYSO_CA%dgsave = .TRUE.
1942      ELSE
1943          med_diag%LYSO_CA%dgsave = .FALSE.
1944      ENDIF
[5937]1945      IF  (iom_use("COM_RESP")) THEN
[5931]1946          med_diag%COM_RESP%dgsave = .TRUE.
1947      ELSE
1948          med_diag%COM_RESP%dgsave = .FALSE.
1949      ENDIF
[5937]1950      IF  (iom_use("PN_LLOSS")) THEN
[5931]1951          med_diag%PN_LLOSS%dgsave = .TRUE.
1952      ELSE
1953          med_diag%PN_LLOSS%dgsave = .FALSE.
1954      ENDIF
[5937]1955      IF  (iom_use("PD_LLOSS")) THEN
[5931]1956          med_diag%PD_LLOSS%dgsave = .TRUE.
1957      ELSE
1958          med_diag%PD_LLOSS%dgsave = .FALSE.
1959      ENDIF
[5937]1960      IF  (iom_use("ZI_LLOSS")) THEN
[5931]1961          med_diag%ZI_LLOSS%dgsave = .TRUE.
1962      ELSE
1963          med_diag%ZI_LLOSS%dgsave = .FALSE.
1964      ENDIF
[5937]1965      IF  (iom_use("ZE_LLOSS")) THEN
[5931]1966          med_diag%ZE_LLOSS%dgsave = .TRUE.
1967      ELSE
1968          med_diag%ZE_LLOSS%dgsave = .FALSE.
1969      ENDIF
[5937]1970      IF  (iom_use("ZI_MES_N")) THEN
[5931]1971          med_diag%ZI_MES_N%dgsave = .TRUE.
1972      ELSE
1973          med_diag%ZI_MES_N%dgsave = .FALSE.
1974      ENDIF
[5937]1975      IF  (iom_use("ZI_MES_D")) THEN
[5931]1976          med_diag%ZI_MES_D%dgsave = .TRUE.
1977      ELSE
1978          med_diag%ZI_MES_D%dgsave = .FALSE.
1979      ENDIF
[5937]1980      IF  (iom_use("ZI_MES_C")) THEN
[5931]1981          med_diag%ZI_MES_C%dgsave = .TRUE.
1982      ELSE
1983          med_diag%ZI_MES_C%dgsave = .FALSE.
1984      ENDIF
[5937]1985      IF  (iom_use("ZI_MESDC")) THEN
[5931]1986          med_diag%ZI_MESDC%dgsave = .TRUE.
1987      ELSE
1988          med_diag%ZI_MESDC%dgsave = .FALSE.
1989      ENDIF
[5937]1990      IF  (iom_use("ZI_EXCR")) THEN
[5931]1991          med_diag%ZI_EXCR%dgsave = .TRUE.
1992      ELSE
1993          med_diag%ZI_EXCR%dgsave = .FALSE.
1994      ENDIF
[5937]1995      IF  (iom_use("ZI_RESP")) THEN
[5931]1996          med_diag%ZI_RESP%dgsave = .TRUE.
1997      ELSE
1998          med_diag%ZI_RESP%dgsave = .FALSE.
1999      ENDIF
[5937]2000      IF  (iom_use("ZI_GROW")) THEN
[5931]2001          med_diag%ZI_GROW%dgsave = .TRUE.
2002      ELSE
2003          med_diag%ZI_GROW%dgsave = .FALSE.
2004      ENDIF
[5937]2005      IF  (iom_use("ZE_MES_N")) THEN
[5931]2006          med_diag%ZE_MES_N%dgsave = .TRUE.
2007      ELSE
2008          med_diag%ZE_MES_N%dgsave = .FALSE.
2009      ENDIF
[5937]2010      IF  (iom_use("ZE_MES_D")) THEN
[5931]2011          med_diag%ZE_MES_D%dgsave = .TRUE.
2012      ELSE
2013          med_diag%ZE_MES_D%dgsave = .FALSE.
2014      ENDIF
[5937]2015      IF  (iom_use("ZE_MES_C")) THEN
[5931]2016          med_diag%ZE_MES_C%dgsave = .TRUE.
2017      ELSE
2018          med_diag%ZE_MES_C%dgsave = .FALSE.
2019      ENDIF
[5937]2020      IF  (iom_use("ZE_MESDC")) THEN
[5931]2021          med_diag%ZE_MESDC%dgsave = .TRUE.
2022      ELSE
2023          med_diag%ZE_MESDC%dgsave = .FALSE.
2024      ENDIF
[5937]2025      IF  (iom_use("ZE_EXCR")) THEN
[5931]2026          med_diag%ZE_EXCR%dgsave = .TRUE.
2027      ELSE
2028          med_diag%ZE_EXCR%dgsave = .FALSE.
2029      ENDIF
[5937]2030      IF  (iom_use("ZE_RESP")) THEN
[5931]2031          med_diag%ZE_RESP%dgsave = .TRUE.
2032      ELSE
2033          med_diag%ZE_RESP%dgsave = .FALSE.
2034      ENDIF
[5937]2035      IF  (iom_use("ZE_GROW")) THEN
[5931]2036          med_diag%ZE_GROW%dgsave = .TRUE.
2037      ELSE
2038          med_diag%ZE_GROW%dgsave = .FALSE.
2039      ENDIF
[5937]2040      IF  (iom_use("MDETC")) THEN
[5931]2041          med_diag%MDETC%dgsave = .TRUE.
2042      ELSE
2043          med_diag%MDETC%dgsave = .FALSE.
2044      ENDIF
[5937]2045      IF  (iom_use("GMIDC")) THEN
[5931]2046          med_diag%GMIDC%dgsave = .TRUE.
2047      ELSE
2048          med_diag%GMIDC%dgsave = .FALSE.
2049      ENDIF
[5937]2050      IF  (iom_use("GMEDC")) THEN
[5931]2051          med_diag%GMEDC%dgsave = .TRUE.
2052      ELSE
2053          med_diag%GMEDC%dgsave = .FALSE.
2054      ENDIF
[7224]2055      IF  (iom_use("INT_ZMI")) THEN
2056          med_diag%INT_ZMI%dgsave = .TRUE.
[5931]2057      ELSE
[7224]2058          med_diag%INT_ZMI%dgsave = .FALSE.
[5931]2059      ENDIF
[7224]2060      IF  (iom_use("INT_ZME")) THEN
2061          med_diag%INT_ZME%dgsave = .TRUE.
[5931]2062      ELSE
[7224]2063          med_diag%INT_ZME%dgsave = .FALSE.
[5931]2064      ENDIF
[7224]2065      IF  (iom_use("INT_DET")) THEN
2066          med_diag%INT_DET%dgsave = .TRUE.
[5931]2067      ELSE
[7224]2068          med_diag%INT_DET%dgsave = .FALSE.
[5931]2069      ENDIF
[7224]2070      IF  (iom_use("INT_DTC")) THEN
2071          med_diag%INT_DTC%dgsave = .TRUE.
[5931]2072      ELSE
[7224]2073          med_diag%INT_DTC%dgsave = .FALSE.
[5931]2074      ENDIF
[7224]2075      IF  (iom_use("DMS_SURF")) THEN
2076          med_diag%DMS_SURF%dgsave = .TRUE.
[5931]2077      ELSE
[7224]2078          med_diag%DMS_SURF%dgsave = .FALSE.
[5931]2079      ENDIF
[7224]2080      IF  (iom_use("DMS_ANDR")) THEN
2081          med_diag%DMS_ANDR%dgsave = .TRUE.
[5931]2082      ELSE
[7224]2083          med_diag%DMS_ANDR%dgsave = .FALSE.
[5931]2084      ENDIF
[7224]2085      IF  (iom_use("DMS_SIMO")) THEN
2086          med_diag%DMS_SIMO%dgsave = .TRUE.
[5931]2087      ELSE
[7224]2088          med_diag%DMS_SIMO%dgsave = .FALSE.
[5931]2089      ENDIF
[7224]2090      IF  (iom_use("DMS_ARAN")) THEN
2091          med_diag%DMS_ARAN%dgsave = .TRUE.
[5931]2092      ELSE
[7224]2093          med_diag%DMS_ARAN%dgsave = .FALSE.
[5931]2094      ENDIF
[7224]2095      IF  (iom_use("DMS_HALL")) THEN
2096          med_diag%DMS_HALL%dgsave = .TRUE.
[5931]2097      ELSE
[7224]2098          med_diag%DMS_HALL%dgsave = .FALSE.
[5931]2099      ENDIF
[7224]2100      IF  (iom_use("TPP3")) THEN
2101          med_diag%TPP3%dgsave = .TRUE.
[5931]2102      ELSE
[7224]2103          med_diag%TPP3%dgsave = .FALSE.
[5931]2104      ENDIF
[7224]2105      IF  (iom_use("DETFLUX3")) THEN
2106          med_diag%DETFLUX3%dgsave = .TRUE.
[5931]2107      ELSE
[7224]2108          med_diag%DETFLUX3%dgsave = .FALSE.
[5931]2109      ENDIF
[7224]2110      IF  (iom_use("REMIN3N")) THEN
2111          med_diag%REMIN3N%dgsave = .TRUE.
[5931]2112      ELSE
[7224]2113          med_diag%REMIN3N%dgsave = .FALSE.
[5931]2114      ENDIF
[7224]2115      IF  (iom_use("PH3")) THEN
2116          med_diag%PH3%dgsave = .TRUE.
[5931]2117      ELSE
[7224]2118          med_diag%PH3%dgsave = .FALSE.
[5931]2119      ENDIF
[7224]2120      IF  (iom_use("OM_CAL3")) THEN
2121          med_diag%OM_CAL3%dgsave = .TRUE.
[5931]2122      ELSE
[7224]2123          med_diag%OM_CAL3%dgsave = .FALSE.
[5931]2124      ENDIF
[7224]2125      !!
2126      !!----------------------------------------------------------------------
2127      !! AXY (03/11/16): add in additional CMIP6 diagnostics
2128      !!----------------------------------------------------------------------
2129      !!
2130      !! 2D fields
2131      IF  (iom_use("epC100")) THEN
2132          med_diag%epC100%dgsave = .TRUE.
[5931]2133      ELSE
[7224]2134          med_diag%epC100%dgsave = .FALSE.
[5931]2135      ENDIF
[7224]2136      IF  (iom_use("epCALC100")) THEN
2137          med_diag%epCALC100%dgsave = .TRUE.
[5931]2138      ELSE
[7224]2139          med_diag%epCALC100%dgsave = .FALSE.
[5931]2140      ENDIF
[7224]2141      IF  (iom_use("epN100")) THEN
2142          med_diag%epN100%dgsave = .TRUE.
[5931]2143      ELSE
[7224]2144          med_diag%epN100%dgsave = .FALSE.
[5931]2145      ENDIF
[7224]2146      IF  (iom_use("epSI100")) THEN
2147          med_diag%epSI100%dgsave = .TRUE.
[5931]2148      ELSE
[7224]2149          med_diag%epSI100%dgsave = .FALSE.
[5931]2150      ENDIF
[7224]2151      IF  (iom_use("FGCO2")) THEN
2152          med_diag%FGCO2%dgsave = .TRUE.
[5931]2153      ELSE
[7224]2154          med_diag%FGCO2%dgsave = .FALSE.
[5931]2155      ENDIF
[7224]2156      IF  (iom_use("INTDISSIC")) THEN
2157          med_diag%INTDISSIC%dgsave = .TRUE.
[5931]2158      ELSE
[7224]2159          med_diag%INTDISSIC%dgsave = .FALSE.
[5931]2160      ENDIF
[7224]2161      IF  (iom_use("INTDISSIN")) THEN
2162          med_diag%INTDISSIN%dgsave = .TRUE.
[5931]2163      ELSE
[7224]2164          med_diag%INTDISSIN%dgsave = .FALSE.
[5931]2165      ENDIF
[7224]2166      IF  (iom_use("INTDISSISI")) THEN
2167          med_diag%INTDISSISI%dgsave = .TRUE.
[5931]2168      ELSE
[7224]2169          med_diag%INTDISSISI%dgsave = .FALSE.
[5931]2170      ENDIF
[7224]2171      IF  (iom_use("INTTALK")) THEN
2172          med_diag%INTTALK%dgsave = .TRUE.
[5931]2173      ELSE
[7224]2174          med_diag%INTTALK%dgsave = .FALSE.
[5931]2175      ENDIF
[7224]2176      IF  (iom_use("O2min")) THEN
2177          med_diag%O2min%dgsave = .TRUE.
[5931]2178      ELSE
[7224]2179          med_diag%O2min%dgsave = .FALSE.
[5931]2180      ENDIF
[7224]2181      IF  (iom_use("ZO2min")) THEN
2182          med_diag%ZO2min%dgsave = .TRUE.
[5931]2183      ELSE
[7224]2184          med_diag%ZO2min%dgsave = .FALSE.
[5931]2185      ENDIF
[7224]2186      !!
2187      !! 3D
2188      IF  (iom_use("TPPD3")) THEN
2189          med_diag%TPPD3%dgsave = .TRUE.
[5931]2190      ELSE
[7224]2191          med_diag%TPPD3%dgsave = .FALSE.
[5931]2192      ENDIF
[7224]2193      IF  (iom_use("BDDTALK3")) THEN
2194          med_diag%BDDTALK3%dgsave = .TRUE.
[5931]2195      ELSE
[7224]2196          med_diag%BDDTALK3%dgsave = .FALSE.
[5931]2197      ENDIF
[7224]2198      IF  (iom_use("BDDTDIC3")) THEN
2199          med_diag%BDDTDIC3%dgsave = .TRUE.
[5931]2200      ELSE
[7224]2201          med_diag%BDDTDIC3%dgsave = .FALSE.
[5931]2202      ENDIF
[7224]2203      IF  (iom_use("BDDTDIFE3")) THEN
2204          med_diag%BDDTDIFE3%dgsave = .TRUE.
[5931]2205      ELSE
[7224]2206          med_diag%BDDTDIFE3%dgsave = .FALSE.
[5931]2207      ENDIF
[7224]2208      IF  (iom_use("BDDTDISI3")) THEN
2209          med_diag%BDDTDISI3%dgsave = .TRUE.
[5931]2210      ELSE
[7224]2211          med_diag%BDDTDISI3%dgsave = .FALSE.
[5931]2212      ENDIF
[7224]2213      IF  (iom_use("FD_NIT3")) THEN
2214          med_diag%FD_NIT3%dgsave = .TRUE.
[5931]2215      ELSE
[7224]2216          med_diag%FD_NIT3%dgsave = .FALSE.
[5931]2217      ENDIF
[7224]2218      IF  (iom_use("FD_SIL3")) THEN
2219          med_diag%FD_SIL3%dgsave = .TRUE.
[5931]2220      ELSE
[7224]2221          med_diag%FD_SIL3%dgsave = .FALSE.
[5931]2222      ENDIF
[7224]2223      IF  (iom_use("FD_CAR3")) THEN
2224          med_diag%FD_CAR3%dgsave = .TRUE.
[5931]2225      ELSE
[7224]2226          med_diag%FD_CAR3%dgsave = .FALSE.
[5931]2227      ENDIF
[7224]2228      IF  (iom_use("FD_CAL3")) THEN
2229          med_diag%FD_CAL3%dgsave = .TRUE.
[5931]2230      ELSE
[7224]2231          med_diag%FD_CAL3%dgsave = .FALSE.
[5931]2232      ENDIF
[7224]2233      IF  (iom_use("CO33")) THEN
2234          med_diag%CO33%dgsave = .TRUE.
[5931]2235      ELSE
[7224]2236          med_diag%CO33%dgsave = .FALSE.
[5931]2237      ENDIF
[7224]2238      IF  (iom_use("CO3SATARAG3")) THEN
2239          med_diag%CO3SATARAG3%dgsave = .TRUE.
[5931]2240      ELSE
[7224]2241          med_diag%CO3SATARAG3%dgsave = .FALSE.
[5931]2242      ENDIF
[7224]2243      IF  (iom_use("CO3SATCALC3")) THEN
2244          med_diag%CO3SATCALC3%dgsave = .TRUE.
[5931]2245      ELSE
[7224]2246          med_diag%CO3SATCALC3%dgsave = .FALSE.
[5931]2247      ENDIF
[7224]2248      IF  (iom_use("DCALC3")) THEN
2249          med_diag%DCALC3%dgsave = .TRUE.
[5931]2250      ELSE
[7224]2251          med_diag%DCALC3%dgsave = .FALSE.
[5931]2252      ENDIF
[7224]2253      IF  (iom_use("EXPC3")) THEN
2254          med_diag%EXPC3%dgsave = .TRUE.
[5931]2255      ELSE
[7224]2256          med_diag%EXPC3%dgsave = .FALSE.
[5931]2257      ENDIF
[7224]2258      IF  (iom_use("EXPN3")) THEN
2259          med_diag%EXPN3%dgsave = .TRUE.
[5931]2260      ELSE
[7224]2261          med_diag%EXPN3%dgsave = .FALSE.
[5931]2262      ENDIF
[7224]2263      IF  (iom_use("EXPCALC3")) THEN
2264          med_diag%EXPCALC3%dgsave = .TRUE.
[5931]2265      ELSE
[7224]2266          med_diag%EXPCALC3%dgsave = .FALSE.
[5931]2267      ENDIF
[7224]2268      IF  (iom_use("EXPSI3")) THEN
2269          med_diag%EXPSI3%dgsave = .TRUE.
[5931]2270      ELSE
[7224]2271          med_diag%EXPSI3%dgsave = .FALSE.
[5931]2272      ENDIF
[7224]2273      IF  (iom_use("FEDISS3")) THEN
2274          med_diag%FEDISS3%dgsave = .TRUE.
[5931]2275      ELSE
[7224]2276          med_diag%FEDISS3%dgsave = .FALSE.
[5931]2277      ENDIF
[7224]2278      IF  (iom_use("FESCAV3")) THEN
2279          med_diag%FESCAV3%dgsave = .TRUE.
[5931]2280      ELSE
[7224]2281          med_diag%FESCAV3%dgsave = .FALSE.
[5931]2282      ENDIF
[7224]2283      IF  (iom_use("MIGRAZP3")) THEN
2284          med_diag%MIGRAZP3%dgsave = .TRUE.
[5931]2285      ELSE
[7224]2286          med_diag%MIGRAZP3%dgsave = .FALSE.
[5931]2287      ENDIF
[7224]2288      IF  (iom_use("MIGRAZD3")) THEN
2289          med_diag%MIGRAZD3%dgsave = .TRUE.
[5931]2290      ELSE
[7224]2291          med_diag%MIGRAZD3%dgsave = .FALSE.
[5931]2292      ENDIF
[7224]2293      IF  (iom_use("MEGRAZP3")) THEN
2294          med_diag%MEGRAZP3%dgsave = .TRUE.
[5931]2295      ELSE
[7224]2296          med_diag%MEGRAZP3%dgsave = .FALSE.
[5931]2297      ENDIF
[7224]2298      IF  (iom_use("MEGRAZD3")) THEN
2299          med_diag%MEGRAZD3%dgsave = .TRUE.
[5931]2300      ELSE
[7224]2301          med_diag%MEGRAZD3%dgsave = .FALSE.
[5931]2302      ENDIF
[7224]2303      IF  (iom_use("MEGRAZZ3")) THEN
2304          med_diag%MEGRAZZ3%dgsave = .TRUE.
[5931]2305      ELSE
[7224]2306          med_diag%MEGRAZZ3%dgsave = .FALSE.
[5931]2307      ENDIF
[7224]2308      IF  (iom_use("O2SAT3")) THEN
2309          med_diag%O2SAT3%dgsave = .TRUE.
[5931]2310      ELSE
[7224]2311          med_diag%O2SAT3%dgsave = .FALSE.
[5931]2312      ENDIF
[7224]2313      IF  (iom_use("PBSI3")) THEN
2314          med_diag%PBSI3%dgsave = .TRUE.
[5931]2315      ELSE
[7224]2316          med_diag%PBSI3%dgsave = .FALSE.
[5931]2317      ENDIF
[7224]2318      IF  (iom_use("PCAL3")) THEN
2319          med_diag%PCAL3%dgsave = .TRUE.
[5931]2320      ELSE
[7224]2321          med_diag%PCAL3%dgsave = .FALSE.
[5931]2322      ENDIF
[7224]2323      IF  (iom_use("REMOC3")) THEN
2324          med_diag%REMOC3%dgsave = .TRUE.
[5931]2325      ELSE
[7224]2326          med_diag%REMOC3%dgsave = .FALSE.
[5931]2327      ENDIF
[7224]2328      IF  (iom_use("PNLIMJ3")) THEN
2329          med_diag%PNLIMJ3%dgsave = .TRUE.
[5931]2330      ELSE
[7224]2331          med_diag%PNLIMJ3%dgsave = .FALSE.
[5931]2332      ENDIF
[7224]2333      IF  (iom_use("PNLIMN3")) THEN
2334          med_diag%PNLIMN3%dgsave = .TRUE.
[5931]2335      ELSE
[7224]2336          med_diag%PNLIMN3%dgsave = .FALSE.
[5931]2337      ENDIF
[7224]2338      IF  (iom_use("PNLIFEJ3")) THEN
2339          med_diag%PNLIMFE3%dgsave = .TRUE.
[5931]2340      ELSE
[7224]2341          med_diag%PNLIMFE3%dgsave = .FALSE.
[5931]2342      ENDIF
[7224]2343      IF  (iom_use("PDLIMJ3")) THEN
2344          med_diag%PDLIMJ3%dgsave = .TRUE.
[5931]2345      ELSE
[7224]2346          med_diag%PDLIMJ3%dgsave = .FALSE.
[5931]2347      ENDIF
[7224]2348      IF  (iom_use("PDLIMN3")) THEN
2349          med_diag%PDLIMN3%dgsave = .TRUE.
[5931]2350      ELSE
[7224]2351          med_diag%PDLIMN3%dgsave = .FALSE.
[5931]2352      ENDIF
[7224]2353      IF  (iom_use("PDLIMFE3")) THEN
2354          med_diag%PDLIMFE3%dgsave = .TRUE.
[5931]2355      ELSE
[7224]2356          med_diag%PDLIMFE3%dgsave = .FALSE.
[5931]2357      ENDIF
[7224]2358      IF  (iom_use("PDLIMSI3")) THEN
2359          med_diag%PDLIMSI3%dgsave = .TRUE.
2360      ELSE
2361          med_diag%PDLIMSI3%dgsave = .FALSE.
2362      ENDIF
2363
[5931]2364   END SUBROUTINE   trc_nam_iom_medusa
2365   
[5726]2366#else
2367   !!----------------------------------------------------------------------
2368   !!  Dummy module :                                             No MEDUSA
2369   !!----------------------------------------------------------------------
2370CONTAINS
2371   SUBROUTINE trc_nam_medusa                      ! Empty routine
2372   END  SUBROUTINE  trc_nam_medusa
2373#endif 
2374
2375   !!======================================================================
2376END MODULE trcnam_medusa
Note: See TracBrowser for help on using the repository browser.