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/SWE/sbcice_cice.F90 – 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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/SWE/sbcice_cice.F90

    r12983 r13295  
    219219! T point to U point 
    220220! T point to V point 
    221       DO_2D_10_10 
     221      DO_2D( 1, 0, 1, 0 ) 
    222222         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    223223         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
     
    316316! x comp of wind stress (CI_1) 
    317317! U point to F point 
    318          DO_2D_10_11 
     318         DO_2D( 1, 0, 1, 1 ) 
    319319            ztmp(ji,jj) = 0.5 * (  fr_iu(ji,jj) * utau(ji,jj)      & 
    320320                                 + fr_iu(ji,jj+1) * utau(ji,jj+1) ) * fmask(ji,jj,1) 
     
    324324! y comp of wind stress (CI_2) 
    325325! V point to F point 
    326          DO_2D_11_10 
     326         DO_2D( 1, 1, 1, 0 ) 
    327327            ztmp(ji,jj) = 0.5 * (  fr_iv(ji,jj) * vtau(ji,jj)      & 
    328328                                 + fr_iv(ji+1,jj) * vtau(ji+1,jj) ) * fmask(ji,jj,1) 
     
    339339            qla_ice(:,:,1)= - ( emp_ice(:,:)+sprecip(:,:) ) * rLsub 
    340340! End of temporary code 
    341             DO_2D_11_11 
     341            DO_2D( 1, 1, 1, 1 ) 
    342342               IF(fr_i(ji,jj).eq.0.0) THEN 
    343343                  DO jl=1,ncat 
     
    441441! x comp and y comp of surface ocean current 
    442442! U point to F point 
    443       DO_2D_10_11 
     443      DO_2D( 1, 0, 1, 1 ) 
    444444         ztmp(ji,jj)=0.5*(ssu_m(ji,jj)+ssu_m(ji,jj+1))*fmask(ji,jj,1) 
    445445      END_2D 
     
    447447 
    448448! V point to F point 
    449       DO_2D_11_10 
     449      DO_2D( 1, 1, 1, 0 ) 
    450450         ztmp(ji,jj)=0.5*(ssv_m(ji,jj)+ssv_m(ji+1,jj))*fmask(ji,jj,1) 
    451451      END_2D 
     
    471471! x comp and y comp of sea surface slope (on F points) 
    472472! T point to F point 
    473       DO_2D_10_10 
     473      DO_2D( 1, 0, 1, 0 ) 
    474474         ztmp(ji,jj)=0.5 * (  (zpice(ji+1,jj  )-zpice(ji,jj  )) * r1_e1u(ji,jj  )    & 
    475475            &               + (zpice(ji+1,jj+1)-zpice(ji,jj+1)) * r1_e1u(ji,jj+1)  ) * fmask(ji,jj,1) 
     
    478478 
    479479! T point to F point 
    480       DO_2D_10_10 
     480      DO_2D( 1, 0, 1, 0 ) 
    481481         ztmp(ji,jj)=0.5 * (  (zpice(ji  ,jj+1)-zpice(ji  ,jj)) * r1_e2v(ji  ,jj)    & 
    482482            &               + (zpice(ji+1,jj+1)-zpice(ji+1,jj)) * r1_e2v(ji+1,jj)  ) *  fmask(ji,jj,1) 
     
    507507      ss_iou(:,:)=0.0 
    508508! F point to U point 
    509       DO_2D_00_00 
     509      DO_2D( 0, 0, 0, 0 ) 
    510510         ss_iou(ji,jj) = 0.5 * ( ztmp1(ji,jj-1) + ztmp1(ji,jj) ) * umask(ji,jj,1) 
    511511      END_2D 
     
    517517! F point to V point 
    518518 
    519       DO_2D_10_00 
     519      DO_2D( 1, 0, 0, 0 ) 
    520520         ss_iov(ji,jj) = 0.5 * ( ztmp1(ji-1,jj) + ztmp1(ji,jj) ) * vmask(ji,jj,1) 
    521521      END_2D 
     
    601601      CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1. ) 
    602602 
    603       DO_2D_11_11 
     603      DO_2D( 1, 1, 1, 1 ) 
    604604         nfrzmlt(ji,jj)=MAX(nfrzmlt(ji,jj),0.0) 
    605605      END_2D 
     
    625625! T point to U point 
    626626! T point to V point 
    627       DO_2D_10_10 
     627      DO_2D( 1, 0, 1, 0 ) 
    628628         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    629629         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
     
    985985 
    986986      pn(:,:)=0.0 
    987       DO_2D_10_10 
     987      DO_2D( 1, 0, 1, 0 ) 
    988988         pn(ji,jj)=pc(ji+1-ji_off,jj+1-jj_off,1) 
    989989      END_2D 
Note: See TracChangeset for help on using the changeset viewer.