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 – 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/src/TOP/PISCES/P4Z
Files:
24 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zagg.F90

    r13286 r13295  
    6060      IF( ln_p4z ) THEN 
    6161         ! 
    62          DO_3D_11_11( 1, jpkm1 ) 
     62         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    6363            ! 
    6464            zfact = xstep * xdiss(ji,jj,jk) 
     
    102102      ELSE    ! ln_p5z 
    103103        ! 
    104          DO_3D_11_11( 1, jpkm1 ) 
     104         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    105105            ! 
    106106            zfact = xstep * xdiss(ji,jj,jk) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zbc.F90

    r13286 r13295  
    112112      IF( ll_river ) THEN 
    113113          jl = n_trc_indcbc(jpno3) 
    114           DO_2D_11_11 
     114          DO_2D( 1, 1, 1, 1 ) 
    115115             DO jk = 1, nk_rnf(ji,jj) 
    116116                zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 
     
    145145         ALLOCATE( zironice(jpi,jpj) ) 
    146146         ! 
    147          DO_2D_11_11 
     147         DO_2D( 1, 1, 1, 1 ) 
    148148            zdep    = rfact / e3t(ji,jj,1,Kmm) 
    149149            zwflux  = fmmflx(ji,jj) / 1000._wp 
     
    297297         IF(lwp) WRITE(numout,*) 
    298298         IF(lwp) WRITE(numout,*) ' Level corresponding to 50m depth ',  ik50,' ', gdept_1d(ik50+1) 
    299          DO_3D_00_00( 1, ik50 ) 
     299         DO_3D( 0, 0, 0, 0, 1, ik50 ) 
    300300            ze3t   = e3t_0(ji,jj,jk) 
    301301            zsurfc =  e1u(ji,jj) * ( 1. - umask(ji  ,jj  ,jk) )   & 
     
    313313         CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    314314         ! 
    315          DO_3D_11_11( 1, jpk ) 
     315         DO_3D( 1, 1, 1, 1, 1, jpk ) 
    316316            zexpide   = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 
    317317            zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zbio.F90

    r13286 r13295  
    7272      xdiss(:,:,:) = 1. 
    7373!!gm the use of nmld should be better here? 
    74       DO_3D_11_11( 2, jpkm1 ) 
     74      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    7575!!gm  :  use nmln  and test on jk ...  less memory acces 
    7676         IF( gdepw(ji,jj,jk+1,Kmm) > hmld(ji,jj) )   xdiss(ji,jj,jk) = 0.01 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zche.F90

    r13237 r13295  
    179179      ! 0.04°C relative to an exact computation 
    180180      ! --------------------------------------------------------------------- 
    181       DO_3D_11_11( 1, jpk ) 
     181      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    182182         zpres = gdept(ji,jj,jk,Kmm) / 1000. 
    183183         za1 = 0.04 * ( 1.0 + 0.185 * ts(ji,jj,jk,jp_tem,Kmm) + 0.035 * (salinprac(ji,jj,jk) - 35.0) ) 
     
    472472      IF( ln_timing )  CALL timing_start('ahini_for_at') 
    473473      ! 
    474       DO_3D_11_11( 1, jpk ) 
     474      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    475475      p_alkcb  = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
    476476      p_dictot = tr(ji,jj,jk,jpdic,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    570570 
    571571   ! TOTAL H+ scale: conversion factor for Htot = aphscale * Hfree 
    572    DO_3D_11_11( 1, jpk ) 
     572   DO_3D( 1, 1, 1, 1, 1, jpk ) 
    573573      IF (rmask(ji,jj,jk) == 1.) THEN 
    574574         p_alktot = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    599599 
    600600   DO jn = 1, jp_maxniter_atgen  
    601    DO_3D_11_11( 1, jpk ) 
     601   DO_3D( 1, 1, 1, 1, 1, jpk ) 
    602602      IF (rmask(ji,jj,jk) == 1.) THEN 
    603603         zfact = rhop(ji,jj,jk) / 1000. + rtrn 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zfechem.F90

    r13286 r13295  
    9292      ! Chemistry is supposed to be fast enough to be at equilibrium 
    9393      ! ------------------------------------------------------------ 
    94       DO_3D_11_11( 1, jpkm1 ) 
     94      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9595         zTL1(ji,jj,jk)  = ztotlig(ji,jj,jk) 
    9696         zkeq            = fekeq(ji,jj,jk) 
     
    107107 
    108108      zdust = 0.         ! if no dust available 
    109       DO_3D_11_11( 1, jpkm1 ) 
     109      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    110110         ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water.  
    111111         ! This parameterization assumes a simple second order kinetics (k[Particles][Fe]). 
     
    177177      IF( ln_ligand ) THEN 
    178178         ! 
    179          DO_3D_11_11( 1, jpkm1 ) 
     179         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    180180            zlam1a   = ( 0.369  * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4  * tr(ji,jj,jk,jppoc,Kbb) ) * xdiss(ji,jj,jk)    & 
    181181                &    + ( 114.   * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zflx.F90

    r13286 r13295  
    110110      IF( l_co2cpl )   satmco2(:,:) = atm_co2(:,:) 
    111111 
    112       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    113113         ! DUMMY VARIABLES FOR DIC, H+, AND BORATE 
    114114         zfact = rhop(ji,jj,1) / 1000. + rtrn 
     
    126126      ! ------------------------------------------- 
    127127 
    128       DO_2D_11_11 
     128      DO_2D( 1, 1, 1, 1 ) 
    129129         ztc  = MIN( 35., ts(ji,jj,1,jp_tem,Kmm) ) 
    130130         ztc2 = ztc * ztc 
     
    145145 
    146146 
    147       DO_2D_11_11 
     147      DO_2D( 1, 1, 1, 1 ) 
    148148         ztkel = tempis(ji,jj,1) + 273.15 
    149149         zsal  = salinprac(ji,jj,1) + ( 1.- tmask(ji,jj,1) ) * 35. 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zligand.F90

    r13286 r13295  
    5252      IF( ln_timing )   CALL timing_start('p4z_ligand') 
    5353      ! 
    54       DO_3D_11_11( 1, jpkm1 ) 
     54      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    5555         ! 
    5656         ! ------------------------------------------------------------------ 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zlim.F90

    r12377 r13295  
    9898      IF( ln_timing )   CALL timing_start('p4z_lim') 
    9999      ! 
    100       DO_3D_11_11( 1, jpkm1 ) 
     100      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    101101          
    102102         ! Tuning of the iron concentration to a minimum level that is set to the detection limit 
     
    173173      ! Compute the fraction of nanophytoplankton that is made of calcifiers 
    174174      ! -------------------------------------------------------------------- 
    175       DO_3D_11_11( 1, jpkm1 ) 
     175      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    176176         zlim1 =  ( tr(ji,jj,jk,jpno3,Kbb) * concnnh4 + tr(ji,jj,jk,jpnh4,Kbb) * concnno3 )    & 
    177177            &   / ( concnno3 * concnnh4 + concnnh4 * tr(ji,jj,jk,jpno3,Kbb) + concnno3 * tr(ji,jj,jk,jpnh4,Kbb) )  
     
    193193      END_3D 
    194194      ! 
    195       DO_3D_11_11( 1, jpkm1 ) 
     195      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    196196         ! denitrification factor computed from O2 levels 
    197197         nitrfac(ji,jj,jk) = MAX(  0.e0, 0.4 * ( 6.e-6  - tr(ji,jj,jk,jpoxy,Kbb) )    & 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zlys.F90

    r13286 r13295  
    7575      CALL solve_at_general( zhinit, zhi, Kbb ) 
    7676 
    77       DO_3D_11_11( 1, jpkm1 ) 
     77      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    7878         zco3(ji,jj,jk) = tr(ji,jj,jk,jpdic,Kbb) * ak13(ji,jj,jk) * ak23(ji,jj,jk) / (zhi(ji,jj,jk)**2   & 
    7979            &             + ak13(ji,jj,jk) * zhi(ji,jj,jk) + ak13(ji,jj,jk) * ak23(ji,jj,jk) + rtrn ) 
     
    8787      !     --------------------------------------------------------- 
    8888 
    89       DO_3D_11_11( 1, jpkm1 ) 
     89      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9090 
    9191         ! DEVIATION OF [CO3--] FROM SATURATION VALUE 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zmeso.F90

    r13286 r13295  
    8181      IF( ln_timing )   CALL timing_start('p4z_meso') 
    8282      ! 
    83       DO_3D_11_11( 1, jpkm1 ) 
     83      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8484         zcompam   = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 ) 
    8585         zfact     = xstep * tgfunc2(ji,jj,jk) * zcompam 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zmicro.F90

    r13286 r13295  
    7979      IF( ln_timing )   CALL timing_start('p4z_micro') 
    8080      ! 
    81       DO_3D_11_11( 1, jpkm1 ) 
     81      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8282         zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 
    8383         zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zmort.F90

    r13286 r13295  
    7777      ! 
    7878      prodcal(:,:,:) = 0._wp   ! calcite production variable set to zero 
    79       DO_3D_11_11( 1, jpkm1 ) 
     79      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8080         zcompaph = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - 1e-8 ), 0.e0 ) 
    8181         !     When highly limited by macronutrients, very small cells  
     
    152152      !     ------------------------------------------------------------ 
    153153 
    154       DO_3D_11_11( 1, jpkm1 ) 
     154      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    155155 
    156156         zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1e-9), 0. ) 
  • 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) ) ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zpoc.F90

    r13286 r13295  
    107107     ! ----------------------------------------------------------------------- 
    108108     ztremint(:,:,:) = zremigoc(:,:,:) 
    109      DO_3D_11_11( 2, jpkm1 ) 
     109     DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    110110        IF (tmask(ji,jj,jk) == 1.) THEN 
    111111          zdep = hmld(ji,jj) 
     
    192192 
    193193      IF( ln_p4z ) THEN 
    194          DO_3D_11_11( 1, jpkm1 ) 
     194         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    195195            ! POC disaggregation by turbulence and bacterial activity.  
    196196            ! -------------------------------------------------------- 
     
    212212         END_3D 
    213213      ELSE 
    214          DO_3D_11_11( 1, jpkm1 ) 
     214         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    215215             ! POC disaggregation by turbulence and bacterial activity.  
    216216            ! -------------------------------------------------------- 
     
    260260     ! ---------------------------------------------------------------- 
    261261     !  
    262      DO_3D_11_11( 1, jpkm1 ) 
     262     DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    263263        zdep = hmld(ji,jj) 
    264264        IF (tmask(ji,jj,jk) == 1. .AND. gdept(ji,jj,jk,Kmm) <= zdep ) THEN 
     
    275275     ! --------------------------------------------------------------------- 
    276276     ztremint(:,:,:) = zremipoc(:,:,:) 
    277      DO_3D_11_11( 1, jpkm1 ) 
     277     DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    278278        IF (tmask(ji,jj,jk) == 1.) THEN 
    279279          zdep = hmld(ji,jj) 
     
    310310     ! ----------------------------------------------------------------------- 
    311311     ! 
    312      DO_3D_11_11( 2, jpkm1 ) 
     312     DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    313313        IF (tmask(ji,jj,jk) == 1.) THEN 
    314314          zdep = hmld(ji,jj) 
     
    384384 
    385385     IF( ln_p4z ) THEN 
    386          DO_3D_11_11( 1, jpkm1 ) 
     386         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    387387            IF (tmask(ji,jj,jk) == 1.) THEN 
    388388              ! POC disaggregation by turbulence and bacterial activity.  
     
    401401         END_3D 
    402402     ELSE 
    403        DO_3D_11_11( 1, jpkm1 ) 
     403       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    404404          ! POC disaggregation by turbulence and bacterial activity.  
    405405          ! -------------------------------------------------------- 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zprod.F90

    r13286 r13295  
    110110      ! day length in hours 
    111111      zstrn(:,:) = 0. 
    112       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    113113         zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 
    114114         zargu = MAX( -1., MIN(  1., zargu ) ) 
     
    117117 
    118118      ! Impact of the day duration and light intermittency on phytoplankton growth 
    119       DO_3D_11_11( 1, jpkm1 ) 
     119      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    120120         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    121121            zval = MAX( 1., zstrn(ji,jj) ) 
     
    135135 
    136136      ! Computation of the P-I slope for nanos and diatoms 
    137       DO_3D_11_11( 1, jpkm1 ) 
     137      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    138138         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    139139            ztn         = MAX( 0., ts(ji,jj,jk,jp_tem,Kmm) - 15. ) 
     
    150150      END_3D 
    151151 
    152       DO_3D_11_11( 1, jpkm1 ) 
     152      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    153153         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    154154             ! Computation of production function for Carbon 
     
    171171      !  Computation of a proxy of the N/C ratio 
    172172      !  --------------------------------------- 
    173       DO_3D_11_11( 1, jpkm1 ) 
     173      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    174174          zval = MIN( xnanopo4(ji,jj,jk), ( xnanonh4(ji,jj,jk) + xnanono3(ji,jj,jk) ) )   & 
    175175          &      * zprmaxn(ji,jj,jk) / ( zprbio(ji,jj,jk) + rtrn ) 
     
    181181 
    182182 
    183       DO_3D_11_11( 1, jpkm1 ) 
     183      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    184184 
    185185          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    205205      !  Sea-ice effect on production 
    206206 
    207       DO_3D_11_11( 1, jpkm1 ) 
     207      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    208208         zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
    209209         zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
     
    211211 
    212212      ! Computation of the various production terms  
    213       DO_3D_11_11( 1, jpkm1 ) 
     213      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    214214         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    215215            !  production terms for nanophyto. (C) 
     
    237237 
    238238      ! Computation of the chlorophyll production terms 
    239       DO_3D_11_11( 1, jpkm1 ) 
     239      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    240240         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    241241            !  production terms for nanophyto. ( chlorophyll ) 
     
    260260 
    261261      !   Update the arrays TRA which contain the biological sources and sinks 
    262       DO_3D_11_11( 1, jpkm1 ) 
     262      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    263263        IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    264264           zproreg  = zprorcan(ji,jj,jk) - zpronewn(ji,jj,jk) 
     
    288288     IF( ln_ligand ) THEN 
    289289         zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp 
    290          DO_3D_11_11( 1, jpkm1 ) 
     290         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    291291           IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    292292              zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zrem.F90

    r13286 r13295  
    8989      ! that was modeling explicitely bacteria 
    9090      ! ------------------------------------------------------- 
    91       DO_3D_11_11( 1, jpkm1 ) 
     91      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9292         zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 
    9393         IF( gdept(ji,jj,jk,Kmm) < zdep ) THEN 
     
    103103 
    104104      IF( ln_p4z ) THEN 
    105          DO_3D_11_11( 1, jpkm1 ) 
     105         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    106106            ! DOC ammonification. Depends on depth, phytoplankton biomass 
    107107            ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
     
    134134         END_3D 
    135135      ELSE 
    136          DO_3D_11_11( 1, jpkm1 ) 
     136         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    137137            ! DOC ammonification. Depends on depth, phytoplankton biomass 
    138138            ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
     
    178178 
    179179 
    180       DO_3D_11_11( 1, jpkm1 ) 
     180      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    181181         ! NH4 nitrification to NO3. Ceased for oxygen concentrations 
    182182         ! below 2 umol/L. Inhibited at strong light  
     
    200200       ENDIF 
    201201 
    202       DO_3D_11_11( 1, jpkm1 ) 
     202      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    203203 
    204204         ! Bacterial uptake of iron. No iron is available in DOC. So 
     
    226226      ! --------------------------------------------------------------- 
    227227 
    228       DO_3D_11_11( 1, jpkm1 ) 
     228      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    229229         zdep     = MAX( hmld(ji,jj), heup_01(ji,jj) ) 
    230230         zsatur   = MAX( rtrn, ( sio3eq(ji,jj,jk) - tr(ji,jj,jk,jpsil,Kbb) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zsed.F90

    r13286 r13295  
    9494         ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 
    9595         ! -------------------------------------------------------------------- 
    96          DO_2D_11_11 
     96         DO_2D( 1, 1, 1, 1 ) 
    9797            ikt  = mbkt(ji,jj) 
    9898            zdep = e3t(ji,jj,ikt,Kmm) / xstep 
     
    104104         ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 
    105105         ! ------------------------------------------------------- 
    106          DO_2D_11_11 
     106         DO_2D( 1, 1, 1, 1 ) 
    107107           IF( tmask(ji,jj,1) == 1 ) THEN 
    108108              ikt = mbkt(ji,jj) 
     
    130130      IF( .NOT.lk_sed )  zrivsil = 1._wp - sedsilfrac 
    131131 
    132       DO_2D_11_11 
     132      DO_2D( 1, 1, 1, 1 ) 
    133133         ikt  = mbkt(ji,jj) 
    134134         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    142142      ! 
    143143      IF( .NOT.lk_sed ) THEN 
    144          DO_2D_11_11 
     144         DO_2D( 1, 1, 1, 1 ) 
    145145            ikt  = mbkt(ji,jj) 
    146146            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    160160      ENDIF 
    161161      ! 
    162       DO_2D_11_11 
     162      DO_2D( 1, 1, 1, 1 ) 
    163163         ikt  = mbkt(ji,jj) 
    164164         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    172172      ! 
    173173      IF( ln_p5z ) THEN 
    174          DO_2D_11_11 
     174         DO_2D( 1, 1, 1, 1 ) 
    175175            ikt  = mbkt(ji,jj) 
    176176            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    187187         ! The 0.5 factor in zpdenit is to avoid negative NO3 concentration after 
    188188         ! denitrification in the sediments. Not very clever, but simpliest option. 
    189          DO_2D_11_11 
     189         DO_2D( 1, 1, 1, 1 ) 
    190190            ikt  = mbkt(ji,jj) 
    191191            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    224224      ENDDO 
    225225      IF( ln_p4z ) THEN 
    226          DO_3D_11_11( 1, jpkm1 ) 
     226         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    227227            !                      ! Potential nitrogen fixation dependant on temperature and iron 
    228228            ztemp = ts(ji,jj,jk,jp_tem,Kmm) 
     
    240240         END_3D 
    241241      ELSE       ! p5z 
    242          DO_3D_11_11( 1, jpkm1 ) 
     242         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    243243            !                      ! Potential nitrogen fixation dependant on temperature and iron 
    244244            ztemp = ts(ji,jj,jk,jp_tem,Kmm) 
     
    261261      ! ---------------------------------------- 
    262262      IF( ln_p4z ) THEN 
    263          DO_3D_11_11( 1, jpkm1 ) 
     263         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    264264            zfact = nitrpot(ji,jj,jk) * nitrfix 
    265265            tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 
     
    278278         END_3D 
    279279      ELSE    ! p5z 
    280          DO_3D_11_11( 1, jpkm1 ) 
     280         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    281281            zfact = nitrpot(ji,jj,jk) * nitrfix 
    282282            tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zsink.F90

    r13286 r13295  
    8181      !    by data and from the coagulation theory 
    8282      !    ----------------------------------------------------------- 
    83       DO_3D_11_11( 1, jpkm1 ) 
     83      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8484         zmax  = MAX( heup_01(ji,jj), hmld(ji,jj) ) 
    8585         zfact = MAX( 0., gdepw(ji,jj,jk+1,Kmm) - zmax ) / wsbio2scale 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zsms.F90

    r13286 r13295  
    133133         xnegtr(:,:,:) = 1.e0 
    134134         DO jn = jp_pcs0, jp_pcs1 
    135             DO_3D_11_11( 1, jpk ) 
     135            DO_3D( 1, 1, 1, 1, 1, jpk ) 
    136136               IF( ( tr(ji,jj,jk,jn,Kbb) + tr(ji,jj,jk,jn,Krhs) ) < 0.e0 ) THEN 
    137137                  ztra             = ABS( tr(ji,jj,jk,jn,Kbb) ) / ( ABS( tr(ji,jj,jk,jn,Krhs) ) + rtrn ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zlim.F90

    r12377 r13295  
    131131      zratchl = 6.0 
    132132      ! 
    133       DO_3D_11_11( 1, jpkm1 ) 
     133      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    134134         !  
    135135         ! Tuning of the iron concentration to a minimum level that is set to the detection limit 
     
    318318      ! phytoplankton (see Daines et al., 2013).  
    319319      ! -------------------------------------------------------------------------------------------------- 
    320       DO_3D_11_11( 1, jpkm1 ) 
     320      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    321321         ! Size estimation of nanophytoplankton 
    322322         ! ------------------------------------ 
     
    367367      ! Compute the fraction of nanophytoplankton that is made of calcifiers 
    368368      ! -------------------------------------------------------------------- 
    369       DO_3D_11_11( 1, jpkm1 ) 
     369      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    370370         zlim1 =  tr(ji,jj,jk,jpnh4,Kbb) / ( tr(ji,jj,jk,jpnh4,Kbb) + concnnh4 ) + tr(ji,jj,jk,jpno3,Kbb)    & 
    371371         &        / ( tr(ji,jj,jk,jpno3,Kbb) + concnno3 ) * ( 1.0 - tr(ji,jj,jk,jpnh4,Kbb)   & 
     
    385385      END_3D 
    386386      ! 
    387       DO_3D_11_11( 1, jpkm1 ) 
     387      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    388388         ! denitrification factor computed from O2 levels 
    389389         nitrfac(ji,jj,jk) = MAX(  0.e0, 0.4 * ( 6.e-6  - tr(ji,jj,jk,jpoxy,Kbb) )    & 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zmeso.F90

    r13286 r13295  
    9898      IF ( bmetexc2 ) zmetexcess = 1.0 
    9999 
    100       DO_3D_11_11( 1, jpkm1 ) 
     100      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    101101         zcompam   = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 ) 
    102102         zfact     = xstep * tgfunc2(ji,jj,jk) * zcompam 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zmicro.F90

    r13286 r13295  
    9696      IF ( bmetexc ) zmetexcess = 1.0 
    9797      ! 
    98       DO_3D_11_11( 1, jpkm1 ) 
     98      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9999         zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 
    100100         zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zmort.F90

    r13286 r13295  
    8282      ! 
    8383      prodcal(:,:,:) = 0.  !: calcite production variable set to zero 
    84       DO_3D_11_11( 1, jpkm1 ) 
     84      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8585         zcompaph = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - 1e-9 ), 0.e0 ) 
    8686         !   Squared mortality of Phyto similar to a sedimentation term during 
     
    148148      IF( ln_timing )   CALL timing_start('p5z_pico') 
    149149      ! 
    150       DO_3D_11_11( 1, jpkm1 ) 
     150      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    151151         zcompaph = MAX( ( tr(ji,jj,jk,jppic,Kbb) - 1e-9 ), 0.e0 ) 
    152152         !  Squared mortality of Phyto similar to a sedimentation term during 
     
    207207      ! 
    208208 
    209       DO_3D_11_11( 1, jpkm1 ) 
     209      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    210210 
    211211         zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1E-9), 0. ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zprod.F90

    r13286 r13295  
    125125      ! day length in hours 
    126126      zstrn(:,:) = 0. 
    127       DO_2D_11_11 
     127      DO_2D( 1, 1, 1, 1 ) 
    128128         zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 
    129129         zargu = MAX( -1., MIN(  1., zargu ) ) 
     
    132132 
    133133         ! Impact of the day duration on phytoplankton growth 
    134       DO_3D_11_11( 1, jpkm1 ) 
     134      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    135135         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    136136            zval = MAX( 1., zstrn(ji,jj) ) 
     
    152152      WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 
    153153 
    154       DO_3D_11_11( 1, jpkm1 ) 
     154      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    155155         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    156156            ! Computation of the P-I slope for nanos and diatoms 
     
    186186      END_3D 
    187187 
    188       DO_3D_11_11( 1, jpkm1 ) 
     188      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    189189 
    190190          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    208208 
    209209      !  Sea-ice effect on production                                                                                
    210       DO_3D_11_11( 1, jpkm1 ) 
     210      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    211211         zprbio(ji,jj,jk)  = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
    212212         zprpic(ji,jj,jk)  = zprpic(ji,jj,jk) * ( 1. - fr_i(ji,jj) )  
     
    216216 
    217217      ! Computation of the various production terms of nanophytoplankton  
    218       DO_3D_11_11( 1, jpkm1 ) 
     218      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    219219         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    220220            !  production terms for nanophyto. 
     
    249249 
    250250      ! Computation of the various production terms of picophytoplankton  
    251       DO_3D_11_11( 1, jpkm1 ) 
     251      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    252252         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    253253            !  production terms for picophyto. 
     
    282282 
    283283      ! Computation of the various production terms of diatoms 
    284       DO_3D_11_11( 1, jpkm1 ) 
     284      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    285285         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    286286            !  production terms for diatomees 
     
    316316      END_3D 
    317317 
    318       DO_3D_11_11( 1, jpkm1 ) 
     318      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    319319         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    320320               !  production terms for nanophyto. ( chlorophyll ) 
     
    347347 
    348348      !   Update the arrays TRA which contain the biological sources and sinks 
    349       DO_3D_11_11( 1, jpkm1 ) 
     349      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    350350        zprontot = zpronewn(ji,jj,jk) + zproregn(ji,jj,jk) 
    351351        zproptot = zpronewp(ji,jj,jk) + zproregp(ji,jj,jk) 
     
    410410     IF( ln_ligand ) THEN 
    411411         zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp              
    412          DO_3D_11_11( 1, jpkm1 ) 
     412         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    413413           zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) + excretp * zprorcap(ji,jj,jk) 
    414414           zfeup    = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) + texcretp * zprofep(ji,jj,jk) 
Note: See TracChangeset for help on using the changeset viewer.