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/PISCES/P4Z/p4zopt.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/TOP/PISCES/P4Z/p4zopt.F90

    r13286 r13295  
    8989      IF( ln_p5z )   zchl3d(:,:,:) = zchl3d(:,:,:)    + tr(:,:,:,jppch,Kbb) 
    9090      ! 
    91       DO_3D_11_11( 1, jpkm1 ) 
     91      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9292         zchl = ( zchl3d(ji,jj,jk) + rtrn ) * 1.e6 
    9393         zchl = MIN(  10. , MAX( 0.05, zchl )  ) 
     
    160160      heup_01(:,:) = gdepw(:,:,2,Kmm) 
    161161 
    162       DO_3D_11_11( 2, nksrp ) 
     162      DO_3D( 1, 1, 1, 1, 2, nksrp ) 
    163163        IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >=  zqsr100(ji,jj) )  THEN 
    164164           neln(ji,jj) = jk+1                    ! Euphotic level : 1rst T-level strictly below Euphotic layer 
     
    178178      zetmp2 (:,:)   = 0.e0 
    179179 
    180       DO_3D_11_11( 1, nksrp ) 
     180      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    181181         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    182182            zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot     (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! remineralisation 
     
    189189      zpar(:,:,:) = etot_ndcy(:,:,:)  ! diagnostic : PAR with no diurnal cycle  
    190190      ! 
    191       DO_3D_11_11( 1, nksrp ) 
     191      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    192192         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    193193            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    201201      zetmp4 (:,:)   = 0.e0 
    202202      ! 
    203       DO_3D_11_11( 1, nksrp ) 
     203      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    204204         IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    205205            zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano    (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    211211      ediatm(:,:,:) = ediat(:,:,:) 
    212212      ! 
    213       DO_3D_11_11( 1, nksrp ) 
     213      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    214214         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    215215            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    221221      IF( ln_p5z ) THEN 
    222222         ALLOCATE( zetmp5(jpi,jpj) )  ;   zetmp5 (:,:) = 0.e0 
    223          DO_3D_11_11( 1, nksrp ) 
     223         DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    224224            IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    225225               zetmp5(ji,jj)  = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    229229         epicom(:,:,:) = epico(:,:,:) 
    230230         ! 
    231          DO_3D_11_11( 1, nksrp ) 
     231         DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    232232            IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    233233               z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    302302        pe3(:,:,1) = zqsr(:,:) * EXP( -0.5 * ekr(:,:,1) ) 
    303303        ! 
    304         DO_3D_11_11( 2, nksrp ) 
     304        DO_3D( 1, 1, 1, 1, 2, nksrp ) 
    305305           pe1(ji,jj,jk) = pe1(ji,jj,jk-1) * EXP( -0.5 * ( ekb(ji,jj,jk-1) + ekb(ji,jj,jk) ) ) 
    306306           pe2(ji,jj,jk) = pe2(ji,jj,jk-1) * EXP( -0.5 * ( ekg(ji,jj,jk-1) + ekg(ji,jj,jk) ) ) 
Note: See TracChangeset for help on using the changeset viewer.