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/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA – NEMO

source: branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90 @ 7894

Last change on this file since 7894 was 7894, checked in by jpalmier, 7 years ago

JPALM -- 11-04-2017 -- MEDUSA spring tidy-up refreshning session

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