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.
diafwb.F90 in trunk/NEMO/OPA_SRC/DIA – NEMO

source: trunk/NEMO/OPA_SRC/DIA/diafwb.F90 @ 719

Last change on this file since 719 was 719, checked in by ctlod, 17 years ago

get back to the nemo_v2_3 version for trunk

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 20.0 KB
Line 
1MODULE diafwb
2   !!======================================================================
3   !!                       ***  MODULE  diafwb  ***
4   !! Ocean diagnostics: freshwater budget
5   !!======================================================================
6#if ( defined key_orca_r2 || defined  key_orca_r4 ) && ! defined key_dynspg_rl && ! defined key_coupled
7   !!----------------------------------------------------------------------
8   !!   NOT "key_dynspg_rl" and "key_orca_r2 or 4"
9   !!----------------------------------------------------------------------
10   !!   dia_fwb     : freshwater budget for global ocean configurations
11   !!----------------------------------------------------------------------
12   !! * Modules used
13   USE oce             ! ocean dynamics and tracers
14   USE dom_oce         ! ocean space and time domain
15   USE phycst          ! physical constants
16   USE zdf_oce         ! ocean vertical physics
17   USE in_out_manager  ! I/O manager
18   USE flxrnf          ! ???
19   USE ocesbc          ! ???
20   USE blk_oce         ! ???
21   USE flxblk          ! atmospheric surface quantity
22   USE lib_mpp         ! distributed memory computing library
23
24   IMPLICIT NONE
25   PRIVATE
26
27   !! * Routine accessibility
28   PUBLIC dia_fwb    ! routine called by step.F90
29
30   !! * Shared module variables
31   LOGICAL, PUBLIC, PARAMETER ::   lk_diafwb = .TRUE.    !: fresh water budget flag
32
33   !! * Module variables
34   REAL(wp) ::   &
35      a_emp , a_precip, a_rnf,   &
36      a_sshb, a_sshn, a_salb, a_saln,   &
37      a_aminus, a_aplus
38   REAL(wp), DIMENSION(4) ::   &
39      a_flxi, a_flxo, a_temi, a_temo, a_sali, a_salo
40
41   !! * Substitutions
42#  include "domzgr_substitute.h90"
43#  include "vectopt_loop_substitute.h90"
44   !!----------------------------------------------------------------------
45   !!   OPA 9.0 , LOCEAN-IPSL (2005)
46   !! $Header: /home/opalod/NEMOCVSROOT/NEMO/OPA_SRC/DIA/diafwb.F90,v 1.11 2007/06/29 17:01:51 opalod Exp $
47   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
48   !!----------------------------------------------------------------------
49
50CONTAINS
51
52   SUBROUTINE dia_fwb( kt )
53      !!---------------------------------------------------------------------
54      !!                  ***  ROUTINE dia_fwb  ***
55      !!     
56      !! ** Purpose :
57      !!
58      !! ** Method :
59      !!
60      !! History :
61      !!   8.2  !  01-02  (E. Durand)  Original code
62      !!   8.5  !  02-06  (G. Madec)  F90: Free form and module
63      !!   9.0  !  05-11  (V. Garnier) Surface pressure gradient organization
64      !!----------------------------------------------------------------------
65      !! * Arguments
66      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index
67
68      !! * Local declarations
69      CHARACTER (len=32) ::  clname
70      INTEGER :: inum             ! temporary logical unit
71      INTEGER :: ji, jj, jk, jt   ! dummy loop indices
72      INTEGER :: ii0, ii1, ij0, ij1
73      REAL(wp) ::   zarea, zvol, zwei
74      REAL(wp) ::  ztemi(4), ztemo(4), zsali(4), zsalo(4), zflxi(4), zflxo(4)
75      REAL(wp) ::  zt, zs, zu 
76      REAL(wp) ::  zsm0, zempnew
77      !!----------------------------------------------------------------------
78
79      ! Mean global salinity
80      zsm0 = 34.72654
81
82      ! To compute emp mean value mean emp
83
84      IF( kt == nit000 ) THEN
85
86         a_emp    = 0.e0
87         a_precip = 0.e0
88         a_rnf    = 0.e0
89         a_sshb   = 0.e0 ! valeur de ssh au debut de la simulation
90         a_salb   = 0.e0 ! valeur de sal au debut de la simulation
91         a_aminus = 0.e0
92         a_aplus  = 0.e0
93         ! sshb used because diafwb called after tranxt (i.e. after the swap)
94         a_sshb = SUM( e1t(:,:) * e2t(:,:) * sshb(:,:) * tmask_i(:,:) )
95         IF( lk_mpp )   CALL mpp_sum( a_sshb )      ! sum over the global domain
96
97         DO jk = 1, jpkm1
98            DO jj = 2, jpjm1
99               DO ji = fs_2, fs_jpim1   ! vector opt.
100                  zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)
101                  a_salb = a_salb + ( sb(ji,jj,jk) - zsm0 ) * zwei
102               END DO
103            END DO
104         END DO
105         IF( lk_mpp )   CALL mpp_sum( a_salb )      ! sum over the global domain
106      ENDIF
107     
108      a_emp    = SUM( e1t(:,:) * e2t(:,:) * emp   (:,:) * tmask_i(:,:) )
109      IF( lk_mpp )   CALL mpp_sum( a_emp    )       ! sum over the global domain
110#if defined key_flx_bulk_monthly || defined key_flx_bulk_daily
111      a_precip = SUM( e1t(:,:) * e2t(:,:) * watm  (:,:) * tmask_i(:,:) )
112      IF( lk_mpp )   CALL mpp_sum( a_precip )       ! sum over the global domain
113#endif
114      a_rnf    = SUM( e1t(:,:) * e2t(:,:) * runoff(:,:) * tmask_i(:,:) )
115      IF( lk_mpp )   CALL mpp_sum( a_rnf    )       ! sum over the global domain
116
117      IF( aminus /= 0.e0 ) a_aminus = a_aminus + ( MIN( aplus, aminus ) / aminus )
118      IF( aplus  /= 0.e0 ) a_aplus  = a_aplus  + ( MIN( aplus, aminus ) / aplus  )
119
120      IF( kt == nitend ) THEN
121         a_sshn = 0.e0
122         a_saln = 0.e0
123         zarea = 0.e0
124         zvol  = 0.e0
125         zempnew = 0.e0
126         ! Mean sea level at nitend
127         a_sshn = SUM( e1t(:,:) * e2t(:,:) * sshn(:,:) * tmask_i(:,:) )
128         IF( lk_mpp )   CALL mpp_sum( a_sshn )      ! sum over the global domain
129         zarea  = SUM( e1t(:,:) * e2t(:,:) *             tmask_i(:,:) )
130         IF( lk_mpp )   CALL mpp_sum( zarea  )      ! sum over the global domain
131         
132         DO jk = 1, jpkm1   
133            DO jj = 2, jpjm1
134               DO ji = fs_2, fs_jpim1   ! vector opt.
135                  zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)
136                  a_saln = a_saln + ( sn(ji,jj,jk) - zsm0 ) * zwei
137                  zvol  = zvol  + zwei
138               END DO
139            END DO
140         END DO
141         IF( lk_mpp )   CALL mpp_sum( a_saln )      ! sum over the global domain
142         IF( lk_mpp )   CALL mpp_sum( zvol )      ! sum over the global domain
143         
144         a_aminus = a_aminus / ( nitend - nit000 + 1 )
145         a_aplus  = a_aplus  / ( nitend - nit000 + 1 )
146
147         ! Conversion in m3
148         a_emp    = a_emp * rdttra(1) * 1.e-3 
149         a_precip = a_precip * rdttra(1) * 1.e-3 / rday
150         a_rnf    = a_rnf * rdttra(1) * 1.e-3
151         
152         ! Alpha1=Alpha0-Rest/(Precip+runoff)
153         !  C A U T I O N : precipitations are negative !!     
154         
155         zempnew = a_sshn / ( ( nitend - nit000 + 1 ) * rdt ) * 1.e3 / zarea
156
157      ENDIF
158
159
160      ! Calcul des termes de transport
161      ! ------------------------------
162     
163      ! 1 --> Gibraltar
164      ! 2 --> Cadiz
165      ! 3 --> Red Sea
166      ! 4 --> Baltic Sea
167
168      IF( kt == nit000 ) THEN
169         a_flxi(:) = 0.e0
170         a_flxo(:) = 0.e0
171         a_temi(:) = 0.e0
172         a_temo(:) = 0.e0
173         a_sali(:) = 0.e0
174         a_salo(:) = 0.e0
175      ENDIF
176
177      zflxi(:) = 0.e0
178      zflxo(:) = 0.e0
179      ztemi(:) = 0.e0
180      ztemo(:) = 0.e0
181      zsali(:) = 0.e0
182      zsalo(:) = 0.e0
183
184      ! Mean flow at Gibraltar
185
186      IF( cp_cfg == "orca" ) THEN 
187               
188         SELECT CASE ( jp_cfg )
189         !                                           ! =======================
190         CASE ( 4 )                                  !  ORCA_R4 configuration
191            !                                        ! =======================
192            ii0 = 70   ;   ii1 = 70
193            ij0 = 52   ;   ij1 = 52
194            !                                        ! =======================
195         CASE ( 2 )                                  !  ORCA_R2 configuration
196            !                                        ! =======================
197            ii0 = 139   ;   ii1 = 139
198            ij0 = 102   ;   ij1 = 102
199            !                                        ! =======================
200         CASE DEFAULT                                !    ORCA R05 or R025
201            !                                        ! =======================
202            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
203            !
204         END SELECT
205         !
206         DO ji = mi0(ii0), mi1(ii1)
207            DO jj = mj0(ij0), mj1(ij1)
208               DO jk = 1, 18 
209                  zt = 0.5 * ( tn(ji,jj,jk) + tn(ji+1,jj,jk) )
210                  zs = 0.5 * ( sn(ji,jj,jk) + sn(ji+1,jj,jk) )
211                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj)
212
213                  IF( un(ji,jj,jk) > 0.e0 ) THEN
214                     zflxi(1) = zflxi(1) +    zu
215                     ztemi(1) = ztemi(1) + zt*zu
216                     zsali(1) = zsali(1) + zs*zu
217                  ELSE
218                     zflxo(1) = zflxo(1) +    zu
219                     ztemo(1) = ztemo(1) + zt*zu
220                     zsalo(1) = zsalo(1) + zs*zu
221                  ENDIF
222               END DO
223            END DO
224         END DO
225      ENDIF
226     
227      ! Mean flow at Cadiz
228      IF( cp_cfg == "orca" ) THEN
229               
230         SELECT CASE ( jp_cfg )
231         !                                           ! =======================
232         CASE ( 4 )                                  !  ORCA_R4 configuration
233            !                                        ! =======================
234            ii0 = 69   ;   ii1 = 69
235            ij0 = 52   ;   ij1 = 52
236            !                                        ! =======================
237         CASE ( 2 )                                  !  ORCA_R2 configuration
238            !                                        ! =======================
239            ii0 = 137   ;   ii1 = 137
240            ij0 = 102   ;   ij1 = 102
241            !                                        ! =======================
242         CASE DEFAULT                                !    ORCA R05 or R025
243            !                                        ! =======================
244            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
245            !
246         END SELECT
247         !
248         DO ji = mi0(ii0), mi1(ii1)
249            DO jj = mj0(ij0), mj1(ij1)
250               DO jk = 1, 23 
251                  zt = 0.5 * ( tn(ji,jj,jk) + tn(ji+1,jj,jk) )
252                  zs = 0.5 * ( sn(ji,jj,jk) + sn(ji+1,jj,jk) )
253                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj)
254                 
255                  IF( un(ji,jj,jk) > 0.e0 ) THEN
256                     zflxi(2) = zflxi(2) +    zu
257                     ztemi(2) = ztemi(2) + zt*zu
258                     zsali(2) = zsali(2) + zs*zu
259                  ELSE
260                     zflxo(2) = zflxo(2) +    zu
261                     ztemo(2) = ztemo(2) + zt*zu
262                     zsalo(2) = zsalo(2) + zs*zu
263                  ENDIF
264               END DO
265            END DO
266         END DO
267      ENDIF
268
269      ! Mean flow at Red Sea entrance
270      IF( cp_cfg == "orca" ) THEN
271               
272         SELECT CASE ( jp_cfg )
273         !                                           ! =======================
274         CASE ( 4 )                                  !  ORCA_R4 configuration
275            !                                        ! =======================
276            ii0 = 83   ;   ii1 = 83
277            ij0 = 45   ;   ij1 = 45
278            !                                        ! =======================
279         CASE ( 2 )                                  !  ORCA_R2 configuration
280            !                                        ! =======================
281            ii0 = 161   ;   ii1 = 161
282            ij0 = 88    ;   ij1 = 88 
283            !                                        ! =======================
284         CASE DEFAULT                                !    ORCA R05 or R025
285            !                                        ! =======================
286            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
287            !
288         END SELECT
289         !
290         DO ji = mi0(ii0), mi1(ii1)
291            DO jj = mj0(ij0), mj1(ij1)
292               DO jk = 1, 15 
293                  zt = 0.5 * ( tn(ji,jj,jk) + tn(ji+1,jj,jk) )
294                  zs = 0.5 * ( sn(ji,jj,jk) + sn(ji+1,jj,jk) )
295                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj)
296                 
297                  IF( un(ji,jj,jk) > 0.e0 ) THEN
298                     zflxi(3) = zflxi(3) +    zu
299                     ztemi(3) = ztemi(3) + zt*zu
300                     zsali(3) = zsali(3) + zs*zu
301                  ELSE
302                     zflxo(3) = zflxo(3) +    zu
303                     ztemo(3) = ztemo(3) + zt*zu
304                     zsalo(3) = zsalo(3) + zs*zu
305                  ENDIF
306               END DO
307            END DO
308         END DO
309      ENDIF
310
311      ! Mean flow at Baltic Sea entrance
312      IF( cp_cfg == "orca" ) THEN
313               
314         SELECT CASE ( jp_cfg )
315         !                                           ! =======================
316         CASE ( 4 )                                  !  ORCA_R4 configuration
317            !                                        ! =======================
318            ii0 = 1     ;   ii1 = 1 
319            ij0 = 1     ;   ij1 = 1 
320            !                                        ! =======================
321         CASE ( 2 )                                  !  ORCA_R2 configuration
322            !                                        ! =======================
323            ii0 = 146   ;   ii1 = 146 
324            ij0 = 116   ;   ij1 = 116
325            !                                        ! =======================
326         CASE DEFAULT                                !    ORCA R05 or R025
327            !                                        ! =======================
328            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
329            !
330         END SELECT
331         !
332         DO ji = mi0(ii0), mi1(ii1)
333            DO jj = mj0(ij0), mj1(ij1)
334               DO jk = 1, 20
335                  zt = 0.5 * ( tn(ji,jj,jk) + tn(ji+1,jj,jk) )
336                  zs = 0.5 * ( sn(ji,jj,jk) + sn(ji+1,jj,jk) )
337                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj)
338                 
339                  IF( un(ji,jj,jk) > 0.e0 ) THEN
340                     zflxi(4) = zflxi(4) +    zu
341                     ztemi(4) = ztemi(4) + zt*zu
342                     zsali(4) = zsali(4) + zs*zu
343                  ELSE
344                     zflxo(4) = zflxo(4) +    zu
345                     ztemo(4) = ztemo(4) + zt*zu
346                     zsalo(4) = zsalo(4) + zs*zu
347                  ENDIF
348               END DO
349            END DO
350         END DO
351      ENDIF
352
353      ! Sum at each time-step
354      DO jt = 1, 4 
355         IF( zflxi(jt) /= 0.e0 .AND. zflxo(jt) /= 0.e0 ) THEN
356            a_flxi(jt) = a_flxi(jt) + zflxi(jt)
357            a_temi(jt) = a_temi(jt) + ztemi(jt)/zflxi(jt)
358            a_sali(jt) = a_sali(jt) + zsali(jt)/zflxi(jt)
359            a_flxo(jt) = a_flxo(jt) + zflxo(jt)
360            a_temo(jt) = a_temo(jt) + ztemo(jt)/zflxo(jt)
361            a_salo(jt) = a_salo(jt) + zsalo(jt)/zflxo(jt)
362         ENDIF
363      END DO
364
365      IF( kt == nitend ) THEN
366         DO jt = 1, 4 
367            a_flxi(jt) = a_flxi(jt) / ( FLOAT( nitend - nit000 + 1 ) * 1.e6 )
368            a_temi(jt) = a_temi(jt) /   FLOAT( nitend - nit000 + 1 )
369            a_sali(jt) = a_sali(jt) /   FLOAT( nitend - nit000 + 1 )
370            a_flxo(jt) = a_flxo(jt) / ( FLOAT( nitend - nit000 + 1 ) * 1.e6 )
371            a_temo(jt) = a_temo(jt) /   FLOAT( nitend - nit000 + 1 )
372            a_salo(jt) = a_salo(jt) /   FLOAT( nitend - nit000 + 1 )
373         END DO
374         IF( lk_mpp ) THEN
375            CALL mpp_sum( a_flxi, 4 )      ! sum over the global domain
376            CALL mpp_sum( a_temi, 4 )      ! sum over the global domain
377            CALL mpp_sum( a_sali, 4 )      ! sum over the global domain
378
379            CALL mpp_sum( a_flxo, 4 )      ! sum over the global domain
380            CALL mpp_sum( a_temo, 4 )      ! sum over the global domain
381            CALL mpp_sum( a_salo, 4 )      ! sum over the global domain
382         ENDIF
383      ENDIF
384
385
386      ! Ecriture des diagnostiques
387      ! --------------------------
388
389      IF ( kt == nitend .AND. cp_cfg == "orca" ) THEN
390
391         clname = 'STRAIT.dat'
392         CALL ctlopn( inum, clname, 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL',   &
393            &         1, numout, lwp, 1 )
394         WRITE(inum,*)
395         WRITE(inum,*)    'Net freshwater budget '
396         WRITE(inum,9010) '  emp    = ',a_emp,   ' m3 =', a_emp   /(FLOAT(nitend-nit000+1)*rdttra(1)) * 1.e-6,' Sv'
397         WRITE(inum,9010) '  precip = ',a_precip,' m3 =', a_precip/(FLOAT(nitend-nit000+1)*rdttra(1)) * 1.e-6,' Sv'
398         WRITE(inum,9010) '  a_rnf  = ',a_rnf,   ' m3 =', a_rnf   /(FLOAT(nitend-nit000+1)*rdttra(1)) * 1.e-6,' Sv'
399         WRITE(inum,*)
400         WRITE(inum,9010) '  zarea =',zarea
401         WRITE(inum,9010) '  zvol  =',zvol
402         WRITE(inum,*)
403         WRITE(inum,*)    'Mean sea level : '
404         WRITE(inum,9010) '  at nit000 = ',a_sshb        ,' m3 '
405         WRITE(inum,9010) '  at nitend = ',a_sshn        ,' m3 '
406         WRITE(inum,9010) '  diff      = ',(a_sshn-a_sshb),' m3 =', (a_sshn-a_sshb)/(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv'
407         WRITE(inum,9020) '  mean sea level elevation    =', a_sshn/zarea,' m'
408         WRITE(inum,*)
409         WRITE(inum,*)    'Anomaly of salinity content : '
410         WRITE(inum,9010) '  at nit000 = ',a_salb        ,' psu.m3 '
411         WRITE(inum,9010) '  at nitend = ',a_saln        ,' psu.m3 '
412         WRITE(inum,9010) '  diff      = ',(a_saln-a_salb),' psu.m3'
413         WRITE(inum,*)
414         WRITE(inum,*)    'Mean salinity : '
415         WRITE(inum,9020) '  at nit000 =',a_salb/zvol+zsm0   ,' psu '
416         WRITE(inum,9020) '  at nitend =',a_saln/zvol+zsm0   ,' psu '
417         WRITE(inum,9020) '  diff      =',(a_saln-a_salb)/zvol,' psu'
418         WRITE(inum,9020) '  S-SLevitus=',a_saln/zvol,' psu'
419         WRITE(inum,*)
420         WRITE(inum,*)    'Coeff : '
421         WRITE(inum,9030) '  Alpha+   =  ', a_aplus
422         WRITE(inum,9030) '  Alpha-   =  ', a_aminus
423         WRITE(inum,*)
424         WRITE(inum,*)
425         WRITE(inum,*)    'Gibraltar : '
426         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(1)
427         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(1)
428         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(1)
429         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(1)
430         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(1)
431         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(1)
432         WRITE(inum,*)
433         WRITE(inum,*)    'Cadiz : '
434         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(2)
435         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(2)
436         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(2)
437         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(2)
438         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(2)
439         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(2)
440         WRITE(inum,*)
441         WRITE(inum,*)    'Bab el Mandeb : '
442         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(3)
443         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(3)
444         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(3)
445         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(3)
446         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(3)
447         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(3)
448         WRITE(inum,*)
449         WRITE(inum,*)    'Baltic : '
450         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(4)
451         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(4)
452         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(4)
453         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(4)
454         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(4)
455         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(4)
456         CLOSE(inum)
457      ENDIF
458
459 9005 FORMAT(1X,A,ES24.16)
460 9010 FORMAT(1X,A,ES12.5,A,F10.5,A)
461 9020 FORMAT(1X,A,F10.5,A)
462 9030 FORMAT(1X,A,F8.2,A)
463
464   END SUBROUTINE dia_fwb
465
466#else
467   !!----------------------------------------------------------------------
468   !!   Default option :                                       Dummy Module
469   !!----------------------------------------------------------------------
470   LOGICAL, PUBLIC, PARAMETER ::   lk_diafwb = .FALSE.    !: fresh water budget flag
471CONTAINS
472   SUBROUTINE dia_fwb( kt )        ! Empty routine
473      WRITE(*,*) 'dia_fwb: : You should not have seen this print! error?', kt
474   END SUBROUTINE dia_fwb
475#endif
476
477   !!======================================================================
478END MODULE diafwb
Note: See TracBrowser for help on using the repository browser.