source: branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90 @ 8442

Last change on this file since 8442 was 8442, checked in by frrh, 3 years ago

Commit changes relating to Met Office GMED ticket 340 for the
tidying of MEDUSA related code and debugging statements in the TOP code.

Only code introduced at revision 8434 of branch
http://fcm3/projects/NEMO.xm/log/branches/NERC/dev_r5518_GO6_split_trcbiomedusa
is included here, all previous revisions of that branch having been dealt with
under GMED ticket 339.

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