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/TOP/TRP – 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/TOP/TRP
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/TOP/TRP/trcatf.F90

    r13286 r13295  
    239239      ! 
    240240      DO jn = 1, jptra       
    241          DO_3D_11_11( 1, jpkm1 ) 
     241         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    242242            ze3t_b = e3t(ji,jj,jk,Kbb) 
    243243            ze3t_n = e3t(ji,jj,jk,Kmm) 
     
    314314      ! 
    315315      DO jn = 1, jptra       
    316          DO_3D_11_11( 1, jpkm1 ) 
     316         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    317317            ze3t_b = 1._wp + r3t(ji,jj,Kbb) * tmask(ji,jj,jk) 
    318318            ze3t_n = 1._wp + r3t(ji,jj,Kmm) * tmask(ji,jj,jk) 
  • NEMO/trunk/src/TOP/TRP/trcdmp.F90

    r13286 r13295  
    113113               ! 
    114114               CASE( 0 )                !==  newtonian damping throughout the water column  ==! 
    115                   DO_3D_00_00( 1, jpkm1 ) 
     115                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    116116                     ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
    117117                  END_3D 
    118118                  ! 
    119119               CASE ( 1 )                !==  no damping in the turbocline (avt > 5 cm2/s)  ==! 
    120                   DO_3D_00_00( 1, jpkm1 ) 
     120                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    121121                     IF( avt(ji,jj,jk) <= avt_c )  THEN  
    122122                        ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
     
    125125                  ! 
    126126               CASE ( 2 )               !==  no damping in the mixed layer   ==!  
    127                   DO_3D_00_00( 1, jpkm1 ) 
     127                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    128128                     IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 
    129129                        ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
  • NEMO/trunk/src/TOP/TRP/trcldf.F90

    r13286 r13295  
    8282      zahv(:,:,:) = rldf * ahtv(:,:,:) 
    8383      !                                  !* Enhanced zonal diffusivity coefficent in the equatorial domain 
    84       DO_3D_11_11( 1, jpk ) 
     84      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    8585         IF( gdept(ji,jj,jk,Kmm) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN 
    8686            zdep = MAX( gdept(ji,jj,jk,Kmm) - 1000., 0. ) / 1000. 
  • NEMO/trunk/src/TOP/TRP/trcrad.F90

    r13286 r13295  
    168168              IF( l_trdtrc )   ztrtrd(:,:,:) = ptr(:,:,:,jn,itime)                       ! save input tr(:,:,:,:,Kbb) for trend computation            
    169169              ! 
    170               DO_3D_11_11( 1, jpkm1 ) 
     170              DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    171171                 IF( ztrneg(ji,jj,jn) /= 0. ) THEN                                 ! if negative values over the 3x3 box 
    172172                    ! 
  • NEMO/trunk/src/TOP/TRP/trcsbc.F90

    r13286 r13295  
    121121         ! 
    122122         DO jn = 1, jptra 
    123             DO_2D_01_00 
     123            DO_2D( 0, 1, 0, 0 ) 
    124124               sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    125125            END_2D 
     
    129129         ! 
    130130         DO jn = 1, jptra 
    131             DO_2D_01_00 
     131            DO_2D( 0, 1, 0, 0 ) 
    132132               sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    133133            END_2D 
     
    137137         ! 
    138138         DO jn = 1, jptra 
    139             DO_2D_01_00 
     139            DO_2D( 0, 1, 0, 0 ) 
    140140               zse3t = 1. / e3t(ji,jj,1,Kmm) 
    141141               ! tracer flux at the ice/ocean interface (tracer/m2/s) 
     
    161161         IF( l_trdtrc )   ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs)  ! save trends 
    162162         ! 
    163          DO_2D_01_00 
     163         DO_2D( 0, 1, 0, 0 ) 
    164164            zse3t = zfact / e3t(ji,jj,1,Kmm) 
    165165            ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 
  • NEMO/trunk/src/TOP/TRP/trcsink.F90

    r13237 r13295  
    7474         iiter(:,:) = 1 
    7575      ELSE 
    76          DO_2D_11_11 
     76         DO_2D( 1, 1, 1, 1 ) 
    7777            iiter(ji,jj) = 1 
    7878            DO jk = 1, jpkm1 
     
    8686      ENDIF 
    8787 
    88       DO_3D_11_11( 1,jpkm1 ) 
     88      DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
    8989         IF( tmask(ji,jj,jk) == 1.0 ) THEN 
    9090           zwsmax = 0.5 * e3t(ji,jj,jk,Kmm) * rday / rsfact 
     
    146146      DO jn = 1, 2 
    147147         !  first guess of the slopes interior values 
    148          DO_2D_11_11 
     148         DO_2D( 1, 1, 1, 1 ) 
    149149            ! 
    150150            zstep = rsfact / REAL( kiter(ji,jj), wp ) / 2. 
     
    186186      END DO 
    187187 
    188       DO_3D_11_11( 1,jpkm1 ) 
     188      DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
    189189         zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 
    190190         ztrb(ji,jj,jk) = ztrb(ji,jj,jk) + 2. * zflx 
  • NEMO/trunk/src/TOP/TRP/trdmxl_trc.F90

    r13237 r13295  
    125125 
    126126            IF( jpktrd_trc < jpk ) THEN                           ! description ??? 
    127                DO_2D_11_11 
     127               DO_2D( 1, 1, 1, 1 ) 
    128128                  IF( nmld_trc(ji,jj) <= jpktrd_trc ) THEN 
    129129                     zvlmsk(ji,jj) = tmask(ji,jj,1) 
     
    148148         ! ... Weights for vertical averaging 
    149149         wkx_trc(:,:,:) = 0.e0 
    150          DO_3D_11_11( 1, jpktrd_trc ) 
     150         DO_3D( 1, 1, 1, 1, 1, jpktrd_trc ) 
    151151            IF( jk - nmld_trc(ji,jj) < 0 )   wkx_trc(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 
    152152         END_3D 
     
    259259         ! 
    260260         DO jn = 1, jptra 
    261             DO_2D_11_11 
     261            DO_2D( 1, 1, 1, 1 ) 
    262262               ik = nmld_trc(ji,jj) 
    263263               IF( ln_trdtrc(jn) )    & 
Note: See TracChangeset for help on using the changeset viewer.