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 15090 – NEMO

Changeset 15090


Ignore:
Timestamp:
2021-07-06T16:25:18+02:00 (3 years ago)
Author:
cetlod
Message:

trunk : minor changes in PISCES to make it work in debug mode when nn_hls=2 ( still not working when enabling tiles )

Location:
NEMO/trunk/src
Files:
41 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ZDF/zdfmxl.F90

    r14834 r15090  
    144144      ! w-level of the turbocline and mixing layer (iom_use) 
    145145      imld(:,:) = mbkt(A2D(nn_hls)) + 1                ! Initialization to the number of w ocean point 
    146       DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 )   ! from the bottom to nlb10 
     146      DO_3DS( nn_hls, nn_hls, nn_hls, nn_hls, jpkm1, nlb10, -1 )   ! from the bottom to nlb10 
    147147         IF( avt (ji,jj,jk) < avt_c * wmask(ji,jj,jk) )   imld(ji,jj) = jk      ! Turbocline 
    148148      END_3D 
    149149      ! depth of the mixing layer 
    150       DO_2D_OVR( 1, 1, 1, 1 ) 
     150      DO_2D_OVR( nn_hls, nn_hls, nn_hls, nn_hls ) 
    151151         iik = imld(ji,jj) 
    152152         hmld (ji,jj) = gdepw(ji,jj,iik  ,Kmm) * ssmask(ji,jj)    ! Turbocline depth 
  • NEMO/trunk/src/OFF/dtadyn.F90

    r15023 r15090  
    419419      gdepw(:,:,1,Kmm) = 0.0_wp 
    420420      ! 
    421       DO_3D( 1, 1, 1, 1, 2, jpk ) 
     421      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, jpk ) 
    422422         zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk)) 
    423423         gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 
     
    503503         ! 
    504504         nk_rnf(:,:) = 0                               ! set the number of level over which river runoffs are applied 
    505          DO_2D( 1, 1, 1, 1 ) 
     505         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    506506            IF( h_rnf(ji,jj) > 0._wp ) THEN 
    507507               jk = 2 
     
    517517         END_2D 
    518518         ! 
    519          DO_2D( 1, 1, 1, 1 )                           ! set the associated depth 
     519         ! set the associated depth 
     520         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    520521            h_rnf(ji,jj) = 0._wp 
    521522            DO jk = 1, nk_rnf(ji,jj) 
     
    552553      !!---------------------------------------------------------------------- 
    553554      ! 
    554       DO_2D( 1, 1, 1, 1 )               ! update the depth over which runoffs are distributed 
     555      !  update the depth over which runoffs are distributed 
     556      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    555557         h_rnf(ji,jj) = 0._wp 
    556558         DO jk = 1, nk_rnf(ji,jj)                           ! recalculates h_rnf to be the depth in metres 
  • NEMO/trunk/src/TOP/C14/trcsms_c14.F90

    r13970 r15090  
    8181      ! ------------------------------------------------------------------- 
    8282 
    83       DO_2D( 1, 1, 1, 1 ) 
     83      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    8484         IF( tmask(ji,jj,1) >  0. ) THEN 
    8585            ! 
     
    128128      ! 
    129129      ! Add the surface flux to the trend of jp_c14 
    130       DO_2D( 1, 1, 1, 1 ) 
     130      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    131131         tr(ji,jj,1,jp_c14,Krhs) = tr(ji,jj,1,jp_c14,Krhs) + qtr_c14(ji,jj) / e3t(ji,jj,1,Kmm)  
    132132      END_2D 
    133133      ! 
    134134      ! Computation of decay effects on jp_c14 
    135       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     135      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    136136         ! 
    137137         tr(ji,jj,jk,jp_c14,Krhs) = tr(ji,jj,jk,jp_c14,Krhs) - rlam14 * tr(ji,jj,jk,jp_c14,Kbb) * tmask(ji,jj,jk)  
  • NEMO/trunk/src/TOP/C14/trcwri_c14.F90

    r14239 r15090  
    6060         zz3d(:,:,:) = 0._wp 
    6161         ! 
    62          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     62         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    6363            IF( tmask(ji,jj,jk) > 0._wp) THEN 
    6464               z3d (ji,jj,jk) = tr(ji,jj,jk,jp_c14,Kmm) 
     
    7171         z2d(:,:) =0._wp 
    7272         jk = 1 
    73          DO_2D( 1, 1, 1, 1 ) 
     73         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    7474            ztemp = zres(ji,jj) / c14sbc(ji,jj) 
    7575            IF( ztemp > 0._wp .AND. tmask(ji,jj,jk) > 0._wp ) z2d(ji,jj) = LOG( ztemp ) 
  • NEMO/trunk/src/TOP/CFC/trcini_cfc.F90

    r13295 r15090  
    132132      !--------------------------------------------------------------------------------------- 
    133133      zyd = ylatn - ylats       
    134       DO_2D( 1, 1, 1, 1 ) 
     134      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    135135         IF(     gphit(ji,jj) >= ylatn ) THEN   ;   xphem(ji,jj) = 1.e0 
    136136         ELSEIF( gphit(ji,jj) <= ylats ) THEN   ;   xphem(ji,jj) = 0.e0 
  • NEMO/trunk/src/TOP/CFC/trcsms_cfc.F90

    r13497 r15090  
    126126          
    127127         !                                                         !------------! 
    128          DO_2D( 1, 1, 1, 1 )                                       !  i-j loop  ! 
     128         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                   !  i-j loop  ! 
    129129            !                                                      !------------! 
    130130            ! space interpolation 
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zexp.F90

    r13295 r15090  
    121121      ELSE 
    122122        ! 
    123         DO_2D( 1, 1, 1, 1 ) 
     123        DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    124124           zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj)      ! time laplacian on tracers 
    125125           sedpocb(ji,jj) = sedpocn(ji,jj) + rn_atfp * zsedpocd                     ! sedpocb <-- filtered sedpocn 
     
    174174      zdm0 = 0._wp 
    175175      zrro = 1._wp 
    176       DO_3D( 1, 1, 1, 1, jpkb, jpkm1 ) 
     176      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, jpkb, jpkm1 ) 
    177177         zfluo = ( gdepw(ji,jj,jk  ,Kmm) / gdepw(ji,jj,jpkb,Kmm) )**xhr 
    178178         zfluu = ( gdepw(ji,jj,jk+1,Kmm) / gdepw(ji,jj,jpkb,Kmm) )**xhr 
     
    191191      dminl(:,:)   = 0._wp 
    192192      dmin3(:,:,:) = zdm0 
    193       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     193      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    194194         IF( tmask(ji,jj,jk) == 0._wp ) THEN 
    195195            dminl(ji,jj) = dminl(ji,jj) + dmin3(ji,jj,jk) 
     
    198198      END_3D 
    199199 
    200       DO_2D( 1, 1, 1, 1 ) 
     200      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    201201         IF( tmask(ji,jj,1) == 0 )   dmin3(ji,jj,1) = 0._wp 
    202202      END_2D 
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zopt.F90

    r13497 r15090  
    9595      !                                          ! Photosynthetically Available Radiation (PAR) 
    9696      zcoef = 12 * redf / rcchl / rpig           ! -------------------------------------- 
    97       DO_3D( 1, 1, 1, 1, 2, jpk )                     ! local par at w-levels 
     97      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, jpk ) 
    9898         zpig = LOG(  MAX( TINY(0.), tr(ji,jj,jk-1,jpphy,Kmm) ) * zcoef  ) 
    9999         zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
     
    102102         zparg(ji,jj,jk) = zparg(ji,jj,jk-1) * EXP( -zkg * e3t(ji,jj,jk-1,Kmm) ) 
    103103      END_3D 
    104       DO_3D( 1, 1, 1, 1, 1, jpkm1 )                  ! mean par at t-levels 
     104      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) ! mean par at t-levels 
    105105         zpig = LOG(  MAX( TINY(0.), tr(ji,jj,jk,jpphy,Kmm) ) * zcoef  ) 
    106106         zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
     
    114114      !                                          ! -------------- 
    115115      neln(:,:) = 1                                   ! euphotic layer level 
    116       DO_3D( 1, 1, 1, 1, 1, jpkm1 )                   ! (i.e. 1rst T-level strictly below EL bottom) 
     116      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 )  ! (i.e. 1rst T-level strictly below EL bottom) 
    117117        IF( etot(ji,jj,jk) >= zpar100(ji,jj) )   neln(ji,jj) = jk + 1  
    118118      END_3D 
    119119      !                                               ! Euphotic layer depth 
    120       DO_2D( 1, 1, 1, 1 ) 
     120      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )  
    121121         heup(ji,jj) = gdepw(ji,jj,neln(ji,jj),Kmm) 
    122122      END_2D 
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zsed.F90

    r13295 r15090  
    8989 
    9090      ! tracer flux divergence at t-point added to the general trend 
    91       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     91      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 )  
    9292         ztra(ji,jj,jk)  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 
    9393         tr(ji,jj,jk,jpdet,Krhs) = tr(ji,jj,jk,jpdet,Krhs) + ztra(ji,jj,jk)  
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zagg.F90

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

    r13295 r15090  
    112112      IF( ll_river ) THEN 
    113113          jl = n_trc_indcbc(jpno3) 
    114           DO_2D( 1, 1, 1, 1 ) 
     114          DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    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( 1, 1, 1, 1 ) 
     147         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    148148            zdep    = rfact / e3t(ji,jj,1,Kmm) 
    149149            zwflux  = fmmflx(ji,jj) / 1000._wp 
     
    313313         CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    314314         ! 
    315          DO_3D( 1, 1, 1, 1, 1, jpk ) 
     315         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    7272      xdiss(:,:,:) = 1. 
    7373!!gm the use of nmld should be better here? 
    74       DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
     74      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r14086 r15090  
    179179      ! 0.04°C relative to an exact computation 
    180180      ! --------------------------------------------------------------------- 
    181       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     181      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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) ) 
     
    188188      ! CHEMICAL CONSTANTS - SURFACE LAYER 
    189189      ! ---------------------------------- 
    190       DO_2D( 1, 1, 1, 1 ) 
     190      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    191191         !                             ! SET ABSOLUTE TEMPERATURE 
    192192         ztkel = tempis(ji,jj,1) + 273.15 
     
    204204      ! OXYGEN SOLUBILITY - DEEP OCEAN 
    205205      ! ------------------------------- 
    206       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     206      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    207207         ztkel = tempis(ji,jj,jk) + 273.15 
    208208         zsal  = salinprac(ji,jj,jk) + ( 1.- tmask(ji,jj,jk) ) * 35. 
     
    223223      ! CHEMICAL CONSTANTS - DEEP OCEAN 
    224224      ! ------------------------------- 
    225       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     225      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    226226          ! SET PRESSION ACCORDING TO SAUNDER (1980) 
    227227          zplat   = SIN ( ABS(gphit(ji,jj)*3.141592654/180.) ) 
     
    451451      IF( ln_timing )  CALL timing_start('ahini_for_at') 
    452452      ! 
    453       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     453      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    454454      p_alkcb  = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
    455455      p_dictot = tr(ji,jj,jk,jpdic,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    549549 
    550550   ! TOTAL H+ scale: conversion factor for Htot = aphscale * Hfree 
    551    DO_3D( 1, 1, 1, 1, 1, jpk ) 
     551   DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    552552      IF (rmask(ji,jj,jk) == 1.) THEN 
    553553         p_alktot = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    578578 
    579579   DO jn = 1, jp_maxniter_atgen  
    580    DO_3D( 1, 1, 1, 1, 1, jpk ) 
     580      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    581581      IF (rmask(ji,jj,jk) == 1.) THEN 
    582582         zfact = rhop(ji,jj,jk) / 1000. + rtrn 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zfechem.F90

    r13472 r15090  
    9292      ! Chemistry is supposed to be fast enough to be at equilibrium 
    9393      ! ------------------------------------------------------------ 
    94       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     94      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     109      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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]). 
     
    173173      IF( ln_ligand ) THEN 
    174174         ! 
    175          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     175         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    176176            zlam1a   = ( 0.369  * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4  * tr(ji,jj,jk,jppoc,Kbb) ) * xdiss(ji,jj,jk)    & 
    177177                &    + ( 114.   * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zflx.F90

    r13295 r15090  
    110110      IF( l_co2cpl )   satmco2(:,:) = atm_co2(:,:) 
    111111 
    112       DO_2D( 1, 1, 1, 1 ) 
     112      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    113113         ! DUMMY VARIABLES FOR DIC, H+, AND BORATE 
    114114         zfact = rhop(ji,jj,1) / 1000. + rtrn 
     
    126126      ! ------------------------------------------- 
    127127 
    128       DO_2D( 1, 1, 1, 1 ) 
     128      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    129129         ztc  = MIN( 35., ts(ji,jj,1,jp_tem,Kmm) ) 
    130130         ztc2 = ztc * ztc 
     
    145145 
    146146 
    147       DO_2D( 1, 1, 1, 1 ) 
     147      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    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/p4zint.F90

    r14086 r15090  
    5050      ! Computation of the silicon dependant half saturation  constant for silica uptake 
    5151      ! --------------------------------------------------- 
    52       DO_2D( 1, 1, 1, 1 ) 
     52      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    5353         zvar = tr(ji,jj,1,jpsil,Kbb) * tr(ji,jj,1,jpsil,Kbb) 
    5454         xksimax(ji,jj) = MAX( xksimax(ji,jj), ( 1.+ 7.* zvar / ( xksilim * xksilim + zvar ) ) * 1e-6 ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zligand.F90

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

    r13434 r15090  
    9898      IF( ln_timing )   CALL timing_start('p4z_lim') 
    9999      ! 
    100       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     100      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     175      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     195      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    7474 
    7575      CALL solve_at_general( zhinit, zhi, Kbb ) 
    76  
    77       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     76      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    7877         zco3(ji,jj,jk) = tr(ji,jj,jk,jpdic,Kbb) * ak13(ji,jj,jk) * ak23(ji,jj,jk) / (zhi(ji,jj,jk)**2   & 
    7978            &             + ak13(ji,jj,jk) * zhi(ji,jj,jk) + ak13(ji,jj,jk) * ak23(ji,jj,jk) + rtrn ) 
     
    8786      !     --------------------------------------------------------- 
    8887 
    89       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     88      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    9089 
    9190         ! DEVIATION OF [CO3--] FROM SATURATION VALUE 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zmeso.F90

    r13295 r15090  
    8181      IF( ln_timing )   CALL timing_start('p4z_meso') 
    8282      ! 
    83       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     83      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    7979      IF( ln_timing )   CALL timing_start('p4z_micro') 
    8080      ! 
    81       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     81      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    7777      ! 
    7878      prodcal(:,:,:) = 0._wp   ! calcite production variable set to zero 
    79       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     79      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     154      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    155155 
    156156         zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1e-9), 0. ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zopt.F90

    r14213 r15090  
    8585      IF( ln_p5z )   zchl3d(:,:,:) = zchl3d(:,:,:)    + tr(:,:,:,jppch,Kbb) 
    8686      ! 
    87       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     87      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    8888         zchl = ( zchl3d(ji,jj,jk) + rtrn ) * 1.e6 
    8989         zchl = MIN(  10. , MAX( 0.05, zchl )  ) 
     
    156156      heup_01(:,:) = gdepw(:,:,2,Kmm) 
    157157 
    158       DO_3D( 1, 1, 1, 1, 2, nksr ) 
     158      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, nksr) 
    159159        IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >=  zqsr100(ji,jj) )  THEN 
    160160           neln(ji,jj) = jk+1                    ! Euphotic level : 1rst T-level strictly below Euphotic layer 
     
    174174      zetmp2 (:,:)   = 0.e0 
    175175 
    176       DO_3D( 1, 1, 1, 1, 1, nksr ) 
     176      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, nksr) 
    177177         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    178178            zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot     (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! remineralisation 
     
    185185      zpar(:,:,:) = etot_ndcy(:,:,:)  ! diagnostic : PAR with no diurnal cycle  
    186186      ! 
    187       DO_3D( 1, 1, 1, 1, 1, nksr ) 
     187      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, nksr) 
    188188         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    189189            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    197197      zetmp4 (:,:)   = 0.e0 
    198198      ! 
    199       DO_3D( 1, 1, 1, 1, 1, nksr ) 
     199      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, nksr) 
    200200         IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    201201            zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano    (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    207207      ediatm(:,:,:) = ediat(:,:,:) 
    208208      ! 
    209       DO_3D( 1, 1, 1, 1, 1, nksr ) 
     209      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, nksr) 
    210210         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    211211            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    217217      IF( ln_p5z ) THEN 
    218218         ALLOCATE( zetmp5(jpi,jpj) )  ;   zetmp5 (:,:) = 0.e0 
    219          DO_3D( 1, 1, 1, 1, 1, nksr ) 
     219         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, nksr) 
    220220            IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    221221               zetmp5(ji,jj)  = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    225225         epicom(:,:,:) = epico(:,:,:) 
    226226         ! 
    227          DO_3D( 1, 1, 1, 1, 1, nksr ) 
     227         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, nksr) 
    228228            IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    229229               z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    300300        pe3(:,:,1) = zqsr(:,:) * EXP( -0.5 * ekr(:,:,1) ) 
    301301        ! 
    302         DO_3D( 1, 1, 1, 1, 2, nksr ) 
     302        DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, nksr) 
    303303           pe1(ji,jj,jk) = pe1(ji,jj,jk-1) * EXP( -0.5 * ( ekb(ji,jj,jk-1) + ekb(ji,jj,jk) ) ) 
    304304           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

    r13295 r15090  
    107107     ! ----------------------------------------------------------------------- 
    108108     ztremint(:,:,:) = zremigoc(:,:,:) 
    109      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
     109     DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    110110        IF (tmask(ji,jj,jk) == 1.) THEN 
    111111          zdep = hmld(ji,jj) 
     
    192192 
    193193      IF( ln_p4z ) THEN 
    194          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     194         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    195195            ! POC disaggregation by turbulence and bacterial activity.  
    196196            ! -------------------------------------------------------- 
     
    212212         END_3D 
    213213      ELSE 
    214          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     214         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    215215             ! POC disaggregation by turbulence and bacterial activity.  
    216216            ! -------------------------------------------------------- 
     
    260260     ! ---------------------------------------------------------------- 
    261261     !  
    262      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     262     DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     277     DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    278278        IF (tmask(ji,jj,jk) == 1.) THEN 
    279279          zdep = hmld(ji,jj) 
     
    310310     ! ----------------------------------------------------------------------- 
    311311     ! 
    312      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
     312     DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, jpkm1) 
    313313        IF (tmask(ji,jj,jk) == 1.) THEN 
    314314          zdep = hmld(ji,jj) 
     
    384384 
    385385     IF( ln_p4z ) THEN 
    386          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     386         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     403       DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    404404          ! POC disaggregation by turbulence and bacterial activity.  
    405405          ! -------------------------------------------------------- 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zprod.F90

    r13295 r15090  
    110110      ! day length in hours 
    111111      zstrn(:,:) = 0. 
    112       DO_2D( 1, 1, 1, 1 ) 
     112      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    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( 1, 1, 1, 1, 1, jpkm1 ) 
     119      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     137      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     152      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     173      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     183      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    184184 
    185185          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    205205      !  Sea-ice effect on production 
    206206 
    207       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     207      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     213      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     239      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     262      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     290         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    8989      ! that was modeling explicitely bacteria 
    9090      ! ------------------------------------------------------- 
    91       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     91      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     105         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     136         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     180      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     202      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    203203 
    204204         ! Bacterial uptake of iron. No iron is available in DOC. So 
     
    226226      ! --------------------------------------------------------------- 
    227227 
    228       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     228      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13546 r15090  
    9494         ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 
    9595         ! -------------------------------------------------------------------- 
    96          DO_2D( 1, 1, 1, 1 ) 
     96         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    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( 1, 1, 1, 1 ) 
     106         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    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( 1, 1, 1, 1 ) 
     132      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    133133         ikt  = mbkt(ji,jj) 
    134134         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    142142      ! 
    143143      IF( .NOT.lk_sed ) THEN 
    144          DO_2D( 1, 1, 1, 1 ) 
     144         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    145145            ikt  = mbkt(ji,jj) 
    146146            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    160160      ENDIF 
    161161      ! 
    162       DO_2D( 1, 1, 1, 1 ) 
     162      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    163163         ikt  = mbkt(ji,jj) 
    164164         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    172172      ! 
    173173      IF( ln_p5z ) THEN 
    174          DO_2D( 1, 1, 1, 1 ) 
     174         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    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( 1, 1, 1, 1 ) 
     189         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    190190            ikt  = mbkt(ji,jj) 
    191191            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    224224      ENDDO 
    225225      IF( ln_p4z ) THEN 
    226          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     226         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     242         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     263         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     280         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    8181      !    by data and from the coagulation theory 
    8282      !    ----------------------------------------------------------- 
    83       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     83      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r15023 r15090  
    130130         xnegtr(:,:,:) = 1.e0 
    131131         DO jn = jp_pcs0, jp_pcs1 
    132             DO_3D( 1, 1, 1, 1, 1, jpk ) 
     132            DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk) 
    133133               IF( ( tr(ji,jj,jk,jn,Kbb) + tr(ji,jj,jk,jn,Krhs) ) < 0.e0 ) THEN 
    134134                  ztra             = ABS( tr(ji,jj,jk,jn,Kbb) ) / ( ABS( tr(ji,jj,jk,jn,Krhs) ) + rtrn ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zlim.F90

    r13434 r15090  
    131131      zratchl = 6.0 
    132132      ! 
    133       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     133      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     320      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    321321         ! Size estimation of nanophytoplankton 
    322322         ! ------------------------------------ 
     
    367367      ! Compute the fraction of nanophytoplankton that is made of calcifiers 
    368368      ! -------------------------------------------------------------------- 
    369       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     369      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     387      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    9898      IF ( bmetexc2 ) zmetexcess = 1.0 
    9999 
    100       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     100      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    9696      IF ( bmetexc ) zmetexcess = 1.0 
    9797      ! 
    98       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     98      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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

    r13295 r15090  
    8282      ! 
    8383      prodcal(:,:,:) = 0.  !: calcite production variable set to zero 
    84       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     84      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     150      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     209      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    210210 
    211211         zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1E-9), 0. ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zprod.F90

    r13295 r15090  
    125125      ! day length in hours 
    126126      zstrn(:,:) = 0. 
    127       DO_2D( 1, 1, 1, 1 ) 
     127      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    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( 1, 1, 1, 1, 1, jpkm1 ) 
     134      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     154      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     188      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1) 
    189189 
    190190          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    208208 
    209209      !  Sea-ice effect on production                                                                                
    210       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     210      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     218      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     251      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     284      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     318      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     349      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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( 1, 1, 1, 1, 1, jpkm1 ) 
     412         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 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) 
  • NEMO/trunk/src/TOP/PISCES/trcwri_pisces.F90

    r14239 r15090  
    6969            zo2min   (:,:) = tr(:,:,1,jpoxy,Kmm) * tmask(:,:,1) 
    7070            zdepo2min(:,:) = gdepw(:,:,1,Kmm)   * tmask(:,:,1) 
    71             DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
     71            DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, jpkm1 )  
    7272               IF( tmask(ji,jj,jk) == 1 ) then 
    7373                  IF( tr(ji,jj,jk,jpoxy,Kmm) < zo2min(ji,jj) ) then 
  • NEMO/trunk/src/TOP/TRP/trcatf.F90

    r14172 r15090  
    239239      ENDIF 
    240240      ! 
    241       DO jn = 1, jptra       
    242          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     241      DO jn = 1, jptra   
     242         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 )     
    243243            ze3t_b = 1._wp + r3t(ji,jj,Kbb) * tmask(ji,jj,jk) 
    244244            ze3t_n = 1._wp + r3t(ji,jj,Kmm) * tmask(ji,jj,jk) 
     
    313313      ! 
    314314      DO jn = 1, jptra       
    315          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     315         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 )     
    316316            ze3t_b = e3t(ji,jj,jk,Kbb) 
    317317            ze3t_n = e3t(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/TOP/TRP/trcsink.F90

    r13295 r15090  
    7474         iiter(:,:) = 1 
    7575      ELSE 
    76          DO_2D( 1, 1, 1, 1 ) 
     76         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    7777            iiter(ji,jj) = 1 
    7878            DO jk = 1, jpkm1 
     
    8686      ENDIF 
    8787 
    88       DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
     88      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    8989         IF( tmask(ji,jj,jk) == 1.0 ) THEN 
    9090           zwsmax = 0.5 * e3t(ji,jj,jk,Kmm) * rday / rsfact 
     
    146146      DO jn = 1, 2 
    147147         !  first guess of the slopes interior values 
    148          DO_2D( 1, 1, 1, 1 ) 
     148         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    149149            ! 
    150150            zstep = rsfact / REAL( kiter(ji,jj), wp ) / 2. 
     
    186186      END DO 
    187187 
    188       DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
     188      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    189189         zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 
    190190         ztrb(ji,jj,jk) = ztrb(ji,jj,jk) + 2. * zflx 
  • NEMO/trunk/src/TOP/TRP/trdmxl_trc.F90

    r14433 r15090  
    124124            isum  = 0   ;   zvlmsk(:,:) = 0.e0 
    125125 
    126             IF( jpktrd_trc < jpk ) THEN                           ! description ??? 
    127                DO_2D( 1, 1, 1, 1 ) 
     126            IF( jpktrd_trc < jpk ) THEN    
     127               DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )  
    128128                  IF( nmld_trc(ji,jj) <= jpktrd_trc ) THEN 
    129129                     zvlmsk(ji,jj) = tmask(ji,jj,1) 
     
    148148         ! ... Weights for vertical averaging 
    149149         wkx_trc(:,:,:) = 0.e0 
    150          DO_3D( 1, 1, 1, 1, 1, jpktrd_trc )                       ! initialize wkx_trc with vertical scale factor in mixed-layer 
     150         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpktrd_trc )                    ! description ??? 
    151151            IF( jk - nmld_trc(ji,jj) < 0 )   wkx_trc(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 
    152152         END_3D 
     
    259259         ! 
    260260         DO jn = 1, jptra 
    261             DO_2D( 1, 1, 1, 1 ) 
     261            DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                    ! description ??? 
    262262               ik = nmld_trc(ji,jj) 
    263263               IF( ln_trdtrc(jn) )    & 
  • NEMO/trunk/src/TOP/TRP/trdmxl_trc_rst.F90

    r13286 r15090  
    1212   USE iom             ! I/O module 
    1313   USE trc             ! for ctrcnm 
    14    USE trdmxl_trc_oce  ! for lk_trdmxl_trc 
     14   USE trdtrc_oce  ! for lk_trdmxl_trc 
    1515 
    1616   IMPLICIT NONE 
     
    5353         clpath = TRIM(cn_trcrst_outdir) 
    5454         IF( clpath(LEN_TRIM(clpath):) /= '/' ) clpath = TRIM(clpath) // '/' 
    55          IF(lwp) WRITE(numout,*) '             open ocean restart_mld_trc NetCDF  'TRIM(clpath)//TRIM(clname) 
     55         IF(lwp) WRITE(numout,*) '             open ocean restart_mld_trc NetCDF  ', TRIM(clpath)//TRIM(clname) 
    5656         CALL iom_open( TRIM(clpath)//TRIM(clname), nummldw_trc, ldwrt = .TRUE. ) 
    5757      ENDIF 
  • NEMO/trunk/src/TOP/trcais.F90

    r15004 r15090  
    170170               IF( ln_trc_ais(jn) ) THEN 
    171171                  jl = n_trc_indais(jn) 
    172                   DO_2D( 1, 1, 1, 1 ) 
     172                  DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    173173                     zfact = 1. / e3t(ji,jj,1,Kmm) 
    174174                     ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + fwficb(ji,jj) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) * zfact 
     
    182182               IF( ln_trc_ais(jn) ) THEN 
    183183                  jl = n_trc_indais(jn) 
    184                   DO_2D( 1, 1, 1, 1 ) 
     184                  DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    185185                     IF( ln_isfpar_mlt ) THEN 
    186186                        zcalv = fwfisf_par(ji,jj) * r1_rho0 / rhisf_tbl_par(ji,jj) 
     
    214214               IF( ln_trc_ais(jn) ) THEN 
    215215                  jl = n_trc_indais(jn) 
    216                   DO_2D( 1, 1, 1, 1 ) 
     216                  DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    217217                     DO jk = 1, icblev 
    218218                        zcalv  =  fwficb(ji,jj) * r1_rho0  
     
    229229               IF( ln_trc_ais(jn) ) THEN 
    230230                  jl = n_trc_indais(jn) 
    231                   DO_2D( 1, 1, 1, 1 ) 
     231                  DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    232232                     IF( ln_isfpar_mlt ) THEN 
    233233                        zcalv = - fwfisf_par(ji,jj) * r1_rho0 / rhisf_tbl_par(ji,jj) 
  • NEMO/trunk/src/TOP/trcopt.F90

    r14558 r15090  
    8686      !     Attenuation coef. function of Chlorophyll and wavelength (RGB) 
    8787      !     -------------------------------------------------------------- 
    88       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     88      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    8989         ztmp = ( zchl(ji,jj,jk) + rtrn ) * 1.e6 
    9090         ztmp = MIN(  10. , MAX( 0.05, ztmp )  ) 
     
    108108         ! 
    109109         DO jk = 2, nksrp + 1 
    110             DO_2D(1, 1, 1, 1) 
     110            DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    111111                  ze0(ji,jj,jk) = ze0(ji,jj,jk-1) * EXP( -e3t(ji,jj,jk-1,Kmm) * (1. / rn_si0) ) 
    112112                  ze1(ji,jj,jk) = ze1(ji,jj,jk-1) * EXP( -ekb  (ji,jj,jk-1 )        ) 
     
    147147      !     Weighted broadband attenuation coefficient 
    148148      !     ------------------------------------------ 
    149       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     149      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    150150         ztmp = ze1(ji,jj,jk)* ekb(ji,jj,jk) + ze2(ji,jj,jk) * ekg(ji,jj,jk) + ze3(ji,jj,jk) * ekr(ji,jj,jk) 
    151151         xeps(ji,jj,jk) = ztmp / e3t(ji,jj,jk,Kmm) / (etot(ji,jj,jk) + rtrn) 
     
    163163      heup_01(:,:) = gdepw(:,:,2,Kmm) 
    164164      ! 
    165       DO_3D( 1, 1, 1, 1, 2, nksrp ) 
     165      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, nksrp ) 
    166166        IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >=  zqsr100(ji,jj) )  THEN 
    167167           ! Euphotic level (1st T-level strictly below Euphotic layer) 
     
    214214         pe3(:,:,1) = zqsr(:,:) * EXP( -0.5 * ekr(:,:,1) ) 
    215215         ! 
    216          DO_3D( 1, 1, 1, 1, 2, nksrp ) 
     216         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, nksrp ) 
    217217            pe1(ji,jj,jk) = pe1(ji,jj,jk-1) * EXP( -0.5 * ( ekb(ji,jj,jk-1) + ekb(ji,jj,jk) ) ) 
    218218            pe2(ji,jj,jk) = pe2(ji,jj,jk-1) * EXP( -0.5 * ( ekg(ji,jj,jk-1) + ekg(ji,jj,jk) ) ) 
     
    226226         we3(:,:) = zqsr(:,:) 
    227227         ! 
    228          DO_3D( 1, 1, 1, 1, 1, nksrp ) 
     228         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, nksrp ) 
    229229            ! integrate PAR over current t-level 
    230230            pe1(ji,jj,jk) = we1(ji,jj) / (ekb(ji,jj,jk) + rtrn) * (1. - EXP( -ekb(ji,jj,jk) )) 
Note: See TracChangeset for help on using the changeset viewer.