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/tests/ISOMIP+ – 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/tests/ISOMIP+/MY_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/tests/ISOMIP+/MY_SRC/dtatsd.F90

    r12905 r13295  
    191191         ENDIF 
    192192         ! 
    193          DO_2D_11_11 
     193         DO_2D( 1, 1, 1, 1 ) 
    194194            DO jk = 1, jpk                        ! determines the intepolated T-S profiles at each (i,j) points 
    195195               zl = gdept_0(ji,jj,jk) 
     
    224224         ! 
    225225         IF( ln_zps ) THEN                      ! zps-coordinate (partial steps) interpolation at the last ocean level 
    226             DO_2D_11_11 
     226            DO_2D( 1, 1, 1, 1 ) 
    227227               ik = mbkt(ji,jj)  
    228228               IF( ik > 1 ) THEN 
  • NEMO/trunk/tests/ISOMIP+/MY_SRC/eosbn2.F90

    r12905 r13295  
    243243      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    244244         ! 
    245          DO_3D_11_11( 1, jpkm1 ) 
     245         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    246246            ! 
    247247            zh  = pdep(ji,jj,jk) * r1_Z0                                  ! depth 
     
    279279      CASE( np_seos )                !==  simplified EOS  ==! 
    280280         ! 
    281          DO_3D_11_11( 1, jpkm1 ) 
     281         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    282282            zt  = pts  (ji,jj,jk,jp_tem) - 10._wp 
    283283            zs  = pts  (ji,jj,jk,jp_sal) - 35._wp 
     
    294294      CASE( np_leos )                !==  linear ISOMIP EOS  ==! 
    295295         ! 
    296          DO_3D_11_11( 1, jpkm1 ) 
     296         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    297297            zt  = pts  (ji,jj,jk,jp_tem) - (-1._wp) 
    298298            zs  = pts  (ji,jj,jk,jp_sal) - 34.2_wp 
     
    356356            END DO 
    357357            ! 
    358             DO_3D_11_11( 1, jpkm1 ) 
     358            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    359359               ! 
    360360               ! compute density (2*nn_sto_eos) times: 
     
    406406         ! Non-stochastic equation of state 
    407407         ELSE 
    408             DO_3D_11_11( 1, jpkm1 ) 
     408            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    409409               ! 
    410410               zh  = pdep(ji,jj,jk) * r1_Z0                                  ! depth 
     
    444444      CASE( np_seos )                !==  simplified EOS  ==! 
    445445         ! 
    446          DO_3D_11_11( 1, jpkm1 ) 
     446         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    447447            zt  = pts  (ji,jj,jk,jp_tem) - 10._wp 
    448448            zs  = pts  (ji,jj,jk,jp_sal) - 35._wp 
     
    462462      CASE( np_leos )                !==  linear ISOMIP EOS  ==! 
    463463         ! 
    464          DO_3D_11_11( 1, jpkm1 ) 
     464         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    465465            zt  = pts  (ji,jj,jk,jp_tem) - (-1._wp) 
    466466            zs  = pts  (ji,jj,jk,jp_sal) - 34.2_wp 
     
    513513      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    514514         ! 
    515          DO_2D_11_11 
     515         DO_2D( 1, 1, 1, 1 ) 
    516516            ! 
    517517            zh  = pdep(ji,jj) * r1_Z0                                  ! depth 
     
    548548      CASE( np_seos )                !==  simplified EOS  ==! 
    549549         ! 
    550          DO_2D_11_11 
     550         DO_2D( 1, 1, 1, 1 ) 
    551551            ! 
    552552            zt    = pts  (ji,jj,jp_tem)  - 10._wp 
     
    564564      CASE( np_leos )                !==  ISOMIP EOS  ==! 
    565565         ! 
    566          DO_2D_11_11 
     566         DO_2D( 1, 1, 1, 1 ) 
    567567            ! 
    568568            zt    = pts  (ji,jj,jp_tem)  - (-1._wp) 
     
    611611      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    612612         ! 
    613          DO_3D_11_11( 1, jpkm1 ) 
     613         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    614614            ! 
    615615            zh  = gdept(ji,jj,jk,Kmm) * r1_Z0                                ! depth 
     
    664664      CASE( np_seos )                  !==  simplified EOS  ==! 
    665665         ! 
    666          DO_3D_11_11( 1, jpkm1 ) 
     666         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    667667            zt  = pts (ji,jj,jk,jp_tem) - 10._wp   ! pot. temperature anomaly (t-T0) 
    668668            zs  = pts (ji,jj,jk,jp_sal) - 35._wp   ! abs. salinity anomaly (s-S0) 
     
    680680      CASE( np_leos )                  !==  linear ISOMIP EOS  ==! 
    681681         ! 
    682          DO_3D_11_11( 1, jpkm1 ) 
     682         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    683683            zt  = pts (ji,jj,jk,jp_tem) - (-1._wp) 
    684684            zs  = pts (ji,jj,jk,jp_sal) - 34.2_wp   ! abs. salinity anomaly (s-S0) 
     
    734734      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    735735         ! 
    736          DO_2D_11_11 
     736         DO_2D( 1, 1, 1, 1 ) 
    737737            ! 
    738738            zh  = pdep(ji,jj) * r1_Z0                                  ! depth 
     
    787787      CASE( np_seos )                  !==  simplified EOS  ==! 
    788788         ! 
    789          DO_2D_11_11 
     789         DO_2D( 1, 1, 1, 1 ) 
    790790            ! 
    791791            zt    = pts  (ji,jj,jp_tem) - 10._wp   ! pot. temperature anomaly (t-T0) 
     
    803803      CASE( np_leos )                  !==  linear ISOMIP EOS  ==! 
    804804         ! 
    805          DO_2D_11_11 
     805         DO_2D( 1, 1, 1, 1 ) 
    806806            ! 
    807807            zt    = pts  (ji,jj,jp_tem) - (-1._wp)   ! pot. temperature anomaly (t-T0) 
     
    965965      IF( ln_timing )   CALL timing_start('bn2') 
    966966      ! 
    967       DO_3D_11_11( 2, jpkm1 ) 
     967      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    968968         zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
    969969            &  / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) )  
     
    10131013      z1_T0   = 1._wp/40._wp 
    10141014      ! 
    1015       DO_2D_11_11 
     1015      DO_2D( 1, 1, 1, 1 ) 
    10161016         ! 
    10171017         zt  = ctmp   (ji,jj) * z1_T0 
     
    10661066         ! 
    10671067         z1_S0 = 1._wp / 35.16504_wp 
    1068          DO_2D_11_11 
     1068         DO_2D( 1, 1, 1, 1 ) 
    10691069            zs= SQRT( ABS( psal(ji,jj) ) * z1_S0 )           ! square root salinity 
    10701070            ptf(ji,jj) = ((((1.46873e-03_wp*zs-9.64972e-03_wp)*zs+2.28348e-02_wp)*zs & 
     
    11731173      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    11741174         ! 
    1175          DO_3D_11_11( 1, jpkm1 ) 
     1175         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    11761176            ! 
    11771177            zh  = gdept(ji,jj,jk,Kmm) * r1_Z0                                ! depth 
     
    12321232      CASE( np_seos )                !==  Vallis (2006) simplified EOS  ==! 
    12331233         ! 
    1234          DO_3D_11_11( 1, jpkm1 ) 
     1234         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    12351235            zt  = pts(ji,jj,jk,jp_tem) - 10._wp  ! temperature anomaly (t-T0) 
    12361236            zs = pts (ji,jj,jk,jp_sal) - 35._wp  ! abs. salinity anomaly (s-S0) 
     
    12481248      CASE( np_leos )                !==  linear ISOMIP EOS  ==! 
    12491249         ! 
    1250          DO_3D_11_11( 1, jpkm1 ) 
     1250         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    12511251            zt  = pts(ji,jj,jk,jp_tem) - (-1._wp)  ! temperature anomaly (t-T0) 
    12521252            zs = pts (ji,jj,jk,jp_sal) - 34.2_wp   ! abs. salinity anomaly (s-S0) 
  • NEMO/trunk/tests/ISOMIP+/MY_SRC/istate.F90

    r12905 r13295  
    105105               ! Apply minimum wetdepth criterion 
    106106               ! 
    107                DO_2D_11_11 
     107               DO_2D( 1, 1, 1, 1 ) 
    108108                  IF( ht_0(ji,jj) + ssh(ji,jj,Kbb)  < rn_wdmin1 ) THEN 
    109109                     ssh(ji,jj,Kbb) = tmask(ji,jj,1)*( rn_wdmin1 - (ht_0(ji,jj)) ) 
     
    159159      ! 
    160160!!gm  the use of umsak & vmask is not necessary below as uu(:,:,:,Kmm), vv(:,:,:,Kmm), uu(:,:,:,Kbb), vv(:,:,:,Kbb) are always masked 
    161       DO_3D_11_11( 1, jpkm1 ) 
     161      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    162162         uu_b(ji,jj,Kmm) = uu_b(ji,jj,Kmm) + e3u(ji,jj,jk,Kmm) * uu(ji,jj,jk,Kmm) * umask(ji,jj,jk) 
    163163         vv_b(ji,jj,Kmm) = vv_b(ji,jj,Kmm) + e3v(ji,jj,jk,Kmm) * vv(ji,jj,jk,Kmm) * vmask(ji,jj,jk) 
  • NEMO/trunk/tests/ISOMIP+/MY_SRC/tradmp.F90

    r13286 r13295  
    112112      CASE( 0 )                        !*  newtonian damping throughout the water column  *! 
    113113         DO jn = 1, jpts 
    114             DO_3D_00_00( 1, jpkm1 ) 
     114            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    115115               pts(ji,jj,jk,jn,Krhs) = pts(ji,jj,jk,jn,Krhs)           & 
    116116                  &                  + resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jn) - pts(ji,jj,jk,jn,Kbb) ) 
     
    119119         ! 
    120120      CASE ( 1 )                       !*  no damping in the turbocline (avt > 5 cm2/s)  *! 
    121          DO_3D_00_00( 1, jpkm1 ) 
     121         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    122122            IF( avt(ji,jj,jk) <= avt_c ) THEN 
    123123               pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs)   & 
     
    129129         ! 
    130130      CASE ( 2 )                       !*  no damping in the mixed layer   *! 
    131          DO_3D_00_00( 1, jpkm1 ) 
     131         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    132132            IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 
    133133               pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs)   & 
Note: See TracChangeset for help on using the changeset viewer.