Ignore:
Timestamp:
2020-07-10T20:24:21+02:00 (10 months 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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/DIA/diawri.F90

    r13286 r13295  
    175175      CALL iom_put(  "sst", ts(:,:,1,jp_tem,Kmm) )    ! surface temperature 
    176176      IF ( iom_use("sbt") ) THEN 
    177          DO_2D_11_11 
     177         DO_2D( 1, 1, 1, 1 ) 
    178178            ikbot = mbkt(ji,jj) 
    179179            z2d(ji,jj) = ts(ji,jj,ikbot,jp_tem,Kmm) 
     
    185185      CALL iom_put(  "sss", ts(:,:,1,jp_sal,Kmm) )    ! surface salinity 
    186186      IF ( iom_use("sbs") ) THEN 
    187          DO_2D_11_11 
     187         DO_2D( 1, 1, 1, 1 ) 
    188188            ikbot = mbkt(ji,jj) 
    189189            z2d(ji,jj) = ts(ji,jj,ikbot,jp_sal,Kmm) 
     
    199199         zztmp = rho0 * 0.25 
    200200         z2d(:,:) = 0._wp 
    201          DO_2D_00_00 
     201         DO_2D( 0, 0, 0, 0 ) 
    202202            zztmp2 = (  ( rCdU_bot(ji+1,jj)+rCdU_bot(ji  ,jj) ) * uu(ji  ,jj,mbku(ji  ,jj),Kmm)  )**2   & 
    203203               &   + (  ( rCdU_bot(ji  ,jj)+rCdU_bot(ji-1,jj) ) * uu(ji-1,jj,mbku(ji-1,jj),Kmm)  )**2   & 
     
    214214      CALL iom_put(  "ssu", uu(:,:,1,Kmm) )            ! surface i-current 
    215215      IF ( iom_use("sbu") ) THEN 
    216          DO_2D_11_11 
     216         DO_2D( 1, 1, 1, 1 ) 
    217217            ikbot = mbku(ji,jj) 
    218218            z2d(ji,jj) = uu(ji,jj,ikbot,Kmm) 
     
    224224      CALL iom_put(  "ssv", vv(:,:,1,Kmm) )            ! surface j-current 
    225225      IF ( iom_use("sbv") ) THEN 
    226          DO_2D_11_11 
     226         DO_2D( 1, 1, 1, 1 ) 
    227227            ikbot = mbkv(ji,jj) 
    228228            z2d(ji,jj) = vv(ji,jj,ikbot,Kmm) 
     
    254254 
    255255      IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 
    256          DO_2D_00_00 
     256         DO_2D( 0, 0, 0, 0 ) 
    257257            zztmp  = ts(ji,jj,1,jp_tem,Kmm) 
    258258            zztmpx = ( ts(ji+1,jj,1,jp_tem,Kmm) - zztmp ) * r1_e1u(ji,jj) + ( zztmp - ts(ji-1,jj  ,1,jp_tem,Kmm) ) * r1_e1u(ji-1,jj) 
     
    270270      IF( iom_use("heatc") ) THEN 
    271271         z2d(:,:)  = 0._wp  
    272          DO_3D_11_11( 1, jpkm1 ) 
     272         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    273273            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) * tmask(ji,jj,jk) 
    274274         END_3D 
     
    278278      IF( iom_use("saltc") ) THEN 
    279279         z2d(:,:)  = 0._wp  
    280          DO_3D_11_11( 1, jpkm1 ) 
     280         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    281281            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * tmask(ji,jj,jk) 
    282282         END_3D 
     
    286286      IF ( iom_use("eken") ) THEN 
    287287         z3d(:,:,jpk) = 0._wp  
    288          DO_3D_00_00( 1, jpkm1 ) 
     288         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    289289            zztmp  = 0.25_wp * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
    290290            z3d(ji,jj,jk) = zztmp * (  uu(ji-1,jj,jk,Kmm)**2 * e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm)   & 
     
    312312      IF( iom_use("u_heattr") ) THEN 
    313313         z2d(:,:) = 0._wp  
    314          DO_3D_00_00( 1, jpkm1 ) 
     314         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    315315            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji+1,jj,jk,jp_tem,Kmm) ) 
    316316         END_3D 
     
    321321      IF( iom_use("u_salttr") ) THEN 
    322322         z2d(:,:) = 0.e0  
    323          DO_3D_00_00( 1, jpkm1 ) 
     323         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    324324            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji+1,jj,jk,jp_sal,Kmm) ) 
    325325         END_3D 
     
    339339      IF( iom_use("v_heattr") ) THEN 
    340340         z2d(:,:) = 0.e0  
    341          DO_3D_00_00( 1, jpkm1 ) 
     341         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    342342            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji,jj+1,jk,jp_tem,Kmm) ) 
    343343         END_3D 
     
    348348      IF( iom_use("v_salttr") ) THEN 
    349349         z2d(:,:) = 0._wp  
    350          DO_3D_00_00( 1, jpkm1 ) 
     350         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    351351            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji,jj+1,jk,jp_sal,Kmm) ) 
    352352         END_3D 
     
    357357      IF( iom_use("tosmint") ) THEN 
    358358         z2d(:,:) = 0._wp 
    359          DO_3D_00_00( 1, jpkm1 ) 
     359         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    360360            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) *  ts(ji,jj,jk,jp_tem,Kmm) 
    361361         END_3D 
     
    365365      IF( iom_use("somint") ) THEN 
    366366         z2d(:,:)=0._wp 
    367          DO_3D_00_00( 1, jpkm1 ) 
     367         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    368368            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) 
    369369         END_3D 
Note: See TracChangeset for help on using the changeset viewer.