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 @ 7709

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

JPALM -- 21-02-2017 -- merge the branch with Richard optim branch, and add 2 fixes in trcnam_medusa

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