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.
Changeset 7953 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90 – NEMO

Ignore:
Timestamp:
2017-04-23T09:30:41+02:00 (7 years ago)
Author:
gm
Message:

#1880 (HPC-09): add zdfphy (the ZDF manager) + remove all key_...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90

    r7753 r7953  
    88   USE oce             ! ocean dynamics and tracers variables 
    99   USE dom_oce         ! ocean space and time domain 
     10   USE zdf_oce         ! ocean vertical physics     
     11   USE zdfgls, ONLY: mxln 
    1012   USE in_out_manager  ! I/O units 
    1113   USE iom             ! I/0 library 
    12    USE wrk_nemo        ! working arrays 
    13 #if defined key_zdftke  
    14    USE zdf_oce, ONLY: en 
    15 #endif 
    16    USE zdf_oce, ONLY: avt, avm 
    17 #if defined key_zdfgls 
    18    USE zdf_oce, ONLY: en 
    19    USE zdfgls, ONLY: mxln 
    20 #endif 
     14   USE wrk_nemo        ! work arrays 
    2115 
    2216   IMPLICIT NONE 
    2317   PRIVATE 
    2418 
    25    LOGICAL , PUBLIC ::   ln_dia25h     !:  25h mean output 
    2619   PUBLIC   dia_25h_init               ! routine called by nemogcm.F90 
    2720   PUBLIC   dia_25h                    ! routine called by diawri.F90 
    2821 
    29   !! * variables for calculating 25-hourly means 
    30    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   tn_25h  , sn_25h 
    31    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:)   ::   sshn_25h  
    32    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   un_25h  , vn_25h  , wn_25h 
    33    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   avt_25h , avm_25h 
    34 #if defined key_zdfgls || key_zdftke 
    35    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   en_25h 
    36 #endif 
    37 #if defined key_zdfgls  
    38    REAL(wp),SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   rmxln_25h 
    39 #endif 
    40    INTEGER, SAVE :: cnt_25h     ! Counter for 25 hour means 
    41  
    42  
     22   LOGICAL, PUBLIC ::   ln_dia25h      !:  25h mean output 
     23 
     24   ! variables for calculating 25-hourly means 
     25   INTEGER , SAVE ::   cnt_25h     ! Counter for 25 hour means 
     26   REAL(wp), SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   tn_25h  , sn_25h 
     27   REAL(wp), SAVE, ALLOCATABLE,   DIMENSION(:,:)   ::   sshn_25h  
     28   REAL(wp), SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   un_25h  , vn_25h  , wn_25h 
     29   REAL(wp), SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   avt_25h , avm_25h 
     30   REAL(wp), SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   en_25h  , rmxln_25h 
    4331 
    4432   !!---------------------------------------------------------------------- 
     
    5644      !!         
    5745      !! ** Method : Read namelist 
    58       !!   History 
    59       !!   3.6  !  08-14  (E. O'Dea) Routine to initialize dia_25h 
    6046      !!--------------------------------------------------------------------------- 
    61       !! 
    6247      INTEGER ::   ios                 ! Local integer output status for namelist read 
    6348      INTEGER ::   ierror              ! Local integer for memory allocation 
     
    7964         WRITE(numout,*) 'dia_25h_init : Output 25 hour mean diagnostics' 
    8065         WRITE(numout,*) '~~~~~~~~~~~~' 
    81          WRITE(numout,*) 'Namelist nam_dia25h : set 25h outputs ' 
    82          WRITE(numout,*) 'Switch for 25h diagnostics (T) or not (F)  ln_dia25h  = ', ln_dia25h 
     66         WRITE(numout,*) '   Namelist nam_dia25h : set 25h outputs ' 
     67         WRITE(numout,*) '      Switch for 25h diagnostics (T) or not (F)  ln_dia25h  = ', ln_dia25h 
    8368      ENDIF 
    8469      IF( .NOT. ln_dia25h )   RETURN 
     
    8671      ! 1 - Allocate memory ! 
    8772      ! ------------------- ! 
    88       ALLOCATE( tn_25h(jpi,jpj,jpk), STAT=ierror ) 
     73      !                                ! ocean arrays 
     74      ALLOCATE( tn_25h (jpi,jpj,jpk), sn_25h (jpi,jpj,jpk), sshn_25h(jpi,jpj)  ,     & 
     75         &      un_25h (jpi,jpj,jpk), vn_25h (jpi,jpj,jpk), wn_25h(jpi,jpj,jpk),     & 
     76         &      avt_25h(jpi,jpj,jpk), avm_25h(jpi,jpj,jpk),                      STAT=ierror ) 
    8977      IF( ierror > 0 ) THEN 
    90          CALL ctl_stop( 'dia_25h: unable to allocate tn_25h' )   ;   RETURN 
    91       ENDIF 
    92       ALLOCATE( sn_25h(jpi,jpj,jpk), STAT=ierror ) 
    93       IF( ierror > 0 ) THEN 
    94          CALL ctl_stop( 'dia_25h: unable to allocate sn_25h' )   ;   RETURN 
    95       ENDIF 
    96       ALLOCATE( un_25h(jpi,jpj,jpk), STAT=ierror ) 
    97       IF( ierror > 0 ) THEN 
    98          CALL ctl_stop( 'dia_25h: unable to allocate un_25h' )   ;   RETURN 
    99       ENDIF 
    100       ALLOCATE( vn_25h(jpi,jpj,jpk), STAT=ierror ) 
    101       IF( ierror > 0 ) THEN 
    102          CALL ctl_stop( 'dia_25h: unable to allocate vn_25h' )   ;   RETURN 
    103       ENDIF 
    104       ALLOCATE( wn_25h(jpi,jpj,jpk), STAT=ierror ) 
    105       IF( ierror > 0 ) THEN 
    106          CALL ctl_stop( 'dia_25h: unable to allocate wn_25h' )   ;   RETURN 
    107       ENDIF 
    108       ALLOCATE( avt_25h(jpi,jpj,jpk), STAT=ierror ) 
    109       IF( ierror > 0 ) THEN 
    110          CALL ctl_stop( 'dia_25h: unable to allocate avt_25h' )   ;   RETURN 
    111       ENDIF 
    112       ALLOCATE( avm_25h(jpi,jpj,jpk), STAT=ierror ) 
    113       IF( ierror > 0 ) THEN 
    114          CALL ctl_stop( 'dia_25h: unable to allocate avm_25h' )   ;   RETURN 
    115       ENDIF 
    116 # if defined key_zdfgls || defined key_zdftke 
    117       ALLOCATE( en_25h(jpi,jpj,jpk), STAT=ierror ) 
    118       IF( ierror > 0 ) THEN 
    119          CALL ctl_stop( 'dia_25h: unable to allocate en_25h' )   ;   RETURN 
    120       ENDIF 
    121 #endif 
    122 # if defined key_zdfgls  
    123       ALLOCATE( rmxln_25h(jpi,jpj,jpk), STAT=ierror ) 
    124       IF( ierror > 0 ) THEN 
    125          CALL ctl_stop( 'dia_25h: unable to allocate rmxln_25h' )   ;   RETURN 
    126       ENDIF 
    127 #endif 
    128       ALLOCATE( sshn_25h(jpi,jpj), STAT=ierror ) 
    129       IF( ierror > 0 ) THEN 
    130          CALL ctl_stop( 'dia_25h: unable to allocate sshn_25h' )   ;   RETURN 
     78         CALL ctl_stop( 'dia_25h: unable to allocate ocean arrays' )   ;   RETURN 
     79      ENDIF 
     80      IF( ln_zdftke ) THEN             ! TKE physics 
     81         ALLOCATE( en_25h(jpi,jpj,jpk), STAT=ierror ) 
     82         IF( ierror > 0 ) THEN 
     83            CALL ctl_stop( 'dia_25h: unable to allocate en_25h' )   ;   RETURN 
     84         ENDIF 
     85      ENDIF 
     86      IF( ln_zdfgls ) THEN             ! GLS physics 
     87         ALLOCATE( en_25h(jpi,jpj,jpk), rmxln_25h(jpi,jpj,jpk), STAT=ierror ) 
     88         IF( ierror > 0 ) THEN 
     89            CALL ctl_stop( 'dia_25h: unable to allocate en_25h and rmxln_25h' )   ;   RETURN 
     90         ENDIF 
    13191      ENDIF 
    13292      ! ------------------------- ! 
     
    142102      avt_25h(:,:,:) = avt(:,:,:) 
    143103      avm_25h(:,:,:) = avm(:,:,:) 
    144 # if defined key_zdfgls || defined key_zdftke 
     104      IF( ln_zdftke ) THEN 
    145105         en_25h(:,:,:) = en(:,:,:) 
    146 #endif 
    147 # if defined key_zdfgls 
     106      ENDIF 
     107      IF( ln_zdfgls ) THEN 
     108         en_25h(:,:,:) = en(:,:,:) 
    148109         rmxln_25h(:,:,:) = mxln(:,:,:) 
    149 #endif 
     110      ENDIF 
    150111#if defined key_lim3 || defined key_lim2 
    151112         CALL ctl_stop('STOP', 'dia_25h not setup yet to do tidemean ice') 
    152113#endif  
    153  
    154       ! -------------------------- ! 
    155       ! 3 - Return to dia_wri      ! 
    156       ! -------------------------- ! 
    157  
    158  
     114      ! 
    159115   END SUBROUTINE dia_25h_init 
    160116 
     
    164120      !!                 ***  ROUTINE dia_25h  *** 
    165121      !!          
    166       !! 
    167       !!-------------------------------------------------------------------- 
    168       !!                    
    169122      !! ** Purpose :   Write diagnostics with M2/S2 tide removed 
    170123      !! 
    171       !! ** Method  :    
    172       !!      25hr mean outputs for shelf seas 
     124      !! ** Method  :   25hr mean outputs for shelf seas 
     125      !!---------------------------------------------------------------------- 
     126      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    173127      !! 
    174       !! History : 
    175       !!   ?.0  !  07-04  (A. Hines) New routine, developed from dia_wri_foam 
    176       !!   3.4  !  02-13  (J. Siddorn) Routine taken from old dia_wri_foam 
    177       !!   3.6  !  08-14  (E. O'Dea) adapted for VN3.6 
    178       !!---------------------------------------------------------------------- 
    179       !! * Modules used 
    180  
    181       IMPLICIT NONE 
    182  
    183       !! * Arguments 
    184       INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    185  
    186  
    187       !! * Local declarations 
    188128      INTEGER ::   ji, jj, jk 
    189  
     129      INTEGER                          ::   iyear0, nimonth0,iday0            ! start year,imonth,day 
    190130      LOGICAL ::   ll_print = .FALSE.    ! =T print and flush numout 
    191       REAL(wp)                         ::   zsto, zout, zmax, zjulian, zmdi       ! temporary reals 
    192       INTEGER                          ::   i_steps                               ! no of timesteps per hour 
    193       REAL(wp), DIMENSION(jpi,jpj    ) ::   zw2d, un_dm, vn_dm                    ! temporary workspace 
    194       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d                                  ! temporary workspace 
    195       REAL(wp), DIMENSION(jpi,jpj,3)   ::   zwtmb                                 ! temporary workspace 
    196       INTEGER                          ::   iyear0, nimonth0,iday0                ! start year,imonth,day 
    197  
     131      REAL(wp)                         ::   zsto, zout, zmax, zjulian, zmdi   ! local scalars 
     132      INTEGER                          ::   i_steps                           ! no of timesteps per hour 
     133      REAL(wp), DIMENSION(jpi,jpj    ) ::   zw2d, un_dm, vn_dm                ! workspace 
     134      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d                              ! workspace 
     135      REAL(wp), DIMENSION(jpi,jpj,3)   ::   zwtmb                             ! workspace 
    198136      !!---------------------------------------------------------------------- 
    199137 
     
    207145      ENDIF 
    208146 
    209 #if defined key_lim3 || defined key_lim2 
    210       CALL ctl_stop('STOP', 'dia_wri_tide not setup yet to do tidemean ice') 
    211 #endif 
    212  
    213147      ! local variable for debugging 
    214148      ll_print = ll_print .AND. lwp 
    215149 
    216       ! Sum of 25 hourly instantaneous values to give a 25h mean from 24hours 
    217       ! every day 
    218       IF( MOD( kt, i_steps ) == 0  .and. kt .ne. nn_it000 ) THEN 
     150      ! Sum of 25 hourly instantaneous values to give a 25h mean from 24hours every day 
     151      IF( MOD( kt, i_steps ) == 0  .AND. kt /= nn_it000 ) THEN 
    219152 
    220153         IF (lwp) THEN 
     
    231164         avt_25h(:,:,:)       = avt_25h(:,:,:) + avt(:,:,:) 
    232165         avm_25h(:,:,:)       = avm_25h(:,:,:) + avm(:,:,:) 
    233 # if defined key_zdfgls || defined key_zdftke 
    234          en_25h(:,:,:)        = en_25h(:,:,:) + en(:,:,:) 
    235 #endif 
    236 # if defined key_zdfgls 
    237          rmxln_25h(:,:,:)      = rmxln_25h(:,:,:) + mxln(:,:,:) 
    238 #endif 
     166         IF( ln_zdftke ) THEN 
     167            en_25h(:,:,:)        = en_25h(:,:,:) + en(:,:,:) 
     168         ENDIF 
     169         IF( ln_zdfgls ) THEN 
     170            en_25h(:,:,:)        = en_25h(:,:,:) + en(:,:,:) 
     171            rmxln_25h(:,:,:)      = rmxln_25h(:,:,:) + mxln(:,:,:) 
     172         ENDIF 
    239173         cnt_25h = cnt_25h + 1 
    240  
     174         ! 
    241175         IF (lwp) THEN 
    242176            WRITE(numout,*) 'dia_tide : Summed the following number of hourly values so far',cnt_25h 
    243177         ENDIF 
    244  
     178         ! 
    245179      ENDIF ! MOD( kt, i_steps ) == 0 
    246180 
    247          ! Write data for 25 hour mean output streams 
    248       IF( cnt_25h .EQ. 25 .AND.  MOD( kt, i_steps*24) == 0 .AND. kt .NE. nn_it000 ) THEN 
    249  
    250             IF(lwp) THEN 
    251                WRITE(numout,*) 'dia_wri_tide : Writing 25 hour mean tide diagnostics at timestep', kt 
    252                WRITE(numout,*) '~~~~~~~~~~~~ ' 
    253             ENDIF 
    254  
    255             tn_25h(:,:,:)        = tn_25h(:,:,:) / 25.0_wp 
    256             sn_25h(:,:,:)        = sn_25h(:,:,:) / 25.0_wp 
    257             sshn_25h(:,:)        = sshn_25h(:,:) / 25.0_wp 
    258             un_25h(:,:,:)        = un_25h(:,:,:) / 25.0_wp 
    259             vn_25h(:,:,:)        = vn_25h(:,:,:) / 25.0_wp 
    260             wn_25h(:,:,:)        = wn_25h(:,:,:) / 25.0_wp 
    261             avt_25h(:,:,:)       = avt_25h(:,:,:) / 25.0_wp 
    262             avm_25h(:,:,:)       = avm_25h(:,:,:) / 25.0_wp 
    263 # if defined key_zdfgls || defined key_zdftke 
     181      ! Write data for 25 hour mean output streams 
     182      IF( cnt_25h == 25 .AND.  MOD( kt, i_steps*24) == 0 .AND. kt /= nn_it000 ) THEN 
     183         ! 
     184         IF(lwp) THEN 
     185            WRITE(numout,*) 'dia_wri_tide : Writing 25 hour mean tide diagnostics at timestep', kt 
     186            WRITE(numout,*) '~~~~~~~~~~~~ ' 
     187         ENDIF 
     188         ! 
     189         tn_25h(:,:,:)        = tn_25h(:,:,:) / 25.0_wp 
     190         sn_25h(:,:,:)        = sn_25h(:,:,:) / 25.0_wp 
     191         sshn_25h(:,:)        = sshn_25h(:,:) / 25.0_wp 
     192         un_25h(:,:,:)        = un_25h(:,:,:) / 25.0_wp 
     193         vn_25h(:,:,:)        = vn_25h(:,:,:) / 25.0_wp 
     194         wn_25h(:,:,:)        = wn_25h(:,:,:) / 25.0_wp 
     195         avt_25h(:,:,:)       = avt_25h(:,:,:) / 25.0_wp 
     196         avm_25h(:,:,:)       = avm_25h(:,:,:) / 25.0_wp 
     197         IF( ln_zdftke ) THEN 
    264198            en_25h(:,:,:)        = en_25h(:,:,:) / 25.0_wp 
    265 #endif 
    266 # if defined key_zdfgls 
     199         ENDIF 
     200         IF( ln_zdfgls ) THEN 
     201            en_25h(:,:,:)        = en_25h(:,:,:) / 25.0_wp 
    267202            rmxln_25h(:,:,:)       = rmxln_25h(:,:,:) / 25.0_wp 
    268 #endif 
    269  
    270             IF (lwp)  WRITE(numout,*) 'dia_wri_tide : Mean calculated by dividing 25 hour sums and writing output' 
    271             zmdi=1.e+20 !missing data indicator for masking 
    272             ! write tracers (instantaneous) 
    273             zw3d(:,:,:) = tn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    274             CALL iom_put("temper25h", zw3d)   ! potential temperature 
    275             zw3d(:,:,:) = sn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    276             CALL iom_put( "salin25h", zw3d  )   ! salinity 
    277             zw2d(:,:) = sshn_25h(:,:)*tmask(:,:,1) + zmdi*(1.0-tmask(:,:,1)) 
    278             CALL iom_put( "ssh25h", zw2d )   ! sea surface  
    279  
    280  
    281             ! Write velocities (instantaneous) 
    282             zw3d(:,:,:) = un_25h(:,:,:)*umask(:,:,:) + zmdi*(1.0-umask(:,:,:)) 
    283             CALL iom_put("vozocrtx25h", zw3d)    ! i-current 
    284             zw3d(:,:,:) = vn_25h(:,:,:)*vmask(:,:,:) + zmdi*(1.0-vmask(:,:,:)) 
    285             CALL iom_put("vomecrty25h", zw3d  )   ! j-current 
    286  
    287             zw3d(:,:,:) = wn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    288             CALL iom_put("vomecrtz25h", zw3d )   ! k-current 
    289             zw3d(:,:,:) = avt_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    290             CALL iom_put("avt25h", zw3d )   ! diffusivity 
    291             zw3d(:,:,:) = avm_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    292             CALL iom_put("avm25h", zw3d)   ! viscosity 
    293 #if defined key_zdftke || defined key_zdfgls  
     203         ENDIF 
     204         ! 
     205         IF(lwp)  WRITE(numout,*) 'dia_wri_tide : Mean calculated by dividing 25 hour sums and writing output' 
     206         zmdi=1.e+20 !missing data indicator for masking 
     207         ! write tracers (instantaneous) 
     208         zw3d(:,:,:) = tn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
     209         CALL iom_put("temper25h", zw3d)   ! potential temperature 
     210         zw3d(:,:,:) = sn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
     211         CALL iom_put( "salin25h", zw3d  )   ! salinity 
     212         zw2d(:,:) = sshn_25h(:,:)*tmask(:,:,1) + zmdi*(1.0-tmask(:,:,1)) 
     213         CALL iom_put( "ssh25h", zw2d )   ! sea surface  
     214         ! Write velocities (instantaneous) 
     215         zw3d(:,:,:) = un_25h(:,:,:)*umask(:,:,:) + zmdi*(1.0-umask(:,:,:)) 
     216         CALL iom_put("vozocrtx25h", zw3d)    ! i-current 
     217         zw3d(:,:,:) = vn_25h(:,:,:)*vmask(:,:,:) + zmdi*(1.0-vmask(:,:,:)) 
     218         CALL iom_put("vomecrty25h", zw3d  )   ! j-current 
     219         zw3d(:,:,:) = wn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
     220         CALL iom_put("vomecrtz25h", zw3d )   ! k-current 
     221         ! Write vertical physics 
     222         zw3d(:,:,:) = avt_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
     223         CALL iom_put("avt25h", zw3d )   ! diffusivity 
     224         zw3d(:,:,:) = avm_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
     225         CALL iom_put("avm25h", zw3d)   ! viscosity 
     226         IF( ln_zdftke ) THEN 
    294227            zw3d(:,:,:) = en_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    295228            CALL iom_put("tke25h", zw3d)   ! tke 
    296 #endif 
    297 #if defined key_zdfgls  
     229         ENDIF 
     230         IF( ln_zdfgls ) THEN 
     231            zw3d(:,:,:) = en_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
     232            CALL iom_put("tke25h", zw3d)   ! tke 
    298233            zw3d(:,:,:) = rmxln_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    299234            CALL iom_put( "mxln25h",zw3d) 
    300 #endif 
    301  
    302             ! After the write reset the values to cnt=1 and sum values equal current value  
    303             tn_25h(:,:,:) = tsn(:,:,:,jp_tem) 
    304             sn_25h(:,:,:) = tsn(:,:,:,jp_sal) 
    305             sshn_25h(:,:) = sshn (:,:) 
    306             un_25h(:,:,:) = un(:,:,:) 
    307             vn_25h(:,:,:) = vn(:,:,:) 
    308             wn_25h(:,:,:) = wn(:,:,:) 
    309             avt_25h(:,:,:) = avt(:,:,:) 
    310             avm_25h(:,:,:) = avm(:,:,:) 
    311 # if defined key_zdfgls || defined key_zdftke 
     235         ENDIF 
     236         ! 
     237         ! After the write reset the values to cnt=1 and sum values equal current value  
     238         tn_25h(:,:,:) = tsn(:,:,:,jp_tem) 
     239         sn_25h(:,:,:) = tsn(:,:,:,jp_sal) 
     240         sshn_25h(:,:) = sshn (:,:) 
     241         un_25h(:,:,:) = un(:,:,:) 
     242         vn_25h(:,:,:) = vn(:,:,:) 
     243         wn_25h(:,:,:) = wn(:,:,:) 
     244         avt_25h(:,:,:) = avt(:,:,:) 
     245         avm_25h(:,:,:) = avm(:,:,:) 
     246         IF( ln_zdftke ) THEN 
    312247            en_25h(:,:,:) = en(:,:,:) 
    313 #endif 
    314 # if defined key_zdfgls 
     248         ENDIF 
     249         IF( ln_zdfgls ) THEN 
     250            en_25h(:,:,:) = en(:,:,:) 
    315251            rmxln_25h(:,:,:) = mxln(:,:,:) 
    316 #endif 
    317             cnt_25h = 1 
    318             IF (lwp)  WRITE(numout,*) 'dia_wri_tide : After 25hr mean write, reset sum to current value and cnt_25h to one for overlapping average',cnt_25h 
    319  
     252         ENDIF 
     253         cnt_25h = 1 
     254         IF (lwp)  WRITE(numout,*) 'dia_wri_tide : After 25hr mean write, reset sum to current value and cnt_25h to one for overlapping average',cnt_25h 
     255         ! 
    320256      ENDIF !  cnt_25h .EQ. 25 .AND.  MOD( kt, i_steps * 24) == 0 .AND. kt .NE. nn_it000 
    321  
    322  
     257      ! 
    323258   END SUBROUTINE dia_25h  
    324259 
Note: See TracChangeset for help on using the changeset viewer.