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 6253 for branches/2015 – NEMO

Changeset 6253 for branches/2015


Ignore:
Timestamp:
2016-01-14T19:22:56+01:00 (8 years ago)
Author:
emanuelaclementi
Message:

#1643 : Changes after review phase, thanks to Rachid Benshila

Location:
branches/2015/dev_r5936_INGV1_WAVE/NEMOGCM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5936_INGV1_WAVE/NEMOGCM/CONFIG/SHARED/namelist_ref

    r5983 r6253  
    12401240!              !  file name  ! frequency (hours) ! variable     ! time interp. !  clim   ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
    12411241!              !             !  (if <0  months)  !   name       !   (logical)  !  (T/F)  ! 'monthly' ! filename ! pairing  ! filename      ! 
    1242    sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
     1242   sn_cdg      =  'sdw_wave' ,        1          , 'drag_coeff' ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    12431243   sn_usd      =  'sdw_wave' ,        1          , 'u_sd2d'     ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    12441244   sn_vsd      =  'sdw_wave' ,        1          , 'v_sd2d'     ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
     
    12481248   sn_tauoc    -  'sdw_wave' ,        1          , 'wave_stress',     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    12491249! 
    1250    cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     1250   cn_dir  = './'  !  root directory for the location of drag coefficient files 
    12511251/ 
    12521252!----------------------------------------------------------------------- 
  • branches/2015/dev_r5936_INGV1_WAVE/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r5983 r6253  
    423423      ENDIF   
    424424      ! 
    425       ! Add Stokes Coriolis if defined 
    426       IF ( ln_stcor ) THEN 
    427          DO jj = 1, jpjm1 
    428             DO ji = 1, fs_jpim1   ! vector opt. 
    429  
    430                zy1 = ff(ji  ,jj-1) * ( vsd2d(ji  ,jj-1) + vsd2d(ji+1,jj-1) ) 
    431                zy2 = ff(ji  ,jj  ) * ( vsd2d(ji  ,jj  ) + vsd2d(ji+1,jj  ) ) 
    432                zx1 = ff(ji-1,jj  ) * ( usd2d(ji-1,jj  ) + usd2d(ji-1,jj+1) ) 
    433                zx2 = ff(ji  ,jj  ) * ( usd2d(ji  ,jj  ) + usd2d(ji  ,jj+1) ) 
    434  
    435                zu_frc(ji,jj) = zu_frc(ji,jj) + 0.25 * ( zy1 + zy2 ) * hur(ji,jj) 
    436                zv_frc(ji,jj) = zv_frc(ji,jj) - 0.25 * ( zx1 + zx2 ) * hvr(ji,jj) 
    437            END DO 
    438          END DO 
    439       ENDIF 
    440       ! 
    441425      IF ( ln_apr_dyn ) THEN                    ! Add atm pressure forcing 
    442426         IF (ln_bt_fw) THEN 
  • branches/2015/dev_r5936_INGV1_WAVE/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90

    r5983 r6253  
    3939   USE wrk_nemo        ! Memory Allocation 
    4040   USE timing          ! Timing 
    41    USE sbcwave,  ONLY: usd2dt, vsd2dt,wsd3d 
     41   USE sbcwave,  ONLY:  zusd2dt, zvsd2dt,wsd3d 
    4242 
    4343   IMPLICIT NONE 
     
    240240       ! Compute the surface vertical velocity accounting for the Stokes Drift  
    241241       !--------------------------------------------------------------------- 
    242        wn(:,:,1) = wn(:,:,1) + usd2dt(:,:) * dsshnu(:,:)     & 
    243                  &           + vsd2dt(:,:) * dsshnv(:,:)      & 
     242       wn(:,:,1) = wn(:,:,1) + zusd2dt(:,:) * dsshnu(:,:)     & 
     243                 &           + zvsd2dt(:,:) * dsshnv(:,:)      & 
    244244                 &           - ( wsd3d (:,:,1) ) * tmask(:,:,1) 
    245245      ENDIF 
  • branches/2015/dev_r5936_INGV1_WAVE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r5983 r6253  
    66   !! History :  3.3  !   2011-09  (Adani M)  Original code: Drag Coefficient  
    77   !!         :  3.4  !   2012-10  (Adani M)                 Stokes Drift  
    8    !! History :  3.6  !2014-09  (Clementi E, Oddo P)New Stokes Drift Computation 
    9    !!---------------------------------------------------------------------- 
    10  
    11    !!---------------------------------------------------------------------- 
    12    !!   sbc_wave      : read drag coefficient from wave model in netcdf files  
     8   !!            3.6  !   2014-09  (Clementi E, Oddo P)New Stokes Drift Computation 
     9   !!---------------------------------------------------------------------- 
     10 
     11   !!---------------------------------------------------------------------- 
     12   !!   sbc_wave      : wave data from wave model in netcdf files  
    1313   !!---------------------------------------------------------------------- 
    1414   USE oce            !  
     
    2727   PRIVATE 
    2828 
    29    PUBLIC   sbc_wave    ! routine called in sbc_blk_core or sbc_blk_mfs 
     29   PUBLIC   sbc_wave    ! routine called in sbcmod 
    3030    
    3131   INTEGER , PARAMETER ::   jpfld  = 4           ! number of files to read for stokes drift 
     
    3434   INTEGER , PARAMETER ::   jp_swh = 3           ! index of significant wave hight      (m)      at T-point 
    3535   INTEGER , PARAMETER ::   jp_wmp = 4           ! index of mean wave period            (s)      at T-point 
    36 ! 
     36 
    3737   TYPE(FLD), ALLOCATABLE, DIMENSION(:)  :: sf_cd    ! structure of input fields (file informations, fields read) Drag Coefficient 
    3838   TYPE(FLD), ALLOCATABLE, DIMENSION(:)  :: sf_sd    ! structure of input fields (file informations, fields read) Stokes Drift 
    3939   TYPE(FLD), ALLOCATABLE, DIMENSION(:)  :: sf_wn    ! structure of input fields (file informations, fields read) wave number for Qiao 
    4040   TYPE(FLD), ALLOCATABLE, DIMENSION(:)  :: sf_tauoc ! structure of input fields (file informations, fields read) normalized wave stress into the ocean 
    41    REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:)       :: cdn_wave  
    42    REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:)       :: usd2d,vsd2d 
    43    REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:)       :: swh,wmp,wnum 
    44    REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:)       :: usd2dt,vsd2dt,tsd2d 
    45    REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:,:)     :: usd3d,vsd3d,wsd3d  
    46    REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:)       :: tauoc_wave 
     41   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: cdn_wave  
     42   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: swh,wmp, wnum 
     43   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: tauoc_wave 
     44   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: tsd2d 
     45   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: usd2d, vsd2d 
     46   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:,:)     :: usd3d, vsd3d, wsd3d  
     47   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)       :: zusd2dt, zvsd2dt 
    4748 
    4849   !! * Substitutions 
     
    5859   SUBROUTINE sbc_wave( kt ) 
    5960      !!--------------------------------------------------------------------- 
    60       !!                     ***  ROUTINE sbc_apr  *** 
     61      !!                     ***  ROUTINE sbc_wave  *** 
    6162      !! 
    62       !! ** Purpose :   read drag coefficient from wave model  in netcdf files. 
     63      !! ** Purpose :   read wave parameters from wave model  in netcdf files. 
    6364      !! 
    6465      !! ** Method  : - Read namelist namsbc_wave 
     
    6869      !!              - Compute 3d stokes drift using Breivik et al.,2014 
    6970      !!                formulation 
    70       !! ** action  :    
     71      !! ** action   
    7172      !!--------------------------------------------------------------------- 
    7273      USE zdf_oce,  ONLY : ln_zdfqiao 
     
    7778      INTEGER                ::   ifpr, jj,ji,jk  
    7879      INTEGER                ::   ios      ! Local integer output status for namelist read 
    79  
    80       REAL(wp)                       ::  ztransp,zsp0, zk, zus,zvs 
     80      ! 
     81      CHARACTER(len=100)     ::  cn_dir                          ! Root directory for location of drag coefficient files 
     82      REAL(wp)                       ::  ztransp, zsp0, zk, zus, zvs 
    8183      REAL(wp), DIMENSION(jpi,jpj)   ::  zfac  
    82  
     84      REAL(wp), DIMENSION(:,:,:), POINTER :: ze3hdiv   ! 3D workspace 
    8385      TYPE(FLD_N), DIMENSION(jpfld) ::   slf_i     ! array of namelist informations on the fields to read 
    84       CHARACTER(len=100)     ::  cn_dir                          ! Root directory for location of drag coefficient files 
    8586      TYPE(FLD_N)            ::  sn_cdg, sn_usd, sn_vsd,  & 
    8687                             &   sn_swh, sn_wmp, sn_wnum, sn_tauoc      ! informations about the fields to be read 
    87       REAL(wp), DIMENSION(:,:,:), POINTER ::   zusd_t, zvsd_t, ze3hdiv   ! 3D workspace 
    8888      !! 
    8989      NAMELIST/namsbc_wave/  sn_cdg, cn_dir, sn_usd, sn_vsd, sn_swh, sn_wmp, sn_wnum, sn_tauoc 
     
    112112            cdn_wave(:,:) = 0.0 
    113113         ENDIF 
    114 ! 
     114 
    115115         IF ( ln_tauoc ) THEN 
    116116            ALLOCATE( sf_tauoc(1), STAT=ierror )           !* allocate and fill sf_wave with sn_tauoc 
     
    123123            tauoc_wave(:,:) = 0.0 
    124124        ENDIF 
    125 ! 
     125 
    126126         IF ( ln_sdw ) THEN 
    127127            slf_i(jp_usd) = sn_usd ; slf_i(jp_vsd) = sn_vsd; 
     
    134134               IF( slf_i(ifpr)%ln_tint )   ALLOCATE( sf_sd(ifpr)%fdta(jpi,jpj,1,2) ) 
    135135            END DO 
    136 ! 
     136 
    137137            CALL fld_fill( sf_sd, slf_i, cn_dir, 'sbc_wave', 'Wave module ', 'namsbc_wave' ) 
    138             ALLOCATE( usd2d(jpi,jpj),vsd2d(jpi,jpj),usd2dt(jpi,jpj),vsd2dt(jpi,jpj)) 
     138            ALLOCATE( usd2d(jpi,jpj),vsd2d(jpi,jpj) ) 
    139139            ALLOCATE( usd3d(jpi,jpj,jpk),vsd3d(jpi,jpj,jpk),wsd3d(jpi,jpj,jpk) ) 
    140140            ALLOCATE( swh(jpi,jpj), wmp(jpi,jpj) ) 
    141             usd3d(:,:,:) = 0._wp   ;   usd2d(:,:) = 0._wp   ;    usd2dt(:,:) = 0._wp ; 
    142             vsd3d(:,:,:) = 0._wp   ;   vsd2d(:,:) = 0._wp   ;    vsd2dt(:,:) = 0._wp ; 
     141            usd3d(:,:,:) = 0._wp   ;   usd2d(:,:) = 0._wp   ;    
     142            vsd3d(:,:,:) = 0._wp   ;   vsd2d(:,:) = 0._wp   ;  
    143143            wsd3d(:,:,:) = 0._wp   ; 
    144144            swh  (:,:)   = 0._wp   ;    wmp (:,:) = 0._wp ; 
     
    159159         cdn_wave(:,:) = sf_cd(1)%fnow(:,:,1) 
    160160      ENDIF 
    161 ! 
     161 
    162162      IF ( ln_tauoc ) THEN             !==  Wave induced stress  ==! 
    163163         CALL fld_read( kt, nn_fsbc, sf_tauoc )      !* read wave norm stress from external forcing 
    164164         tauoc_wave(:,:) = sf_tauoc(1)%fnow(:,:,1) 
    165165      ENDIF 
    166 ! 
     166 
    167167      IF ( ln_sdw )  THEN                         !==  Computation of the 3d Stokes Drift  ==!  
    168168         ! 
    169169         CALL fld_read( kt, nn_fsbc, sf_sd )      !* read wave parameters from external forcing 
    170          swh(:,:)    = sf_sd(jp_swh)%fnow(:,:,1)  ! significant wave height 
    171          wmp(:,:)    = sf_sd(jp_wmp)%fnow(:,:,1)  ! wave mean period 
    172          usd2dt(:,:) = sf_sd(jp_usd)%fnow(:,:,1)  ! 2D zonal Stokes Drift 
    173          vsd2dt(:,:) = sf_sd(jp_vsd)%fnow(:,:,1)  ! 2D meridional Stokes Drift 
     170         swh(:,:)     = sf_sd(jp_swh)%fnow(:,:,1)   ! significant wave height 
     171         wmp(:,:)     = sf_sd(jp_wmp)%fnow(:,:,1)   ! wave mean period 
     172         zusd2dt(:,:) = sf_sd(jp_usd)%fnow(:,:,1)   ! 2D zonal Stokes Drift at T point 
     173         zvsd2dt(:,:) = sf_sd(jp_vsd)%fnow(:,:,1)   ! 2D meridional Stokes Drift at T point 
    174174         ! 
    175175         !==  Computation of the 3d Stokes Drift according to Breivik et al.,2014 
     
    177177         ! 
    178178         CALL wrk_alloc( jpi,jpj,jpk, ze3hdiv ) 
    179           DO jk = 1, jpk 
    180              DO jj = 1, jpj 
    181                 DO ji = 1, jpi 
     179         DO jk = 1, jpk 
     180            DO jj = 1, jpj 
     181               DO ji = 1, jpi 
    182182               ! On T grid 
    183183               ! Stokes transport speed estimated from Hs and Tmean 
     
    189189               ! Depth attenuation 
    190190               zfac(ji,jj) = EXP(-2.0_wp*zk*fsdept(ji,jj,jk))/(1.0_wp+8.0_wp*zk*fsdept(ji,jj,jk)) 
    191                 END DO 
    192              END DO 
    193 ! 
    194              DO jj = 1, jpjm1 
    195                 DO ji = 1, jpim1 
    196                  ! Into the U and V Grid  
    197                  zus = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zfac(ji,jj) * tmask(ji,jj,1) & 
     191               END DO 
     192            END DO 
     193 
     194            DO jj = 1, jpjm1 
     195               DO ji = 1, jpim1 
     196                  ! Into the U and V Grid  
     197                  zus = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zfac(ji,jj) * tmask(ji,jj,1) & 
    198198                 &                                + zfac(ji+1,jj) * tmask(ji+1,jj,1) ) 
    199 ! 
    200                  zvs = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( zfac(ji,jj) * tmask(ji,jj,1) & 
     199 
     200                  zvs = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( zfac(ji,jj) * tmask(ji,jj,1) & 
    201201                 &                                + zfac(ji,jj+1) * tmask(ji,jj+1,1) ) 
    202 ! 
    203                  usd2d(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( usd2dt(ji,jj) * tmask(ji,jj,1) & 
    204                  &                                             +  usd2dt(ji+1,jj) * tmask(ji+1,jj,1) ) 
    205 ! 
    206                  vsd2d(ji,jj) = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( vsd2dt(ji,jj) * tmask(ji,jj,1) & 
    207                  &                                              + vsd2dt(ji,jj+1) * tmask(ji,jj+1,1) ) 
    208 ! 
    209                  usd3d(ji,jj,jk) = usd2d(ji,jj)*zus 
    210                  vsd3d(ji,jj,jk) = vsd2d(ji,jj)*zvs 
    211                 END DO 
    212              END DO 
    213           END DO 
     202 
     203                  usd2d(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zusd2dt(ji,jj) * tmask(ji,jj,1) & 
     204                 &                                             +  zusd2dt(ji+1,jj) * tmask(ji+1,jj,1) ) 
     205 
     206                  vsd2d(ji,jj) = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( zvsd2dt(ji,jj) * tmask(ji,jj,1) & 
     207                 &                                              + zvsd2dt(ji,jj+1) * tmask(ji,jj+1,1) ) 
     208 
     209                  usd3d(ji,jj,jk) = usd2d(ji,jj) * zus 
     210                  vsd3d(ji,jj,jk) = vsd2d(ji,jj) * zvs 
     211               END DO 
     212            END DO 
     213         END DO 
    214214         ! 
    215215         CALL lbc_lnk( usd3d(:,:,:), 'U', -1. ) 
    216216         CALL lbc_lnk( vsd3d(:,:,:), 'V', -1. ) 
    217217         ! 
    218          DO jk = 1, jpkm1                       !* e3t * Horizontal divergence  ==! 
     218         DO jk = 1, jpkm1                       ! e3t * Horizontal divergence 
    219219            DO jj = 2, jpjm1 
    220220               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    244244         ENDIF 
    245245#endif 
    246 !         CALL wrk_dealloc( jpi,jpj,jpk,   zusd_t, zvsd_t, ze3hdiv ) 
    247246         CALL wrk_dealloc( jpi,jpj,jpk, ze3hdiv ) 
    248 ! 
    249         IF ( ln_zdfqiao )  THEN 
    250           wnum(:,:) = sf_wn(1)%fnow(:,:,1) 
    251          ! Calculate the module of the stokes drift on T grid 
    252          !------------------------------------------------- 
    253          DO jj = 1, jpj 
    254             DO ji = 1, jpi 
    255                 tsd2d(ji,jj) = ((sf_sd(jp_usd)%fnow(ji,jj,1) * tmask(ji,jj,1))**2.0  +     & 
     247 
     248         IF ( ln_zdfqiao ) THEN 
     249            wnum(:,:) = sf_wn(1)%fnow(:,:,1) 
     250            
     251            ! Calculate the module of the stokes drift on T grid 
     252            !------------------------------------------------- 
     253            DO jj = 1, jpj 
     254               DO ji = 1, jpi 
     255                   tsd2d(ji,jj) = ((sf_sd(jp_usd)%fnow(ji,jj,1) * tmask(ji,jj,1))**2.0  +     & 
    256256                &               (sf_sd(jp_vsd)%fnow(ji,jj,1) * tmask(ji,jj,1))**2.0)**0.5 
    257             END DO 
    258          END DO 
    259         ENDIF 
    260       ! 
     257               END DO 
     258            END DO 
     259         ENDIF 
     260         ! 
    261261      ENDIF 
    262262      ! 
  • branches/2015/dev_r5936_INGV1_WAVE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfqiao.F90

    r5983 r6253  
    5353      !!--------------------------------------------------------------------- 
    5454      INTEGER, INTENT( in  ) ::  kt   ! ocean time step 
    55       INTEGER                ::  ierror   ! return error code 
    56       INTEGER                ::  jj,ji,jk 
     55      ! 
     56      INTEGER                ::  jj, ji, jk 
    5757      !!--------------------------------------------------------------------- 
    58       !!---------------------------------------------------------------------- 
    5958      ! 
    6059      ! 
    6160      !                                         ! -------------------- ! 
    6261      IF( kt == nit000 ) THEN                   ! First call kt=nit000 ! 
    63       !                                         ! -------------------- ! 
    64          ALLOCATE(QBv(jpi,jpj,jpk)) 
     62         ALLOCATE(QBv(jpi,jpj,jpk))             ! -------------------- ! 
    6563         ALLOCATE(QBvu(jpi,jpj,jpk)) 
    6664         ALLOCATE(QBvv(jpi,jpj,jpk)) 
    67  
    6865      ENDIF 
    6966 
    70          QBv (:,:,:) = 0.0 
    71          QBvu(:,:,:) = 0.0 
    72          QBvv(:,:,:) = 0.0 
     67      QBv (:,:,:) = 0.0 
     68      QBvu(:,:,:) = 0.0 
     69      QBvv(:,:,:) = 0.0 
     70 
    7371      ! 
    7472      ! Compute the Qiao term Bv (QBv) to be added to 
     
    8078      IF ( ln_wave ) THEN 
    8179         DO jk = 1, jpk 
    82           DO jj = 1, jpjm1 
    83             DO ji = 1, jpim1 
    84  
    85                QBv(ji,jj,jk) = 1.0 * 0.353553 * swh(ji,jj) * tsd2d(ji,jj) *     & 
    86                &              exp(3.0 * wnum(ji,jj) *                            &                      
    87                &              (-MIN( gdept_0(ji  ,jj  ,jk) , gdept_0(ji+1,jj  ,jk),     &  
     80            DO jj = 1, jpjm1 
     81               DO ji = 1, jpim1 
     82                  QBv(ji,jj,jk) = 1.0 * 0.353553 * swh(ji,jj) * tsd2d(ji,jj) *       & 
     83               &              exp(3.0 * wnum(ji,jj) *                                &                      
     84               &              (-MIN( gdept_0(ji  ,jj  ,jk) , gdept_0(ji+1,jj  ,jk),  &  
    8885               &               gdept_0(ji  ,jj+1,jk),gdept_0(ji+1,jj+1,jk)))) 
    89  
    90             ENDDO 
    91           ENDDO 
    92          ENDDO 
     86               END DO 
     87            END DO 
     88         END DO 
    9389 
    9490         QBv(jpi,:,:)=QBv(jpim1,:,:) 
     
    9894         ! Interpolate Qiao parameter QBv into the grid_U and grid_V 
    9995         !------------------------------------------------- 
    100  
     96         ! 
    10197         DO jk = 1, jpk 
    102            DO jj = 1, jpjm1 
    103             DO ji = 1, jpim1 
    104  
    105                QBvu(ji,jj,jk)=0.5 * ( 2. - umask(ji,jj,jk) ) *                 & 
    106                &           ( QBv(ji,jj,jk) * tmask(ji,jj,jk)                   &  
     98            DO jj = 1, jpjm1 
     99               DO ji = 1, jpim1 
     100                  QBvu(ji,jj,jk)=0.5 * ( 2. - umask(ji,jj,jk) ) *                 & 
     101               &           ( QBv(ji,jj,jk) * tmask(ji,jj,jk)                      &  
    107102               &           + QBv(ji+1,jj,jk) * tmask(ji+1,jj,jk) )                
    108                QBvv(ji,jj,jk)=0.5 * ( 2. - vmask(ji,jj,jk) ) *                 & 
    109                &           ( QBv(ji,jj,jk) * tmask(ji,jj,jk)                   & 
     103                  QBvv(ji,jj,jk)=0.5 * ( 2. - vmask(ji,jj,jk) ) *                 & 
     104               &           ( QBv(ji,jj,jk) * tmask(ji,jj,jk)                      & 
    110105               &           + QBv(ji,jj+1,jk) * tmask(ji,jj+1,jk) ) 
    111106 
    112              ENDDO 
    113             ENDDO 
    114           ENDDO 
    115 ! 
     107               END DO 
     108            END DO 
     109         END DO 
     110         !  
    116111         QBvu(jpi,:,:)=QBvu(jpim1,:,:) 
    117112         QBvu(:,jpj,:)=QBvu(:,jpjm1,:) 
    118113         QBvv(jpi,:,:)=QBvv(jpim1,:,:) 
    119114         QBvv(:,jpj,:)=QBvv(:,jpjm1,:) 
    120 ! 
     115 
    121116        ELSE 
     117           CALL ctl_stop( 'STOP', 'To use Qiao formulation you have to set: ln_wave=.true.') 
     118        ENDIF 
    122119        ! 
    123         CALL ctl_stop( 'STOP', 'To use Qiao formulation you have to set: ln_wave=.true.') 
    124         ! 
    125         ENDIF 
    126 ! 
    127120   END SUBROUTINE zdf_qiao 
    128121       
Note: See TracChangeset for help on using the changeset viewer.