source: branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90 @ 10051

Last change on this file since 10051 was 10051, checked in by jpalmier, 2 years ago

correct OMIP - PI DIC bug and diagnostic

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