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

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

source: branches/UKMO/dev_r5518_GO6_package_FOAMv14_readchl/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90 @ 14586

Last change on this file since 14586 was 14586, checked in by dford, 3 years ago

Allow just physics to use input chlorophyll.

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