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 13295 for NEMO/trunk/src/OCE/LDF – NEMO

Ignore:
Timestamp:
2020-07-10T20:24:21+02:00 (4 years ago)
Author:
acc
Message:

Replace do-loop macros in the trunk with alternative forms with greater flexibility for extra halo applications. This alters a lot of routines but does not change any behaviour or results. do_loop_substitute.h90 is greatly simplified by this change. SETTE results are identical to those with the previous revision

Location:
NEMO/trunk/src/OCE/LDF
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/LDF/ldfc1d_c2d.F90

    r13226 r13295  
    8080            pah1(:,:,jk) = pahs1(:,:) * (  zratio + zc * ( 1._wp + TANH( - ( gdept_0(:,:,jk) - zh ) * zw) )  ) 
    8181         END DO 
    82          DO_3DS_10_10( jpkm1, 1, -1 ) 
     82         DO_3DS( 1, 0, 1, 0, jpkm1, 1, -1 ) 
    8383            zdep2 = (  gdept_0(ji,jj+1,jk) + gdept_0(ji+1,jj+1,jk)   & 
    8484               &     + gdept_0(ji,jj  ,jk) + gdept_0(ji+1,jj  ,jk)  ) * r1_4 
     
    8888         ! 
    8989      CASE( 'TRA' )                     ! U- and V-points (zdep1 & 2 are an approximation in zps-coord.) 
    90          DO_3DS_10_10( jpkm1, 1, -1 ) 
     90         DO_3DS( 1, 0, 1, 0, jpkm1, 1, -1 ) 
    9191            zdep1 = (  gdept_0(ji,jj,jk) + gdept_0(ji+1,jj,jk)  ) * 0.5_wp 
    9292            zdep2 = (  gdept_0(ji,jj,jk) + gdept_0(ji,jj+1,jk)  ) * 0.5_wp 
     
    135135      ! 
    136136      CASE( 'DYN' )                       ! T- and F-points 
    137          DO_2D_11_11 
     137         DO_2D( 1, 1, 1, 1 ) 
    138138            pah1(ji,jj,1) = pUfac * MAX( e1t(ji,jj) , e2t(ji,jj) )**knn 
    139139            pah2(ji,jj,1) = pUfac * MAX( e1f(ji,jj) , e2f(ji,jj) )**knn 
    140140         END_2D 
    141141      CASE( 'TRA' )                       ! U- and V-points 
    142          DO_2D_11_11 
     142         DO_2D( 1, 1, 1, 1 ) 
    143143            pah1(ji,jj,1) = pUfac * MAX( e1u(ji,jj), e2u(ji,jj) )**knn 
    144144            pah2(ji,jj,1) = pUfac * MAX( e1v(ji,jj), e2v(ji,jj) )**knn 
  • NEMO/trunk/src/OCE/LDF/ldfdyn.F90

    r13286 r13295  
    311311            IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'ldf_dyn_init: failed to allocate Smagorinsky arrays') 
    312312            ! 
    313             DO_2D_11_11 
     313            DO_2D( 1, 1, 1, 1 ) 
    314314               esqt(ji,jj) = ( 2._wp * e1e2t(ji,jj) / ( e1t(ji,jj) + e2t(ji,jj) ) )**2  
    315315               esqf(ji,jj) = ( 2._wp * e1e2f(ji,jj) / ( e1f(ji,jj) + e2f(ji,jj) ) )**2  
     
    368368         IF( ln_dynldf_lap   ) THEN        ! laplacian operator : |u| e /12 = |u/144| e 
    369369            DO jk = 1, jpkm1 
    370                DO_2D_00_00 
     370               DO_2D( 0, 0, 0, 0 ) 
    371371                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
    372372                  zu2pv2_ij_m1 = uu(ji-1,jj  ,jk,Kbb) * uu(ji-1,jj  ,jk,Kbb) + vv(ji  ,jj-1,jk,Kbb) * vv(ji  ,jj-1,jk,Kbb) 
     
    374374                  ahmt(ji,jj,jk) = SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * r1_288 ) * zemax * tmask(ji,jj,jk)      ! 288= 12*12 * 2 
    375375               END_2D 
    376                DO_2D_10_10 
     376               DO_2D( 1, 0, 1, 0 ) 
    377377                  zu2pv2_ij_p1 = uu(ji  ,jj+1,jk, Kbb) * uu(ji  ,jj+1,jk, Kbb) + vv(ji+1,jj  ,jk, Kbb) * vv(ji+1,jj  ,jk, Kbb) 
    378378                  zu2pv2_ij    = uu(ji  ,jj  ,jk, Kbb) * uu(ji  ,jj  ,jk, Kbb) + vv(ji  ,jj  ,jk, Kbb) * vv(ji  ,jj  ,jk, Kbb) 
     
    383383         ELSEIF( ln_dynldf_blp ) THEN      ! bilaplacian operator : sqrt( |u| e^3 /12 ) = sqrt( |u/144| e ) * e 
    384384            DO jk = 1, jpkm1 
    385                DO_2D_00_00 
     385               DO_2D( 0, 0, 0, 0 ) 
    386386                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
    387387                  zu2pv2_ij_m1 = uu(ji-1,jj  ,jk,Kbb) * uu(ji-1,jj  ,jk,Kbb) + vv(ji  ,jj-1,jk,Kbb) * vv(ji  ,jj-1,jk,Kbb) 
     
    389389                  ahmt(ji,jj,jk) = SQRT(  SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * r1_288 ) * zemax  ) * zemax * tmask(ji,jj,jk) 
    390390               END_2D 
    391                DO_2D_10_10 
     391               DO_2D( 1, 0, 1, 0 ) 
    392392                  zu2pv2_ij_p1 = uu(ji  ,jj+1,jk, Kbb) * uu(ji  ,jj+1,jk, Kbb) + vv(ji+1,jj  ,jk, Kbb) * vv(ji+1,jj  ,jk, Kbb) 
    393393                  zu2pv2_ij    = uu(ji  ,jj  ,jk, Kbb) * uu(ji  ,jj  ,jk, Kbb) + vv(ji  ,jj  ,jk, Kbb) * vv(ji  ,jj  ,jk, Kbb) 
     
    412412            DO jk = 1, jpkm1 
    413413               ! 
    414                DO_2D_00_00 
     414               DO_2D( 0, 0, 0, 0 ) 
    415415                  zdb =    ( uu(ji,jj,jk,Kbb) * r1_e2u(ji,jj) -  uu(ji-1,jj,jk,Kbb) * r1_e2u(ji-1,jj) )  & 
    416416                       &                      * r1_e1t(ji,jj) * e2t(ji,jj)                           & 
     
    420420               END_2D 
    421421               ! 
    422                DO_2D_10_10 
     422               DO_2D( 1, 0, 1, 0 ) 
    423423                  zdb =   (  uu(ji,jj+1,jk,Kbb) * r1_e1u(ji,jj+1) -  uu(ji,jj,jk,Kbb) * r1_e1u(ji,jj) )  & 
    424424                       &                        * r1_e2f(ji,jj)   * e1f(ji,jj)                       & 
     
    434434            DO jk = 1, jpkm1 
    435435              ! 
    436                DO_2D_00_00 
     436               DO_2D( 0, 0, 0, 0 ) 
    437437                  ! 
    438438                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
     
    448448               END_2D 
    449449               ! 
    450                DO_2D_10_10 
     450               DO_2D( 1, 0, 1, 0 ) 
    451451                  ! 
    452452                  zu2pv2_ij_p1 = uu(ji  ,jj+1,jk, kbb) * uu(ji  ,jj+1,jk, kbb) + vv(ji+1,jj  ,jk, kbb) * vv(ji+1,jj  ,jk, kbb) 
     
    471471            !                          ! effective default limits are 1/12 |U|L^3 < B_hm < 1//(32*2dt) L^4 
    472472            DO jk = 1, jpkm1 
    473                DO_2D_00_00 
     473               DO_2D( 0, 0, 0, 0 ) 
    474474                  ahmt(ji,jj,jk) = SQRT( r1_8 * esqt(ji,jj) * ahmt(ji,jj,jk) ) 
    475475               END_2D 
    476                DO_2D_10_10 
     476               DO_2D( 1, 0, 1, 0 ) 
    477477                  ahmf(ji,jj,jk) = SQRT( r1_8 * esqf(ji,jj) * ahmf(ji,jj,jk) ) 
    478478               END_2D 
  • NEMO/trunk/src/OCE/LDF/ldfslp.F90

    r13237 r13295  
    137137      zwz(:,:,:) = 0._wp 
    138138      ! 
    139       DO_3D_10_10( 1, jpk ) 
     139      DO_3D( 1, 0, 1, 0, 1, jpk ) 
    140140         zgru(ji,jj,jk) = umask(ji,jj,jk) * ( prd(ji+1,jj  ,jk) - prd(ji,jj,jk) ) 
    141141         zgrv(ji,jj,jk) = vmask(ji,jj,jk) * ( prd(ji  ,jj+1,jk) - prd(ji,jj,jk) ) 
    142142      END_3D 
    143143      IF( ln_zps ) THEN                           ! partial steps correction at the bottom ocean level 
    144          DO_2D_10_10 
     144         DO_2D( 1, 0, 1, 0 ) 
    145145            zgru(ji,jj,mbku(ji,jj)) = gru(ji,jj) 
    146146            zgrv(ji,jj,mbkv(ji,jj)) = grv(ji,jj) 
     
    148148      ENDIF 
    149149      IF( ln_zps .AND. ln_isfcav ) THEN           ! partial steps correction at the bottom ocean level 
    150          DO_2D_10_10 
     150         DO_2D( 1, 0, 1, 0 ) 
    151151            IF( miku(ji,jj) > 1 )   zgru(ji,jj,miku(ji,jj)) = grui(ji,jj)  
    152152            IF( mikv(ji,jj) > 1 )   zgrv(ji,jj,mikv(ji,jj)) = grvi(ji,jj) 
     
    173173      ! 
    174174      IF ( ln_isfcav ) THEN 
    175          DO_2D_00_00 
     175         DO_2D( 0, 0, 0, 0 ) 
    176176            zslpml_hmlpu(ji,jj) = uslpml(ji,jj) / ( MAX(hmlpt  (ji,jj), hmlpt  (ji+1,jj  ), 5._wp) & 
    177177               &                                  - MAX(risfdep(ji,jj), risfdep(ji+1,jj  )       ) )  
     
    180180         END_2D 
    181181      ELSE 
    182          DO_2D_00_00 
     182         DO_2D( 0, 0, 0, 0 ) 
    183183            zslpml_hmlpu(ji,jj) = uslpml(ji,jj) / MAX(hmlpt(ji,jj), hmlpt(ji+1,jj  ), 5._wp) 
    184184            zslpml_hmlpv(ji,jj) = vslpml(ji,jj) / MAX(hmlpt(ji,jj), hmlpt(ji  ,jj+1), 5._wp) 
     
    186186      END IF 
    187187 
    188       DO_3D_00_00( 2, jpkm1 ) 
     188      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    189189         !                                      ! horizontal and vertical density gradient at u- and v-points 
    190190         zau = zgru(ji,jj,jk) * r1_e1u(ji,jj) 
     
    233233      !                                            !* horizontal Shapiro filter 
    234234      DO jk = 2, jpkm1 
    235          DO_2D_00_00 
     235         DO_2D( 0, 0, 0, 0 ) 
    236236            uslp(ji,jj,jk) = z1_16 * (        zwz(ji-1,jj-1,jk) + zwz(ji+1,jj-1,jk)      & 
    237237               &                       +      zwz(ji-1,jj+1,jk) + zwz(ji+1,jj+1,jk)      & 
     
    260260         END DO 
    261261         !                                        !* decrease along coastal boundaries 
    262          DO_2D_00_00 
     262         DO_2D( 0, 0, 0, 0 ) 
    263263            uslp(ji,jj,jk) = uslp(ji,jj,jk) * ( umask(ji,jj+1,jk) + umask(ji,jj-1,jk  ) ) * 0.5_wp   & 
    264264               &                            * ( umask(ji,jj  ,jk) + umask(ji,jj  ,jk+1) ) * 0.5_wp 
     
    272272      ! ===========================      | wslpj = mij( d/dj( prd ) / d/dz( prd ) 
    273273      ! 
    274       DO_3D_00_00( 2, jpkm1 ) 
     274      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    275275         !                                  !* Local vertical density gradient evaluated from N^2 
    276276         zbw = zm1_2g * pn2 (ji,jj,jk) * ( prd (ji,jj,jk) + prd (ji,jj,jk-1) + 2. ) 
     
    307307      !                                           !* horizontal Shapiro filter 
    308308      DO jk = 2, jpkm1 
    309          DO_2D_00_00 
     309         DO_2D( 0, 0, 0, 0 ) 
    310310            zcofw = wmask(ji,jj,jk) * z1_16 
    311311            wslpi(ji,jj,jk) = (         zwz(ji-1,jj-1,jk) + zwz(ji+1,jj-1,jk)     & 
     
    338338         END DO 
    339339         !                                        !* decrease in vicinity of topography 
    340          DO_2D_00_00 
     340         DO_2D( 0, 0, 0, 0 ) 
    341341            zck =   ( umask(ji,jj,jk) + umask(ji-1,jj,jk) )   & 
    342342               &  * ( vmask(ji,jj,jk) + vmask(ji,jj-1,jk) ) * 0.25 
     
    401401         ! 
    402402         ip = jl   ;   jp = jl                ! guaranteed nonzero gradients ( absolute value larger than repsln) 
    403          DO_3D_10_10( 1, jpkm1 ) 
     403         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    404404            zdit = ( ts(ji+1,jj,jk,jp_tem,Kbb) - ts(ji,jj,jk,jp_tem,Kbb) )    ! i-gradient of T & S at u-point 
    405405            zdis = ( ts(ji+1,jj,jk,jp_sal,Kbb) - ts(ji,jj,jk,jp_sal,Kbb) ) 
     
    413413         ! 
    414414         IF( ln_zps .AND. l_grad_zps ) THEN     ! partial steps: correction of i- & j-grad on bottom 
    415             DO_2D_10_10 
     415            DO_2D( 1, 0, 1, 0 ) 
    416416               iku  = mbku(ji,jj)          ;   ikv  = mbkv(ji,jj)             ! last ocean level (u- & v-points) 
    417417               zdit = gtsu(ji,jj,jp_tem)   ;   zdjt = gtsv(ji,jj,jp_tem)      ! i- & j-gradient of Temperature 
     
    427427 
    428428      DO kp = 0, 1                            !==  unmasked before density i- j-, k-gradients  ==! 
    429          DO_3D_11_11( 1, jpkm1 ) 
     429         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    430430            IF( jk+kp > 1 ) THEN        ! k-gradient of T & S a jk+kp 
    431431               zdkt = ( ts(ji,jj,jk+kp-1,jp_tem,Kbb) - ts(ji,jj,jk+kp,jp_tem,Kbb) ) 
     
    442442      END DO 
    443443      ! 
    444       DO_2D_11_11 
     444      DO_2D( 1, 1, 1, 1 ) 
    445445         jk = MIN( nmln(ji,jj), mbkt(ji,jj) ) + 1     ! MIN in case ML depth is the ocean depth 
    446446         z1_mlbw(ji,jj) = 1._wp / gdepw(ji,jj,jk,Kmm) 
     
    462462      DO jl = 0, 1                            ! calculate slope of the 4 triads immediately ONE level below mixed-layer base 
    463463         DO kp = 0, 1                         ! with only the slope-max limit   and   MASKED 
    464             DO_2D_10_10 
     464            DO_2D( 1, 0, 1, 0 ) 
    465465               ip = jl   ;   jp = jl 
    466466               ! 
     
    499499               ! Must mask contribution to slope from dz/dx at constant s for triads jk=1,kp=0 that poke up though ocean surface 
    500500               znot_thru_surface = REAL( 1-1/(jk+kp), wp )  !jk+kp=1,=0.; otherwise=1.0 
    501                DO_2D_10_10 
     501               DO_2D( 1, 0, 1, 0 ) 
    502502                  ! 
    503503                  ! Calculate slope relative to geopotentials used for GM skew fluxes 
     
    628628      ! 
    629629      !                                            !==   surface mixed layer mask   ! 
    630       DO_3D_11_11( 1, jpk ) 
     630      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    631631         ik = nmln(ji,jj) - 1 
    632632         IF( jk <= ik ) THEN   ;   omlmask(ji,jj,jk) = 1._wp 
     
    646646      !----------------------------------------------------------------------- 
    647647      ! 
    648       DO_2D_00_00 
     648      DO_2D( 0, 0, 0, 0 ) 
    649649         !                        !==   Slope at u- & v-points just below the Mixed Layer   ==! 
    650650         ! 
  • NEMO/trunk/src/OCE/LDF/ldftra.F90

    r13286 r13295  
    430430         zaht_min = 0.2_wp * aht0                                       ! minimum value for aht 
    431431         zDaht    = aht0 - zaht_min                                       
    432          DO_2D_11_11 
     432         DO_2D( 1, 1, 1, 1 ) 
    433433            !!gm CAUTION : here we assume lat/lon grid in 20deg N/S band (like all ORCA cfg) 
    434434            !!     ==>>>   The Coriolis value is identical for t- & u_points, and for v- and f-points 
     
    648648      !                       ! Compute lateral diffusive coefficient at T-point 
    649649      IF( ln_traldf_triad ) THEN 
    650          DO_3D_00_00( 1, jpk ) 
     650         DO_3D( 0, 0, 0, 0, 1, jpk ) 
    651651            ! Take the max of N^2 and zero then take the vertical sum  
    652652            ! of the square root of the resulting N^2 ( required to compute  
     
    662662         END_3D 
    663663      ELSE 
    664          DO_3D_00_00( 1, jpk ) 
     664         DO_3D( 0, 0, 0, 0, 1, jpk ) 
    665665            ! Take the max of N^2 and zero then take the vertical sum  
    666666            ! of the square root of the resulting N^2 ( required to compute  
     
    678678      ENDIF 
    679679 
    680       DO_2D_00_00 
     680      DO_2D( 0, 0, 0, 0 ) 
    681681         zfw = MAX( ABS( 2. * omega * SIN( rad * gphit(ji,jj) ) ) , 1.e-10 ) 
    682682         ! Rossby radius at w-point taken betwenn 2 km and  40km 
     
    688688      !                                         !==  Bound on eiv coeff.  ==! 
    689689      z1_f20 = 1._wp / (  2._wp * omega * sin( rad * 20._wp )  ) 
    690       DO_2D_00_00 
     690      DO_2D( 0, 0, 0, 0 ) 
    691691         zzaei = MIN( 1._wp, ABS( ff_t(ji,jj) * z1_f20 ) ) * zaeiw(ji,jj)     ! tropical decrease 
    692692         zaeiw(ji,jj) = MIN( zzaei , paei0 )                                  ! Max value = paei0 
     
    694694      CALL lbc_lnk( 'ldftra', zaeiw(:,:), 'W', 1.0_wp )       ! lateral boundary condition 
    695695      !                
    696       DO_2D_00_00 
     696      DO_2D( 0, 0, 0, 0 ) 
    697697         paeiu(ji,jj,1) = 0.5_wp * ( zaeiw(ji,jj) + zaeiw(ji+1,jj  ) ) * umask(ji,jj,1) 
    698698         paeiv(ji,jj,1) = 0.5_wp * ( zaeiw(ji,jj) + zaeiw(ji  ,jj+1) ) * vmask(ji,jj,1) 
     
    750750      zpsi_uw(:,:,jpk) = 0._wp   ;   zpsi_vw(:,:,jpk) = 0._wp 
    751751      ! 
    752       DO_3D_10_10( 2, jpkm1 ) 
     752      DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    753753         zpsi_uw(ji,jj,jk) = - r1_4 * e2u(ji,jj) * ( wslpi(ji,jj,jk  ) + wslpi(ji+1,jj,jk) )   & 
    754754            &                                    * ( aeiu (ji,jj,jk-1) + aeiu (ji  ,jj,jk) ) * wumask(ji,jj,jk) 
     
    757757      END_3D 
    758758      ! 
    759       DO_3D_10_10( 1, jpkm1 ) 
     759      DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    760760         pu(ji,jj,jk) = pu(ji,jj,jk) - ( zpsi_uw(ji,jj,jk) - zpsi_uw(ji,jj,jk+1) ) 
    761761         pv(ji,jj,jk) = pv(ji,jj,jk) - ( zpsi_vw(ji,jj,jk) - zpsi_vw(ji,jj,jk+1) ) 
    762762      END_3D 
    763       DO_3D_00_00( 1, jpkm1 ) 
     763      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    764764         pw(ji,jj,jk) = pw(ji,jj,jk) + (  zpsi_uw(ji,jj,jk) - zpsi_uw(ji-1,jj  ,jk)   & 
    765765            &                             + zpsi_vw(ji,jj,jk) - zpsi_vw(ji  ,jj-1,jk) ) 
     
    813813      CALL iom_put( "voce_eiv", zw3d ) 
    814814      ! 
    815       DO_3D_00_00( 1, jpkm1 ) 
     815      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    816816         zw3d(ji,jj,jk) = (  psi_vw(ji,jj,jk) - psi_vw(ji  ,jj-1,jk)    & 
    817817            &              + psi_uw(ji,jj,jk) - psi_uw(ji-1,jj  ,jk)  ) / e1e2t(ji,jj) 
     
    840840        zw2d(:,:)   = 0._wp  
    841841        zw3d(:,:,:) = 0._wp  
    842         DO_3D_00_00( 1, jpkm1 ) 
     842        DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    843843           zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_uw(ji,jj,jk+1)          - psi_uw(ji  ,jj,jk)            )   & 
    844844              &                            * ( ts    (ji,jj,jk,jp_tem,Kmm) + ts    (ji+1,jj,jk,jp_tem,Kmm) )  
     
    861861      zw2d(:,:)   = 0._wp  
    862862      zw3d(:,:,:) = 0._wp  
    863       DO_3D_00_00( 1, jpkm1 ) 
     863      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    864864         zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1)          - psi_vw(ji,jj  ,jk)            )   & 
    865865            &                            * ( ts    (ji,jj,jk,jp_tem,Kmm) + ts    (ji,jj+1,jk,jp_tem,Kmm) )  
     
    876876        zw2d(:,:) = 0._wp  
    877877        zw3d(:,:,:) = 0._wp  
    878         DO_3D_00_00( 1, jpkm1 ) 
     878        DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    879879           zw3d(ji,jj,jk) = zw3d(ji,jj,jk) * ( psi_uw(ji,jj,jk+1)          - psi_uw(ji  ,jj,jk)            )   & 
    880880              &                            * ( ts    (ji,jj,jk,jp_sal,Kmm) + ts    (ji+1,jj,jk,jp_sal,Kmm) )  
     
    888888      zw2d(:,:) = 0._wp  
    889889      zw3d(:,:,:) = 0._wp  
    890       DO_3D_00_00( 1, jpkm1 ) 
     890      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    891891         zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1)          - psi_vw(ji,jj  ,jk)            )   & 
    892892            &                            * ( ts    (ji,jj,jk,jp_sal,Kmm) + ts    (ji,jj+1,jk,jp_sal,Kmm) )  
Note: See TracChangeset for help on using the changeset viewer.