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 13470 for NEMO/branches/2020/temporary_r4_trunk/src/OCE/DYN/dynzdf.F90 – NEMO

Ignore:
Timestamp:
2020-09-15T12:56:56+02:00 (4 years ago)
Author:
smasson
Message:

r4_trunk: second change of DO loops for routines to be merged, see #2523

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/temporary_r4_trunk/src/OCE/DYN/dynzdf.F90

    r13469 r13470  
    131131            va(:,:,jk) = ( va(:,:,jk) - va_b(:,:) ) * vmask(:,:,jk) 
    132132         END DO 
    133          DO_2D_00_00 
     133         DO_2D( 0, 0, 0, 0 ) 
    134134            iku = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
    135135            ikv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
     
    140140         END_2D 
    141141         IF( ln_isfcav.OR.ln_drgice_imp ) THEN    ! Ocean cavities (ISF) 
    142             DO_2D_00_00 
     142            DO_2D( 0, 0, 0, 0 ) 
    143143               iku = miku(ji,jj)         ! top ocean level at u- and v-points  
    144144               ikv = mikv(ji,jj)         ! (first wet ocean u- and v-points) 
     
    158158         SELECT CASE( nldf_dyn ) 
    159159         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzu) 
    160             DO_3D_00_00( 1, jpkm1 ) 
     160            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    161161               ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,jk) + r_vvl * e3u_a(ji,jj,jk)   ! after scale factor at U-point 
    162162               zzwi = - zdt * ( avm(ji+1,jj,jk  ) + avm(ji,jj,jk  ) + akzu(ji,jj,jk  ) )   & 
     
    171171            END_3D 
    172172         CASE DEFAULT               ! iso-level lateral mixing 
    173             DO_3D_00_00( 1, jpkm1 ) 
     173            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    174174               ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,jk) + r_vvl * e3u_a(ji,jj,jk)   ! after scale factor at U-point 
    175175               zzwi = - zdt * ( avm(ji+1,jj,jk  ) + avm(ji,jj,jk  ) ) / ( ze3ua * e3uw_n(ji,jj,jk  ) ) * wumask(ji,jj,jk  ) 
     
    182182            END_3D 
    183183         END SELECT 
    184          DO_2D_00_00 
     184         DO_2D( 0, 0, 0, 0 ) 
    185185            zwi(ji,jj,1) = 0._wp 
    186186            ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,1) + r_vvl * e3u_a(ji,jj,1) 
     
    193193         SELECT CASE( nldf_dyn ) 
    194194         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzu) 
    195             DO_3D_00_00( 1, jpkm1 ) 
     195            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    196196               ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,jk) + r_vvl * e3u_a(ji,jj,jk)   ! after scale factor at U-point 
    197197               zzwi = - zdt * ( avm(ji+1,jj,jk  ) + avm(ji,jj,jk  ) + akzu(ji,jj,jk  ) )   & 
     
    204204            END_3D 
    205205         CASE DEFAULT               ! iso-level lateral mixing 
    206             DO_3D_00_00( 1, jpkm1 ) 
     206            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    207207               ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,jk) + r_vvl * e3u_a(ji,jj,jk)   ! after scale factor at U-point 
    208208               zzwi = - zdt * ( avm(ji+1,jj,jk  ) + avm(ji,jj,jk  ) ) / ( ze3ua * e3uw_n(ji,jj,jk  ) ) * wumask(ji,jj,jk  ) 
     
    213213            END_3D 
    214214         END SELECT 
    215          DO_2D_00_00 
     215         DO_2D( 0, 0, 0, 0 ) 
    216216            zwi(ji,jj,1) = 0._wp 
    217217            zwd(ji,jj,1) = 1._wp - zws(ji,jj,1) 
     
    227227      ! 
    228228      IF ( ln_drgimp ) THEN      ! implicit bottom friction 
    229          DO_2D_00_00 
     229         DO_2D( 0, 0, 0, 0 ) 
    230230            iku = mbku(ji,jj)       ! ocean bottom level at u- and v-points 
    231231            ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,iku) + r_vvl * e3u_a(ji,jj,iku)   ! after scale factor at T-point 
     
    233233         END_2D 
    234234         IF ( ln_isfcav.OR.ln_drgice_imp ) THEN   ! top friction (always implicit) 
    235             DO_2D_00_00 
     235            DO_2D( 0, 0, 0, 0 ) 
    236236               !!gm   top Cd is masked (=0 outside cavities) no need of test on mik>=2  ==>> it has been suppressed 
    237237               iku = miku(ji,jj)       ! ocean top level at u- and v-points  
     
    257257      !----------------------------------------------------------------------- 
    258258      ! 
    259       DO_3D_00_00( 2, jpkm1 ) 
     259      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    260260         zwd(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwd(ji,jj,jk-1) 
    261261      END_3D 
    262262      ! 
    263       DO_2D_00_00 
     263      DO_2D( 0, 0, 0, 0 ) 
    264264         ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,1) + r_vvl * e3u_a(ji,jj,1)  
    265265         ua(ji,jj,1) = ua(ji,jj,1) + r2dt * 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   & 
    266266            &                                      / ( ze3ua * rau0 ) * umask(ji,jj,1)  
    267267      END_2D 
    268       DO_3D_00_00( 2, jpkm1 ) 
     268      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    269269         ua(ji,jj,jk) = ua(ji,jj,jk) - zwi(ji,jj,jk) / zwd(ji,jj,jk-1) * ua(ji,jj,jk-1) 
    270270      END_3D 
    271271      ! 
    272       DO_2D_00_00 
     272      DO_2D( 0, 0, 0, 0 ) 
    273273         ua(ji,jj,jpkm1) = ua(ji,jj,jpkm1) / zwd(ji,jj,jpkm1) 
    274274      END_2D 
    275       DO_3D_00_00( jpk-2, 1, -1 ) 
     275      DO_3D( 0, 0, 0, 0, jpk-2, 1, -1 ) 
    276276         ua(ji,jj,jk) = ( ua(ji,jj,jk) - zws(ji,jj,jk) * ua(ji,jj,jk+1) ) / zwd(ji,jj,jk) 
    277277      END_3D 
     
    284284         SELECT CASE( nldf_dyn ) 
    285285         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzv) 
    286             DO_3D_00_00( 1, jpkm1 ) 
     286            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    287287               ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,jk) + r_vvl * e3v_a(ji,jj,jk)   ! after scale factor at V-point 
    288288               zzwi = - zdt * ( avm(ji,jj+1,jk  ) + avm(ji,jj,jk  ) + akzv(ji,jj,jk  ) )   & 
     
    297297            END_3D 
    298298         CASE DEFAULT               ! iso-level lateral mixing 
    299             DO_3D_00_00( 1, jpkm1 ) 
     299            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    300300               ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,jk) + r_vvl * e3v_a(ji,jj,jk)   ! after scale factor at V-point 
    301301               zzwi = - zdt * ( avm(ji,jj+1,jk  ) + avm(ji,jj,jk  ) ) / ( ze3va * e3vw_n(ji,jj,jk  ) ) * wvmask(ji,jj,jk  ) 
     
    308308            END_3D 
    309309         END SELECT 
    310          DO_2D_00_00 
     310         DO_2D( 0, 0, 0, 0 ) 
    311311            zwi(ji,jj,1) = 0._wp 
    312312            ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,1) + r_vvl * e3v_a(ji,jj,1) 
     
    319319         SELECT CASE( nldf_dyn ) 
    320320         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzu) 
    321             DO_3D_00_00( 1, jpkm1 ) 
     321            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    322322               ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,jk) + r_vvl * e3v_a(ji,jj,jk)   ! after scale factor at V-point 
    323323               zzwi = - zdt * ( avm(ji,jj+1,jk  ) + avm(ji,jj,jk  ) + akzv(ji,jj,jk  ) )   & 
     
    330330            END_3D 
    331331         CASE DEFAULT               ! iso-level lateral mixing 
    332             DO_3D_00_00( 1, jpkm1 ) 
     332            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    333333               ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,jk) + r_vvl * e3v_a(ji,jj,jk)   ! after scale factor at V-point 
    334334               zzwi = - zdt * ( avm(ji,jj+1,jk  ) + avm(ji,jj,jk  ) ) / ( ze3va * e3vw_n(ji,jj,jk  ) ) * wvmask(ji,jj,jk  ) 
     
    339339            END_3D 
    340340         END SELECT 
    341          DO_2D_00_00 
     341         DO_2D( 0, 0, 0, 0 ) 
    342342            zwi(ji,jj,1) = 0._wp 
    343343            zwd(ji,jj,1) = 1._wp - zws(ji,jj,1) 
     
    352352      ! 
    353353      IF( ln_drgimp ) THEN 
    354          DO_2D_00_00 
     354         DO_2D( 0, 0, 0, 0 ) 
    355355            ikv = mbkv(ji,jj)       ! (deepest ocean u- and v-points) 
    356356            ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikv) + r_vvl * e3v_a(ji,jj,ikv)   ! after scale factor at T-point 
     
    358358         END_2D 
    359359         IF ( ln_isfcav.OR.ln_drgice_imp ) THEN 
    360             DO_2D_00_00 
     360            DO_2D( 0, 0, 0, 0 ) 
    361361               ikv = mikv(ji,jj)       ! (first wet ocean u- and v-points) 
    362362               ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikv) + r_vvl * e3v_a(ji,jj,ikv)   ! after scale factor at T-point 
     
    381381      !----------------------------------------------------------------------- 
    382382      ! 
    383       DO_3D_00_00( 2, jpkm1 ) 
     383      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    384384         zwd(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwd(ji,jj,jk-1) 
    385385      END_3D 
    386386      ! 
    387       DO_2D_00_00 
     387      DO_2D( 0, 0, 0, 0 ) 
    388388         ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,1) + r_vvl * e3v_a(ji,jj,1)  
    389389         va(ji,jj,1) = va(ji,jj,1) + r2dt * 0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) )   & 
    390390            &                                      / ( ze3va * rau0 ) * vmask(ji,jj,1)  
    391391      END_2D 
    392       DO_3D_00_00( 2, jpkm1 ) 
     392      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    393393         va(ji,jj,jk) = va(ji,jj,jk) - zwi(ji,jj,jk) / zwd(ji,jj,jk-1) * va(ji,jj,jk-1) 
    394394      END_3D 
    395395      ! 
    396       DO_2D_00_00 
     396      DO_2D( 0, 0, 0, 0 ) 
    397397         va(ji,jj,jpkm1) = va(ji,jj,jpkm1) / zwd(ji,jj,jpkm1) 
    398398      END_2D 
    399       DO_3D_00_00( jpk-2, 1, -1 ) 
     399      DO_3D( 0, 0, 0, 0, jpk-2, 1, -1 ) 
    400400         va(ji,jj,jk) = ( va(ji,jj,jk) - zws(ji,jj,jk) * va(ji,jj,jk+1) ) / zwd(ji,jj,jk) 
    401401      END_3D 
Note: See TracChangeset for help on using the changeset viewer.