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/UKMO/dev_r5107_eorca025_closea/NEMOGCM/NEMO/OPA_SRC/DIA – NEMO

source: branches/UKMO/dev_r5107_eorca025_closea/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90 @ 5449

Last change on this file since 5449 was 5449, checked in by davestorkey, 9 years ago

Update UKMO/dev_r5107_eorca025_closea branch to revision 5442 of the trunk.

File size: 21.5 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 "domzgr_substitute.h90"
36#  include "vectopt_loop_substitute.h90"
37   !!----------------------------------------------------------------------
38   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
39   !! $Id$
40   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
41   !!----------------------------------------------------------------------
42
43CONTAINS
44
45   SUBROUTINE dia_fwb( kt )
46      !!---------------------------------------------------------------------
47      !!                  ***  ROUTINE dia_fwb  ***
48      !!     
49      !! ** Purpose :
50      !!----------------------------------------------------------------------
51      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index
52      !!
53      INTEGER  :: inum             ! temporary logical unit
54      INTEGER  :: ji, jj, jk, jt   ! dummy loop indices
55      INTEGER  :: ii0, ii1, ij0, ij1
56      INTEGER  :: isrow         ! index for ORCA1 starting row
57      REAL(wp) :: zarea, zvol, zwei
58      REAL(wp) :: ztemi(4), ztemo(4), zsali(4), zsalo(4), zflxi(4), zflxo(4)
59      REAL(wp) :: zt, zs, zu 
60      REAL(wp) :: zsm0, zfwfnew
61      IF( cp_cfg == "orca" .AND. jp_cfg == 1 .OR. jp_cfg == 2 .OR. jp_cfg == 4 ) THEN
62      !!----------------------------------------------------------------------
63      IF( nn_timing == 1 )   CALL timing_start('dia_fwb')
64
65      ! Mean global salinity
66      zsm0 = 34.72654
67
68      ! To compute fwf mean value mean fwf
69
70      IF( kt == nit000 ) THEN
71
72         a_fwf    = 0.e0
73         a_sshb   = 0.e0 ! valeur de ssh au debut de la simulation
74         a_salb   = 0.e0 ! valeur de sal au debut de la simulation
75         ! sshb used because diafwb called after tranxt (i.e. after the swap)
76         a_sshb = SUM( e1t(:,:) * e2t(:,:) * sshb(:,:) * tmask_i(:,:) )
77         IF( lk_mpp )   CALL mpp_sum( a_sshb )      ! sum over the global domain
78
79         DO jk = 1, jpkm1
80            DO jj = 2, jpjm1
81               DO ji = fs_2, fs_jpim1   ! vector opt.
82                  zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)
83                  a_salb = a_salb + ( tsb(ji,jj,jk,jp_sal) - zsm0 ) * zwei
84               END DO
85            END DO
86         END DO
87         IF( lk_mpp )   CALL mpp_sum( a_salb )      ! sum over the global domain
88      ENDIF
89     
90      a_fwf    = SUM( e1t(:,:) * e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) ) 
91      IF( lk_mpp )   CALL mpp_sum( a_fwf    )       ! sum over the global domain
92
93      IF( kt == nitend ) THEN
94         a_sshn = 0.e0
95         a_saln = 0.e0
96         zarea = 0.e0
97         zvol  = 0.e0
98         zfwfnew = 0.e0
99         ! Mean sea level at nitend
100         a_sshn = SUM( e1t(:,:) * e2t(:,:) * sshn(:,:) * tmask_i(:,:) )
101         IF( lk_mpp )   CALL mpp_sum( a_sshn )      ! sum over the global domain
102         zarea  = SUM( e1t(:,:) * e2t(:,:) *             tmask_i(:,:) )
103         IF( lk_mpp )   CALL mpp_sum( zarea  )      ! sum over the global domain
104         
105         DO jk = 1, jpkm1   
106            DO jj = 2, jpjm1
107               DO ji = fs_2, fs_jpim1   ! vector opt.
108                  zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)
109                  a_saln = a_saln + ( tsn(ji,jj,jk,jp_sal) - zsm0 ) * zwei
110                  zvol  = zvol  + zwei
111               END DO
112            END DO
113         END DO
114         IF( lk_mpp )   CALL mpp_sum( a_saln )      ! sum over the global domain
115         IF( lk_mpp )   CALL mpp_sum( zvol )      ! sum over the global domain
116         
117         ! Conversion in m3
118         a_fwf    = a_fwf * rdttra(1) * 1.e-3 
119         
120         ! fwf correction to bring back the mean ssh to zero
121         zfwfnew = a_sshn / ( ( nitend - nit000 + 1 ) * rdt ) * 1.e3 / zarea
122
123      ENDIF
124
125
126      ! Calcul des termes de transport
127      ! ------------------------------
128     
129      ! 1 --> Gibraltar
130      ! 2 --> Cadiz
131      ! 3 --> Red Sea
132      ! 4 --> Baltic Sea
133
134      IF( kt == nit000 ) THEN
135         a_flxi(:) = 0.e0
136         a_flxo(:) = 0.e0
137         a_temi(:) = 0.e0
138         a_temo(:) = 0.e0
139         a_sali(:) = 0.e0
140         a_salo(:) = 0.e0
141      ENDIF
142
143      zflxi(:) = 0.e0
144      zflxo(:) = 0.e0
145      ztemi(:) = 0.e0
146      ztemo(:) = 0.e0
147      zsali(:) = 0.e0
148      zsalo(:) = 0.e0
149
150      ! Mean flow at Gibraltar
151
152      IF( cp_cfg == "orca" ) THEN 
153               
154         SELECT CASE ( jp_cfg )
155         !                                           ! =======================
156         CASE ( 4 )                                  !  ORCA_R4 configuration
157            !                                        ! =======================
158            ii0 = 70   ;   ii1 = 70
159            ij0 = 52   ;   ij1 = 52
160            !                                        ! =======================
161         CASE ( 2 )                                  !  ORCA_R2 configuration
162            !                                        ! =======================
163            ii0 = 140   ;   ii1 = 140
164            ij0 = 102   ;   ij1 = 102
165            !                                        ! =======================
166         CASE ( 1 )                                  !  ORCA_R1 configurations
167            !                                        ! =======================
168            ! This dirty section will be suppressed by simplification process: all this will come back in input files
169            ! Currently these hard-wired indices relate to the original (pre-v3.6) configuration
170            ! which had a grid-size of 362x292.
171            ! This grid has been extended southwards for use with the under ice-shelf options (isf) introduced in v3.6.
172            ! The original domain can still be used optionally if the isf code is not activated.
173            ! An adjustment (isrow) is made to the hard-wired indices if the extended domain (362x332) is being used.
174            !
175            IF    ( jpjglo == 292 ) THEN  ;  isrow = 0  ! Using pre-v3.6 files or adjusted start row from isf-extended grid
176            ELSEIF( jpjglo == 332 ) THEN  ;  isrow = 40 ! Using full isf­extended domain.
177            ENDIF                                       ! Adjust j­indices to account for more southerly starting latitude
178            ii0 = 283           ;   ii1 = 283
179            ij0 = 201 + isrow   ;   ij1 = 201 + isrow
180            !                                        ! =======================
181         CASE DEFAULT                                !    ORCA R05 or R025
182            !                                        ! =======================
183            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
184            !
185         END SELECT
186         !
187         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
188            DO jj = mj0(ij0), mj1(ij1)
189               DO jk = 1, jpk 
190                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
191                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
192                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
193
194                  IF( un(ji,jj,jk) > 0.e0 ) THEN
195                     zflxi(1) = zflxi(1) +    zu
196                     ztemi(1) = ztemi(1) + zt*zu
197                     zsali(1) = zsali(1) + zs*zu
198                  ELSE
199                     zflxo(1) = zflxo(1) +    zu
200                     ztemo(1) = ztemo(1) + zt*zu
201                     zsalo(1) = zsalo(1) + zs*zu
202                  ENDIF
203               END DO
204            END DO
205         END DO
206      ENDIF
207     
208      ! Mean flow at Cadiz
209      IF( cp_cfg == "orca" ) THEN
210               
211         SELECT CASE ( jp_cfg )
212         !                                           ! =======================
213         CASE ( 4 )                                  !  ORCA_R4 configuration
214            !                                        ! =======================
215            ii0 = 69   ;   ii1 = 69
216            ij0 = 52   ;   ij1 = 52
217            !                                        ! =======================
218         CASE ( 2 )                                  !  ORCA_R2 configuration
219            !                                        ! =======================
220            ii0 = 137   ;   ii1 = 137
221            ij0 = 101   ;   ij1 = 102
222            !                                        ! =======================
223         CASE ( 1 )                                  !  ORCA_R1 configurations
224            !                                        ! =======================
225            !  This dirty section will be suppressed by simplification process:
226            !  all this will come back in input files
227            IF    ( jpjglo == 292 ) THEN  ;  isrow = 0 
228            ELSEIF( jpjglo == 332 ) THEN  ;  isrow = 39
229            ENDIF                                     
230            ii0 = 282           ;   ii1 = 282
231            ij0 = 201 + isrow   ;   ij1 = 201 + isrow
232            !                                        ! =======================
233         CASE DEFAULT                                !    ORCA R05 or R025
234            !                                        ! =======================
235            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
236            !
237         END SELECT
238         !
239         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
240            DO jj = mj0(ij0), mj1(ij1)
241               DO jk = 1, jpk 
242                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
243                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
244                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
245                 
246                  IF( un(ji,jj,jk) > 0.e0 ) THEN
247                     zflxi(2) = zflxi(2) +    zu
248                     ztemi(2) = ztemi(2) + zt*zu
249                     zsali(2) = zsali(2) + zs*zu
250                  ELSE
251                     zflxo(2) = zflxo(2) +    zu
252                     ztemo(2) = ztemo(2) + zt*zu
253                     zsalo(2) = zsalo(2) + zs*zu
254                  ENDIF
255               END DO
256            END DO
257         END DO
258      ENDIF
259
260      ! Mean flow at Red Sea entrance
261      IF( cp_cfg == "orca" ) THEN
262               
263         SELECT CASE ( jp_cfg )
264         !                                           ! =======================
265         CASE ( 4 )                                  !  ORCA_R4 configuration
266            !                                        ! =======================
267            ii0 = 83   ;   ii1 = 83
268            ij0 = 45   ;   ij1 = 45
269            !                                        ! =======================
270         CASE ( 2 )                                  !  ORCA_R2 configuration
271            !                                        ! =======================
272            ii0 = 160   ;   ii1 = 160
273            ij0 = 88    ;   ij1 = 88 
274            !                                        ! =======================
275         CASE ( 1 )                                  !  ORCA_R1 configurations
276            !                                        ! =======================
277            !  This dirty section will be suppressed by simplification process:
278            !  all this will come back in input files
279            IF    ( jpjglo == 292 ) THEN  ;  isrow = 0 
280            ELSEIF( jpjglo == 332 ) THEN  ;  isrow = 39
281            ENDIF                                     
282            ii0 = 331           ;   ii1 = 331
283            ij0 = 176 + isrow   ;   ij1 = 176 + isrow
284            !                                        ! =======================
285         CASE DEFAULT                                !    ORCA R05 or R025
286            !                                        ! =======================
287            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
288            !
289         END SELECT
290         !
291         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
292            DO jj = mj0(ij0), mj1(ij1)
293               DO jk = 1, jpk 
294                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
295                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
296                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
297                 
298                  IF( un(ji,jj,jk) > 0.e0 ) THEN
299                     zflxi(3) = zflxi(3) +    zu
300                     ztemi(3) = ztemi(3) + zt*zu
301                     zsali(3) = zsali(3) + zs*zu
302                  ELSE
303                     zflxo(3) = zflxo(3) +    zu
304                     ztemo(3) = ztemo(3) + zt*zu
305                     zsalo(3) = zsalo(3) + zs*zu
306                  ENDIF
307               END DO
308            END DO
309         END DO
310      ENDIF
311
312      ! Mean flow at Baltic Sea entrance
313      IF( cp_cfg == "orca" ) THEN
314               
315         SELECT CASE ( jp_cfg )
316         !                                           ! =======================
317         CASE ( 4 )                                  !  ORCA_R4 configuration
318            !                                        ! =======================
319            ii0 = 1     ;   ii1 = 1 
320            ij0 = 1     ;   ij1 = 1 
321            !                                        ! =======================
322         CASE ( 2 )                                  !  ORCA_R2 configuration
323            !                                        ! =======================
324            ii0 = 146   ;   ii1 = 146 
325            ij0 = 116   ;   ij1 = 116
326            !                                        ! =======================
327         CASE ( 1 )                                  !  ORCA_R1 configurations
328            !                                        ! =======================
329            !  This dirty section will be suppressed by simplification process:
330            !  all this will come back in input files
331            IF    ( jpjglo == 292 ) THEN  ;  isrow = 0 
332            ELSEIF( jpjglo == 332 ) THEN  ;  isrow = 39
333            ENDIF                                     
334            ii0 = 297           ;   ii1 = 297
335            ij0 = 230 + isrow   ;   ij1 = 230 + isrow
336            !                                        ! =======================
337         CASE DEFAULT                                !    ORCA R05 or R025
338            !                                        ! =======================
339            CALL ctl_stop( ' dia_fwb Not yet implemented in ORCA_R05 or R025' )
340            !
341         END SELECT
342         !
343         DO ji = mi0(ii0), MIN(mi1(ii1),jpim1)
344            DO jj = mj0(ij0), mj1(ij1)
345               DO jk = 1, jpk
346                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) )
347                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) )
348                  zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj)
349                 
350                  IF( un(ji,jj,jk) > 0.e0 ) THEN
351                     zflxi(4) = zflxi(4) +    zu
352                     ztemi(4) = ztemi(4) + zt*zu
353                     zsali(4) = zsali(4) + zs*zu
354                  ELSE
355                     zflxo(4) = zflxo(4) +    zu
356                     ztemo(4) = ztemo(4) + zt*zu
357                     zsalo(4) = zsalo(4) + zs*zu
358                  ENDIF
359               END DO
360            END DO
361         END DO
362      ENDIF
363
364      ! Sum at each time-step
365      DO jt = 1, 4 
366         !
367         IF( zflxi(jt) /= 0.e0 ) THEN
368            a_flxi(jt) = a_flxi(jt) + zflxi(jt)
369            a_temi(jt) = a_temi(jt) + ztemi(jt)/zflxi(jt)
370            a_sali(jt) = a_sali(jt) + zsali(jt)/zflxi(jt)
371         ENDIF
372         !
373         IF( zflxo(jt) /= 0.e0 ) THEN
374            a_flxo(jt) = a_flxo(jt) + zflxo(jt)
375            a_temo(jt) = a_temo(jt) + ztemo(jt)/zflxo(jt)
376            a_salo(jt) = a_salo(jt) + zsalo(jt)/zflxo(jt)
377         ENDIF
378         !
379      END DO
380
381      IF( kt == nitend ) THEN
382         DO jt = 1, 4 
383            a_flxi(jt) = a_flxi(jt) / ( FLOAT( nitend - nit000 + 1 ) * 1.e6 )
384            a_temi(jt) = a_temi(jt) /   FLOAT( nitend - nit000 + 1 )
385            a_sali(jt) = a_sali(jt) /   FLOAT( nitend - nit000 + 1 )
386            a_flxo(jt) = a_flxo(jt) / ( FLOAT( nitend - nit000 + 1 ) * 1.e6 )
387            a_temo(jt) = a_temo(jt) /   FLOAT( nitend - nit000 + 1 )
388            a_salo(jt) = a_salo(jt) /   FLOAT( nitend - nit000 + 1 )
389         END DO
390         IF( lk_mpp ) THEN
391            CALL mpp_sum( a_flxi, 4 )      ! sum over the global domain
392            CALL mpp_sum( a_temi, 4 )      ! sum over the global domain
393            CALL mpp_sum( a_sali, 4 )      ! sum over the global domain
394
395            CALL mpp_sum( a_flxo, 4 )      ! sum over the global domain
396            CALL mpp_sum( a_temo, 4 )      ! sum over the global domain
397            CALL mpp_sum( a_salo, 4 )      ! sum over the global domain
398         ENDIF
399      ENDIF
400
401
402      ! Ecriture des diagnostiques
403      ! --------------------------
404
405      IF ( kt == nitend .AND. cp_cfg == "orca" .AND. lwp ) THEN
406
407         CALL ctl_opn( inum, 'STRAIT.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
408         WRITE(inum,*)
409         WRITE(inum,*)    'Net freshwater budget '
410         WRITE(inum,9010) '  fwf    = ',a_fwf,   ' m3 =', a_fwf   /(FLOAT(nitend-nit000+1)*rdttra(1)) * 1.e-6,' Sv'
411         WRITE(inum,*)
412         WRITE(inum,9010) '  zarea =',zarea
413         WRITE(inum,9010) '  zvol  =',zvol
414         WRITE(inum,*)
415         WRITE(inum,*)    'Mean sea level : '
416         WRITE(inum,9010) '  at nit000 = ',a_sshb        ,' m3 '
417         WRITE(inum,9010) '  at nitend = ',a_sshn        ,' m3 '
418         WRITE(inum,9010) '  diff      = ',(a_sshn-a_sshb),' m3 =', (a_sshn-a_sshb)/(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv'
419         WRITE(inum,9020) '  mean sea level elevation    =', a_sshn/zarea,' m'
420         WRITE(inum,*)
421         WRITE(inum,*)    'Anomaly of salinity content : '
422         WRITE(inum,9010) '  at nit000 = ',a_salb        ,' psu.m3 '
423         WRITE(inum,9010) '  at nitend = ',a_saln        ,' psu.m3 '
424         WRITE(inum,9010) '  diff      = ',(a_saln-a_salb),' psu.m3'
425         WRITE(inum,*)
426         WRITE(inum,*)    'Mean salinity : '
427         WRITE(inum,9020) '  at nit000 =',a_salb/zvol+zsm0   ,' psu '
428         WRITE(inum,9020) '  at nitend =',a_saln/zvol+zsm0   ,' psu '
429         WRITE(inum,9020) '  diff      =',(a_saln-a_salb)/zvol,' psu'
430         WRITE(inum,9020) '  S-SLevitus=',a_saln/zvol,' psu'
431         WRITE(inum,*)
432         WRITE(inum,*)    'Gibraltar : '
433         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(1)
434         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(1)
435         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(1)
436         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(1)
437         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(1)
438         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(1)
439         WRITE(inum,*)
440         WRITE(inum,*)    'Cadiz : '
441         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(2)
442         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(2)
443         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(2)
444         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(2)
445         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(2)
446         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(2)
447         WRITE(inum,*)
448         WRITE(inum,*)    'Bab el Mandeb : '
449         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(3)
450         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(3)
451         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(3)
452         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(3)
453         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(3)
454         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(3)
455         WRITE(inum,*)
456         WRITE(inum,*)    'Baltic : '
457         WRITE(inum,9030) '  Flux entrant (Sv) :', a_flxi(4)
458         WRITE(inum,9030) '  Flux sortant (Sv) :', a_flxo(4)
459         WRITE(inum,9030) '  T entrant (deg)   :', a_temi(4)
460         WRITE(inum,9030) '  T sortant (deg)   :', a_temo(4)
461         WRITE(inum,9030) '  S entrant (psu)   :', a_sali(4)
462         WRITE(inum,9030) '  S sortant (psu)   :', a_salo(4)
463         CLOSE(inum)
464      ENDIF
465
466      IF( nn_timing == 1 )   CALL timing_start('dia_fwb')
467
468 9005 FORMAT(1X,A,ES24.16)
469 9010 FORMAT(1X,A,ES12.5,A,F10.5,A)
470 9020 FORMAT(1X,A,F10.5,A)
471 9030 FORMAT(1X,A,F9.4,A)
472 
473      ENDIF
474
475   END SUBROUTINE dia_fwb
476
477   !!======================================================================
478END MODULE diafwb
Note: See TracBrowser for help on using the repository browser.