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/UKMO/dev_r5518_MEDUSA_optim_RH/NEMOGCM/NEMO/TOP_SRC/MEDUSA – NEMO

source: branches/UKMO/dev_r5518_MEDUSA_optim_RH/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90 @ 7711

Last change on this file since 7711 was 7711, checked in by frrh, 7 years ago

Various minor corrections resulting from array bounds checking.

Note: with array bounds check enables, the printing of namelists
natbio and natroam fail because they contain unallocated arrays.
(This does not cause a problem when not using array bounds checking).

E.g. arrays such as FRIVER_DEP cause this. It's not immediately
clear how we can correct this without wholesale changes to the
way these namelists are printed and since it only seems to be
an issue with array bounds checking switched on it may not
be worth pursuing (since we can get round it simply by commenting out
the offending lines.)

File size: 89.5 KB
Line 
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
12   !!              -   !  2015-11  (J. Palmieri) added iom_use for diags
13   !!              -   !  2016-11  (A. Yool) updated diags for CMIP6
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
26   !!USE trc_nam_dia     ! JPALM 13-11-2015 -- if iom_use for diag
27
28   !! AXY (04/02/14): necessary to find NaNs on HECTOR
29   USE, INTRINSIC :: ieee_arithmetic 
30
31   IMPLICIT NONE
32   PRIVATE
33
34   PUBLIC   trc_nam_medusa       ! called by trcnam.F90 module
35   PUBLIC   trc_nam_iom_medusa   ! called by trcnam.F90 module
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,          &
69      &    xsin0,xnsi0,xuif,jliebig, jq10,                    &
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      &  sedlam,sedlostpoc,jpkb,jdms,jdms_input,jdms_model
89#if defined key_roam
90      NAMELIST/natroam/ xthetaphy,xthetazoo,xthetanit,        &
91      &    xthetarem,xo2min,                                  &
92      &    f3_pH,f3_h2co3,f3_hco3,f3_co3,f3_omcal,f3_omarg,   &
93      &    f2_ccd_cal,f2_ccd_arg
94#endif
95      NAMELIST/natopt/xkg0,xkr0,xkgp,xkrp,xlg,xlr,rpig
96      INTEGER :: jl, jn
97      INTEGER :: ios                 ! Local integer output status for namelist read
98      TYPE(DIAG), DIMENSION(jp_medusa_2d)  :: meddia2d
99      TYPE(DIAG), DIMENSION(jp_medusa_3d)  :: meddia3d
100      TYPE(DIAG), DIMENSION(jp_medusa_trd) :: meddiabio
101      CHARACTER(LEN=32)   ::   clname
102      !!
103      NAMELIST/nammeddia/ meddia3d, meddia2d     ! additional diagnostics
104
105      !!----------------------------------------------------------------------
106
107      IF(lwp) WRITE(numout,*)
108      clname = 'namelist_medusa'
109      IF(lwp) WRITE(numout,*) ' trc_nam_medusa: read MEDUSA namelist'
110      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
111# if defined key_debug_medusa
112      CALL flush(numout)
113# endif
114
115
116      CALL ctl_opn( numnatp_ref, TRIM( clname )//'_ref', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
117      CALL ctl_opn( numnatp_cfg, TRIM( clname )//'_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
118      IF(lwm) CALL ctl_opn( numonp     , 'output.namelist.pis' , 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
119
120# if defined key_debug_medusa
121      CALL flush(numout)
122      IF (lwp) write (numout,*) '------------------------------'
123      IF (lwp) write (numout,*) 'Jpalm - debug'
124      IF (lwp) write (numout,*) 'open namelist_medusa -- OK'
125      IF (lwp) write (numout,*) 'Now, read namilists inside :'
126      IF (lwp) write (numout,*) ' '
127# endif
128      !
129# if defined key_debug_medusa
130      CALL flush(numout)
131# endif
132      !
133# if defined key_debug_medusa
134      IF (lwp) write (numout,*) '------------------------------'
135      IF (lwp) write (numout,*) 'Jpalm - debug'
136      IF (lwp) write (numout,*) 'Just before reading namelist_medusa :: nammeddia'
137      IF (lwp) write (numout,*) ' '
138      CALL flush(numout)
139# endif
140
141     IF( ( .NOT.lk_iomput .AND. ln_diatrc ) .OR. ( ln_diatrc .AND. lk_medusa ) ) THEN
142         !
143         ! Namelist nammeddia
144         ! -------------------
145         REWIND( numnatp_ref )              ! Namelist nammeddia in reference namelist : MEDUSA diagnostics
146         READ  ( numnatp_ref, nammeddia, IOSTAT = ios, ERR = 901)
147901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nammeddia in reference namelist', lwp )
148
149         REWIND( numnatp_cfg )              ! Namelist nammeddia in configuration namelist : MEDUSA diagnostics
150         READ  ( numnatp_cfg, nammeddia, IOSTAT = ios, ERR = 902 )
151902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nammeddia in configuration namelist', lwp )
152         IF(lwm) WRITE ( numonp, nammeddia )
153
154# if defined key_debug_medusa
155         IF (lwp) write (numout,*) '------------------------------'
156         IF (lwp) write (numout,*) 'Jpalm - debug'
157         IF (lwp) write (numout,*) 'reading namelist_medusa :: nammeddia OK'
158         IF (lwp) write (numout,*) 'Check number of variable in nammeddia:'
159         IF (lwp) write (numout,*) 'jp_medusa_2d: ',jp_medusa_2d ,'jp_medusa_3d: ',jp_medusa_3d
160         IF (lwp) write (numout,*) ' '
161         CALL flush(numout)
162# endif
163         DO jl = 1, jp_medusa_2d
164            jn = jp_msa0_2d + jl - 1
165# if defined key_debug_medusa
166            IF (lwp) write (numout,*) 'Check what is readden in nammeddia: -- 2D'
167            IF (lwp) write (numout,*) jl,'meddia2d-sname: ',meddia2d(jl)%sname 
168            IF (lwp) write (numout,*) jl,'meddia2d-lname: ',meddia2d(jl)%lname 
169            IF (lwp) write (numout,*) jl,'meddia2d-units: ',meddia2d(jl)%units 
170            CALL flush(numout)
171# endif
172            ctrc2d(jn) = meddia2d(jl)%sname
173            ctrc2l(jn) = meddia2d(jl)%lname
174            ctrc2u(jn) = meddia2d(jl)%units
175         END DO
176
177         DO jl = 1, jp_medusa_3d
178            jn = jp_msa0_3d + jl - 1
179# if defined key_debug_medusa
180            IF (lwp) write (numout,*) 'Check what is readden in nammeddia: -- 3D'
181            IF (lwp) write (numout,*) jl,'meddia3d-sname: ',meddia3d(jl)%sname 
182            IF (lwp) write (numout,*) jl,'meddia3d-lname: ',meddia3d(jl)%lname
183            IF (lwp) write (numout,*) jl,'meddia3d-units: ',meddia3d(jl)%units
184            CALL flush(numout)
185# endif
186            ctrc3d(jn) = meddia3d(jl)%sname
187            ctrc3l(jn) = meddia3d(jl)%lname
188            ctrc3u(jn) = meddia3d(jl)%units
189         END DO
190
191         IF(lwp) THEN                   ! control print
192# if defined key_debug_medusa
193            IF (lwp) write (numout,*) '------------------------------'
194            IF (lwp) write (numout,*) 'Jpalm - debug'
195            IF (lwp) write (numout,*) 'Var name assignation OK'
196            IF (lwp) write (numout,*) 'next check var names'
197            IF (lwp) write (numout,*) ' '
198            CALL flush(numout)
199# endif
200            WRITE(numout,*)
201            WRITE(numout,*) ' Namelist : natadd'
202            DO jl = 1, jp_medusa_3d
203               jn = jp_msa0_3d + jl - 1
204               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
205                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
206            END DO
207            WRITE(numout,*) ' '
208
209            DO jl = 1, jp_medusa_2d
210               jn = jp_msa0_2d + jl - 1
211               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
212                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
213            END DO
214            WRITE(numout,*) ' '
215         ENDIF
216         !
217      ENDIF   
218         !
219# if defined key_debug_medusa
220            CALL flush(numout)
221# endif
222
223      ! 1.4 namelist natbio : biological parameters
224      ! -------------------------------------------
225     
226      xxi         = 0.
227      xaln        = 0.
228      xald        = 0.
229      jphy        = 0
230      xvpn        = 0.
231      xvpd        = 0.
232      xthetam     = 0.
233      xthetamd    = 0.
234!!
235      xsin0       = 0.
236      xnsi0       = 0.
237      xuif        = 0.
238!!
239      jliebig     = 0
240      xnln        = 0.
241      xnld        = 0.
242      xsld        = 0.
243      xfln        = 0.
244      xfld        = 0.
245!!
246      xgmi        = 0.
247      xgme        = 0.
248      xkmi        = 0.
249      xkme        = 0.
250      xphi    = 0.
251      xbetan      = 0.
252      xbetac      = 0.
253      xkc         = 0.
254      xpmipn      = 0.
255      xpmid       = 0.
256      xpmepn      = 0.
257      xpmepd      = 0.
258      xpmezmi     = 0.
259      xpmed       = 0.
260!!
261      xmetapn     = 0.
262      xmetapd     = 0.
263      xmetazmi    = 0.
264      xmetazme    = 0.
265!!
266      jmpn        = 0
267      xmpn        = 0.
268      xkphn       = 0.
269      jmpd        = 0
270      xmpd        = 0.
271      xkphd       = 0.
272      jmzmi       = 0
273      xmzmi       = 0.
274      xkzmi       = 0.
275      jmzme       = 0
276      xmzme       = 0.
277      xkzme       = 0.
278!!
279      jmd         = 0
280      jsfd        = 0
281      xmd         = 0.
282      xmdc        = 0.
283!!
284      xthetapn    = 0.
285      xthetapd    = 0.
286      xthetazmi   = 0.
287      xthetazme   = 0.
288      xthetad     = 0.
289      xrfn        = 0.
290      xrsn        = 0.  !: (NOT USED HERE; RETAINED FOR LOBSTER)
291!!
292      jiron       = 0
293      xfe_mass    = 0.
294      xfe_sol     = 0.
295      xfe_sed     = 0.
296      xLgT        = 0.
297      xk_FeL     = 0.
298      xk_sc_Fe    = 0.
299!!
300      jexport     = 0
301      jfdfate     = 0
302      jrratio     = 0
303      jocalccd    = 0
304      xridg_r0    = 0.
305      xfdfrac1   = 0.
306      xfdfrac2   = 0.
307      xfdfrac3   = 0.
308      xcaco3a    = 0.
309      xcaco3b    = 0.
310      xmassc     = 0.
311      xmassca    = 0.
312      xmasssi    = 0.
313      xprotca    = 0.
314      xprotsi    = 0.
315      xfastc     = 0.
316      xfastca    = 0.
317      xfastsi    = 0.
318!!
319      jorgben     = 0
320      jinorgben   = 0
321      xsedn       = 0.
322      xsedfe      = 0.
323      xsedsi      = 0.
324      xsedc       = 0.
325      xsedca      = 0.
326      xburial     = 0.
327!!
328      jriver_n    = 0
329      jriver_si   = 0
330      jriver_c    = 0
331      jriver_alk  = 0
332      jriver_dep  = 1
333!!
334      xsdiss     = 0.
335!!
336      vsed        = 0.
337      xhr         = 0.
338!!
339      sedlam     = 0.
340      sedlostpoc  = 0.
341      jpkb    = 0.
342      jdms        = 0
343      jdms_input  = 0
344      jdms_model  = 3
345      jq10        = 1.5
346           
347      !REWIND(numnatm)
348      !READ(numnatm,natbio)
349         ! Namelist natbio
350         ! -------------------
351         REWIND( numnatp_ref )              ! Namelist natbio in reference namelist : MEDUSA diagnostics
352         READ  ( numnatp_ref, natbio, IOSTAT = ios, ERR = 903)
353903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natbio in reference namelist', lwp )
354
355         REWIND( numnatp_cfg )              ! Namelist natbio in configuration namelist : MEDUSA diagnostics
356         READ  ( numnatp_cfg, natbio, IOSTAT = ios, ERR = 904 )
357904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natbio in configuration namelist', lwp )
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
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
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       
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       
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
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
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
590         elseif (jphy.eq.2) then
591            WRITE(numout,*) &
592            &   ' phytoplankton growth is *temperature-dependent(Q10)*       jphy        = ', jphy
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
605         WRITE(numout,*)     &
606         &   ' specific Q10 value (jphy==2),                                  jq10    = ', jq10
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
755         elseif (jmd.eq.2) then
756            WRITE(numout,*) &
757            &   ' detritus remineralisation is *temperature-dependent(Q10)*  jmd         = ', jmd
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!!
1008!! UKESM1 - new diagnostics  !! Jpalm; AXY (08/07/15)
1009         WRITE(numout,*) '=== UKESM1-related parameters'
1010         WRITE(numout,*)     &
1011         &   ' include DMS diagnostic?,                                   jdms        = ', jdms
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
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)
1089         ! Namelist natroam
1090         ! -------------------
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 )
1094
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 )
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         ! -------------------
1143         REWIND( numnatp_ref )              ! Namelist natopt in reference namelist : MEDUSA diagnostics
1144         READ  ( numnatp_ref, natopt, IOSTAT = ios, ERR = 907)
1145907      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natopt in reference namelist', lwp )
1146
1147         REWIND( numnatp_cfg )              ! Namelist natopt in configuration namelist : MEDUSA diagnostics
1148         READ  ( numnatp_cfg, natopt, IOSTAT = ios, ERR = 908 )
1149908      IF( ios /= 0 ) CALL ctl_nam ( ios , 'natopt in configuration namelist', lwp )
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   
1183   SUBROUTINE trc_nam_iom_medusa
1184      !!---------------------------------------------------------------------
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      !!
1200      IF (iom_use("INVTN")) THEN
1201          med_diag%INVTN%dgsave = .TRUE.
1202      ELSE
1203          med_diag%INVTN%dgsave = .FALSE.
1204      ENDIF
1205      IF  (iom_use("INVTSI")) THEN
1206          med_diag%INVTSI%dgsave = .TRUE.
1207      ELSE
1208          med_diag%INVTSI%dgsave = .FALSE.
1209      ENDIF
1210      IF  (iom_use("INVTFE")) THEN
1211          med_diag%INVTFE%dgsave = .TRUE.
1212      ELSE
1213          med_diag%INVTFE%dgsave = .FALSE.
1214      ENDIF
1215      IF  (iom_use("PRN")) THEN
1216          med_diag%PRN%dgsave = .TRUE.
1217      ELSE
1218          med_diag%PRN%dgsave = .FALSE.
1219      ENDIF
1220      IF  (iom_use("MPN")) THEN
1221          med_diag%MPN%dgsave = .TRUE.
1222      ELSE
1223          med_diag%MPN%dgsave = .FALSE.
1224      ENDIF
1225      IF  (iom_use("PRD")) THEN
1226          med_diag%PRD%dgsave = .TRUE.
1227      ELSE
1228          med_diag%PRD%dgsave = .FALSE.
1229      ENDIF
1230      IF  (iom_use("MPD")) THEN
1231          med_diag%MPD%dgsave = .TRUE.
1232      ELSE
1233          med_diag%MPD%dgsave = .FALSE.
1234      ENDIF
1235      IF  (iom_use("DSED")) THEN
1236          med_diag%DSED%dgsave = .TRUE.
1237      ELSE
1238          med_diag%DSED%dgsave = .FALSE.
1239      ENDIF
1240      IF  (iom_use("OPAL")) THEN
1241          med_diag%OPAL%dgsave = .TRUE.
1242      ELSE
1243          med_diag%OPAL%dgsave = .FALSE.
1244      ENDIF
1245      IF  (iom_use("OPALDISS")) THEN
1246          med_diag%OPALDISS%dgsave = .TRUE.
1247      ELSE
1248          med_diag%OPALDISS%dgsave = .FALSE.
1249      ENDIF
1250      IF  (iom_use("GMIPn")) THEN
1251          med_diag%GMIPn%dgsave = .TRUE.
1252      ELSE
1253          med_diag%GMIPn%dgsave = .FALSE.
1254      ENDIF
1255      IF  (iom_use("GMID")) THEN
1256          med_diag%GMID%dgsave = .TRUE.
1257      ELSE
1258          med_diag%GMID%dgsave = .FALSE.
1259      ENDIF
1260      IF  (iom_use("MZMI")) THEN
1261          med_diag%MZMI%dgsave = .TRUE.
1262      ELSE
1263          med_diag%MZMI%dgsave = .FALSE.
1264      ENDIF
1265      IF  (iom_use("GMEPN")) THEN
1266          med_diag%GMEPN%dgsave = .TRUE.
1267      ELSE
1268          med_diag%GMEPN%dgsave = .FALSE.
1269      ENDIF
1270      IF  (iom_use("GMEPD")) THEN
1271          med_diag%GMEPD%dgsave = .TRUE.
1272      ELSE
1273          med_diag%GMEPD%dgsave = .FALSE.
1274      ENDIF
1275      IF  (iom_use("GMEZMI")) THEN
1276          med_diag%GMEZMI%dgsave = .TRUE.
1277      ELSE
1278          med_diag%GMEZMI%dgsave = .FALSE.
1279      ENDIF
1280      IF  (iom_use("GMED")) THEN
1281          med_diag%GMED%dgsave = .TRUE.
1282      ELSE
1283          med_diag%GMED%dgsave = .FALSE.
1284      ENDIF
1285      IF  (iom_use("MZME")) THEN
1286          med_diag%MZME%dgsave = .TRUE.
1287      ELSE
1288          med_diag%MZME%dgsave = .FALSE.
1289      ENDIF
1290      IF  (iom_use("DEXP")) THEN
1291          med_diag%DEXP%dgsave = .TRUE.
1292      ELSE
1293          med_diag%DEXP%dgsave = .FALSE.
1294      ENDIF
1295      IF  (iom_use("DETN")) THEN
1296          med_diag%DETN%dgsave = .TRUE.
1297      ELSE
1298          med_diag%DETN%dgsave = .FALSE.
1299      ENDIF
1300      IF  (iom_use("MDET")) THEN
1301          med_diag%MDET%dgsave = .TRUE.
1302      ELSE
1303          med_diag%MDET%dgsave = .FALSE.
1304      ENDIF
1305      IF  (iom_use("AEOLIAN")) THEN
1306          med_diag%AEOLIAN%dgsave = .TRUE.
1307      ELSE
1308          med_diag%AEOLIAN%dgsave = .FALSE.
1309      ENDIF
1310      IF  (iom_use("BENTHIC")) THEN
1311          med_diag%BENTHIC%dgsave = .TRUE.
1312      ELSE
1313          med_diag%BENTHIC%dgsave = .FALSE.
1314      ENDIF
1315      IF  (iom_use("SCAVENGE")) THEN
1316          med_diag%SCAVENGE%dgsave = .TRUE.
1317      ELSE
1318          med_diag%SCAVENGE%dgsave = .FALSE.
1319      ENDIF
1320      IF  (iom_use("PN_JLIM")) THEN
1321          med_diag%PN_JLIM%dgsave = .TRUE.
1322      ELSE
1323          med_diag%PN_JLIM%dgsave = .FALSE.
1324      ENDIF
1325      IF  (iom_use("PN_NLIM")) THEN
1326          med_diag%PN_NLIM%dgsave = .TRUE.
1327      ELSE
1328          med_diag%PN_NLIM%dgsave = .FALSE.
1329      ENDIF
1330      IF  (iom_use("PN_FELIM")) THEN
1331          med_diag%PN_FELIM%dgsave = .TRUE.
1332      ELSE
1333          med_diag%PN_FELIM%dgsave = .FALSE.
1334      ENDIF
1335      IF  (iom_use("PD_JLIM")) THEN
1336          med_diag%PD_JLIM%dgsave = .TRUE.
1337      ELSE
1338          med_diag%PD_JLIM%dgsave = .FALSE.
1339      ENDIF
1340      IF  (iom_use("PD_NLIM")) THEN
1341          med_diag%PD_NLIM%dgsave = .TRUE.
1342      ELSE
1343          med_diag%PD_NLIM%dgsave = .FALSE.
1344      ENDIF
1345      IF  (iom_use("PD_FELIM")) THEN
1346          med_diag%PD_FELIM%dgsave = .TRUE.
1347      ELSE
1348          med_diag%PD_FELIM%dgsave = .FALSE.
1349      ENDIF
1350      IF  (iom_use("PD_SILIM")) THEN
1351          med_diag%PD_SILIM%dgsave = .TRUE.
1352      ELSE
1353          med_diag%PD_SILIM%dgsave = .FALSE.
1354      ENDIF
1355      IF  (iom_use("PDSILIM2")) THEN
1356          med_diag%PDSILIM2%dgsave = .TRUE.
1357      ELSE
1358          med_diag%PDSILIM2%dgsave = .FALSE.
1359      ENDIF
1360      IF  (iom_use("SDT__100")) THEN
1361          med_diag%SDT__100%dgsave = .TRUE.
1362      ELSE
1363          med_diag%SDT__100%dgsave = .FALSE.
1364      ENDIF
1365      IF  (iom_use("SDT__200")) THEN
1366          med_diag%SDT__200%dgsave = .TRUE.
1367      ELSE
1368          med_diag%SDT__200%dgsave = .FALSE.
1369      ENDIF
1370      IF  (iom_use("SDT__500")) THEN
1371          med_diag%SDT__500%dgsave = .TRUE.
1372      ELSE
1373          med_diag%SDT__500%dgsave = .FALSE.
1374      ENDIF
1375      IF  (iom_use("SDT_1000")) THEN
1376          med_diag%SDT_1000%dgsave = .TRUE.
1377      ELSE
1378          med_diag%SDT_1000%dgsave = .FALSE.
1379      ENDIF
1380      IF  (iom_use("TOTREG_N")) THEN
1381          med_diag%TOTREG_N%dgsave = .TRUE.
1382      ELSE
1383          med_diag%TOTREG_N%dgsave = .FALSE.
1384      ENDIF
1385      IF  (iom_use("TOTRG_SI")) THEN
1386          med_diag%TOTRG_SI%dgsave = .TRUE.
1387      ELSE
1388          med_diag%TOTRG_SI%dgsave = .FALSE.
1389      ENDIF
1390      IF  (iom_use("REG__100")) THEN
1391          med_diag%REG__100%dgsave = .TRUE.
1392      ELSE
1393          med_diag%REG__100%dgsave = .FALSE.
1394      ENDIF
1395      IF  (iom_use("REG__200")) THEN
1396          med_diag%REG__200%dgsave = .TRUE.
1397      ELSE
1398          med_diag%REG__200%dgsave = .FALSE.
1399      ENDIF
1400      IF  (iom_use("REG__500")) THEN
1401          med_diag%REG__500%dgsave = .TRUE.
1402      ELSE
1403          med_diag%REG__500%dgsave = .FALSE.
1404      ENDIF
1405      IF  (iom_use("REG_1000")) THEN
1406          med_diag%REG_1000%dgsave = .TRUE.
1407      ELSE
1408          med_diag%REG_1000%dgsave = .FALSE.
1409      ENDIF
1410      IF  (iom_use("FASTN")) THEN
1411          med_diag%FASTN%dgsave = .TRUE.
1412      ELSE
1413          med_diag%FASTN%dgsave = .FALSE.
1414      ENDIF
1415      IF  (iom_use("FASTSI")) THEN
1416          med_diag%FASTSI%dgsave = .TRUE.
1417      ELSE
1418          med_diag%FASTSI%dgsave = .FALSE.
1419      ENDIF
1420      IF  (iom_use("FASTFE")) THEN
1421          med_diag%FASTFE%dgsave = .TRUE.
1422      ELSE
1423          med_diag%FASTFE%dgsave = .FALSE.
1424      ENDIF
1425      IF  (iom_use("FASTC")) THEN
1426          med_diag%FASTC%dgsave = .TRUE.
1427      ELSE
1428          med_diag%FASTC%dgsave = .FALSE.
1429      ENDIF
1430      IF  (iom_use("FASTCA")) THEN
1431          med_diag%FASTCA%dgsave = .TRUE.
1432      ELSE
1433          med_diag%FASTCA%dgsave = .FALSE.
1434      ENDIF
1435      IF  (iom_use("FDT__100")) THEN
1436          med_diag%FDT__100%dgsave = .TRUE.
1437      ELSE
1438          med_diag%FDT__100%dgsave = .FALSE.
1439      ENDIF
1440      IF  (iom_use("FDT__200")) THEN
1441          med_diag%FDT__200%dgsave = .TRUE.
1442      ELSE
1443          med_diag%FDT__200%dgsave = .FALSE.
1444      ENDIF
1445      IF  (iom_use("FDT__500")) THEN
1446          med_diag%FDT__500%dgsave = .TRUE.
1447      ELSE
1448          med_diag%FDT__500%dgsave = .FALSE.
1449      ENDIF
1450      IF  (iom_use("FDT_1000")) THEN
1451          med_diag%FDT_1000%dgsave = .TRUE.
1452      ELSE
1453          med_diag%FDT_1000%dgsave = .FALSE.
1454      ENDIF
1455      IF  (iom_use("RG__100F")) THEN
1456          med_diag%RG__100F%dgsave = .TRUE.
1457      ELSE
1458          med_diag%RG__100F%dgsave = .FALSE.
1459      ENDIF
1460      IF  (iom_use("RG__200F")) THEN
1461          med_diag%RG__200F%dgsave = .TRUE.
1462      ELSE
1463          med_diag%RG__200F%dgsave = .FALSE.
1464      ENDIF
1465      IF  (iom_use("RG__500F")) THEN
1466          med_diag%RG__500F%dgsave = .TRUE.
1467      ELSE
1468          med_diag%RG__500F%dgsave = .FALSE.
1469      ENDIF
1470      IF  (iom_use("RG_1000F")) THEN
1471          med_diag%RG_1000F%dgsave = .TRUE.
1472      ELSE
1473          med_diag%RG_1000F%dgsave = .FALSE.
1474      ENDIF
1475      IF  (iom_use("FDS__100")) THEN
1476          med_diag%FDS__100%dgsave = .TRUE.
1477      ELSE
1478          med_diag%FDS__100%dgsave = .FALSE.
1479      ENDIF
1480      IF  (iom_use("FDS__200")) THEN
1481          med_diag%FDS__200%dgsave = .TRUE.
1482      ELSE
1483          med_diag%FDS__200%dgsave = .FALSE.
1484      ENDIF
1485      IF  (iom_use("FDS__500")) THEN
1486          med_diag%FDS__500%dgsave = .TRUE.
1487      ELSE
1488          med_diag%FDS__500%dgsave = .FALSE.
1489      ENDIF
1490      IF  (iom_use("FDS_1000")) THEN
1491          med_diag%FDS_1000%dgsave = .TRUE.
1492      ELSE
1493          med_diag%FDS_1000%dgsave = .FALSE.
1494      ENDIF
1495      IF  (iom_use("RGS_100F")) THEN
1496          med_diag%RGS_100F%dgsave = .TRUE.
1497      ELSE
1498          med_diag%RGS_100F%dgsave = .FALSE.
1499      ENDIF
1500      IF  (iom_use("RGS_200F")) THEN
1501          med_diag%RGS_200F%dgsave = .TRUE.
1502      ELSE
1503          med_diag%RGS_200F%dgsave = .FALSE.
1504      ENDIF
1505      IF  (iom_use("RGS_500F")) THEN
1506          med_diag%RGS_500F%dgsave = .TRUE.
1507      ELSE
1508          med_diag%RGS_500F%dgsave = .FALSE.
1509      ENDIF
1510      IF  (iom_use("RGS1000F")) THEN
1511          med_diag%RGS1000F%dgsave = .TRUE.
1512      ELSE
1513          med_diag%RGS1000F%dgsave = .FALSE.
1514      ENDIF
1515      IF  (iom_use("REMINN")) THEN
1516          med_diag%REMINN%dgsave = .TRUE.
1517      ELSE
1518          med_diag%REMINN%dgsave = .FALSE.
1519      ENDIF
1520      IF  (iom_use("REMINSI")) THEN
1521          med_diag%REMINSI%dgsave = .TRUE.
1522      ELSE
1523          med_diag%REMINSI%dgsave = .FALSE.
1524      ENDIF
1525      IF  (iom_use("REMINFE")) THEN
1526          med_diag%REMINFE%dgsave = .TRUE.
1527      ELSE
1528          med_diag%REMINFE%dgsave = .FALSE.
1529      ENDIF
1530      IF  (iom_use("REMINC")) THEN
1531          med_diag%REMINC%dgsave = .TRUE.
1532      ELSE
1533          med_diag%REMINC%dgsave = .FALSE.
1534      ENDIF
1535      IF  (iom_use("REMINCA")) THEN
1536          med_diag%REMINCA%dgsave = .TRUE.
1537      ELSE
1538          med_diag%REMINCA%dgsave = .FALSE.
1539      ENDIF
1540      IF  (iom_use("SEAFLRN")) THEN
1541          med_diag%SEAFLRN%dgsave = .TRUE.
1542      ELSE
1543          med_diag%SEAFLRN%dgsave = .FALSE.
1544      ENDIF
1545      IF  (iom_use("SEAFLRSI")) THEN
1546          med_diag%SEAFLRSI%dgsave = .TRUE.
1547      ELSE
1548          med_diag%SEAFLRSI%dgsave = .FALSE.
1549      ENDIF
1550      IF  (iom_use("SEAFLRFE")) THEN
1551          med_diag%SEAFLRFE%dgsave = .TRUE.
1552      ELSE
1553          med_diag%SEAFLRFE%dgsave = .FALSE.
1554      ENDIF
1555      IF  (iom_use("SEAFLRC")) THEN
1556          med_diag%SEAFLRC%dgsave = .TRUE.
1557      ELSE
1558          med_diag%SEAFLRC%dgsave = .FALSE.
1559      ENDIF
1560      IF  (iom_use("SEAFLRCA")) THEN
1561          med_diag%SEAFLRCA%dgsave = .TRUE.
1562      ELSE
1563          med_diag%SEAFLRCA%dgsave = .FALSE.
1564      ENDIF
1565      IF  (iom_use("MED_QSR")) THEN
1566          med_diag%MED_QSR%dgsave = .TRUE.
1567      ELSE
1568          med_diag%MED_QSR%dgsave = .FALSE.
1569      ENDIF
1570      IF  (iom_use("MED_XPAR")) THEN
1571          med_diag%MED_XPAR%dgsave = .TRUE.
1572      ELSE
1573          med_diag%MED_XPAR%dgsave = .FALSE.
1574      ENDIF
1575      IF  (iom_use("INTFLX_N")) THEN
1576          med_diag%INTFLX_N%dgsave = .TRUE.
1577      ELSE
1578          med_diag%INTFLX_N%dgsave = .FALSE.
1579      ENDIF
1580      IF  (iom_use("INTFLX_SI")) THEN
1581          med_diag%INTFLX_SI%dgsave = .TRUE.
1582      ELSE
1583          med_diag%INTFLX_SI%dgsave = .FALSE.
1584      ENDIF
1585      IF  (iom_use("INTFLX_FE")) THEN
1586          med_diag%INTFLX_FE%dgsave = .TRUE.
1587      ELSE
1588          med_diag%INTFLX_FE%dgsave = .FALSE.
1589      ENDIF
1590      IF  (iom_use("INT_PN")) THEN
1591          med_diag%INT_PN%dgsave = .TRUE.
1592      ELSE
1593          med_diag%INT_PN%dgsave = .FALSE.
1594      ENDIF
1595      IF  (iom_use("INT_PD")) THEN
1596          med_diag%INT_PD%dgsave = .TRUE.
1597      ELSE
1598          med_diag%INT_PD%dgsave = .FALSE.
1599      ENDIF
1600      IF  (iom_use("ML_PRN")) THEN
1601          med_diag%ML_PRN%dgsave = .TRUE.
1602      ELSE
1603          med_diag%ML_PRN%dgsave = .FALSE.
1604      ENDIF
1605      IF  (iom_use("ML_PRD")) THEN
1606          med_diag%ML_PRD%dgsave = .TRUE.
1607      ELSE
1608          med_diag%ML_PRD%dgsave = .FALSE.
1609      ENDIF
1610      IF  (iom_use("OCAL_CCD")) THEN
1611          med_diag%OCAL_CCD%dgsave = .TRUE.
1612      ELSE
1613          med_diag%OCAL_CCD%dgsave = .FALSE.
1614      ENDIF
1615      IF  (iom_use("OCAL_LVL")) THEN
1616          med_diag%OCAL_LVL%dgsave = .TRUE.
1617      ELSE
1618          med_diag%OCAL_LVL%dgsave = .FALSE.
1619      ENDIF
1620      IF  (iom_use("FE_0000")) THEN
1621          med_diag%FE_0000%dgsave = .TRUE.
1622      ELSE
1623          med_diag%FE_0000%dgsave = .FALSE.
1624      ENDIF
1625      IF  (iom_use("FE_0100")) THEN
1626          med_diag%FE_0100%dgsave = .TRUE.
1627      ELSE
1628          med_diag%FE_0100%dgsave = .FALSE.
1629      ENDIF
1630      IF  (iom_use("FE_0200")) THEN
1631          med_diag%FE_0200%dgsave = .TRUE.
1632      ELSE
1633          med_diag%FE_0200%dgsave = .FALSE.
1634      ENDIF
1635      IF  (iom_use("FE_0500")) THEN
1636          med_diag%FE_0500%dgsave = .TRUE.
1637      ELSE
1638          med_diag%FE_0500%dgsave = .FALSE.
1639      ENDIF
1640      IF  (iom_use("FE_1000")) THEN
1641          med_diag%FE_1000%dgsave = .TRUE.
1642      ELSE
1643          med_diag%FE_1000%dgsave = .FALSE.
1644      ENDIF
1645      IF  (iom_use("MED_XZE")) THEN
1646          med_diag%MED_XZE%dgsave = .TRUE.
1647      ELSE
1648          med_diag%MED_XZE%dgsave = .FALSE.
1649      ENDIF
1650      IF  (iom_use("WIND")) THEN
1651          med_diag%WIND%dgsave = .TRUE.
1652      ELSE
1653          med_diag%WIND%dgsave = .FALSE.
1654      ENDIF
1655      IF  (iom_use("ATM_PCO2")) THEN
1656          med_diag%ATM_PCO2%dgsave = .TRUE.
1657      ELSE
1658          med_diag%ATM_PCO2%dgsave = .FALSE.
1659      ENDIF
1660      IF  (iom_use("OCN_PH")) THEN
1661          med_diag%OCN_PH%dgsave = .TRUE.
1662      ELSE
1663          med_diag%OCN_PH%dgsave = .FALSE.
1664      ENDIF
1665      IF  (iom_use("OCN_PCO2")) THEN
1666          med_diag%OCN_PCO2%dgsave = .TRUE.
1667      ELSE
1668          med_diag%OCN_PCO2%dgsave = .FALSE.
1669      ENDIF
1670      IF  (iom_use("OCNH2CO3")) THEN
1671          med_diag%OCNH2CO3%dgsave = .TRUE.
1672      ELSE
1673          med_diag%OCNH2CO3%dgsave = .FALSE.
1674      ENDIF
1675      IF  (iom_use("OCN_HCO3")) THEN
1676          med_diag%OCN_HCO3%dgsave = .TRUE.
1677      ELSE
1678          med_diag%OCN_HCO3%dgsave = .FALSE.
1679      ENDIF
1680      IF  (iom_use("OCN_CO3")) THEN
1681          med_diag%OCN_CO3%dgsave = .TRUE.
1682      ELSE
1683          med_diag%OCN_CO3%dgsave = .FALSE.
1684      ENDIF
1685      IF  (iom_use("CO2FLUX")) THEN
1686          med_diag%CO2FLUX%dgsave = .TRUE.
1687      ELSE
1688          med_diag%CO2FLUX%dgsave = .FALSE.
1689      ENDIF
1690      IF  (iom_use("OM_CAL")) THEN
1691          med_diag%OM_CAL%dgsave = .TRUE.
1692      ELSE
1693          med_diag%OM_CAL%dgsave = .FALSE.
1694      ENDIF
1695      IF  (iom_use("OM_ARG")) THEN
1696          med_diag%OM_ARG%dgsave = .TRUE.
1697      ELSE
1698          med_diag%OM_ARG%dgsave = .FALSE.
1699      ENDIF
1700      IF  (iom_use("TCO2")) THEN
1701          med_diag%TCO2%dgsave = .TRUE.
1702      ELSE
1703          med_diag%TCO2%dgsave = .FALSE.
1704      ENDIF
1705      IF  (iom_use("TALK")) THEN
1706          med_diag%TALK%dgsave = .TRUE.
1707      ELSE
1708          med_diag%TALK%dgsave = .FALSE.
1709      ENDIF
1710      IF  (iom_use("KW660")) THEN
1711          med_diag%KW660%dgsave = .TRUE.
1712      ELSE
1713          med_diag%KW660%dgsave = .FALSE.
1714      ENDIF
1715      IF  (iom_use("ATM_PP0")) THEN
1716          med_diag%ATM_PP0%dgsave = .TRUE.
1717      ELSE
1718          med_diag%ATM_PP0%dgsave = .FALSE.
1719      ENDIF
1720      IF  (iom_use("O2FLUX")) THEN
1721          med_diag%O2FLUX%dgsave = .TRUE.
1722      ELSE
1723          med_diag%O2FLUX%dgsave = .FALSE.
1724      ENDIF
1725      IF  (iom_use("O2SAT")) THEN
1726          med_diag%O2SAT%dgsave = .TRUE.
1727      ELSE
1728          med_diag%O2SAT%dgsave = .FALSE.
1729      ENDIF
1730      IF  (iom_use("CAL_CCD")) THEN
1731          med_diag%CAL_CCD%dgsave = .TRUE.
1732      ELSE
1733          med_diag%CAL_CCD%dgsave = .FALSE.
1734      ENDIF
1735      IF  (iom_use("ARG_CCD")) THEN
1736          med_diag%ARG_CCD%dgsave = .TRUE.
1737      ELSE
1738          med_diag%ARG_CCD%dgsave = .FALSE.
1739      ENDIF
1740      IF  (iom_use("SFR_OCAL")) THEN
1741          med_diag%SFR_OCAL%dgsave = .TRUE.
1742      ELSE
1743          med_diag%SFR_OCAL%dgsave = .FALSE.
1744      ENDIF
1745      IF  (iom_use("SFR_OARG")) THEN
1746          med_diag%SFR_OARG%dgsave = .TRUE.
1747      ELSE
1748          med_diag%SFR_OARG%dgsave = .FALSE.
1749      ENDIF
1750      IF  (iom_use("N_PROD")) THEN
1751          med_diag%N_PROD%dgsave = .TRUE.
1752      ELSE
1753          med_diag%N_PROD%dgsave = .FALSE.
1754      ENDIF
1755      IF  (iom_use("N_CONS")) THEN
1756          med_diag%N_CONS%dgsave = .TRUE.
1757      ELSE
1758          med_diag%N_CONS%dgsave = .FALSE.
1759      ENDIF
1760      IF  (iom_use("C_PROD")) THEN
1761          med_diag%C_PROD%dgsave = .TRUE.
1762      ELSE
1763          med_diag%C_PROD%dgsave = .FALSE.
1764      ENDIF
1765      IF  (iom_use("C_CONS")) THEN
1766          med_diag%C_CONS%dgsave = .TRUE.
1767      ELSE
1768          med_diag%C_CONS%dgsave = .FALSE.
1769      ENDIF
1770      IF  (iom_use("O2_PROD")) THEN
1771          med_diag%O2_PROD%dgsave = .TRUE.
1772      ELSE
1773          med_diag%O2_PROD%dgsave = .FALSE.
1774      ENDIF
1775      IF  (iom_use("O2_CONS")) THEN
1776          med_diag%O2_CONS%dgsave = .TRUE.
1777      ELSE
1778          med_diag%O2_CONS%dgsave = .FALSE.
1779      ENDIF
1780      IF  (iom_use("O2_ANOX")) THEN
1781          med_diag%O2_ANOX%dgsave = .TRUE.
1782      ELSE
1783          med_diag%O2_ANOX%dgsave = .FALSE.
1784      ENDIF
1785      IF  (iom_use("RR_0100")) THEN
1786          med_diag%RR_0100%dgsave = .TRUE.
1787      ELSE
1788          med_diag%RR_0100%dgsave = .FALSE.
1789      ENDIF
1790      IF  (iom_use("RR_0500")) THEN
1791          med_diag%RR_0500%dgsave = .TRUE.
1792      ELSE
1793          med_diag%RR_0500%dgsave = .FALSE.
1794      ENDIF
1795      IF  (iom_use("RR_1000")) THEN
1796          med_diag%RR_1000%dgsave = .TRUE.
1797      ELSE
1798          med_diag%RR_1000%dgsave = .FALSE.
1799      ENDIF
1800      IF  (iom_use("IBEN_N")) THEN
1801          med_diag%IBEN_N%dgsave = .TRUE.
1802      ELSE
1803          med_diag%IBEN_N%dgsave = .FALSE.
1804      ENDIF
1805      IF  (iom_use("IBEN_FE")) THEN
1806          med_diag%IBEN_FE%dgsave = .TRUE.
1807      ELSE
1808          med_diag%IBEN_FE%dgsave = .FALSE.
1809      ENDIF
1810      IF  (iom_use("IBEN_C")) THEN
1811          med_diag%IBEN_C%dgsave = .TRUE.
1812      ELSE
1813          med_diag%IBEN_C%dgsave = .FALSE.
1814      ENDIF
1815      IF  (iom_use("IBEN_SI")) THEN
1816          med_diag%IBEN_SI%dgsave = .TRUE.
1817      ELSE
1818          med_diag%IBEN_SI%dgsave = .FALSE.
1819      ENDIF
1820      IF  (iom_use("IBEN_CA")) THEN
1821          med_diag%IBEN_CA%dgsave = .TRUE.
1822      ELSE
1823          med_diag%IBEN_CA%dgsave = .FALSE.
1824      ENDIF
1825      IF  (iom_use("OBEN_N")) THEN
1826          med_diag%OBEN_N%dgsave = .TRUE.
1827      ELSE
1828          med_diag%OBEN_N%dgsave = .FALSE.
1829      ENDIF
1830      IF  (iom_use("OBEN_FE")) THEN
1831          med_diag%OBEN_FE%dgsave = .TRUE.
1832      ELSE
1833          med_diag%OBEN_FE%dgsave = .FALSE.
1834      ENDIF
1835      IF  (iom_use("OBEN_C")) THEN
1836          med_diag%OBEN_C%dgsave = .TRUE.
1837      ELSE
1838          med_diag%OBEN_C%dgsave = .FALSE.
1839      ENDIF
1840      IF  (iom_use("OBEN_SI")) THEN
1841          med_diag%OBEN_SI%dgsave = .TRUE.
1842      ELSE
1843          med_diag%OBEN_SI%dgsave = .FALSE.
1844      ENDIF
1845      IF  (iom_use("OBEN_CA")) THEN
1846          med_diag%OBEN_CA%dgsave = .TRUE.
1847      ELSE
1848          med_diag%OBEN_CA%dgsave = .FALSE.
1849      ENDIF
1850      IF  (iom_use("BEN_N")) THEN
1851          med_diag%BEN_N%dgsave = .TRUE.
1852      ELSE
1853          med_diag%BEN_N%dgsave = .FALSE.
1854      ENDIF
1855      IF  (iom_use("BEN_FE")) THEN
1856          med_diag%BEN_FE%dgsave = .TRUE.
1857      ELSE
1858          med_diag%BEN_FE%dgsave = .FALSE.
1859      ENDIF
1860      IF  (iom_use("BEN_C")) THEN
1861          med_diag%BEN_C%dgsave = .TRUE.
1862      ELSE
1863          med_diag%BEN_C%dgsave = .FALSE.
1864      ENDIF
1865      IF  (iom_use("BEN_SI")) THEN
1866          med_diag%BEN_SI%dgsave = .TRUE.
1867      ELSE
1868          med_diag%BEN_SI%dgsave = .FALSE.
1869      ENDIF
1870      IF  (iom_use("BEN_CA")) THEN
1871          med_diag%BEN_CA%dgsave = .TRUE.
1872      ELSE
1873          med_diag%BEN_CA%dgsave = .FALSE.
1874      ENDIF
1875      IF  (iom_use("RUNOFF")) THEN
1876          med_diag%RUNOFF%dgsave = .TRUE.
1877      ELSE
1878          med_diag%RUNOFF%dgsave = .FALSE.
1879      ENDIF
1880      IF  (iom_use("RIV_N")) THEN
1881          med_diag%RIV_N%dgsave = .TRUE.
1882      ELSE
1883          med_diag%RIV_N%dgsave = .FALSE.
1884      ENDIF
1885      IF  (iom_use("RIV_SI")) THEN
1886          med_diag%RIV_SI%dgsave = .TRUE.
1887      ELSE
1888          med_diag%RIV_SI%dgsave = .FALSE.
1889      ENDIF
1890      IF  (iom_use("RIV_C")) THEN
1891          med_diag%RIV_C%dgsave = .TRUE.
1892      ELSE
1893          med_diag%RIV_C%dgsave = .FALSE.
1894      ENDIF
1895      IF  (iom_use("RIV_ALK")) THEN
1896          med_diag%RIV_ALK%dgsave = .TRUE.
1897      ELSE
1898          med_diag%RIV_ALK%dgsave = .FALSE.
1899      ENDIF
1900      IF  (iom_use("DETC")) THEN
1901          med_diag%DETC%dgsave = .TRUE.
1902      ELSE
1903          med_diag%DETC%dgsave = .FALSE.
1904      ENDIF
1905      IF  (iom_use("SDC__100")) THEN
1906          med_diag%SDC__100%dgsave = .TRUE.
1907      ELSE
1908          med_diag%SDC__100%dgsave = .FALSE.
1909      ENDIF
1910      IF  (iom_use("SDC__200")) THEN
1911          med_diag%SDC__200%dgsave = .TRUE.
1912      ELSE
1913          med_diag%SDC__200%dgsave = .FALSE.
1914      ENDIF
1915      IF  (iom_use("SDC__500")) THEN
1916          med_diag%SDC__500%dgsave = .TRUE.
1917      ELSE
1918          med_diag%SDC__500%dgsave = .FALSE.
1919      ENDIF
1920      IF  (iom_use("SDC_1000")) THEN
1921          med_diag%SDC_1000%dgsave = .TRUE.
1922      ELSE
1923          med_diag%SDC_1000%dgsave = .FALSE.
1924      ENDIF
1925      IF  (iom_use("INVTC")) THEN
1926          med_diag%INVTC%dgsave = .TRUE.
1927      ELSE
1928          med_diag%INVTC%dgsave = .FALSE.
1929      ENDIF
1930      IF  (iom_use("INVTALK")) THEN
1931          med_diag%INVTALK%dgsave = .TRUE.
1932      ELSE
1933          med_diag%INVTALK%dgsave = .FALSE.
1934      ENDIF
1935      IF  (iom_use("INVTO2")) THEN
1936          med_diag%INVTO2%dgsave = .TRUE.
1937      ELSE
1938          med_diag%INVTO2%dgsave = .FALSE.
1939      ENDIF
1940      IF  (iom_use("LYSO_CA")) THEN
1941          med_diag%LYSO_CA%dgsave = .TRUE.
1942      ELSE
1943          med_diag%LYSO_CA%dgsave = .FALSE.
1944      ENDIF
1945      IF  (iom_use("COM_RESP")) THEN
1946          med_diag%COM_RESP%dgsave = .TRUE.
1947      ELSE
1948          med_diag%COM_RESP%dgsave = .FALSE.
1949      ENDIF
1950      IF  (iom_use("PN_LLOSS")) THEN
1951          med_diag%PN_LLOSS%dgsave = .TRUE.
1952      ELSE
1953          med_diag%PN_LLOSS%dgsave = .FALSE.
1954      ENDIF
1955      IF  (iom_use("PD_LLOSS")) THEN
1956          med_diag%PD_LLOSS%dgsave = .TRUE.
1957      ELSE
1958          med_diag%PD_LLOSS%dgsave = .FALSE.
1959      ENDIF
1960      IF  (iom_use("ZI_LLOSS")) THEN
1961          med_diag%ZI_LLOSS%dgsave = .TRUE.
1962      ELSE
1963          med_diag%ZI_LLOSS%dgsave = .FALSE.
1964      ENDIF
1965      IF  (iom_use("ZE_LLOSS")) THEN
1966          med_diag%ZE_LLOSS%dgsave = .TRUE.
1967      ELSE
1968          med_diag%ZE_LLOSS%dgsave = .FALSE.
1969      ENDIF
1970      IF  (iom_use("ZI_MES_N")) THEN
1971          med_diag%ZI_MES_N%dgsave = .TRUE.
1972      ELSE
1973          med_diag%ZI_MES_N%dgsave = .FALSE.
1974      ENDIF
1975      IF  (iom_use("ZI_MES_D")) THEN
1976          med_diag%ZI_MES_D%dgsave = .TRUE.
1977      ELSE
1978          med_diag%ZI_MES_D%dgsave = .FALSE.
1979      ENDIF
1980      IF  (iom_use("ZI_MES_C")) THEN
1981          med_diag%ZI_MES_C%dgsave = .TRUE.
1982      ELSE
1983          med_diag%ZI_MES_C%dgsave = .FALSE.
1984      ENDIF
1985      IF  (iom_use("ZI_MESDC")) THEN
1986          med_diag%ZI_MESDC%dgsave = .TRUE.
1987      ELSE
1988          med_diag%ZI_MESDC%dgsave = .FALSE.
1989      ENDIF
1990      IF  (iom_use("ZI_EXCR")) THEN
1991          med_diag%ZI_EXCR%dgsave = .TRUE.
1992      ELSE
1993          med_diag%ZI_EXCR%dgsave = .FALSE.
1994      ENDIF
1995      IF  (iom_use("ZI_RESP")) THEN
1996          med_diag%ZI_RESP%dgsave = .TRUE.
1997      ELSE
1998          med_diag%ZI_RESP%dgsave = .FALSE.
1999      ENDIF
2000      IF  (iom_use("ZI_GROW")) THEN
2001          med_diag%ZI_GROW%dgsave = .TRUE.
2002      ELSE
2003          med_diag%ZI_GROW%dgsave = .FALSE.
2004      ENDIF
2005      IF  (iom_use("ZE_MES_N")) THEN
2006          med_diag%ZE_MES_N%dgsave = .TRUE.
2007      ELSE
2008          med_diag%ZE_MES_N%dgsave = .FALSE.
2009      ENDIF
2010      IF  (iom_use("ZE_MES_D")) THEN
2011          med_diag%ZE_MES_D%dgsave = .TRUE.
2012      ELSE
2013          med_diag%ZE_MES_D%dgsave = .FALSE.
2014      ENDIF
2015      IF  (iom_use("ZE_MES_C")) THEN
2016          med_diag%ZE_MES_C%dgsave = .TRUE.
2017      ELSE
2018          med_diag%ZE_MES_C%dgsave = .FALSE.
2019      ENDIF
2020      IF  (iom_use("ZE_MESDC")) THEN
2021          med_diag%ZE_MESDC%dgsave = .TRUE.
2022      ELSE
2023          med_diag%ZE_MESDC%dgsave = .FALSE.
2024      ENDIF
2025      IF  (iom_use("ZE_EXCR")) THEN
2026          med_diag%ZE_EXCR%dgsave = .TRUE.
2027      ELSE
2028          med_diag%ZE_EXCR%dgsave = .FALSE.
2029      ENDIF
2030      IF  (iom_use("ZE_RESP")) THEN
2031          med_diag%ZE_RESP%dgsave = .TRUE.
2032      ELSE
2033          med_diag%ZE_RESP%dgsave = .FALSE.
2034      ENDIF
2035      IF  (iom_use("ZE_GROW")) THEN
2036          med_diag%ZE_GROW%dgsave = .TRUE.
2037      ELSE
2038          med_diag%ZE_GROW%dgsave = .FALSE.
2039      ENDIF
2040      IF  (iom_use("MDETC")) THEN
2041          med_diag%MDETC%dgsave = .TRUE.
2042      ELSE
2043          med_diag%MDETC%dgsave = .FALSE.
2044      ENDIF
2045      IF  (iom_use("GMIDC")) THEN
2046          med_diag%GMIDC%dgsave = .TRUE.
2047      ELSE
2048          med_diag%GMIDC%dgsave = .FALSE.
2049      ENDIF
2050      IF  (iom_use("GMEDC")) THEN
2051          med_diag%GMEDC%dgsave = .TRUE.
2052      ELSE
2053          med_diag%GMEDC%dgsave = .FALSE.
2054      ENDIF
2055      IF  (iom_use("INT_ZMI")) THEN
2056          med_diag%INT_ZMI%dgsave = .TRUE.
2057      ELSE
2058          med_diag%INT_ZMI%dgsave = .FALSE.
2059      ENDIF
2060      IF  (iom_use("INT_ZME")) THEN
2061          med_diag%INT_ZME%dgsave = .TRUE.
2062      ELSE
2063          med_diag%INT_ZME%dgsave = .FALSE.
2064      ENDIF
2065      IF  (iom_use("INT_DET")) THEN
2066          med_diag%INT_DET%dgsave = .TRUE.
2067      ELSE
2068          med_diag%INT_DET%dgsave = .FALSE.
2069      ENDIF
2070      IF  (iom_use("INT_DTC")) THEN
2071          med_diag%INT_DTC%dgsave = .TRUE.
2072      ELSE
2073          med_diag%INT_DTC%dgsave = .FALSE.
2074      ENDIF
2075      IF  (iom_use("DMS_SURF")) THEN
2076          med_diag%DMS_SURF%dgsave = .TRUE.
2077      ELSE
2078          med_diag%DMS_SURF%dgsave = .FALSE.
2079      ENDIF
2080      IF  (iom_use("DMS_ANDR")) THEN
2081          med_diag%DMS_ANDR%dgsave = .TRUE.
2082      ELSE
2083          med_diag%DMS_ANDR%dgsave = .FALSE.
2084      ENDIF
2085      IF  (iom_use("DMS_SIMO")) THEN
2086          med_diag%DMS_SIMO%dgsave = .TRUE.
2087      ELSE
2088          med_diag%DMS_SIMO%dgsave = .FALSE.
2089      ENDIF
2090      IF  (iom_use("DMS_ARAN")) THEN
2091          med_diag%DMS_ARAN%dgsave = .TRUE.
2092      ELSE
2093          med_diag%DMS_ARAN%dgsave = .FALSE.
2094      ENDIF
2095      IF  (iom_use("DMS_HALL")) THEN
2096          med_diag%DMS_HALL%dgsave = .TRUE.
2097      ELSE
2098          med_diag%DMS_HALL%dgsave = .FALSE.
2099      ENDIF
2100      IF  (iom_use("ATM_XCO2")) THEN
2101          med_diag%ATM_XCO2%dgsave = .TRUE.
2102      ELSE
2103          med_diag%ATM_XCO2%dgsave = .FALSE.
2104      ENDIF
2105      IF  (iom_use("OCN_FCO2")) THEN
2106          med_diag%OCN_FCO2%dgsave = .TRUE.
2107      ELSE
2108          med_diag%OCN_FCO2%dgsave = .FALSE.
2109      ENDIF
2110      IF  (iom_use("ATM_FCO2")) THEN
2111          med_diag%ATM_FCO2%dgsave = .TRUE.
2112      ELSE
2113          med_diag%ATM_FCO2%dgsave = .FALSE.
2114      ENDIF
2115      IF  (iom_use("OCN_RHOSW")) THEN
2116          med_diag%OCN_RHOSW%dgsave = .TRUE.
2117      ELSE
2118          med_diag%OCN_RHOSW%dgsave = .FALSE.
2119      ENDIF
2120      IF  (iom_use("OCN_SCHCO2")) THEN
2121          med_diag%OCN_SCHCO2%dgsave = .TRUE.
2122      ELSE
2123          med_diag%OCN_SCHCO2%dgsave = .FALSE.
2124      ENDIF
2125      IF  (iom_use("OCN_KWCO2")) THEN
2126          med_diag%OCN_KWCO2%dgsave = .TRUE.
2127      ELSE
2128          med_diag%OCN_KWCO2%dgsave = .FALSE.
2129      ENDIF
2130      IF  (iom_use("OCN_K0")) THEN
2131          med_diag%OCN_K0%dgsave = .TRUE.
2132      ELSE
2133          med_diag%OCN_K0%dgsave = .FALSE.
2134      ENDIF
2135      IF  (iom_use("CO2STARAIR")) THEN
2136          med_diag%CO2STARAIR%dgsave = .TRUE.
2137      ELSE
2138          med_diag%CO2STARAIR%dgsave = .FALSE.
2139      ENDIF
2140      IF  (iom_use("OCN_DPCO2")) THEN
2141          med_diag%OCN_DPCO2%dgsave = .TRUE.
2142      ELSE
2143          med_diag%OCN_DPCO2%dgsave = .FALSE.
2144      ENDIF
2145      !!
2146      IF  (iom_use("TPP3")) THEN
2147          med_diag%TPP3%dgsave = .TRUE.
2148      ELSE
2149          med_diag%TPP3%dgsave = .FALSE.
2150      ENDIF
2151      IF  (iom_use("DETFLUX3")) THEN
2152          med_diag%DETFLUX3%dgsave = .TRUE.
2153      ELSE
2154          med_diag%DETFLUX3%dgsave = .FALSE.
2155      ENDIF
2156      IF  (iom_use("REMIN3N")) THEN
2157          med_diag%REMIN3N%dgsave = .TRUE.
2158      ELSE
2159          med_diag%REMIN3N%dgsave = .FALSE.
2160      ENDIF
2161      IF  (iom_use("PH3")) THEN
2162          med_diag%PH3%dgsave = .TRUE.
2163      ELSE
2164          med_diag%PH3%dgsave = .FALSE.
2165      ENDIF
2166      IF  (iom_use("OM_CAL3")) THEN
2167          med_diag%OM_CAL3%dgsave = .TRUE.
2168      ELSE
2169          med_diag%OM_CAL3%dgsave = .FALSE.
2170      ENDIF
2171      !!
2172      !!----------------------------------------------------------------------
2173      !! AXY (03/11/16): add in additional CMIP6 diagnostics
2174      !!----------------------------------------------------------------------
2175      !!
2176      !! 2D fields
2177      IF  (iom_use("epC100")) THEN
2178          med_diag%epC100%dgsave = .TRUE.
2179      ELSE
2180          med_diag%epC100%dgsave = .FALSE.
2181      ENDIF
2182      IF  (iom_use("epCALC100")) THEN
2183          med_diag%epCALC100%dgsave = .TRUE.
2184      ELSE
2185          med_diag%epCALC100%dgsave = .FALSE.
2186      ENDIF
2187      IF  (iom_use("epN100")) THEN
2188          med_diag%epN100%dgsave = .TRUE.
2189      ELSE
2190          med_diag%epN100%dgsave = .FALSE.
2191      ENDIF
2192      IF  (iom_use("epSI100")) THEN
2193          med_diag%epSI100%dgsave = .TRUE.
2194      ELSE
2195          med_diag%epSI100%dgsave = .FALSE.
2196      ENDIF
2197      IF  (iom_use("FGCO2")) THEN
2198          med_diag%FGCO2%dgsave = .TRUE.
2199      ELSE
2200          med_diag%FGCO2%dgsave = .FALSE.
2201      ENDIF
2202      IF  (iom_use("INTDISSIC")) THEN
2203          med_diag%INTDISSIC%dgsave = .TRUE.
2204      ELSE
2205          med_diag%INTDISSIC%dgsave = .FALSE.
2206      ENDIF
2207      IF  (iom_use("INTDISSIN")) THEN
2208          med_diag%INTDISSIN%dgsave = .TRUE.
2209      ELSE
2210          med_diag%INTDISSIN%dgsave = .FALSE.
2211      ENDIF
2212      IF  (iom_use("INTDISSISI")) THEN
2213          med_diag%INTDISSISI%dgsave = .TRUE.
2214      ELSE
2215          med_diag%INTDISSISI%dgsave = .FALSE.
2216      ENDIF
2217      IF  (iom_use("INTTALK")) THEN
2218          med_diag%INTTALK%dgsave = .TRUE.
2219      ELSE
2220          med_diag%INTTALK%dgsave = .FALSE.
2221      ENDIF
2222      IF  (iom_use("O2min")) THEN
2223          med_diag%O2min%dgsave = .TRUE.
2224      ELSE
2225          med_diag%O2min%dgsave = .FALSE.
2226      ENDIF
2227      IF  (iom_use("ZO2min")) THEN
2228          med_diag%ZO2min%dgsave = .TRUE.
2229      ELSE
2230          med_diag%ZO2min%dgsave = .FALSE.
2231      ENDIF
2232      IF  (iom_use("FBDDTALK")) THEN
2233          med_diag%FBDDTALK%dgsave = .TRUE.
2234      ELSE
2235          med_diag%FBDDTALK%dgsave = .FALSE.
2236      ENDIF
2237      IF  (iom_use("FBDDTDIC")) THEN
2238          med_diag%FBDDTDIC%dgsave = .TRUE.
2239      ELSE
2240          med_diag%FBDDTDIC%dgsave = .FALSE.
2241      ENDIF
2242      IF  (iom_use("FBDDTDIFE")) THEN
2243          med_diag%FBDDTDIFE%dgsave = .TRUE.
2244      ELSE
2245          med_diag%FBDDTDIFE%dgsave = .FALSE.
2246      ENDIF
2247      IF  (iom_use("FBDDTDIN")) THEN
2248          med_diag%FBDDTDIN%dgsave = .TRUE.
2249      ELSE
2250          med_diag%FBDDTDIN%dgsave = .FALSE.
2251      ENDIF
2252      IF  (iom_use("FBDDTDISI")) THEN
2253          med_diag%FBDDTDISI%dgsave = .TRUE.
2254      ELSE
2255          med_diag%FBDDTDISI%dgsave = .FALSE.
2256      ENDIF
2257      !!
2258      !! 3D
2259      IF  (iom_use("TPPD3")) THEN
2260          med_diag%TPPD3%dgsave = .TRUE.
2261      ELSE
2262          med_diag%TPPD3%dgsave = .FALSE.
2263      ENDIF
2264      IF  (iom_use("BDDTALK3")) THEN
2265          med_diag%BDDTALK3%dgsave = .TRUE.
2266      ELSE
2267          med_diag%BDDTALK3%dgsave = .FALSE.
2268      ENDIF
2269      IF  (iom_use("BDDTDIC3")) THEN
2270          med_diag%BDDTDIC3%dgsave = .TRUE.
2271      ELSE
2272          med_diag%BDDTDIC3%dgsave = .FALSE.
2273      ENDIF
2274      IF  (iom_use("BDDTDIFE3")) THEN
2275          med_diag%BDDTDIFE3%dgsave = .TRUE.
2276      ELSE
2277          med_diag%BDDTDIFE3%dgsave = .FALSE.
2278      ENDIF
2279      IF  (iom_use("BDDTDIN3")) THEN
2280          med_diag%BDDTDIN3%dgsave = .TRUE.
2281      ELSE
2282          med_diag%BDDTDIN3%dgsave = .FALSE.
2283      ENDIF
2284      IF  (iom_use("BDDTDISI3")) THEN
2285          med_diag%BDDTDISI3%dgsave = .TRUE.
2286      ELSE
2287          med_diag%BDDTDISI3%dgsave = .FALSE.
2288      ENDIF
2289      IF  (iom_use("FD_NIT3")) THEN
2290          med_diag%FD_NIT3%dgsave = .TRUE.
2291      ELSE
2292          med_diag%FD_NIT3%dgsave = .FALSE.
2293      ENDIF
2294      IF  (iom_use("FD_SIL3")) THEN
2295          med_diag%FD_SIL3%dgsave = .TRUE.
2296      ELSE
2297          med_diag%FD_SIL3%dgsave = .FALSE.
2298      ENDIF
2299      IF  (iom_use("FD_CAR3")) THEN
2300          med_diag%FD_CAR3%dgsave = .TRUE.
2301      ELSE
2302          med_diag%FD_CAR3%dgsave = .FALSE.
2303      ENDIF
2304      IF  (iom_use("FD_CAL3")) THEN
2305          med_diag%FD_CAL3%dgsave = .TRUE.
2306      ELSE
2307          med_diag%FD_CAL3%dgsave = .FALSE.
2308      ENDIF
2309      IF  (iom_use("CO33")) THEN
2310          med_diag%CO33%dgsave = .TRUE.
2311      ELSE
2312          med_diag%CO33%dgsave = .FALSE.
2313      ENDIF
2314      IF  (iom_use("CO3SATARAG3")) THEN
2315          med_diag%CO3SATARAG3%dgsave = .TRUE.
2316      ELSE
2317          med_diag%CO3SATARAG3%dgsave = .FALSE.
2318      ENDIF
2319      IF  (iom_use("CO3SATCALC3")) THEN
2320          med_diag%CO3SATCALC3%dgsave = .TRUE.
2321      ELSE
2322          med_diag%CO3SATCALC3%dgsave = .FALSE.
2323      ENDIF
2324      IF  (iom_use("DCALC3")) THEN
2325          med_diag%DCALC3%dgsave = .TRUE.
2326      ELSE
2327          med_diag%DCALC3%dgsave = .FALSE.
2328      ENDIF
2329      IF  (iom_use("EXPC3")) THEN
2330          med_diag%EXPC3%dgsave = .TRUE.
2331      ELSE
2332          med_diag%EXPC3%dgsave = .FALSE.
2333      ENDIF
2334      IF  (iom_use("EXPN3")) THEN
2335          med_diag%EXPN3%dgsave = .TRUE.
2336      ELSE
2337          med_diag%EXPN3%dgsave = .FALSE.
2338      ENDIF
2339      IF  (iom_use("FEDISS3")) THEN
2340          med_diag%FEDISS3%dgsave = .TRUE.
2341      ELSE
2342          med_diag%FEDISS3%dgsave = .FALSE.
2343      ENDIF
2344      IF  (iom_use("FESCAV3")) THEN
2345          med_diag%FESCAV3%dgsave = .TRUE.
2346      ELSE
2347          med_diag%FESCAV3%dgsave = .FALSE.
2348      ENDIF
2349      IF  (iom_use("MIGRAZP3")) THEN
2350          med_diag%MIGRAZP3%dgsave = .TRUE.
2351      ELSE
2352          med_diag%MIGRAZP3%dgsave = .FALSE.
2353      ENDIF
2354      IF  (iom_use("MIGRAZD3")) THEN
2355          med_diag%MIGRAZD3%dgsave = .TRUE.
2356      ELSE
2357          med_diag%MIGRAZD3%dgsave = .FALSE.
2358      ENDIF
2359      IF  (iom_use("MEGRAZP3")) THEN
2360          med_diag%MEGRAZP3%dgsave = .TRUE.
2361      ELSE
2362          med_diag%MEGRAZP3%dgsave = .FALSE.
2363      ENDIF
2364      IF  (iom_use("MEGRAZD3")) THEN
2365          med_diag%MEGRAZD3%dgsave = .TRUE.
2366      ELSE
2367          med_diag%MEGRAZD3%dgsave = .FALSE.
2368      ENDIF
2369      IF  (iom_use("MEGRAZZ3")) THEN
2370          med_diag%MEGRAZZ3%dgsave = .TRUE.
2371      ELSE
2372          med_diag%MEGRAZZ3%dgsave = .FALSE.
2373      ENDIF
2374      IF  (iom_use("O2SAT3")) THEN
2375          med_diag%O2SAT3%dgsave = .TRUE.
2376      ELSE
2377          med_diag%O2SAT3%dgsave = .FALSE.
2378      ENDIF
2379      IF  (iom_use("PBSI3")) THEN
2380          med_diag%PBSI3%dgsave = .TRUE.
2381      ELSE
2382          med_diag%PBSI3%dgsave = .FALSE.
2383      ENDIF
2384      IF  (iom_use("PCAL3")) THEN
2385          med_diag%PCAL3%dgsave = .TRUE.
2386      ELSE
2387          med_diag%PCAL3%dgsave = .FALSE.
2388      ENDIF
2389      IF  (iom_use("REMOC3")) THEN
2390          med_diag%REMOC3%dgsave = .TRUE.
2391      ELSE
2392          med_diag%REMOC3%dgsave = .FALSE.
2393      ENDIF
2394      IF  (iom_use("PNLIMJ3")) THEN
2395          med_diag%PNLIMJ3%dgsave = .TRUE.
2396      ELSE
2397          med_diag%PNLIMJ3%dgsave = .FALSE.
2398      ENDIF
2399      IF  (iom_use("PNLIMN3")) THEN
2400          med_diag%PNLIMN3%dgsave = .TRUE.
2401      ELSE
2402          med_diag%PNLIMN3%dgsave = .FALSE.
2403      ENDIF
2404      IF  (iom_use("PNLIMFE3")) THEN
2405          med_diag%PNLIMFE3%dgsave = .TRUE.
2406      ELSE
2407          med_diag%PNLIMFE3%dgsave = .FALSE.
2408      ENDIF
2409      IF  (iom_use("PDLIMJ3")) THEN
2410          med_diag%PDLIMJ3%dgsave = .TRUE.
2411      ELSE
2412          med_diag%PDLIMJ3%dgsave = .FALSE.
2413      ENDIF
2414      IF  (iom_use("PDLIMN3")) THEN
2415          med_diag%PDLIMN3%dgsave = .TRUE.
2416      ELSE
2417          med_diag%PDLIMN3%dgsave = .FALSE.
2418      ENDIF
2419      IF  (iom_use("PDLIMFE3")) THEN
2420          med_diag%PDLIMFE3%dgsave = .TRUE.
2421      ELSE
2422          med_diag%PDLIMFE3%dgsave = .FALSE.
2423      ENDIF
2424      IF  (iom_use("PDLIMSI3")) THEN
2425          med_diag%PDLIMSI3%dgsave = .TRUE.
2426      ELSE
2427          med_diag%PDLIMSI3%dgsave = .FALSE.
2428      ENDIF
2429
2430   END SUBROUTINE   trc_nam_iom_medusa
2431   
2432#else
2433   !!----------------------------------------------------------------------
2434   !!  Dummy module :                                             No MEDUSA
2435   !!----------------------------------------------------------------------
2436CONTAINS
2437   SUBROUTINE trc_nam_medusa                      ! Empty routine
2438   END  SUBROUTINE  trc_nam_medusa
2439#endif 
2440
2441   !!======================================================================
2442END MODULE trcnam_medusa
Note: See TracBrowser for help on using the repository browser.