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.
bio_medusa_diag_slice.F90 in branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA – NEMO

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

Last change on this file since 10045 was 10045, checked in by jpalmier, 6 years ago

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