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 branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DIA – NEMO

source: branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90 @ 7525

Last change on this file since 7525 was 7525, checked in by mocavero, 7 years ago

changes after review

  • Property svn:keywords set to Id
File size: 21.7 KB
Line 
1MODULE diafwb
2   !!======================================================================
3   !!                       ***  MODULE  diafwb  ***
4   !! Ocean diagnostics: freshwater budget
5   !!======================================================================
6   !! History :  8.2  !  01-02  (E. Durand)  Original code
7   !!            8.5  !  02-06  (G. Madec)  F90: Free form and module
8   !!            9.0  !  05-11  (V. Garnier) Surface pressure gradient organization
9   !!----------------------------------------------------------------------
10   !!----------------------------------------------------------------------
11   !!   Only for ORCA2 ORCA1 and ORCA025
12   !!----------------------------------------------------------------------
13   !!----------------------------------------------------------------------
14   !!   dia_fwb     : freshwater budget for global ocean configurations
15   !!----------------------------------------------------------------------
16   USE oce             ! ocean dynamics and tracers
17   USE dom_oce         ! ocean space and time domain
18   USE phycst          ! physical constants
19   USE sbc_oce         ! ???
20   USE zdf_oce         ! ocean vertical physics
21   USE in_out_manager  ! I/O manager
22   USE lib_mpp         ! distributed memory computing library
23   USE timing          ! preformance summary
24
25   IMPLICIT NONE
26   PRIVATE
27
28   PUBLIC dia_fwb    ! routine called by step.F90
29
30   REAL(wp)               ::   a_fwf ,          &
31      &                        a_sshb, a_sshn, a_salb, a_saln
32   REAL(wp), DIMENSION(4) ::   a_flxi, a_flxo, a_temi, a_temo, a_sali, a_salo
33
34   !! * Substitutions
35#  include "vectopt_loop_substitute.h90"
36   !!----------------------------------------------------------------------
37   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
38   !! $Id$
39   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
40   !!----------------------------------------------------------------------
41CONTAINS
42
43   SUBROUTINE dia_fwb( kt )
44      !!---------------------------------------------------------------------
45      !!                  ***  ROUTINE dia_fwb  ***
46      !!     
47      !! ** Purpose :
48      !!----------------------------------------------------------------------
49      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index
50      !!
51      INTEGER  :: inum             ! temporary logical unit
52      INTEGER  :: ji, jj, jk, jt   ! dummy loop indices
53      INTEGER  :: ii0, ii1, ij0, ij1
54      INTEGER  :: isrow         ! index for ORCA1 starting row
55      REAL(wp) :: zarea, zvol, zwei
56      REAL(wp) :: ztemi(4), ztemo(4), zsali(4), zsalo(4), zflxi(4), zflxo(4)
57      REAL(wp) :: zt, zs, zu
58      REAL(wp) :: zsm0, zfwfnew
59      REAL(wp), DIMENSION(:,:)     ::   ztmp      ! 2D workspace
60      IF( cp_cfg == "orca" .AND. jp_cfg == 1 .OR. jp_cfg == 2 .OR. jp_cfg == 4 ) THEN
61      !!----------------------------------------------------------------------
62      IF( nn_timing == 1 )   CALL timing_start('dia_fwb')
63
64      ! Mean global salinity
65      zsm0 = 34.72654
66      ! To compute fwf mean value mean fwf
67
68      IF( kt == nit000 ) THEN
69
70         a_fwf    = 0.e0
71         a_sshb   = 0.e0 ! valeur de ssh au debut de la simulation
72         a_salb   = 0.e0 ! valeur de sal au debut de la simulation
73         ! sshb used because diafwb called after tranxt (i.e. after the swap)
74!$OMP PARALLEL DO schedule(static) private(jj,ji) REDUCTION(+:a_sshb)
75         DO jj = 1, jpj
76            DO ji = 1, jpi
77               ztmp(ji,jj) = e1e2t(ji,jj) * sshb(ji,jj) * tmask_i(ji,jj)
78               a_sshb = a_sshb + ztmp(ji,jj)
79            END DO
80         END DO
81         IF( lk_mpp )   CALL mpp_sum( a_sshb )      ! sum over the global domain
82
83!$OMP PARALLEL DO schedule(static) private(jk,jj,ji,zwei) REDUCTION(+:a_salb)
84         DO jk = 1, jpkm1
85            DO jj = 2, jpjm1
86               DO ji = fs_2, fs_jpim1   ! vector opt.
87                  zwei  = e1e2t(ji,jj) * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)
88                  a_salb = a_salb + ( tsb(ji,jj,jk,jp_sal) - zsm0 ) * zwei
89               END DO
90            END DO
91         END DO
92         IF( lk_mpp )   CALL mpp_sum( a_salb )      ! sum over the global domain
93      ENDIF
94       
95!$OMP PARALLEL DO schedule(static) private(jj,ji) REDUCTION(+:a_fwf)
96      DO jj = 1, jpj
97         DO ji = 1, jpi
98            ztmp(ji,jj) = e1e2t(ji,jj) * ( emp(ji,jj)-rnf(ji,jj) ) * tmask_i(ji,jj)
99            a_fwf = a_fwf + ztmp(ji,jj)
100         END DO
101      END DO
102
103      IF( lk_mpp )   CALL mpp_sum( a_fwf    )       ! sum over the global domain
104
105      IF( kt == nitend ) THEN
106         a_sshn = 0.e0
107         a_saln = 0.e0
108         zarea = 0.e0
109         zvol  = 0.e0
110         zfwfnew = 0.e0
111         ! Mean sea level at nitend
112!$OMP PARALLEL DO schedule(static) private(jj,ji) REDUCTION(+:a_sshn)
113         DO jj = 1, jpj
114            DO ji = 1, jpi
115               ztmp(ji,jj) = e1e2t(ji,jj) * sshn(ji,jj) * tmask_i(ji,jj)
116               a_sshn = a_sshn + ztmp(ji,jj)
117            END DO
118         END DO
119         IF( lk_mpp )   CALL mpp_sum( a_sshn )      ! sum over the global domain
120!$OMP PARALLEL DO schedule(static) private(jj,ji) REDUCTION(+:zarea)
121         DO jj = 1, jpj
122            DO ji = 1, jpi
123               ztmp(ji,jj) = e1e2t(ji,jj) *            tmask_i(ji,jj)
124               zarea = zarea + ztmp(ji,jj)
125            END DO
126         END DO
127         IF( lk_mpp )   CALL mpp_sum( zarea  )      ! sum over the global domain
128         
129!$OMP PARALLEL DO schedule(static) private(jk,jj,ji,zwei) REDUCTION (+:a_saln,zvol)
130         DO jk = 1, jpkm1   
131            DO jj = 2, jpjm1
132               DO ji = fs_2, fs_jpim1   ! vector opt.
133                  zwei  = e1e2t(ji,jj) * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)
134                  a_saln = a_saln + ( tsn(ji,jj,jk,jp_sal) - zsm0 ) * zwei
135                  zvol  = zvol  + zwei
136               END DO
137            END DO
138         END DO
139         IF( lk_mpp )   CALL mpp_sum( a_saln )      ! sum over the global domain
140         IF( lk_mpp )   CALL mpp_sum( zvol )      ! sum over the global domain
141         
142         ! Conversion in m3
143         a_fwf    = a_fwf * rdt * 1.e-3 
144         
145         ! fwf correction to bring back the mean ssh to zero
146         zfwfnew = a_sshn / ( ( nitend - nit000 + 1 ) * rdt ) * 1.e3 / zarea
147
148      ENDIF
149
150
151      ! Calcul des termes de transport
152      ! ------------------------------
153     
154      ! 1 --> Gibraltar
155      ! 2 --> Cadiz
156      ! 3 --> Red Sea
157      ! 4 --> Baltic Sea
158
159      IF( kt == nit000 ) THEN
160         a_flxi(:) = 0.e0
161         a_flxo(:) = 0.e0
162         a_temi(:) = 0.e0
163         a_temo(:) = 0.e0
164         a_sali(:) = 0.e0
165         a_salo(:) = 0.e0
166      ENDIF
167
168      zflxi(:) = 0.e0
169      zflxo(:) = 0.e0
170      ztemi(:) = 0.e0
171      ztemo(:) = 0.e0
172      zsali(:) = 0.e0
173      zsalo(:) = 0.e0
174
175      ! Mean flow at Gibraltar
176
177      IF( cp_cfg == "orca" ) THEN 
178               
179         SELECT CASE ( jp_cfg )
180         !                                           ! =======================
181         CASE ( 4 )                                  !  ORCA_R4 configuration
182            !                                        ! =======================
183            ii0 = 70   ;   ii1 = 70
184            ij0 = 52   ;   ij1 = 52
185            !                                        ! =======================
186         CASE ( 2 )                                  !  ORCA_R2 configuration
187            !                                        ! =======================
188            ii0 = 140   ;   ii1 = 140
189            ij0 = 102   ;   ij1 = 102
190            !                                        ! =======================
191         CASE ( 1 )                                  !  ORCA_R1 configurations
192            !                                        ! =======================
193            ! This dirty section will be suppressed by simplification process:
194            ! all this will come back in input files
195            ! Currently these hard-wired indices relate to configuration with
196            ! extend grid (jpjglo=332)
197            isrow = 332 - jpjglo
198            !
199            ii0 = 283           ;   ii1 = 283
200            ij0 = 241 - isrow   ;   ij1 = 241 - isrow
201            !                                        ! =======================
202         CASE DEFAULT                                !    ORCA R05 or R025
203            !                                        ! =======================
204            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
205            !
206         END SELECT
207         !
208         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
209            DO jj = mj0(ij0), mj1(ij1)
210               DO jk = 1, jpk 
211                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
212                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
213                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
214
215                  IF( un(ji,jj,jk) > 0.e0 ) THEN
216                     zflxi(1) = zflxi(1) +    zu
217                     ztemi(1) = ztemi(1) + zt*zu
218                     zsali(1) = zsali(1) + zs*zu
219                  ELSE
220                     zflxo(1) = zflxo(1) +    zu
221                     ztemo(1) = ztemo(1) + zt*zu
222                     zsalo(1) = zsalo(1) + zs*zu
223                  ENDIF
224               END DO
225            END DO
226         END DO
227      ENDIF
228     
229      ! Mean flow at Cadiz
230      IF( cp_cfg == "orca" ) THEN
231               
232         SELECT CASE ( jp_cfg )
233         !                                           ! =======================
234         CASE ( 4 )                                  !  ORCA_R4 configuration
235            !                                        ! =======================
236            ii0 = 69   ;   ii1 = 69
237            ij0 = 52   ;   ij1 = 52
238            !                                        ! =======================
239         CASE ( 2 )                                  !  ORCA_R2 configuration
240            !                                        ! =======================
241            ii0 = 137   ;   ii1 = 137
242            ij0 = 101   ;   ij1 = 102
243            !                                        ! =======================
244         CASE ( 1 )                                  !  ORCA_R1 configurations
245            !                                        ! =======================
246            ! This dirty section will be suppressed by simplification process:
247            ! all this will come back in input files
248            ! Currently these hard-wired indices relate to configuration with
249            ! extend grid (jpjglo=332)
250            isrow = 332 - jpjglo
251            ii0 = 282           ;   ii1 = 282
252            ij0 = 240 - isrow   ;   ij1 = 240 - isrow
253            !                                        ! =======================
254         CASE DEFAULT                                !    ORCA R05 or R025
255            !                                        ! =======================
256            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
257            !
258         END SELECT
259         !
260         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
261            DO jj = mj0(ij0), mj1(ij1)
262               DO jk = 1, jpk 
263                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
264                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
265                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
266                 
267                  IF( un(ji,jj,jk) > 0.e0 ) THEN
268                     zflxi(2) = zflxi(2) +    zu
269                     ztemi(2) = ztemi(2) + zt*zu
270                     zsali(2) = zsali(2) + zs*zu
271                  ELSE
272                     zflxo(2) = zflxo(2) +    zu
273                     ztemo(2) = ztemo(2) + zt*zu
274                     zsalo(2) = zsalo(2) + zs*zu
275                  ENDIF
276               END DO
277            END DO
278         END DO
279      ENDIF
280
281      ! Mean flow at Red Sea entrance
282      IF( cp_cfg == "orca" ) THEN
283               
284         SELECT CASE ( jp_cfg )
285         !                                           ! =======================
286         CASE ( 4 )                                  !  ORCA_R4 configuration
287            !                                        ! =======================
288            ii0 = 83   ;   ii1 = 83
289            ij0 = 45   ;   ij1 = 45
290            !                                        ! =======================
291         CASE ( 2 )                                  !  ORCA_R2 configuration
292            !                                        ! =======================
293            ii0 = 160   ;   ii1 = 160
294            ij0 = 88    ;   ij1 = 88 
295            !                                        ! =======================
296         CASE ( 1 )                                  !  ORCA_R1 configurations
297            !                                        ! =======================
298            ! This dirty section will be suppressed by simplification process:
299            ! all this will come back in input files
300            ! Currently these hard-wired indices relate to configuration with
301            ! extend grid (jpjglo=332)
302            isrow = 332 - jpjglo
303            ii0 = 331           ;   ii1 = 331
304            ij0 = 215 - isrow   ;   ij1 = 215 - isrow
305            !                                        ! =======================
306         CASE DEFAULT                                !    ORCA R05 or R025
307            !                                        ! =======================
308            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
309            !
310         END SELECT
311         !
312         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
313            DO jj = mj0(ij0), mj1(ij1)
314               DO jk = 1, jpk 
315                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
316                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
317                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
318                 
319                  IF( un(ji,jj,jk) > 0.e0 ) THEN
320                     zflxi(3) = zflxi(3) +    zu
321                     ztemi(3) = ztemi(3) + zt*zu
322                     zsali(3) = zsali(3) + zs*zu
323                  ELSE
324                     zflxo(3) = zflxo(3) +    zu
325                     ztemo(3) = ztemo(3) + zt*zu
326                     zsalo(3) = zsalo(3) + zs*zu
327                  ENDIF
328               END DO
329            END DO
330         END DO
331      ENDIF
332
333      ! Mean flow at Baltic Sea entrance
334      IF( cp_cfg == "orca" ) THEN
335               
336         SELECT CASE ( jp_cfg )
337         !                                           ! =======================
338         CASE ( 4 )                                  !  ORCA_R4 configuration
339            !                                        ! =======================
340            ii0 = 1     ;   ii1 = 1 
341            ij0 = 1     ;   ij1 = 1 
342            !                                        ! =======================
343         CASE ( 2 )                                  !  ORCA_R2 configuration
344            !                                        ! =======================
345            ii0 = 146   ;   ii1 = 146 
346            ij0 = 116   ;   ij1 = 116
347            !                                        ! =======================
348         CASE ( 1 )                                  !  ORCA_R1 configurations
349            !                                        ! =======================
350            ! This dirty section will be suppressed by simplification process:
351            ! all this will come back in input files
352            ! Currently these hard-wired indices relate to configuration with
353            ! extend grid (jpjglo=332)
354            isrow = 332 - jpjglo
355            ii0 = 297           ;   ii1 = 297
356            ij0 = 269 - isrow   ;   ij1 = 269 - isrow
357            !                                        ! =======================
358         CASE DEFAULT                                !    ORCA R05 or R025
359            !                                        ! =======================
360            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
361            !
362         END SELECT
363         !
364         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
365            DO jj = mj0(ij0), mj1(ij1)
366               DO jk = 1, jpk
367                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
368                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
369                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
370                 
371                  IF( un(ji,jj,jk) > 0.e0 ) THEN
372                     zflxi(4) = zflxi(4) +    zu
373                     ztemi(4) = ztemi(4) + zt*zu
374                     zsali(4) = zsali(4) + zs*zu
375                  ELSE
376                     zflxo(4) = zflxo(4) +    zu
377                     ztemo(4) = ztemo(4) + zt*zu
378                     zsalo(4) = zsalo(4) + zs*zu
379                  ENDIF
380               END DO
381            END DO
382         END DO
383      ENDIF
384
385      ! Sum at each time-step
386      DO jt = 1, 4 
387         !
388         IF( zflxi(jt) /= 0.e0 ) THEN
389            a_flxi(jt) = a_flxi(jt) + zflxi(jt)
390            a_temi(jt) = a_temi(jt) + ztemi(jt)/zflxi(jt)
391            a_sali(jt) = a_sali(jt) + zsali(jt)/zflxi(jt)
392         ENDIF
393         !
394         IF( zflxo(jt) /= 0.e0 ) THEN
395            a_flxo(jt) = a_flxo(jt) + zflxo(jt)
396            a_temo(jt) = a_temo(jt) + ztemo(jt)/zflxo(jt)
397            a_salo(jt) = a_salo(jt) + zsalo(jt)/zflxo(jt)
398         ENDIF
399         !
400      END DO
401
402      IF( kt == nitend ) THEN
403         DO jt = 1, 4 
404            a_flxi(jt) = a_flxi(jt) / ( FLOAT( nitend - nit000 + 1 ) * 1.e6 )
405            a_temi(jt) = a_temi(jt) /   FLOAT( nitend - nit000 + 1 )
406            a_sali(jt) = a_sali(jt) /   FLOAT( nitend - nit000 + 1 )
407            a_flxo(jt) = a_flxo(jt) / ( FLOAT( nitend - nit000 + 1 ) * 1.e6 )
408            a_temo(jt) = a_temo(jt) /   FLOAT( nitend - nit000 + 1 )
409            a_salo(jt) = a_salo(jt) /   FLOAT( nitend - nit000 + 1 )
410         END DO
411         IF( lk_mpp ) THEN
412            CALL mpp_sum( a_flxi, 4 )      ! sum over the global domain
413            CALL mpp_sum( a_temi, 4 )      ! sum over the global domain
414            CALL mpp_sum( a_sali, 4 )      ! sum over the global domain
415
416            CALL mpp_sum( a_flxo, 4 )      ! sum over the global domain
417            CALL mpp_sum( a_temo, 4 )      ! sum over the global domain
418            CALL mpp_sum( a_salo, 4 )      ! sum over the global domain
419         ENDIF
420      ENDIF
421
422
423      ! Ecriture des diagnostiques
424      ! --------------------------
425
426      IF ( kt == nitend .AND. cp_cfg == "orca" .AND. lwp ) THEN
427
428         CALL ctl_opn( inum, 'STRAIT.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
429         WRITE(inum,*)
430         WRITE(inum,*)    'Net freshwater budget '
431         WRITE(inum,9010) '  fwf    = ',a_fwf,   ' m3 =', a_fwf   /(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv'
432         WRITE(inum,*)
433         WRITE(inum,9010) '  zarea =',zarea
434         WRITE(inum,9010) '  zvol  =',zvol
435         WRITE(inum,*)
436         WRITE(inum,*)    'Mean sea level : '
437         WRITE(inum,9010) '  at nit000 = ',a_sshb        ,' m3 '
438         WRITE(inum,9010) '  at nitend = ',a_sshn        ,' m3 '
439         WRITE(inum,9010) '  diff      = ',(a_sshn-a_sshb),' m3 =', (a_sshn-a_sshb)/(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv'
440         WRITE(inum,9020) '  mean sea level elevation    =', a_sshn/zarea,' m'
441         WRITE(inum,*)
442         WRITE(inum,*)    'Anomaly of salinity content : '
443         WRITE(inum,9010) '  at nit000 = ',a_salb        ,' psu.m3 '
444         WRITE(inum,9010) '  at nitend = ',a_saln        ,' psu.m3 '
445         WRITE(inum,9010) '  diff      = ',(a_saln-a_salb),' psu.m3'
446         WRITE(inum,*)
447         WRITE(inum,*)    'Mean salinity : '
448         WRITE(inum,9020) '  at nit000 =',a_salb/zvol+zsm0   ,' psu '
449         WRITE(inum,9020) '  at nitend =',a_saln/zvol+zsm0   ,' psu '
450         WRITE(inum,9020) '  diff      =',(a_saln-a_salb)/zvol,' psu'
451         WRITE(inum,9020) '  S-SLevitus=',a_saln/zvol,' psu'
452         WRITE(inum,*)
453         WRITE(inum,*)    'Gibraltar : '
454         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(1)
455         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(1)
456         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(1)
457         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(1)
458         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(1)
459         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(1)
460         WRITE(inum,*)
461         WRITE(inum,*)    'Cadiz : '
462         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(2)
463         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(2)
464         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(2)
465         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(2)
466         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(2)
467         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(2)
468         WRITE(inum,*)
469         WRITE(inum,*)    'Bab el Mandeb : '
470         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(3)
471         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(3)
472         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(3)
473         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(3)
474         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(3)
475         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(3)
476         WRITE(inum,*)
477         WRITE(inum,*)    'Baltic : '
478         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(4)
479         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(4)
480         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(4)
481         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(4)
482         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(4)
483         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(4)
484         CLOSE(inum)
485      ENDIF
486
487      IF( nn_timing == 1 )   CALL timing_stop('dia_fwb')
488
489 9005 FORMAT(1X,A,ES24.16)
490 9010 FORMAT(1X,A,ES12.5,A,F10.5,A)
491 9020 FORMAT(1X,A,F10.5,A)
492 9030 FORMAT(1X,A,F9.4,A)
493 
494      ENDIF
495
496   END SUBROUTINE dia_fwb
497
498   !!======================================================================
499END MODULE diafwb
Note: See TracBrowser for help on using the repository browser.