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/ICE/icedyn_adv_pra.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/ICE/icedyn_adv_pra.F90

    r13469 r13470  
    110110      END WHERE 
    111111      DO jl = 1, jpl 
    112          DO_2D_00_00 
     112         DO_2D( 0, 0, 0, 0 ) 
    113113            zhip_max(ji,jj,jl) = MAX( epsi20, ph_ip(ji,jj,jl), ph_ip(ji+1,jj  ,jl), ph_ip(ji  ,jj+1,jl), & 
    114114               &                                               ph_ip(ji-1,jj  ,jl), ph_ip(ji  ,jj-1,jl), & 
     
    143143      END DO 
    144144      DO jl = 1, jpl 
    145          DO_3D_00_00( 1, nlay_i ) 
     145         DO_3D( 0, 0, 0, 0, 1, nlay_i ) 
    146146            zei_max(ji,jj,jk,jl) = MAX( epsi20, ze_i(ji,jj,jk,jl), ze_i(ji+1,jj  ,jk,jl), ze_i(ji  ,jj+1,jk,jl), & 
    147147               &                                                   ze_i(ji-1,jj  ,jk,jl), ze_i(ji  ,jj-1,jk,jl), & 
     
    151151      END DO 
    152152      DO jl = 1, jpl 
    153          DO_3D_00_00( 1, nlay_s ) 
     153         DO_3D( 0, 0, 0, 0, 1, nlay_s ) 
    154154            zes_max(ji,jj,jk,jl) = MAX( epsi20, ze_s(ji,jj,jk,jl), ze_s(ji+1,jj  ,jk,jl), ze_s(ji  ,jj+1,jk,jl), & 
    155155               &                                                   ze_s(ji-1,jj  ,jk,jl), ze_s(ji  ,jj-1,jk,jl), & 
     
    307307         ! derive open water from ice concentration 
    308308         zati2(:,:) = SUM( pa_i(:,:,:), dim=3 ) 
    309          DO_2D_00_00 
     309         DO_2D( 0, 0, 0, 0 ) 
    310310            pato_i(ji,jj) = pato_i(ji,jj) - ( zati2(ji,jj) - zati1(ji,jj) ) &                        !--- open water 
    311311               &                          - ( zudy(ji,jj) - zudy(ji-1,jj) + zvdx(ji,jj) - zvdx(ji,jj-1) ) * r1_e1e2t(ji,jj) * zdt 
     
    363363         ! 
    364364         ! Limitation of moments.                                            
    365          DO_2D_00_11 
     365         DO_2D( 0, 0, 1, 1 ) 
    366366            !  Initialize volumes of boxes  (=area if adv_x first called, =psm otherwise)                                      
    367367            psm (ji,jj,jl) = MAX( pcrh * e1e2t(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj,jl) , epsi20 ) 
     
    383383 
    384384         !  Calculate fluxes and moments between boxes i<-->i+1               
    385          DO_2D_00_11 
     385         DO_2D( 0, 0, 1, 1 ) 
    386386            zbet(ji,jj)  =  MAX( 0._wp, SIGN( 1._wp, put(ji,jj) ) ) 
    387387            zalf         =  MAX( 0._wp, put(ji,jj) ) * pdt / psm(ji,jj,jl) 
     
    408408         END_2D 
    409409 
    410          DO_2D_00_10 
     410         DO_2D( 0, 0, 1, 0 ) 
    411411            zalf          = MAX( 0._wp, -put(ji,jj) ) * pdt / psm(ji+1,jj,jl)  
    412412            zalg  (ji,jj) = zalf 
     
    427427         END_2D 
    428428 
    429          DO_2D_00_00 
     429         DO_2D( 0, 0, 0, 0 ) 
    430430            zbt  =       zbet(ji-1,jj) 
    431431            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    441441 
    442442         !   Put the temporary moments into appropriate neighboring boxes.     
    443          DO_2D_00_00 
     443         DO_2D( 0, 0, 0, 0 ) 
    444444            zbt  =       zbet(ji-1,jj) 
    445445            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    461461         END_2D 
    462462 
    463          DO_2D_00_00 
     463         DO_2D( 0, 0, 0, 0 ) 
    464464            zbt  =       zbet(ji,jj) 
    465465            zbt1 = 1.0 - zbet(ji,jj) 
     
    520520         ! 
    521521         ! Limitation of moments. 
    522          DO_2D_11_00 
     522         DO_2D( 1, 1, 0, 0 ) 
    523523            !  Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 
    524524            psm(ji,jj,jl) = MAX(  pcrh * e1e2t(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj,jl) , epsi20  ) 
     
    540540  
    541541         !  Calculate fluxes and moments between boxes j<-->j+1               
    542          DO_2D_11_00 
     542         DO_2D( 1, 1, 0, 0 ) 
    543543            zbet(ji,jj)  =  MAX( 0._wp, SIGN( 1._wp, pvt(ji,jj) ) ) 
    544544            zalf         =  MAX( 0._wp, pvt(ji,jj) ) * pdt / psm(ji,jj,jl) 
     
    565565         END_2D 
    566566         ! 
    567          DO_2D_10_00 
     567         DO_2D( 1, 0, 0, 0 ) 
    568568            zalf          = MAX( 0._wp, -pvt(ji,jj) ) * pdt / psm(ji,jj+1,jl)  
    569569            zalg  (ji,jj) = zalf 
     
    585585 
    586586         !  Readjust moments remaining in the box.  
    587          DO_2D_00_00 
     587         DO_2D( 0, 0, 0, 0 ) 
    588588            zbt  =         zbet(ji,jj-1) 
    589589            zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
     
    599599 
    600600         !   Put the temporary moments into appropriate neighboring boxes.     
    601          DO_2D_00_00 
     601         DO_2D( 0, 0, 0, 0 ) 
    602602            zbt  =       zbet(ji,jj-1) 
    603603            zbt1 = 1.0 - zbet(ji,jj-1) 
     
    620620         END_2D 
    621621 
    622          DO_2D_00_00 
     622         DO_2D( 0, 0, 0, 0 ) 
    623623            zbt  =       zbet(ji,jj) 
    624624            zbt1 = 1.0 - zbet(ji,jj) 
     
    679679      ! 
    680680      DO jl = 1, jpl 
    681          DO_2D_11_11 
     681         DO_2D( 1, 1, 1, 1 ) 
    682682            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    683683               ! 
     
    726726      !                                           ! -- check e_i/v_i -- ! 
    727727      DO jl = 1, jpl 
    728          DO_3D_11_11( 1, nlay_i ) 
     728         DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    729729            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    730730               ! if e_i/v_i is larger than the surrounding 9 pts => put the heat excess in the ocean 
     
    740740      !                                           ! -- check e_s/v_s -- ! 
    741741      DO jl = 1, jpl 
    742          DO_3D_11_11( 1, nlay_s ) 
     742         DO_3D( 1, 1, 1, 1, 1, nlay_s ) 
    743743            IF ( pv_s(ji,jj,jl) > 0._wp ) THEN 
    744744               ! if e_s/v_s is larger than the surrounding 9 pts => put the heat excess in the ocean 
     
    783783      ! -- check snow load -- ! 
    784784      DO jl = 1, jpl 
    785          DO_2D_11_11 
     785         DO_2D( 1, 1, 1, 1 ) 
    786786            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    787787               ! 
Note: See TracChangeset for help on using the changeset viewer.