source: branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_diag_slice.F90 @ 10047

Last change on this file since 10047 was 10047, checked in by jpalmier, 3 years ago

merge with GO6_package_branch 9385-10020 ; plus debug OMIP_DIC

File size: 18.9 KB
Line 
1MODULE bio_medusa_diag_slice_mod
2   !!======================================================================
3   !!                         ***  MODULE bio_medusa_diag_slice_mod  ***
4   !! Diagnostic calculations at different levels
5   !!======================================================================
6   !! History :
7   !!   -   ! 2017-04 (M. Stringer)        Code taken from trcbio_medusa.F90
8   !!   -   ! 2018-08 (A. Yool)            add OMIP preindustrial DIC
9   !!----------------------------------------------------------------------
10#if defined key_medusa
11   !!----------------------------------------------------------------------
12   !!                                                   MEDUSA bio-model
13   !!----------------------------------------------------------------------
14
15   IMPLICIT NONE
16   PRIVATE
17     
18   PUBLIC   bio_medusa_diag_slice     ! Called in trcbio_medusa.F90
19
20   !!----------------------------------------------------------------------
21   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
22   !! $Id$
23   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
24   !!----------------------------------------------------------------------
25
26CONTAINS
27
28   SUBROUTINE bio_medusa_diag_slice( jk )
29      !!---------------------------------------------------------------------
30      !!                     ***  ROUTINE bio_medusa_diag_slice  ***
31      !! This called from TRC_BIO_MEDUSA and
32      !!  - ...
33      !!----------------------------------------------------------------------
34      USE bio_medusa_mod
35      USE par_medusa,        ONLY: jpchd, jpchn     
36      USE dom_oce,           ONLY: tmask
37      USE in_out_manager,    ONLY: lwp, numout
38      USE iom,               ONLY: iom_put
39      USE lbclnk,            ONLY: lbc_lnk
40      USE oce,               ONLY: CO2Flux_out_cpl, DMS_out_cpl
41      USE par_oce,           ONLY: jpi, jpj
42      USE sbc_oce,           ONLY: lk_oasis, qsr, wndm
43      USE sms_medusa,        ONLY: i0100, i0150, i0200, i0500, i1000,      &
44                                   f2_ccd_arg, f2_ccd_cal,                 &
45                                   f3_co3, f3_h2co3, f3_hco3, f3_pH,       &
46                                   jdms, ocal_ccd, xpar, xze,              &
47                                   zb_co2_flx, zb_dms_srf,                 &
48                                   zn_co2_flx, zn_dms_srf
49      USE trc,               ONLY: med_diag
50
51      !! The vertical level
52      INTEGER, INTENT( in ) ::    jk
53      !!----------------------------------------------------------------------
54
55      !!-----------------------------------------
56      !!
57      !! 2d specific k level diags
58      !!
59      !!-----------------------------------------
60#   if defined key_debug_medusa
61         IF (lwp) write (numout,*) 'bio_medusa_diag_slice: start jk = ', jk
62         CALL flush(numout)
63#   endif
64      !!
65      IF (jk.eq.1) THEN
66         IF( med_diag%MED_QSR%dgsave ) THEN
67            CALL iom_put( "MED_QSR"  , qsr ) !
68         ENDIF
69         IF( med_diag%MED_XPAR%dgsave ) THEN
70            CALL iom_put( "MED_XPAR"  , xpar(:,:,jk) ) !
71         ENDIF       
72         IF( med_diag%OCAL_CCD%dgsave ) THEN
73            CALL iom_put( "OCAL_CCD"  , ocal_ccd ) !
74         ENDIF
75         IF( med_diag%FE_0000%dgsave ) THEN
76            CALL iom_put( "FE_0000"  , xFree ) !
77         ENDIF                     
78         IF( med_diag%MED_XZE%dgsave ) THEN
79            CALL iom_put( "MED_XZE"  , xze ) !
80         ENDIF 
81# if defined key_roam                     
82         IF( med_diag%WIND%dgsave ) THEN
83            CALL iom_put( "WIND"  , wndm )
84         ENDIF
85         IF( med_diag%ATM_PCO2%dgsave ) THEN
86            CALL iom_put( "ATM_PCO2"  , f_pco2a2d )
87            DEALLOCATE( f_pco2a2d )
88         ENDIF
89         IF( med_diag%OCN_PH%dgsave ) THEN
90            zw2d(:,:) = f3_pH(:,:,jk)
91            CALL iom_put( "OCN_PH"  , zw2d )
92         ENDIF
93         IF( med_diag%OCN_PCO2%dgsave ) THEN
94            CALL iom_put( "OCN_PCO2"  , f_pco2w2d )
95            DEALLOCATE( f_pco2w2d )
96         ENDIF
97         IF( med_diag%OCNH2CO3%dgsave ) THEN
98            zw2d(:,:) = f3_h2co3(:,:,jk)
99            CALL iom_put( "OCNH2CO3"  , zw2d )
100         ENDIF
101         IF( med_diag%OCN_HCO3%dgsave ) THEN
102            zw2d(:,:) = f3_hco3(:,:,jk)
103            CALL iom_put( "OCN_HCO3"  , zw2d )
104         ENDIF
105         IF( med_diag%OCN_CO3%dgsave ) THEN
106            zw2d(:,:) = f3_co3(:,:,jk)
107            CALL iom_put( "OCN_CO3"  , zw2d )
108         ENDIF
109         IF( med_diag%CO2FLUX%dgsave ) THEN
110            CALL iom_put( "CO2FLUX"  , f_co2flux2d )
111            DEALLOCATE( f_co2flux2d )
112         ENDIF
113         !!
114         !! AXY (10/11/16): repeat CO2 flux diagnostic in UKMO/CMIP6 units;
115         !!                 this both outputs the CO2 flux in specified units
116         !!                 and sends the resulting field to the coupler
117         !! JPALM (17/11/16): put CO2 flux (fgco2) alloc/unalloc/pass to zn
118         !!                   out of diag list request
119         CALL lbc_lnk( fgco2(:,:),'T',1. )
120         IF( med_diag%FGCO2%dgsave ) THEN
121            CALL iom_put( "FGCO2"  , fgco2 )
122         ENDIF
123         !! JPALM (17/11/16): should mv this fgco2 part
124         !!                   out of lk_iomput loop
125         zb_co2_flx = zn_co2_flx
126         zn_co2_flx = fgco2
127         IF (lk_oasis) THEN
128            CO2Flux_out_cpl = zn_co2_flx
129         ENDIF
130         DEALLOCATE( fgco2 )
131         !! ---
132         IF( med_diag%OM_CAL%dgsave ) THEN
133            CALL iom_put( "OM_CAL"  , f_omcal )
134         ENDIF
135         IF( med_diag%OM_ARG%dgsave ) THEN
136            CALL iom_put( "OM_ARG"  , f_omarg )
137         ENDIF
138         IF( med_diag%TCO2%dgsave ) THEN
139            CALL iom_put( "TCO2"  , f_TDIC2d )
140            DEALLOCATE( f_TDIC2d )
141         ENDIF
142         IF( med_diag%TALK%dgsave ) THEN
143            CALL iom_put( "TALK"  , f_TALK2d )
144            DEALLOCATE( f_TALK2d )
145         ENDIF
146         IF( med_diag%KW660%dgsave ) THEN
147            CALL iom_put( "KW660"  , f_kw6602d )
148            DEALLOCATE( f_kw6602d )
149         ENDIF
150         IF( med_diag%ATM_PP0%dgsave ) THEN
151            CALL iom_put( "ATM_PP0"  , f_pp02d )
152            DEALLOCATE( f_pp02d )
153         ENDIF
154         IF( med_diag%O2FLUX%dgsave ) THEN
155            CALL iom_put( "O2FLUX"  , f_o2flux2d )
156            DEALLOCATE( f_o2flux2d )
157         ENDIF
158         IF( med_diag%O2SAT%dgsave ) THEN
159            CALL iom_put( "O2SAT"  , f_o2sat2d )
160            DEALLOCATE( f_o2sat2d )
161         ENDIF
162         IF( med_diag%CAL_CCD%dgsave ) THEN
163            CALL iom_put( "CAL_CCD"  , f2_ccd_cal )
164         ENDIF
165         IF( med_diag%ARG_CCD%dgsave ) THEN
166            CALL iom_put( "ARG_CCD"  , f2_ccd_arg )
167         ENDIF
168         IF (jdms .eq. 1) THEN
169            IF( med_diag%DMS_SURF%dgsave ) THEN
170               CALL lbc_lnk(dms_surf2d(:,:),'T',1. )
171               CALL iom_put( "DMS_SURF"  , dms_surf2d )
172               zb_dms_srf = zn_dms_srf
173               zn_dms_srf = dms_surf2d
174               IF (lk_oasis) THEN
175                  DMS_out_cpl = zn_dms_srf
176               ENDIF
177               DEALLOCATE( dms_surf2d ) 
178            ENDIF
179            IF( med_diag%DMS_ANDR%dgsave ) THEN
180               CALL iom_put( "DMS_ANDR"  , dms_andr2d )
181               DEALLOCATE( dms_andr2d )
182            ENDIF
183            IF( med_diag%DMS_SIMO%dgsave ) THEN
184               CALL iom_put( "DMS_SIMO"  , dms_simo2d )
185               DEALLOCATE( dms_simo2d )
186            ENDIF
187            IF( med_diag%DMS_ARAN%dgsave ) THEN
188               CALL iom_put( "DMS_ARAN"  , dms_aran2d )
189               DEALLOCATE( dms_aran2d )
190            ENDIF
191            IF( med_diag%DMS_HALL%dgsave ) THEN
192               CALL iom_put( "DMS_HALL"  , dms_hall2d )
193               DEALLOCATE( dms_hall2d )
194            ENDIF
195            IF( med_diag%DMS_ANDM%dgsave ) THEN
196               CALL iom_put( "DMS_ANDM"  , dms_andm2d )
197               DEALLOCATE( dms_andm2d )
198            ENDIF
199         ENDIF
200         !! AXY (24/11/16): extra MOCSY diagnostics
201         IF( med_diag%ATM_XCO2%dgsave ) THEN
202            CALL iom_put( "ATM_XCO2"  ,   f_xco2a_2d      )
203            DEALLOCATE( f_xco2a_2d )
204         ENDIF
205         IF( med_diag%OCN_FCO2%dgsave ) THEN
206            CALL iom_put( "OCN_FCO2"  ,   f_fco2w_2d      )
207            DEALLOCATE( f_fco2w_2d )
208         ENDIF
209         IF( med_diag%ATM_FCO2%dgsave ) THEN
210            CALL iom_put( "ATM_FCO2"  ,   f_fco2a_2d      )
211            DEALLOCATE( f_fco2a_2d )
212         ENDIF
213         IF( med_diag%OCN_RHOSW%dgsave ) THEN
214            CALL iom_put( "OCN_RHOSW"  ,  f_ocnrhosw_2d   )
215            DEALLOCATE( f_ocnrhosw_2d )
216         ENDIF
217         IF( med_diag%OCN_SCHCO2%dgsave ) THEN
218            CALL iom_put( "OCN_SCHCO2"  , f_ocnschco2_2d  )
219            DEALLOCATE( f_ocnschco2_2d )
220         ENDIF
221         IF( med_diag%OCN_KWCO2%dgsave ) THEN
222            CALL iom_put( "OCN_KWCO2"  ,  f_ocnkwco2_2d   )
223            DEALLOCATE( f_ocnkwco2_2d )
224         ENDIF
225         IF( med_diag%OCN_K0%dgsave ) THEN
226            CALL iom_put( "OCN_K0"  ,     f_ocnk0_2d      )
227            DEALLOCATE( f_ocnk0_2d )
228         ENDIF
229         IF( med_diag%CO2STARAIR%dgsave ) THEN
230            CALL iom_put( "CO2STARAIR"  , f_co2starair_2d )
231            DEALLOCATE( f_co2starair_2d )
232         ENDIF
233         IF( med_diag%OCN_DPCO2%dgsave ) THEN
234            CALL iom_put( "OCN_DPCO2"  ,  f_ocndpco2_2d   )
235            DEALLOCATE( f_ocndpco2_2d )
236         ENDIF
237#  if defined key_omip_dic
238      !!----------------------------------------------------------------------
239      !! AXY (03/08/18): additional diagnostics for OMIP preindustrial DIC;
240      !!                 basically a subset of the normal diagnostics with
241      !!                 "PI_" stuck on the front; only includes those CO2
242      !!                 diagnostics that should differ under PI conditions
243      !!----------------------------------------------------------------------
244         IF( med_diag%PI_ATM_PCO2%dgsave ) THEN
245            CALL iom_put( "PI_ATM_PCO2"  , f_pi_pco2a_2d )
246            DEALLOCATE( f_pi_pco2a_2d )
247         ENDIF
248         IF( med_diag%PI_OCN_PH%dgsave ) THEN
249            CALL iom_put( "PI_OCN_PH"  , f_pi_ph_2d )
250            DEALLOCATE( f_pi_ph_2d )
251         ENDIF
252         IF( med_diag%PI_OCN_PCO2%dgsave ) THEN
253            CALL iom_put( "PI_OCN_PCO2"  , f_pi_pco2w_2d )
254            DEALLOCATE( f_pi_pco2w_2d )
255         ENDIF
256         IF( med_diag%PI_OCNH2CO3%dgsave ) THEN
257            CALL iom_put( "PI_OCNH2CO3"  , f_pi_h2co3_2d )
258            DEALLOCATE( f_pi_h2co3_2d )
259         ENDIF
260         IF( med_diag%PI_OCN_HCO3%dgsave ) THEN
261            CALL iom_put( "PI_OCN_HCO3"  , f_pi_hco3_2d )
262            DEALLOCATE( f_pi_hco3_2d )
263         ENDIF
264         IF( med_diag%PI_OCN_CO3%dgsave ) THEN
265            CALL iom_put( "PI_OCN_CO3"  , f_pi_co3_2d )
266            DEALLOCATE( f_pi_co3_2d )
267         ENDIF
268         IF( med_diag%PI_CO2FLUX%dgsave ) THEN
269            CALL iom_put( "PI_CO2FLUX"  , f_pi_co2flux_2d )
270            DEALLOCATE( f_pi_co2flux_2d )
271         ENDIF
272         IF( med_diag%PI_FGCO2%dgsave ) THEN
273            CALL iom_put( "PI_FGCO2"  , pi_fgco2 )
274            DEALLOCATE( pi_fgco2 )
275         ENDIF
276         IF( med_diag%PI_OM_CAL%dgsave ) THEN
277            CALL iom_put( "PI_OM_CAL"  , f_pi_omcal_2d )
278       DEALLOCATE( f_pi_omcal_2d )
279         ENDIF
280         IF( med_diag%PI_OM_ARG%dgsave ) THEN
281            CALL iom_put( "PI_OM_ARG"  , f_pi_omarg_2d )
282       DEALLOCATE( f_pi_omarg_2d )
283         ENDIF
284         IF( med_diag%PI_TCO2%dgsave ) THEN
285            CALL iom_put( "PI_TCO2"  , f_pi_TDIC_2d )
286            DEALLOCATE( f_pi_TDIC_2d )
287         ENDIF
288         IF( med_diag%PI_ATM_XCO2%dgsave ) THEN
289            CALL iom_put( "PI_ATM_XCO2"  ,   f_pi_xco2a_2d )
290            DEALLOCATE( f_pi_xco2a_2d )
291         ENDIF
292         IF( med_diag%PI_OCN_FCO2%dgsave ) THEN
293            CALL iom_put( "PI_OCN_FCO2"  ,   f_pi_fco2w_2d )
294            DEALLOCATE( f_pi_fco2w_2d )
295         ENDIF
296         IF( med_diag%PI_ATM_FCO2%dgsave ) THEN
297            CALL iom_put( "PI_ATM_FCO2"  ,   f_pi_fco2a_2d )
298            DEALLOCATE( f_pi_fco2a_2d )
299         ENDIF
300         IF( med_diag%PI_CO2STARAIR%dgsave ) THEN
301            CALL iom_put( "PI_CO2STARAIR"  , f_pi_co2starair_2d )
302            DEALLOCATE( f_pi_co2starair_2d )
303         ENDIF
304         IF( med_diag%PI_OCN_DPCO2%dgsave ) THEN
305            CALL iom_put( "PI_OCN_DPCO2"  ,  f_pi_ocndpco2_2d   )
306            DEALLOCATE( f_pi_ocndpco2_2d )
307         ENDIF
308#  endif
309         
310# endif                     
311      ELSE IF (jk.eq.i0100) THEN
312         IF( med_diag%SDT__100%dgsave ) THEN
313            zw2d(:,:) = fslownflux(:,:) * tmask(:,:,jk)
314            CALL iom_put( "SDT__100"  , zw2d )
315         ENDIF
316         IF( med_diag%REG__100%dgsave ) THEN
317            CALL iom_put( "REG__100"  , fregen2d )
318         ENDIF
319         IF( med_diag%FDT__100%dgsave ) THEN
320            CALL iom_put( "FDT__100"  , ffastn )
321         ENDIF           
322         IF( med_diag%RG__100F%dgsave ) THEN
323            CALL iom_put( "RG__100F"  , fregenfast )
324         ENDIF
325         IF( med_diag%FDS__100%dgsave ) THEN
326            CALL iom_put( "FDS__100"  , ffastsi )
327         ENDIF         
328         IF( med_diag%RGS_100F%dgsave ) THEN
329            CALL iom_put( "RGS_100F"  , fregenfastsi )
330         ENDIF
331         IF( med_diag%FE_0100%dgsave ) THEN
332            CALL iom_put( "FE_0100"  , xFree )
333         ENDIF
334# if defined key_roam                     
335         IF( med_diag%RR_0100%dgsave ) THEN
336            CALL iom_put( "RR_0100"  , ffastca2d )
337         ENDIF                     
338         IF( med_diag%SDC__100%dgsave ) THEN
339            zw2d(:,:) = fslowcflux(:,:) * tmask(:,:,jk)
340            CALL iom_put( "SDC__100"  , zw2d )
341         ENDIF                 
342         IF( med_diag%epC100%dgsave    ) THEN
343            zw2d(:,:) = (fslowcflux + ffastc) * tmask(:,:,jk)
344            CALL iom_put( "epC100"    , zw2d )
345         ENDIF         
346         IF( med_diag%epCALC100%dgsave ) THEN
347            CALL iom_put( "epCALC100" , ffastca )
348         ENDIF         
349         IF( med_diag%epN100%dgsave    ) THEN
350            zw2d(:,:) = (fslownflux + ffastn) * tmask(:,:,jk)
351            CALL iom_put( "epN100"    , zw2d )
352         ENDIF         
353         IF( med_diag%epSI100%dgsave   ) THEN
354            CALL iom_put( "epSI100"   , ffastsi )
355         ENDIF         
356# endif                     
357      ELSE IF (jk.eq.i0200) THEN
358         IF( med_diag%SDT__200%dgsave ) THEN
359            zw2d(:,:) = fslownflux(:,:) * tmask(:,:,jk)
360            CALL iom_put( "SDT__200"  , zw2d )
361         ENDIF
362         IF( med_diag%REG__200%dgsave ) THEN
363            CALL iom_put( "REG__200"  , fregen2d )
364         ENDIF
365         IF( med_diag%FDT__200%dgsave ) THEN
366            CALL iom_put( "FDT__200"  , ffastn )
367         ENDIF
368         IF( med_diag%RG__200F%dgsave ) THEN
369            CALL iom_put( "RG__200F"  , fregenfast )
370         ENDIF
371         IF( med_diag%FDS__200%dgsave ) THEN
372            CALL iom_put( "FDS__200"  , ffastsi )
373         ENDIF
374         IF( med_diag%RGS_200F%dgsave ) THEN
375            CALL iom_put( "RGS_200F"  , fregenfastsi )
376         ENDIF
377         IF( med_diag%FE_0200%dgsave ) THEN
378            CALL iom_put( "FE_0200"   , xFree )
379         ENDIF
380# if defined key_roam                     
381         IF( med_diag%SDC__200%dgsave ) THEN
382            zw2d(:,:) = fslowcflux(:,:) * tmask(:,:,jk)
383            CALL iom_put( "SDC__200"  , zw2d )
384         ENDIF
385# endif                     
386      ELSE IF (jk.eq.i0500) THEN
387         IF( med_diag%SDT__500%dgsave ) THEN
388            zw2d(:,:) = fslownflux(:,:) * tmask(:,:,jk)
389            CALL iom_put( "SDT__500"  , zw2d )
390         ENDIF
391         IF( med_diag%REG__500%dgsave ) THEN
392            CALL iom_put( "REG__500"  , fregen2d )
393         ENDIF     
394         IF( med_diag%FDT__500%dgsave ) THEN
395            CALL iom_put( "FDT__500"  , ffastn )
396         ENDIF
397         IF( med_diag%RG__500F%dgsave ) THEN
398            CALL iom_put( "RG__500F"  , fregenfast )
399         ENDIF
400         IF( med_diag%FDS__500%dgsave ) THEN
401            CALL iom_put( "FDS__500"  , ffastsi )
402         ENDIF
403         IF( med_diag%RGS_500F%dgsave ) THEN
404            CALL iom_put( "RGS_500F"  , fregenfastsi )
405         ENDIF
406         IF( med_diag%FE_0500%dgsave ) THEN
407            CALL iom_put( "FE_0500"  , xFree )
408         ENDIF
409# if defined key_roam                     
410         IF( med_diag%RR_0500%dgsave ) THEN
411            CALL iom_put( "RR_0500"  , ffastca2d )
412         ENDIF
413         IF( med_diag%SDC__500%dgsave ) THEN
414            zw2d(:,:) = fslowcflux(:,:) * tmask(:,:,jk)
415            CALL iom_put( "SDC__500"  , zw2d )
416         ENDIF 
417# endif                     
418      ELSE IF (jk.eq.i1000) THEN
419         IF( med_diag%SDT_1000%dgsave ) THEN
420            zw2d(:,:) = fslownflux(:,:) * tmask(:,:,jk)
421            CALL iom_put( "SDT_1000"  , zw2d )
422         ENDIF
423         IF( med_diag%REG_1000%dgsave ) THEN
424            CALL iom_put( "REG_1000"  , fregen2d )
425         ENDIF 
426         IF( med_diag%FDT_1000%dgsave ) THEN
427            CALL iom_put( "FDT_1000"  , ffastn )
428         ENDIF
429         IF( med_diag%RG_1000F%dgsave ) THEN
430            CALL iom_put( "RG_1000F"  , fregenfast )
431         ENDIF
432         IF( med_diag%FDS_1000%dgsave ) THEN
433            CALL iom_put( "FDS_1000"  , ffastsi )
434         ENDIF
435         IF( med_diag%RGS1000F%dgsave ) THEN
436            CALL iom_put( "RGS1000F"  , fregenfastsi )
437         ENDIF
438         IF( med_diag%FE_1000%dgsave ) THEN
439            CALL iom_put( "FE_1000"  , xFree )
440         ENDIF
441# if defined key_roam                     
442         IF( med_diag%RR_1000%dgsave ) THEN
443            CALL iom_put( "RR_1000"  , ffastca2d )
444            DEALLOCATE( ffastca2d )
445         ENDIF
446         IF( med_diag%SDC_1000%dgsave ) THEN
447            zw2d(:,:) = fslowcflux(:,:) * tmask(:,:,jk)
448            CALL iom_put( "SDC_1000"  , zw2d )
449         ENDIF 
450# endif                     
451      ENDIF
452      !! to do on every k loop :
453      IF( med_diag%DETFLUX3%dgsave ) THEN
454         !! detrital flux
455         detflux3d(:,:,jk) = (fslownflux(:,:) + ffastn(:,:)) * tmask(:,:,jk)
456         !CALL iom_put( "DETFLUX3"  , ftot_n )
457      ENDIF
458# if defined key_roam                     
459      IF( med_diag%EXPC3%dgsave ) THEN
460         expc3(:,:,jk) = (fslowcflux(:,:) + ffastc(:,:)) * tmask(:,:,jk)
461      ENDIF         
462      IF( med_diag%EXPN3%dgsave ) THEN
463         expn3(:,:,jk) = (fslownflux(:,:) + ffastn(:,:)) * tmask(:,:,jk)
464      ENDIF         
465# endif         
466#   if defined key_debug_medusa
467         IF (lwp) write (numout,*) 'bio_medusa_diag_slice: end jk = ', jk
468         CALL flush(numout)
469#   endif
470
471   END SUBROUTINE bio_medusa_diag_slice
472
473#else
474   !!======================================================================
475   !!  Dummy module :                                   No MEDUSA bio-model
476   !!======================================================================
477CONTAINS
478   SUBROUTINE bio_medusa_diag_slice( )                  ! Empty routine
479      WRITE(*,*) 'bio_medusa_diag_slice: You should not have seen this print! error?'
480   END SUBROUTINE bio_medusa_diag_slice
481#endif 
482
483   !!======================================================================
484END MODULE bio_medusa_diag_slice_mod
Note: See TracBrowser for help on using the repository browser.