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

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

source: branches/UKMO/dev_r5518_GO6_package_asm_3d_bgc/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90 @ 9292

Last change on this file since 9292 was 9292, checked in by dford, 6 years ago

Merge in changes from dev_r5518_GO6_package_asm_surf_bgc_v2.

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