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 13710 for NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP – NEMO

Ignore:
Timestamp:
2020-11-02T10:56:42+01:00 (4 years ago)
Author:
emanuelaclementi
Message:

branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves: merge with trunk@13708, see #2155 and #2339

Location:
NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves
Files:
1 deleted
66 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
        88 
        99# SETTE 
        10 ^/utils/CI/sette@HEAD         sette 
         10^/utils/CI/sette@13559        sette 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/C14/trcatm_c14.F90

    r12489 r13710  
    120120            IF( ierr3 /= 0 )   CALL ctl_stop( 'STOP', 'trc_atm_c14_ini: unable to allocate fareaz' ) 
    121121      ! 
    122             DO_2D_11_11 
     122            DO_2D( 1, 1, 1, 1 )                 ! from C14b package 
    123123              IF( gphit(ji,jj) >= yn40 ) THEN 
    124124                 fareaz(ji,jj,1) = 0. 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/C14/trcini_c14.F90

    r12377 r13710  
    6969        !  
    7070        CALL iom_get( numrtr, 'co2sbc', co2sbc )  
    71         CALL iom_get( numrtr, jpdom_autoglo, 'c14sbc', c14sbc )  
    72         CALL iom_get( numrtr, jpdom_autoglo, 'exch_co2', exch_co2 )  
    73         CALL iom_get( numrtr, jpdom_autoglo, 'exch_c14', exch_c14 )  
    74         CALL iom_get( numrtr, jpdom_autoglo, 'qtr_c14', qtr_c14 ) 
     71        CALL iom_get( numrtr, jpdom_auto, 'c14sbc', c14sbc )  
     72        CALL iom_get( numrtr, jpdom_auto, 'exch_co2', exch_co2 )  
     73        CALL iom_get( numrtr, jpdom_auto, 'exch_c14', exch_c14 )  
     74        CALL iom_get( numrtr, jpdom_auto, 'qtr_c14', qtr_c14 ) 
    7575        ! 
    7676      END IF 
     
    8585      ELSE 
    8686        ! 
    87         CALL iom_get( numrtr, jpdom_autoglo, 'qint_c14', qint_c14 )  
     87        CALL iom_get( numrtr, jpdom_auto, 'qint_c14', qint_c14 )  
    8888        ! 
    8989      ENDIF 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/C14/trcsms_c14.F90

    r12489 r13710  
    2828   !! * Substitutions 
    2929#  include "do_loop_substitute.h90" 
     30#  include "domzgr_substitute.h90" 
    3031   !!---------------------------------------------------------------------- 
    3132   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8081      ! ------------------------------------------------------------------- 
    8182 
    82       DO_2D_11_11 
     83      DO_2D( 1, 1, 1, 1 ) 
    8384         IF( tmask(ji,jj,1) >  0. ) THEN 
    8485            ! 
     
    127128      ! 
    128129      ! Add the surface flux to the trend of jp_c14 
    129       DO_2D_11_11 
     130      DO_2D( 1, 1, 1, 1 ) 
    130131         tr(ji,jj,1,jp_c14,Krhs) = tr(ji,jj,1,jp_c14,Krhs) + qtr_c14(ji,jj) / e3t(ji,jj,1,Kmm)  
    131132      END_2D 
    132133      ! 
    133134      ! Computation of decay effects on jp_c14 
    134       DO_3D_11_11( 1, jpk ) 
     135      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    135136         ! 
    136137         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/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/C14/trcwri_c14.F90

    r12377 r13710  
    6060         zz3d(:,:,:) = 0._wp 
    6161         ! 
    62          DO_3D_11_11( 1, jpkm1 ) 
     62         DO_3D( 1, 1, 1, 1, 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_11_11 
     73         DO_2D( 1, 1, 1, 1 ) 
    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/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/CFC/trcini_cfc.F90

    r12377 r13710  
    132132      !--------------------------------------------------------------------------------------- 
    133133      zyd = ylatn - ylats       
    134       DO_2D_11_11 
     134      DO_2D( 1, 1, 1, 1 ) 
    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/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/CFC/trcsms_cfc.F90

    r12489 r13710  
    4949   !! * Substitutions 
    5050#  include "do_loop_substitute.h90" 
     51#  include "domzgr_substitute.h90" 
    5152   !!---------------------------------------------------------------------- 
    5253   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    125126          
    126127         !                                                         !------------! 
    127          DO_2D_11_11 
    128   
     128         DO_2D( 1, 1, 1, 1 )                                       !  i-j loop  ! 
     129            !                                                      !------------! 
    129130            ! space interpolation 
    130131            zpp_cfc  =       xphem(ji,jj)   * zpatm(1,jl)   & 
     
    297298         DO jn = jp_cfc0, jp_cfc1 
    298299            jl = jl + 1 
    299             CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl) )  
     300            CALL iom_get( numrtr, jpdom_auto, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl) )  
    300301         END DO 
    301302      ENDIF 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P2Z/p2zbio.F90

    r12377 r13710  
    1919   ! 
    2020   USE lbclnk          !  
    21    USE prtctl_trc      ! Print control for debbuging 
     21   USE prtctl          ! Print control for debbuging 
    2222   USE iom             ! 
    2323    
     
    5858   !! * Substitutions 
    5959#  include "do_loop_substitute.h90" 
     60#  include "domzgr_substitute.h90" 
    6061   !!---------------------------------------------------------------------- 
    6162   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    121122      DO jk = 1, jpkbm1                      !  Upper ocean (bio-layers)  ! 
    122123         !                                   ! -------------------------- ! 
    123          DO_2D_00_00 
     124         DO_2D( 0, 0, 0, 0 ) 
    124125            ! trophic variables( det, zoo, phy, no3, nh4, dom) 
    125126            ! ------------------------------------------------ 
     
    241242      DO jk = jpkb, jpkm1                    !  Upper ocean (bio-layers)  ! 
    242243         !                                   ! -------------------------- ! 
    243          DO_2D_00_00 
     244         DO_2D( 0, 0, 0, 0 ) 
    244245            ! remineralisation of all quantities towards nitrate  
    245246 
     
    338339      ! 
    339340      IF( lk_iomput ) THEN 
    340          CALL lbc_lnk( 'p2zbio', zw2d(:,:,:),'T', 1. ) 
    341          CALL lbc_lnk_multi( 'p2zbio', zw3d(:,:,:,1),'T', 1., zw3d(:,:,:,2),'T', 1., zw3d(:,:,:,3),'T', 1. ) 
     341         CALL lbc_lnk( 'p2zbio', zw2d(:,:,:),'T', 1.0_wp ) 
     342         CALL lbc_lnk_multi( 'p2zbio', zw3d(:,:,:,1),'T', 1.0_wp, zw3d(:,:,:,2),'T', 1.0_wp, zw3d(:,:,:,3),'T', 1.0_wp ) 
    342343         ! Save diagnostics 
    343344         CALL iom_put( "TNO3PHY", zw2d(:,:,1) ) 
     
    366367      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    367368         WRITE(charout, FMT="('bio')") 
    368          CALL prt_ctl_trc_info(charout) 
    369          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     369         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     370         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    370371      ENDIF 
    371372      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P2Z/p2zexp.F90

    r12489 r13710  
    1717   USE p2zsed 
    1818   USE lbclnk 
    19    USE prtctl_trc      ! Print control for debbuging 
     19   USE prtctl          ! Print control for debbuging 
    2020   USE trd_oce 
    2121   USE trdtrc 
     
    3939   !! * Substitutions 
    4040#  include "do_loop_substitute.h90" 
     41#  include "domzgr_substitute.h90" 
    4142   !!---------------------------------------------------------------------- 
    4243   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8182      ! LAYERS IS DETERMINED BY DMIN3 DEFINED IN sms_p2z.F90 
    8283      ! ---------------------------------------------------------------------- 
    83       DO_3D_00_00( 1, jpkm1 ) 
     84      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    8485         ze3t = 1. / e3t(ji,jj,jk,Kmm) 
    8586         tr(ji,jj,jk,jpno3,Krhs) = tr(ji,jj,jk,jpno3,Krhs) + ze3t * dmin3(ji,jj,jk) * xksi(ji,jj) 
     
    9293      zgeolpoc = 0.e0         !     Initialization 
    9394      ! Release of nutrients from the "simple" sediment 
    94       DO_2D_00_00 
     95      DO_2D( 0, 0, 0, 0 ) 
    9596         ikt = mbkt(ji,jj)  
    9697         tr(ji,jj,ikt,jpno3,Krhs) = tr(ji,jj,ikt,jpno3,Krhs) + sedlam * sedpocn(ji,jj) / e3t(ji,jj,ikt,Kmm)  
     
    102103      END_2D 
    103104 
    104       DO_2D_00_00 
     105      DO_2D( 0, 0, 0, 0 ) 
    105106         tr(ji,jj,1,jpno3,Krhs) = tr(ji,jj,1,jpno3,Krhs) + zgeolpoc * cmask(ji,jj) / areacot / e3t(ji,jj,1,Kmm) 
    106107      END_2D 
    107108 
    108       CALL lbc_lnk( 'p2zexp', sedpocn, 'T', 1. ) 
     109      CALL lbc_lnk( 'p2zexp', sedpocn, 'T', 1.0_wp ) 
    109110  
    110111      ! Oa & Ek: diagnostics depending on jpdia2d !          left as example 
     
    120121      ELSE 
    121122        ! 
    122         DO_2D_11_11 
     123        DO_2D( 1, 1, 1, 1 ) 
    123124           zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj)      ! time laplacian on tracers 
    124125           sedpocb(ji,jj) = sedpocn(ji,jj) + rn_atfp * zsedpocd                     ! sedpocb <-- filtered sedpocn 
     
    139140      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    140141         WRITE(charout, FMT="('exp')") 
    141          CALL prt_ctl_trc_info(charout) 
    142          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     142         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     143         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    143144      ENDIF 
    144145      ! 
     
    173174      zdm0 = 0._wp 
    174175      zrro = 1._wp 
    175       DO_3D_11_11( jpkb, jpkm1 ) 
     176      DO_3D( 1, 1, 1, 1, jpkb, jpkm1 ) 
    176177         zfluo = ( gdepw(ji,jj,jk  ,Kmm) / gdepw(ji,jj,jpkb,Kmm) )**xhr 
    177178         zfluu = ( gdepw(ji,jj,jk+1,Kmm) / gdepw(ji,jj,jpkb,Kmm) )**xhr 
     
    190191      dminl(:,:)   = 0._wp 
    191192      dmin3(:,:,:) = zdm0 
    192       DO_3D_11_11( 1, jpk ) 
     193      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    193194         IF( tmask(ji,jj,jk) == 0._wp ) THEN 
    194195            dminl(ji,jj) = dminl(ji,jj) + dmin3(ji,jj,jk) 
     
    197198      END_3D 
    198199 
    199       DO_2D_11_11 
     200      DO_2D( 1, 1, 1, 1 ) 
    200201         IF( tmask(ji,jj,1) == 0 )   dmin3(ji,jj,1) = 0._wp 
    201202      END_2D 
     
    203204      ! Coastal mask  
    204205      cmask(:,:) = 0._wp 
    205       DO_2D_00_00 
     206      DO_2D( 0, 0, 0, 0 ) 
    206207         IF( tmask(ji,jj,1) /= 0. ) THEN 
    207208            zmaskt = tmask(ji+1,jj,1) * tmask(ji-1,jj,1) * tmask(ji,jj+1,1) * tmask(ji,jj-1,1)  
     
    209210         END IF 
    210211      END_2D 
    211       CALL lbc_lnk( 'p2zexp', cmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged) 
     212      CALL lbc_lnk( 'p2zexp', cmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    212213      areacot = glob_sum( 'p2zexp', e1e2t(:,:) * cmask(:,:) ) 
    213214      ! 
    214215      IF( ln_rsttr ) THEN 
    215          CALL iom_get( numrtr, jpdom_autoglo, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:) ) 
    216          CALL iom_get( numrtr, jpdom_autoglo, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:) ) 
     216         CALL iom_get( numrtr, jpdom_auto, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:) ) 
     217         CALL iom_get( numrtr, jpdom_auto, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:) ) 
    217218      ELSE 
    218219         sedpocb(:,:) = 0._wp 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P2Z/p2zopt.F90

    r12377 r13710  
    1818   USE trc 
    1919   USE sms_pisces 
    20    USE prtctl_trc      ! Print control for debbuging 
     20   USE prtctl          ! Print control for debbuging 
    2121 
    2222   IMPLICIT NONE 
     
    4040   !! * Substitutions 
    4141#  include "do_loop_substitute.h90" 
     42#  include "domzgr_substitute.h90" 
    4243   !!---------------------------------------------------------------------- 
    4344   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    9495      !                                          ! Photosynthetically Available Radiation (PAR) 
    9596      zcoef = 12 * redf / rcchl / rpig           ! -------------------------------------- 
    96       DO_3D_11_11( 2, jpk ) 
     97      DO_3D( 1, 1, 1, 1, 2, jpk )                     ! local par at w-levels 
    9798         zpig = LOG(  MAX( TINY(0.), tr(ji,jj,jk-1,jpphy,Kmm) ) * zcoef  ) 
    9899         zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
     
    101102         zparg(ji,jj,jk) = zparg(ji,jj,jk-1) * EXP( -zkg * e3t(ji,jj,jk-1,Kmm) ) 
    102103      END_3D 
    103       DO_3D_11_11( 1, jpkm1 ) 
     104      DO_3D( 1, 1, 1, 1, 1, jpkm1 )                   ! mean par at t-levels 
    104105         zpig = LOG(  MAX( TINY(0.), tr(ji,jj,jk,jpphy,Kmm) ) * zcoef  ) 
    105106         zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
     
    113114      !                                          ! -------------- 
    114115      neln(:,:) = 1                                   ! euphotic layer level 
    115       DO_3D_11_11( 1, jpkm1 ) 
     116      DO_3D( 1, 1, 1, 1, 1, jpkm1 )                   ! (i.e. 1rst T-level strictly below EL bottom) 
    116117        IF( etot(ji,jj,jk) >= zpar100(ji,jj) )   neln(ji,jj) = jk + 1  
    117118      END_3D 
    118119      !                                               ! Euphotic layer depth 
    119       DO_2D_11_11 
     120      DO_2D( 1, 1, 1, 1 ) 
    120121         heup(ji,jj) = gdepw(ji,jj,neln(ji,jj),Kmm) 
    121122      END_2D 
     
    124125      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging) 
    125126         WRITE(charout, FMT="('opt')") 
    126          CALL prt_ctl_trc_info( charout ) 
    127          CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Kmm), mask=tmask, clinfo=ctrcnm ) 
     127         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     128         CALL prt_ctl( tab4d_1=tr(:,:,:,:,Kmm), mask1=tmask, clinfo=ctrcnm ) 
    128129      ENDIF 
    129130      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P2Z/p2zsed.F90

    r12377 r13710  
    1818   USE lbclnk          ! 
    1919   USE iom             ! 
    20    USE prtctl_trc      ! Print control for debbuging 
     20   USE prtctl          ! Print control for debbuging 
    2121 
    2222   IMPLICIT NONE 
     
    3333   !! * Substitutions 
    3434#  include "do_loop_substitute.h90" 
     35#  include "domzgr_substitute.h90" 
    3536   !!---------------------------------------------------------------------- 
    3637   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8889 
    8990      ! tracer flux divergence at t-point added to the general trend 
    90       DO_3D_11_11( 1, jpkm1 ) 
     91      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9192         ztra(ji,jj,jk)  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 
    9293         tr(ji,jj,jk,jpdet,Krhs) = tr(ji,jj,jk,jpdet,Krhs) + ztra(ji,jj,jk)  
     
    108109      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    109110         WRITE(charout, FMT="('sed')") 
    110          CALL prt_ctl_trc_info(charout) 
    111          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     111         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     112         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    112113      ENDIF 
    113114      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zagg.F90

    r12377 r13710  
    1717   USE trc             !  passive tracers common variables  
    1818   USE sms_pisces      !  PISCES Source Minus Sink variables 
    19    USE prtctl_trc      !  print control for debugging 
     19   USE prtctl          !  print control for debugging 
    2020 
    2121   IMPLICIT NONE 
     
    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) 
     
    170170      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    171171         WRITE(charout, FMT="('agg')") 
    172          CALL prt_ctl_trc_info(charout) 
    173          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     172         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     173         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    174174      ENDIF 
    175175      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zbc.F90

    r12377 r13710  
    4848   !! * Substitutions 
    4949#  include "do_loop_substitute.h90" 
     50#  include "domzgr_substitute.h90" 
    5051   !!---------------------------------------------------------------------- 
    5152   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    111112      IF( ll_river ) THEN 
    112113          jl = n_trc_indcbc(jpno3) 
    113           DO_2D_11_11 
     114          DO_2D( 1, 1, 1, 1 ) 
    114115             DO jk = 1, nk_rnf(ji,jj) 
    115116                zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 
     
    144145         ALLOCATE( zironice(jpi,jpj) ) 
    145146         ! 
    146          DO_2D_11_11 
     147         DO_2D( 1, 1, 1, 1 ) 
    147148            zdep    = rfact / e3t(ji,jj,1,Kmm) 
    148149            zwflux  = fmmflx(ji,jj) / 1000._wp 
     
    287288         CALL iom_open ( TRIM( sn_ironsed%clname ), numiron ) 
    288289         ALLOCATE( zcmask(jpi,jpj,jpk) ) 
    289          CALL iom_get  ( numiron, jpdom_data, TRIM( sn_ironsed%clvar ), zcmask(:,:,:), 1 ) 
     290         CALL iom_get  ( numiron, jpdom_global, TRIM( sn_ironsed%clvar ), zcmask(:,:,:), 1 ) 
    290291         CALL iom_close( numiron ) 
    291292         ! 
     
    296297         IF(lwp) WRITE(numout,*) 
    297298         IF(lwp) WRITE(numout,*) ' Level corresponding to 50m depth ',  ik50,' ', gdept_1d(ik50+1) 
    298          DO_3D_00_00( 1, ik50 ) 
     299         DO_3D( 0, 0, 0, 0, 1, ik50 ) 
    299300            ze3t   = e3t_0(ji,jj,jk) 
    300301            zsurfc =  e1u(ji,jj) * ( 1. - umask(ji  ,jj  ,jk) )   & 
     
    310311         END_3D 
    311312         ! 
    312          CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged) 
    313          ! 
    314          DO_3D_11_11( 1, jpk ) 
     313         CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
     314         ! 
     315         DO_3D( 1, 1, 1, 1, 1, jpk ) 
    315316            zexpide   = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 
    316317            zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zbio.F90

    r12377 r13710  
    3030   USE p4zfechem 
    3131   USE p4zligand       !  Prognostic ligand model 
    32    USE prtctl_trc      !  print control for debugging 
     32   USE prtctl          !  print control for debugging 
    3333   USE iom             !  I/O manager 
    3434   
     
    4040   !! * Substitutions 
    4141#  include "do_loop_substitute.h90" 
     42#  include "domzgr_substitute.h90" 
    4243   !!---------------------------------------------------------------------- 
    4344   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    7172      xdiss(:,:,:) = 1. 
    7273!!gm the use of nmld should be better here? 
    73       DO_3D_11_11( 2, jpkm1 ) 
     74      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    7475!!gm  :  use nmln  and test on jk ...  less memory acces 
    7576         IF( gdepw(ji,jj,jk+1,Kmm) > hmld(ji,jj) )   xdiss(ji,jj,jk) = 0.01 
     
    107108      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    108109         WRITE(charout, FMT="('bio ')") 
    109          CALL prt_ctl_trc_info(charout) 
    110          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     110         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     111         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    111112      ENDIF 
    112113      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zche.F90

    r12377 r13710  
    132132   !! * Substitutions 
    133133#  include "do_loop_substitute.h90" 
     134#  include "domzgr_substitute.h90" 
    134135   !!---------------------------------------------------------------------- 
    135136   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    178179      ! 0.04°C relative to an exact computation 
    179180      ! --------------------------------------------------------------------- 
    180       DO_3D_11_11( 1, jpk ) 
     181      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    181182         zpres = gdept(ji,jj,jk,Kmm) / 1000. 
    182183         za1 = 0.04 * ( 1.0 + 0.185 * ts(ji,jj,jk,jp_tem,Kmm) + 0.035 * (salinprac(ji,jj,jk) - 35.0) ) 
     
    471472      IF( ln_timing )  CALL timing_start('ahini_for_at') 
    472473      ! 
    473       DO_3D_11_11( 1, jpk ) 
     474      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    474475      p_alkcb  = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
    475476      p_dictot = tr(ji,jj,jk,jpdic,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    569570 
    570571   ! TOTAL H+ scale: conversion factor for Htot = aphscale * Hfree 
    571    DO_3D_11_11( 1, jpk ) 
     572   DO_3D( 1, 1, 1, 1, 1, jpk ) 
    572573      IF (rmask(ji,jj,jk) == 1.) THEN 
    573574         p_alktot = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    598599 
    599600   DO jn = 1, jp_maxniter_atgen  
    600    DO_3D_11_11( 1, jpk ) 
     601   DO_3D( 1, 1, 1, 1, 1, jpk ) 
    601602      IF (rmask(ji,jj,jk) == 1.) THEN 
    602603         zfact = rhop(ji,jj,jk) / 1000. + rtrn 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zfechem.F90

    r12377 r13710  
    1616   USE p4zche          ! chemical model 
    1717   USE p4zbc           ! Boundary conditions from sediments 
    18    USE prtctl_trc      ! print control for debugging 
     18   USE prtctl          ! print control for debugging 
    1919   USE iom             ! I/O manager 
    2020 
     
    3333   !! * Substitutions 
    3434#  include "do_loop_substitute.h90" 
     35#  include "domzgr_substitute.h90" 
    3536   !!---------------------------------------------------------------------- 
    3637   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    9192      ! Chemistry is supposed to be fast enough to be at equilibrium 
    9293      ! ------------------------------------------------------------ 
    93       DO_3D_11_11( 1, jpkm1 ) 
     94      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9495         zTL1(ji,jj,jk)  = ztotlig(ji,jj,jk) 
    9596         zkeq            = fekeq(ji,jj,jk) 
     
    106107 
    107108      zdust = 0.         ! if no dust available 
    108       DO_3D_11_11( 1, jpkm1 ) 
     109      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    109110         ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water.  
    110111         ! This parameterization assumes a simple second order kinetics (k[Particles][Fe]). 
     
    117118         ! 
    118119         zfeequi = zFe3(ji,jj,jk) * 1E-9 
    119          zhplus  = max( rtrn, hi(ji,jj,jk) ) 
    120          fe3sol  = fesol(ji,jj,jk,1) * ( zhplus**3 + fesol(ji,jj,jk,2) * zhplus**2  & 
    121             &         + fesol(ji,jj,jk,3) * zhplus + fesol(ji,jj,jk,4)     & 
    122             &         + fesol(ji,jj,jk,5) / zhplus ) 
    123120         zfecoll = 0.5 * zFeL1(ji,jj,jk) * 1E-9 
    124121         ! precipitation of Fe3+, creation of nanoparticles 
     
    176173      IF( ln_ligand ) THEN 
    177174         ! 
    178          DO_3D_11_11( 1, jpkm1 ) 
     175         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    179176            zlam1a   = ( 0.369  * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4  * tr(ji,jj,jk,jppoc,Kbb) ) * xdiss(ji,jj,jk)    & 
    180177                &    + ( 114.   * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) ) 
     
    221218      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    222219         WRITE(charout, FMT="('fechem')") 
    223          CALL prt_ctl_trc_info(charout) 
    224          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     220         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     221         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    225222      ENDIF 
    226223      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zflx.F90

    r12377 r13710  
    1919   USE sms_pisces     !  PISCES Source Minus Sink variables 
    2020   USE p4zche         !  Chemical model 
    21    USE prtctl_trc     !  print control for debugging 
     21   USE prtctl         !  print control for debugging 
    2222   USE iom            !  I/O manager 
    2323   USE fldread        !  read input fields 
     
    5454   !! * Substitutions 
    5555#  include "do_loop_substitute.h90" 
     56#  include "domzgr_substitute.h90" 
    5657   !!---------------------------------------------------------------------- 
    5758   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    109110      IF( l_co2cpl )   satmco2(:,:) = atm_co2(:,:) 
    110111 
    111       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    112113         ! DUMMY VARIABLES FOR DIC, H+, AND BORATE 
    113114         zfact = rhop(ji,jj,1) / 1000. + rtrn 
     
    125126      ! ------------------------------------------- 
    126127 
    127       DO_2D_11_11 
     128      DO_2D( 1, 1, 1, 1 ) 
    128129         ztc  = MIN( 35., ts(ji,jj,1,jp_tem,Kmm) ) 
    129130         ztc2 = ztc * ztc 
     
    144145 
    145146 
    146       DO_2D_11_11 
     147      DO_2D( 1, 1, 1, 1 ) 
    147148         ztkel = tempis(ji,jj,1) + 273.15 
    148149         zsal  = salinprac(ji,jj,1) + ( 1.- tmask(ji,jj,1) ) * 35. 
     
    177178      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    178179         WRITE(charout, FMT="('flx ')") 
    179          CALL prt_ctl_trc_info(charout) 
    180          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     180         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     181         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    181182      ENDIF 
    182183 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zligand.F90

    r12377 r13710  
    1212   USE trc             ! passive tracers common variables  
    1313   USE sms_pisces      ! PISCES Source Minus Sink variables 
    14    USE prtctl_trc      ! print control for debugging 
     14   USE prtctl          ! print control for debugging 
    1515   USE iom             !  I/O manager 
    1616 
     
    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         ! ------------------------------------------------------------------ 
     
    8989      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    9090         WRITE(charout, FMT="('ligand1')") 
    91          CALL prt_ctl_trc_info(charout) 
    92          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     91         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     92         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    9393      ENDIF 
    9494      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zlim.F90

    r12377 r13710  
    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 
     
    161161         zlim1    = xdiatno3(ji,jj,jk) + xdiatnh4(ji,jj,jk) 
    162162         zlim2    = tr(ji,jj,jk,jppo4,Kbb) / ( tr(ji,jj,jk,jppo4,Kbb) + zconc1dnh4  ) 
    163          zlim3    = tr(ji,jj,jk,jpsil,Kbb) / ( tr(ji,jj,jk,jpsil,Kbb) + xksi(ji,jj) ) 
     163         zlim3    = tr(ji,jj,jk,jpsil,Kbb) / ( tr(ji,jj,jk,jpsil,Kbb) + xksi(ji,jj) + rtrn ) 
    164164         zratio   = tr(ji,jj,jk,jpdfe,Kbb) * z1_trbdia 
    165165         zironmin = xcoef1 * tr(ji,jj,jk,jpdch,Kbb) * z1_trbdia + xcoef2 * zlim1 + xcoef3 * xdiatno3(ji,jj,jk) 
     
    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/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zlys.F90

    r12377 r13710  
    2020   USE sms_pisces      !  PISCES Source Minus Sink variables 
    2121   USE p4zche          !  Chemical model 
    22    USE prtctl_trc      !  print control for debugging 
     22   USE prtctl          !  print control for debugging 
    2323   USE iom             !  I/O manager 
    2424 
     
    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 
     
    130130      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    131131        WRITE(charout, FMT="('lys ')") 
    132         CALL prt_ctl_trc_info(charout) 
    133         CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     132        CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     133        CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    134134      ENDIF 
    135135      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zmeso.F90

    r12377 r13710  
    1515   USE sms_pisces      ! PISCES Source Minus Sink variables 
    1616   USE p4zprod         ! production 
    17    USE prtctl_trc      ! print control for debugging 
     17   USE prtctl          ! print control for debugging 
    1818   USE iom             ! I/O manager 
    1919 
     
    6969      REAL(wp) :: zfact   , zfood, zfoodlim, zproport, zbeta 
    7070      REAL(wp) :: zmortzgoc, zfrac, zfracfe, zratio, zratio2, zfracal, zgrazcal 
    71       REAL(wp) :: zepsherf, zepshert, zepsherv, zgrarsig, zgraztotc, zgraztotn, zgraztotf 
     71      REAL(wp) :: zepsherf, zepshert, zepsherv, zepsherq  
     72      REAL(wp) :: zgrarsig, zgraztotc, zgraztotn, zgraztotf 
    7273      REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz, zgrasrat, zgrasratn 
    7374      REAL(wp) :: zrespz, ztortz, zgrazd, zgrazz, zgrazpof 
     
    8081      IF( ln_timing )   CALL timing_start('p4z_meso') 
    8182      ! 
    82       DO_3D_11_11( 1, jpkm1 ) 
     83      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8384         zcompam   = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 ) 
    8485         zfact     = xstep * tgfunc2(ji,jj,jk) * zcompam 
     
    156157         zgrazing2(ji,jj,jk) = zgraztotc 
    157158 
    158          !    Mesozooplankton efficiency 
    159          !    -------------------------- 
     159         ! Mesozooplankton efficiency.  
     160         ! We adopt a formulation proposed by Mitra et al. (2007) 
     161         ! The gross growth efficiency is controled by the most limiting nutrient. 
     162         ! Growth is also further decreased when the food quality is poor. This is currently 
     163         ! hard coded : it can be decreased by up to 50% (zepsherq) 
     164         ! GGE can also be decreased when food quantity is high, zepsherf (Montagnes and  
     165         ! Fulton, 2012) 
     166         ! ----------------------------------------------------------------------------------- 
    160167         zgrasrat  =  ( zgraztotf + rtrn )/ ( zgraztotc + rtrn ) 
    161168         zgrasratn =  ( zgraztotn + rtrn )/ ( zgraztotc + rtrn ) 
     
    163170         zbeta     = MAX(0., (epsher2 - epsher2min) ) 
    164171         zepsherf  = epsher2min + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta )  
    165          zepsherv  = zepsherf * zepshert  
     172         zepsherq  = 0.5 + (1.0 - 0.5) * zepshert * ( 1.0 + 1.0 ) / ( zepshert + 1.0 ) 
     173         zepsherv  = zepsherf * zepshert * zepsherq  
    166174 
    167175         zgrarem2  = zgraztotc * ( 1. - zepsherv - unass2 ) & 
     
    170178         &         + ferat3 * ( ( 1. - epsher2 - unass2 ) /( 1. - epsher2 ) * ztortz ) 
    171179         zgrapoc2  = zgraztotc * unass2 
     180 
    172181 
    173182         !   Update the arrays TRA which contain the biological sources and sinks 
     
    237246      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    238247        WRITE(charout, FMT="('meso')") 
    239         CALL prt_ctl_trc_info(charout) 
    240         CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     248        CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     249        CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    241250      ENDIF 
    242251      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zmicro.F90

    r12377 r13710  
    1717   USE p4zprod         ! production 
    1818   USE iom             ! I/O manager 
    19    USE prtctl_trc      ! print control for debugging 
     19   USE prtctl          ! print control for debugging 
    2020 
    2121   IMPLICIT NONE 
     
    6767      REAL(wp) :: zgraze  , zdenom, zdenom2 
    6868      REAL(wp) :: zfact   , zfood, zfoodlim, zbeta 
    69       REAL(wp) :: zepsherf, zepshert, zepsherv, zgrarsig, zgraztotc, zgraztotn, zgraztotf 
     69      REAL(wp) :: zepsherf, zepshert, zepsherv, zepsherq 
     70      REAL(wp) :: zgrarsig, zgraztotc, zgraztotn, zgraztotf 
    7071      REAL(wp) :: zgrarem, zgrafer, zgrapoc, zprcaca, zmortz 
    7172      REAL(wp) :: zrespz, ztortz, zgrasrat, zgrasratn 
     
    7879      IF( ln_timing )   CALL timing_start('p4z_micro') 
    7980      ! 
    80       DO_3D_11_11( 1, jpkm1 ) 
     81      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8182         zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 
    8283         zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
     
    119120         zgrazing(ji,jj,jk) = zgraztotc 
    120121 
    121          !    Various remineralization and excretion terms 
    122          !    -------------------------------------------- 
     122 
     123         ! Microzooplankton efficiency.  
     124         ! We adopt a formulation proposed by Mitra et al. (2007) 
     125         ! The gross growth efficiency is controled by the most limiting nutrient. 
     126         ! Growth is also further decreased when the food quality is poor. This is currently 
     127         ! hard coded : it can be decreased by up to 50% (zepsherq) 
     128         ! GGE can also be decreased when food quantity is high, zepsherf (Montagnes and  
     129         ! Fulton, 2012) 
     130         ! ----------------------------------------------------------------------------- 
    123131         zgrasrat  = ( zgraztotf + rtrn ) / ( zgraztotc + rtrn ) 
    124132         zgrasratn = ( zgraztotn + rtrn ) / ( zgraztotc + rtrn ) 
     
    126134         zbeta     = MAX(0., (epsher - epshermin) ) 
    127135         zepsherf  = epshermin + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta ) 
    128          zepsherv  = zepsherf * zepshert  
     136         zepsherq  = 0.5 + (1.0 - 0.5) * zepshert * ( 1.0 + 1.0 ) / ( zepshert + 1.0 ) 
     137         zepsherv  = zepsherf * zepshert * zepsherq  
    129138 
    130139         zgrafer   = zgraztotc * MAX( 0. , ( 1. - unass ) * zgrasrat - ferat3 * zepsherv )  
     
    193202      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging) 
    194203         WRITE(charout, FMT="('micro')") 
    195          CALL prt_ctl_trc_info(charout) 
    196          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     204         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     205         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    197206      ENDIF 
    198207      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zmort.F90

    r12377 r13710  
    1515   USE p4zprod         ! Primary productivity  
    1616   USE p4zlim          ! Phytoplankton limitation terms 
    17    USE prtctl_trc      ! print control for debugging 
     17   USE prtctl          ! print control for debugging 
    1818 
    1919   IMPLICIT NONE 
     
    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  
     
    120120       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    121121         WRITE(charout, FMT="('nano')") 
    122          CALL prt_ctl_trc_info(charout) 
    123          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     122         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     123         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    124124       ENDIF 
    125125      ! 
     
    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. ) 
     
    192192      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging) 
    193193         WRITE(charout, FMT="('diat')") 
    194          CALL prt_ctl_trc_info(charout) 
    195          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     194         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     195         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    196196      ENDIF 
    197197      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zopt.F90

    r12377 r13710  
    1616   USE iom            ! I/O manager 
    1717   USE fldread        !  time interpolation 
    18    USE prtctl_trc     !  print control for debugging 
     18   USE prtctl         !  print control for debugging 
    1919 
    2020   IMPLICIT NONE 
     
    3737   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   par_varsw      ! PAR fraction of shortwave 
    3838   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ekb, ekg, ekr  ! wavelength (Red-Green-Blue) 
    39  
    40    INTEGER  ::   nksrp   ! levels below which the light cannot penetrate ( depth larger than 391 m) 
    41  
    42    REAL(wp), DIMENSION(3,61) ::   xkrgb   ! tabulated attenuation coefficients for RGB absorption 
    4339    
    4440   !! * Substitutions 
    4541#  include "do_loop_substitute.h90" 
     42#  include "domzgr_substitute.h90" 
    4643   !!---------------------------------------------------------------------- 
    4744   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8885      IF( ln_p5z )   zchl3d(:,:,:) = zchl3d(:,:,:)    + tr(:,:,:,jppch,Kbb) 
    8986      ! 
    90       DO_3D_11_11( 1, jpkm1 ) 
     87      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9188         zchl = ( zchl3d(ji,jj,jk) + rtrn ) * 1.e6 
    9289         zchl = MIN(  10. , MAX( 0.05, zchl )  ) 
    9390         irgb = NINT( 41 + 20.* LOG10( zchl ) + rtrn ) 
    9491         !                                                          
    95          ekb(ji,jj,jk) = xkrgb(1,irgb) * e3t(ji,jj,jk,Kmm) 
    96          ekg(ji,jj,jk) = xkrgb(2,irgb) * e3t(ji,jj,jk,Kmm) 
    97          ekr(ji,jj,jk) = xkrgb(3,irgb) * e3t(ji,jj,jk,Kmm) 
     92         ekb(ji,jj,jk) = rkrgb(1,irgb) * e3t(ji,jj,jk,Kmm) 
     93         ekg(ji,jj,jk) = rkrgb(2,irgb) * e3t(ji,jj,jk,Kmm) 
     94         ekr(ji,jj,jk) = rkrgb(3,irgb) * e3t(ji,jj,jk,Kmm) 
    9895      END_3D 
    9996      !                                        !* Photosynthetically Available Radiation (PAR) 
     
    105102         CALL p4z_opt_par( kt, Kmm, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 )  
    106103         ! 
    107          DO jk = 1, nksrp       
     104         DO jk = 1, nksr       
    108105            etot_ndcy(:,:,jk) =        ze1(:,:,jk) +        ze2(:,:,jk) +       ze3(:,:,jk) 
    109106            enano    (:,:,jk) =  1.85 * ze1(:,:,jk) + 0.69 * ze2(:,:,jk) + 0.46 * ze3(:,:,jk) 
     
    111108         END DO 
    112109         IF( ln_p5z ) THEN 
    113             DO jk = 1, nksrp       
     110            DO jk = 1, nksr       
    114111              epico  (:,:,jk) =  1.94 * ze1(:,:,jk) + 0.66 * ze2(:,:,jk) + 0.4 * ze3(:,:,jk) 
    115112            END DO 
     
    120117         CALL p4z_opt_par( kt, Kmm, zqsr_corr, ze1, ze2, ze3 )  
    121118         ! 
    122          DO jk = 1, nksrp       
     119         DO jk = 1, nksr       
    123120            etot(:,:,jk) =  ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) 
    124121         END DO 
     
    130127         CALL p4z_opt_par( kt, Kmm, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100  )  
    131128         ! 
    132          DO jk = 1, nksrp       
     129         DO jk = 1, nksr       
    133130            etot (:,:,jk) =        ze1(:,:,jk) +        ze2(:,:,jk) +       ze3(:,:,jk) 
    134131            enano(:,:,jk) =  1.85 * ze1(:,:,jk) + 0.69 * ze2(:,:,jk) + 0.46 * ze3(:,:,jk) 
     
    136133         END DO 
    137134         IF( ln_p5z ) THEN 
    138             DO jk = 1, nksrp       
     135            DO jk = 1, nksr       
    139136              epico(:,:,jk) =  1.94 * ze1(:,:,jk) + 0.66 * ze2(:,:,jk) + 0.4 * ze3(:,:,jk) 
    140137            END DO 
     
    149146         ! 
    150147         etot3(:,:,1) =  qsr(:,:) * tmask(:,:,1) 
    151          DO jk = 2, nksrp + 1 
     148         DO jk = 2, nksr + 1 
    152149            etot3(:,:,jk) =  ( ze0(:,:,jk) + ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) ) * tmask(:,:,jk) 
    153150         END DO 
     
    159156      heup_01(:,:) = gdepw(:,:,2,Kmm) 
    160157 
    161       DO_3D_11_11( 2, nksrp ) 
     158      DO_3D( 1, 1, 1, 1, 2, nksr ) 
    162159        IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >=  zqsr100(ji,jj) )  THEN 
    163160           neln(ji,jj) = jk+1                    ! Euphotic level : 1rst T-level strictly below Euphotic layer 
     
    177174      zetmp2 (:,:)   = 0.e0 
    178175 
    179       DO_3D_11_11( 1, nksrp ) 
     176      DO_3D( 1, 1, 1, 1, 1, nksr ) 
    180177         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    181178            zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot     (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! remineralisation 
     
    188185      zpar(:,:,:) = etot_ndcy(:,:,:)  ! diagnostic : PAR with no diurnal cycle  
    189186      ! 
    190       DO_3D_11_11( 1, nksrp ) 
     187      DO_3D( 1, 1, 1, 1, 1, nksr ) 
    191188         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    192189            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    200197      zetmp4 (:,:)   = 0.e0 
    201198      ! 
    202       DO_3D_11_11( 1, nksrp ) 
     199      DO_3D( 1, 1, 1, 1, 1, nksr ) 
    203200         IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    204201            zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano    (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    210207      ediatm(:,:,:) = ediat(:,:,:) 
    211208      ! 
    212       DO_3D_11_11( 1, nksrp ) 
     209      DO_3D( 1, 1, 1, 1, 1, nksr ) 
    213210         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    214211            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    220217      IF( ln_p5z ) THEN 
    221218         ALLOCATE( zetmp5(jpi,jpj) )  ;   zetmp5 (:,:) = 0.e0 
    222          DO_3D_11_11( 1, nksrp ) 
     219         DO_3D( 1, 1, 1, 1, 1, nksr ) 
    223220            IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    224221               zetmp5(ji,jj)  = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    228225         epicom(:,:,:) = epico(:,:,:) 
    229226         ! 
    230          DO_3D_11_11( 1, nksrp ) 
     227         DO_3D( 1, 1, 1, 1, 1, nksr ) 
    231228            IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    232229               z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    282279         pe3(:,:,1) = zqsr(:,:) 
    283280         ! 
    284          DO jk = 2, nksrp + 1 
     281         DO jk = 2, nksr + 1 
    285282            DO jj = 1, jpj 
    286283               DO ji = 1, jpi 
     
    301298        pe3(:,:,1) = zqsr(:,:) * EXP( -0.5 * ekr(:,:,1) ) 
    302299        ! 
    303         DO_3D_11_11( 2, nksrp ) 
     300        DO_3D( 1, 1, 1, 1, 2, nksr ) 
    304301           pe1(ji,jj,jk) = pe1(ji,jj,jk-1) * EXP( -0.5 * ( ekb(ji,jj,jk-1) + ekb(ji,jj,jk) ) ) 
    305302           pe2(ji,jj,jk) = pe2(ji,jj,jk-1) * EXP( -0.5 * ( ekg(ji,jj,jk-1) + ekg(ji,jj,jk) ) ) 
     
    399396         ntimes_par = iom_getszuld( numpar )   ! get number of record in file 
    400397      ENDIF 
    401       ! 
    402       CALL trc_oce_rgb( xkrgb )                  ! tabulated attenuation coefficients 
    403       nksrp = trc_oce_ext_lev( r_si2, 0.33e2 )     ! max level of light extinction (Blue Chl=0.01) 
    404       ! 
    405       IF(lwp) WRITE(numout,*) '        level of light extinction = ', nksrp, ' ref depth = ', gdepw_1d(nksrp+1), ' m' 
    406398      ! 
    407399                         ekr      (:,:,:) = 0._wp 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zpoc.F90

    r12377 r13710  
    1515   USE trc             !  passive tracers common variables  
    1616   USE sms_pisces      !  PISCES Source Minus Sink variables 
    17    USE prtctl_trc      !  print control for debugging 
     17   USE prtctl          !  print control for debugging 
    1818   USE iom             !  I/O manager 
    1919 
     
    3939   !! * Substitutions 
    4040#  include "do_loop_substitute.h90" 
     41#  include "domzgr_substitute.h90" 
    4142   !!---------------------------------------------------------------------- 
    4243   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    106107     ! ----------------------------------------------------------------------- 
    107108     ztremint(:,:,:) = zremigoc(:,:,:) 
    108      DO_3D_11_11( 2, jpkm1 ) 
     109     DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    109110        IF (tmask(ji,jj,jk) == 1.) THEN 
    110111          zdep = hmld(ji,jj) 
     
    191192 
    192193      IF( ln_p4z ) THEN 
    193          DO_3D_11_11( 1, jpkm1 ) 
     194         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    194195            ! POC disaggregation by turbulence and bacterial activity.  
    195196            ! -------------------------------------------------------- 
     
    211212         END_3D 
    212213      ELSE 
    213          DO_3D_11_11( 1, jpkm1 ) 
     214         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    214215             ! POC disaggregation by turbulence and bacterial activity.  
    215216            ! -------------------------------------------------------- 
     
    241242     IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    242243        WRITE(charout, FMT="('poc1')") 
    243         CALL prt_ctl_trc_info(charout) 
    244         CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     244        CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     245        CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    245246     ENDIF 
    246247 
     
    259260     ! ---------------------------------------------------------------- 
    260261     !  
    261      DO_3D_11_11( 1, jpkm1 ) 
     262     DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    262263        zdep = hmld(ji,jj) 
    263264        IF (tmask(ji,jj,jk) == 1. .AND. gdept(ji,jj,jk,Kmm) <= zdep ) THEN 
     
    274275     ! --------------------------------------------------------------------- 
    275276     ztremint(:,:,:) = zremipoc(:,:,:) 
    276      DO_3D_11_11( 1, jpkm1 ) 
     277     DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    277278        IF (tmask(ji,jj,jk) == 1.) THEN 
    278279          zdep = hmld(ji,jj) 
     
    309310     ! ----------------------------------------------------------------------- 
    310311     ! 
    311      DO_3D_11_11( 2, jpkm1 ) 
     312     DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    312313        IF (tmask(ji,jj,jk) == 1.) THEN 
    313314          zdep = hmld(ji,jj) 
     
    383384 
    384385     IF( ln_p4z ) THEN 
    385          DO_3D_11_11( 1, jpkm1 ) 
     386         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    386387            IF (tmask(ji,jj,jk) == 1.) THEN 
    387388              ! POC disaggregation by turbulence and bacterial activity.  
     
    400401         END_3D 
    401402     ELSE 
    402        DO_3D_11_11( 1, jpkm1 ) 
     403       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    403404          ! POC disaggregation by turbulence and bacterial activity.  
    404405          ! -------------------------------------------------------- 
     
    433434      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    434435         WRITE(charout, FMT="('poc2')") 
    435          CALL prt_ctl_trc_info(charout) 
    436          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     436         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     437         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    437438      ENDIF 
    438439      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zprod.F90

    r12377 r13710  
    1616   USE sms_pisces      ! PISCES Source Minus Sink variables 
    1717   USE p4zlim          ! Co-limitations of differents nutrients 
    18    USE prtctl_trc      ! print control for debugging 
     18   USE prtctl          ! print control for debugging 
    1919   USE iom             ! I/O manager 
    2020 
     
    4848   !! * Substitutions 
    4949#  include "do_loop_substitute.h90" 
     50#  include "domzgr_substitute.h90" 
    5051   !!---------------------------------------------------------------------- 
    5152   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    109110      ! day length in hours 
    110111      zstrn(:,:) = 0. 
    111       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    112113         zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 
    113114         zargu = MAX( -1., MIN(  1., zargu ) ) 
     
    116117 
    117118      ! Impact of the day duration and light intermittency on phytoplankton growth 
    118       DO_3D_11_11( 1, jpkm1 ) 
     119      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    119120         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    120121            zval = MAX( 1., zstrn(ji,jj) ) 
     
    134135 
    135136      ! Computation of the P-I slope for nanos and diatoms 
    136       DO_3D_11_11( 1, jpkm1 ) 
     137      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    137138         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    138139            ztn         = MAX( 0., ts(ji,jj,jk,jp_tem,Kmm) - 15. ) 
     
    149150      END_3D 
    150151 
    151       DO_3D_11_11( 1, jpkm1 ) 
     152      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    152153         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    153154             ! Computation of production function for Carbon 
     
    170171      !  Computation of a proxy of the N/C ratio 
    171172      !  --------------------------------------- 
    172       DO_3D_11_11( 1, jpkm1 ) 
     173      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    173174          zval = MIN( xnanopo4(ji,jj,jk), ( xnanonh4(ji,jj,jk) + xnanono3(ji,jj,jk) ) )   & 
    174175          &      * zprmaxn(ji,jj,jk) / ( zprbio(ji,jj,jk) + rtrn ) 
     
    180181 
    181182 
    182       DO_3D_11_11( 1, jpkm1 ) 
     183      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    183184 
    184185          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    204205      !  Sea-ice effect on production 
    205206 
    206       DO_3D_11_11( 1, jpkm1 ) 
     207      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    207208         zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
    208209         zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
     
    210211 
    211212      ! Computation of the various production terms  
    212       DO_3D_11_11( 1, jpkm1 ) 
     213      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    213214         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    214215            !  production terms for nanophyto. (C) 
     
    236237 
    237238      ! Computation of the chlorophyll production terms 
    238       DO_3D_11_11( 1, jpkm1 ) 
     239      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    239240         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    240241            !  production terms for nanophyto. ( chlorophyll ) 
     
    259260 
    260261      !   Update the arrays TRA which contain the biological sources and sinks 
    261       DO_3D_11_11( 1, jpkm1 ) 
     262      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    262263        IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    263264           zproreg  = zprorcan(ji,jj,jk) - zpronewn(ji,jj,jk) 
     
    287288     IF( ln_ligand ) THEN 
    288289         zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp 
    289          DO_3D_11_11( 1, jpkm1 ) 
     290         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    290291           IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    291292              zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) 
     
    330331     IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    331332         WRITE(charout, FMT="('prod')") 
    332          CALL prt_ctl_trc_info(charout) 
    333          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     333         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     334         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    334335     ENDIF 
    335336      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zrem.F90

    r12377 r13710  
    1818   USE p4zprod         !  Growth rate of the 2 phyto groups 
    1919   USE p4zlim 
    20    USE prtctl_trc      !  print control for debugging 
     20   USE prtctl          !  print control for debugging 
    2121   USE iom             !  I/O manager 
    2222 
     
    4444   !! * Substitutions 
    4545#  include "do_loop_substitute.h90" 
     46#  include "domzgr_substitute.h90" 
    4647   !!---------------------------------------------------------------------- 
    4748   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8889      ! that was modeling explicitely bacteria 
    8990      ! ------------------------------------------------------- 
    90       DO_3D_11_11( 1, jpkm1 ) 
     91      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9192         zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 
    9293         IF( gdept(ji,jj,jk,Kmm) < zdep ) THEN 
     
    102103 
    103104      IF( ln_p4z ) THEN 
    104          DO_3D_11_11( 1, jpkm1 ) 
     105         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    105106            ! DOC ammonification. Depends on depth, phytoplankton biomass 
    106107            ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
     
    133134         END_3D 
    134135      ELSE 
    135          DO_3D_11_11( 1, jpkm1 ) 
     136         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    136137            ! DOC ammonification. Depends on depth, phytoplankton biomass 
    137138            ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
     
    177178 
    178179 
    179       DO_3D_11_11( 1, jpkm1 ) 
     180      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    180181         ! NH4 nitrification to NO3. Ceased for oxygen concentrations 
    181182         ! below 2 umol/L. Inhibited at strong light  
     
    195196       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    196197         WRITE(charout, FMT="('rem1')") 
    197          CALL prt_ctl_trc_info(charout) 
    198          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     198         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     199         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    199200       ENDIF 
    200201 
    201       DO_3D_11_11( 1, jpkm1 ) 
     202      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    202203 
    203204         ! Bacterial uptake of iron. No iron is available in DOC. So 
     
    217218       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    218219         WRITE(charout, FMT="('rem2')") 
    219          CALL prt_ctl_trc_info(charout) 
    220          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     220         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     221         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    221222       ENDIF 
    222223 
     
    225226      ! --------------------------------------------------------------- 
    226227 
    227       DO_3D_11_11( 1, jpkm1 ) 
     228      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    228229         zdep     = MAX( hmld(ji,jj), heup_01(ji,jj) ) 
    229230         zsatur   = MAX( rtrn, ( sio3eq(ji,jj,jk) - tr(ji,jj,jk,jpsil,Kbb) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) 
     
    248249      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    249250         WRITE(charout, FMT="('rem3')") 
    250          CALL prt_ctl_trc_info(charout) 
    251          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     251         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     252         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    252253       ENDIF 
    253254 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zsed.F90

    r12377 r13710  
    1818   USE sed             !  Sediment module 
    1919   USE iom             !  I/O manager 
    20    USE prtctl_trc      !  print control for debugging 
     20   USE prtctl          !  print control for debugging 
    2121 
    2222   IMPLICIT NONE 
     
    3939   !! * Substitutions 
    4040#  include "do_loop_substitute.h90" 
     41#  include "domzgr_substitute.h90" 
    4142   !!---------------------------------------------------------------------- 
    4243   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    9394         ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 
    9495         ! -------------------------------------------------------------------- 
    95          DO_2D_11_11 
     96         DO_2D( 1, 1, 1, 1 ) 
    9697            ikt  = mbkt(ji,jj) 
    9798            zdep = e3t(ji,jj,ikt,Kmm) / xstep 
     
    103104         ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 
    104105         ! ------------------------------------------------------- 
    105          DO_2D_11_11 
     106         DO_2D( 1, 1, 1, 1 ) 
    106107           IF( tmask(ji,jj,1) == 1 ) THEN 
    107108              ikt = mbkt(ji,jj) 
     
    129130      IF( .NOT.lk_sed )  zrivsil = 1._wp - sedsilfrac 
    130131 
    131       DO_2D_11_11 
     132      DO_2D( 1, 1, 1, 1 ) 
    132133         ikt  = mbkt(ji,jj) 
    133134         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    141142      ! 
    142143      IF( .NOT.lk_sed ) THEN 
    143          DO_2D_11_11 
     144         DO_2D( 1, 1, 1, 1 ) 
    144145            ikt  = mbkt(ji,jj) 
    145146            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    159160      ENDIF 
    160161      ! 
    161       DO_2D_11_11 
     162      DO_2D( 1, 1, 1, 1 ) 
    162163         ikt  = mbkt(ji,jj) 
    163164         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    171172      ! 
    172173      IF( ln_p5z ) THEN 
    173          DO_2D_11_11 
     174         DO_2D( 1, 1, 1, 1 ) 
    174175            ikt  = mbkt(ji,jj) 
    175176            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    186187         ! The 0.5 factor in zpdenit is to avoid negative NO3 concentration after 
    187188         ! denitrification in the sediments. Not very clever, but simpliest option. 
    188          DO_2D_11_11 
     189         DO_2D( 1, 1, 1, 1 ) 
    189190            ikt  = mbkt(ji,jj) 
    190191            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    223224      ENDDO 
    224225      IF( ln_p4z ) THEN 
    225          DO_3D_11_11( 1, jpkm1 ) 
     226         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    226227            !                      ! Potential nitrogen fixation dependant on temperature and iron 
    227228            ztemp = ts(ji,jj,jk,jp_tem,Kmm) 
     
    239240         END_3D 
    240241      ELSE       ! p5z 
    241          DO_3D_11_11( 1, jpkm1 ) 
     242         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    242243            !                      ! Potential nitrogen fixation dependant on temperature and iron 
    243244            ztemp = ts(ji,jj,jk,jp_tem,Kmm) 
     
    260261      ! ---------------------------------------- 
    261262      IF( ln_p4z ) THEN 
    262          DO_3D_11_11( 1, jpkm1 ) 
     263         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    263264            zfact = nitrpot(ji,jj,jk) * nitrfix 
    264265            tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 
     
    277278         END_3D 
    278279      ELSE    ! p5z 
    279          DO_3D_11_11( 1, jpkm1 ) 
     280         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    280281            zfact = nitrpot(ji,jj,jk) * nitrfix 
    281282            tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 
     
    312313      ENDIF 
    313314      ! 
    314       IF(sn_cfctl%l_prttrc) THEN  ! print mean trends (USEd for debugging) 
     315      IF(sn_cfctl%l_prttrc) THEN  ! print mean trneds (USEd for debugging) 
    315316         WRITE(charout, fmt="('sed ')") 
    316          CALL prt_ctl_trc_info(charout) 
    317          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     317         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     318         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    318319      ENDIF 
    319320      ! 
     
    365366      lk_sed = ln_sediment .AND. ln_sed_2way  
    366367      ! 
     368      nitrpot(:,:,jpk) = 0._wp   ! define last level for iom_put 
     369      ! 
    367370   END SUBROUTINE p4z_sed_init 
    368371 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zsink.F90

    r12377 r13710  
    1717   USE sms_pisces      !  PISCES Source Minus Sink variables 
    1818   USE trcsink         !  General routine to compute sedimentation 
    19    USE prtctl_trc      !  print control for debugging 
     19   USE prtctl          !  print control for debugging 
    2020   USE iom             !  I/O manager 
    2121   USE lib_mpp 
     
    4040   !! * Substitutions 
    4141#  include "do_loop_substitute.h90" 
     42#  include "domzgr_substitute.h90" 
    4243   !!---------------------------------------------------------------------- 
    4344   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8081      !    by data and from the coagulation theory 
    8182      !    ----------------------------------------------------------- 
    82       DO_3D_11_11( 1, jpkm1 ) 
     83      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8384         zmax  = MAX( heup_01(ji,jj), hmld(ji,jj) ) 
    8485         zfact = MAX( 0., gdepw(ji,jj,jk+1,Kmm) - zmax ) / wsbio2scale 
     
    143144      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    144145         WRITE(charout, FMT="('sink')") 
    145          CALL prt_ctl_trc_info(charout) 
    146          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     146         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     147         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    147148      ENDIF 
    148149      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p4zsms.F90

    r12489 r13710  
    2525   USE trdtrc          ! TOP trends variables 
    2626   USE sedmodel        ! Sediment model 
    27    USE prtctl_trc      ! print control for debugging 
     27   USE prtctl          ! print control for debugging 
    2828 
    2929   IMPLICIT NONE 
     
    4141   !! * Substitutions 
    4242#  include "do_loop_substitute.h90" 
     43#  include "domzgr_substitute.h90" 
    4344   !!---------------------------------------------------------------------- 
    4445   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    6869      REAL(wp), ALLOCATABLE, DIMENSION(:,:    ) :: zw2d 
    6970      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:  ) :: zw3d 
    70       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   ztrdt   ! 4D workspace 
     71      REAL(wp), DIMENSION(jpi,jpj,jpk,jp_pisces) :: ztrbbio 
    7172 
    7273      !!--------------------------------------------------------------------- 
     
    9293      rfact = rDt_trc 
    9394      ! 
    94       ! trends computation initialisation 
    95       IF( l_trdtrc )  THEN 
    96          ALLOCATE( ztrdt(jpi,jpj,jpk,jp_pisces) )  !* store now fields before applying the Asselin filter 
    97          ztrdt(:,:,:,:)  = tr(:,:,:,:,Kmm) 
    98       ENDIF 
    99       ! 
    100  
    10195      IF( ( ln_top_euler .AND. kt == nittrc000 )  .OR. ( .NOT.ln_top_euler .AND. kt <= nittrc000 + 1 ) ) THEN 
    10296         rfactr  = 1. / rfact 
     
    116110         END DO 
    117111      ENDIF 
     112 
     113      DO jn = jp_pcs0, jp_pcs1              !   Store the tracer concentrations before entering PISCES 
     114         ztrbbio(:,:,:,jn) = tr(:,:,:,jn,Kbb) 
     115      END DO 
     116 
    118117      ! 
    119118      IF( ll_bc )    CALL p4z_bc( kt, Kbb, Kmm, Krhs )   ! external sources of nutrients  
     
    132131         xnegtr(:,:,:) = 1.e0 
    133132         DO jn = jp_pcs0, jp_pcs1 
    134             DO_3D_11_11( 1, jpk ) 
     133            DO_3D( 1, 1, 1, 1, 1, jpk ) 
    135134               IF( ( tr(ji,jj,jk,jn,Kbb) + tr(ji,jj,jk,jn,Krhs) ) < 0.e0 ) THEN 
    136135                  ztra             = ABS( tr(ji,jj,jk,jn,Kbb) ) / ( ABS( tr(ji,jj,jk,jn,Krhs) ) + rtrn ) 
     
    197196         END DO 
    198197         ! 
    199          IF( ln_top_euler ) THEN 
    200             DO jn = jp_pcs0, jp_pcs1 
    201                tr(:,:,:,jn,Kmm) = tr(:,:,:,jn,Kbb) 
    202             END DO 
    203          ENDIF 
     198      END DO 
     199      ! 
     200#endif 
     201      ! 
     202      IF( ln_sediment ) THEN  
     203         ! 
     204         CALL sed_model( kt, Kbb, Kmm, Krhs )     !  Main program of Sediment model 
     205         ! 
     206      ENDIF 
     207      ! 
     208      DO jn = jp_pcs0, jp_pcs1 
     209         tr(:,:,:,jn,Krhs) = ( tr(:,:,:,jn,Kbb) - ztrbbio(:,:,:,jn) ) * rfactr 
     210         tr(:,:,:,jn,Kbb ) = ztrbbio(:,:,:,jn) 
     211         ztrbbio(:,:,:,jn) = 0._wp 
    204212      END DO 
    205213      ! 
    206214      IF( l_trdtrc ) THEN 
    207215         DO jn = jp_pcs0, jp_pcs1 
    208            ztrdt(:,:,:,jn) = ( tr(:,:,:,jn,Kbb) - ztrdt(:,:,:,jn) ) * rfact2r  
    209216           CALL trd_trc( tr(:,:,:,jn,Krhs), jn, jptra_sms, kt, Kmm )   ! save trends 
    210217         END DO 
    211          DEALLOCATE( ztrdt )  
    212218      END IF 
    213 #endif 
    214       ! 
    215       IF( ln_sediment ) THEN  
    216          ! 
    217          CALL sed_model( kt, Kbb, Kmm, Krhs )     !  Main program of Sediment model 
    218          ! 
    219          IF( ln_top_euler ) THEN 
    220             DO jn = jp_pcs0, jp_pcs1 
    221                tr(:,:,:,jn,Kmm) = tr(:,:,:,jn,Kbb) 
    222             END DO 
    223          ENDIF 
    224          ! 
    225       ENDIF 
    226       ! 
     219      !   
    227220      IF( lrst_trc )  CALL p4z_rst( kt, Kbb, Kmm,  'WRITE' )           !* Write PISCES informations in restart file  
    228221      ! 
     
    340333         !  
    341334         IF( iom_varid( numrtr, 'PH', ldstop = .FALSE. ) > 0 ) THEN 
    342             CALL iom_get( numrtr, jpdom_autoglo, 'PH' , hi(:,:,:)  ) 
     335            CALL iom_get( numrtr, jpdom_auto, 'PH' , hi(:,:,:)  ) 
    343336         ELSE 
    344337            CALL p4z_che( Kbb, Kmm )                  ! initialize the chemical constants 
    345338            CALL ahini_for_at( hi, Kbb ) 
    346339         ENDIF 
    347          CALL iom_get( numrtr, jpdom_autoglo, 'Silicalim', xksi(:,:) ) 
     340         CALL iom_get( numrtr, jpdom_auto, 'Silicalim', xksi(:,:) ) 
    348341         IF( iom_varid( numrtr, 'Silicamax', ldstop = .FALSE. ) > 0 ) THEN 
    349             CALL iom_get( numrtr, jpdom_autoglo, 'Silicamax' , xksimax(:,:)  ) 
     342            CALL iom_get( numrtr, jpdom_auto, 'Silicamax' , xksimax(:,:)  ) 
    350343         ELSE 
    351344            xksimax(:,:) = xksi(:,:) 
     
    360353         IF( ln_p5z ) THEN 
    361354            IF( iom_varid( numrtr, 'sized', ldstop = .FALSE. ) > 0 ) THEN 
    362                CALL iom_get( numrtr, jpdom_autoglo, 'sizep' , sizep(:,:,:)  ) 
    363                CALL iom_get( numrtr, jpdom_autoglo, 'sizen' , sizen(:,:,:)  ) 
    364                CALL iom_get( numrtr, jpdom_autoglo, 'sized' , sized(:,:,:)  ) 
     355               CALL iom_get( numrtr, jpdom_auto, 'sizep' , sizep(:,:,:)  ) 
     356               CALL iom_get( numrtr, jpdom_auto, 'sizen' , sizen(:,:,:)  ) 
     357               CALL iom_get( numrtr, jpdom_auto, 'sized' , sized(:,:,:)  ) 
    365358            ELSE 
    366359               sizep(:,:,:) = 1. 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p5zlim.F90

    r12377 r13710  
    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 
     
    306306         &          / (xqndmax(ji,jj,jk) - 2. * xqndmin(ji,jj,jk) ) )   & 
    307307         &          * xqndmax(ji,jj,jk) / (zration + rtrn) 
    308          zlim3    = tr(ji,jj,jk,jpsil,Kbb) / ( tr(ji,jj,jk,jpsil,Kbb) + xksi(ji,jj) ) 
     308         zlim3    = tr(ji,jj,jk,jpsil,Kbb) / ( tr(ji,jj,jk,jpsil,Kbb) + xksi(ji,jj) + rtrn ) 
    309309         zlim4    = MAX( 0., ( zratiof - zqfemd ) / qfdopt ) 
    310310         xlimdfe(ji,jj,jk) = MIN( 1., zlim4 ) 
     
    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/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p5zmeso.F90

    r12377 r13710  
    1515   USE trc             !  passive tracers common variables  
    1616   USE sms_pisces      !  PISCES Source Minus Sink variables 
    17    USE prtctl_trc      !  print control for debugging 
     17   USE prtctl          !  print control for debugging 
    1818   USE iom             !  I/O manager 
    1919 
     
    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 
     
    359359      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    360360        WRITE(charout, FMT="('meso')") 
    361         CALL prt_ctl_trc_info(charout) 
    362         CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     361        CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     362        CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    363363      ENDIF 
    364364      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p5zmicro.F90

    r12377 r13710  
    1818   USE p5zlim          !  Phytoplankton limitation terms 
    1919   USE iom             !  I/O manager 
    20    USE prtctl_trc      !  print control for debugging 
     20   USE prtctl          !  print control for debugging 
    2121 
    2222   IMPLICIT NONE 
     
    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 
     
    306306      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    307307         WRITE(charout, FMT="('micro')") 
    308          CALL prt_ctl_trc_info(charout) 
    309          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     308         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     309         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    310310      ENDIF 
    311311      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p5zmort.F90

    r12377 r13710  
    1616   USE p4zlim 
    1717   USE p5zlim          !  Phytoplankton limitation terms 
    18    USE prtctl_trc      !  print control for debugging 
     18   USE prtctl          !  print control for debugging 
    1919 
    2020   IMPLICIT NONE 
     
    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 
     
    121121       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    122122         WRITE(charout, FMT="('nano')") 
    123          CALL prt_ctl_trc_info(charout) 
    124          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     123         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     124         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    125125       ENDIF 
    126126      ! 
     
    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 
     
    179179       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    180180         WRITE(charout, FMT="('pico')") 
    181          CALL prt_ctl_trc_info(charout) 
    182          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     181         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     182         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    183183       ENDIF 
    184184      ! 
     
    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. ) 
     
    254254      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    255255         WRITE(charout, FMT="('diat')") 
    256          CALL prt_ctl_trc_info(charout) 
    257          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     256         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     257         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    258258      ENDIF 
    259259      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/P4Z/p5zprod.F90

    r12377 r13710  
    1818   USE p4zlim 
    1919   USE p5zlim          !  Co-limitations of differents nutrients 
    20    USE prtctl_trc      !  print control for debugging 
     20   USE prtctl          !  print control for debugging 
    2121   USE iom             !  I/O manager 
    2222 
     
    5252   !! * Substitutions 
    5353#  include "do_loop_substitute.h90" 
     54#  include "domzgr_substitute.h90" 
    5455   !!---------------------------------------------------------------------- 
    5556   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    124125      ! day length in hours 
    125126      zstrn(:,:) = 0. 
    126       DO_2D_11_11 
     127      DO_2D( 1, 1, 1, 1 ) 
    127128         zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 
    128129         zargu = MAX( -1., MIN(  1., zargu ) ) 
     
    131132 
    132133         ! Impact of the day duration on phytoplankton growth 
    133       DO_3D_11_11( 1, jpkm1 ) 
     134      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    134135         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    135136            zval = MAX( 1., zstrn(ji,jj) ) 
     
    151152      WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 
    152153 
    153       DO_3D_11_11( 1, jpkm1 ) 
     154      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    154155         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    155156            ! Computation of the P-I slope for nanos and diatoms 
     
    185186      END_3D 
    186187 
    187       DO_3D_11_11( 1, jpkm1 ) 
     188      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    188189 
    189190          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    207208 
    208209      !  Sea-ice effect on production                                                                                
    209       DO_3D_11_11( 1, jpkm1 ) 
     210      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    210211         zprbio(ji,jj,jk)  = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
    211212         zprpic(ji,jj,jk)  = zprpic(ji,jj,jk) * ( 1. - fr_i(ji,jj) )  
     
    215216 
    216217      ! Computation of the various production terms of nanophytoplankton  
    217       DO_3D_11_11( 1, jpkm1 ) 
     218      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    218219         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    219220            !  production terms for nanophyto. 
     
    248249 
    249250      ! Computation of the various production terms of picophytoplankton  
    250       DO_3D_11_11( 1, jpkm1 ) 
     251      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    251252         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    252253            !  production terms for picophyto. 
     
    281282 
    282283      ! Computation of the various production terms of diatoms 
    283       DO_3D_11_11( 1, jpkm1 ) 
     284      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    284285         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    285286            !  production terms for diatomees 
     
    315316      END_3D 
    316317 
    317       DO_3D_11_11( 1, jpkm1 ) 
     318      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    318319         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    319320               !  production terms for nanophyto. ( chlorophyll ) 
     
    346347 
    347348      !   Update the arrays TRA which contain the biological sources and sinks 
    348       DO_3D_11_11( 1, jpkm1 ) 
     349      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    349350        zprontot = zpronewn(ji,jj,jk) + zproregn(ji,jj,jk) 
    350351        zproptot = zpronewp(ji,jj,jk) + zproregp(ji,jj,jk) 
     
    409410     IF( ln_ligand ) THEN 
    410411         zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp              
    411          DO_3D_11_11( 1, jpkm1 ) 
     412         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    412413           zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) + excretp * zprorcap(ji,jj,jk) 
    413414           zfeup    = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) + texcretp * zprofep(ji,jj,jk) 
     
    460461      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    461462         WRITE(charout, FMT="('prod')") 
    462          CALL prt_ctl_trc_info(charout) 
    463          CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 
     463         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     464         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    464465      ENDIF 
    465466      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/oce_sed.F90

    r12489 r13710  
    1313   USE dom_oce , ONLY :   glamt     =>   glamt          !: longitude of t-point (degre) 
    1414   USE dom_oce , ONLY :   gphit     =>   gphit          !: latitude  of t-point (degre) 
     15!!st  
     16#if ! defined key_qco 
    1517   USE dom_oce , ONLY :   e3t       =>   e3t            !: latitude  of t-point (degre) 
     18#endif 
    1619   USE dom_oce , ONLY :   e3t_1d    =>   e3t_1d         !: reference depth of t-points (m) 
    1720   USE dom_oce , ONLY :   gdepw_0   =>   gdepw_0        !: reference depth of t-points (m) 
     
    5356 
    5457END MODULE oce_sed 
    55  
    56  
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/sedchem.F90

    r12377 r13710  
    138138         CALL sed_chem_cst 
    139139      ELSE 
    140          DO_2D_11_11 
     140         DO_2D( 1, 1, 1, 1 ) 
    141141            ikt = mbkt(ji,jj)  
    142142            IF ( tmask(ji,jj,ikt) == 1 ) THEN 
     
    577577         saltprac(:) = salt(:) * 35.0 / 35.16504 
    578578      ELSE 
    579          saltprac(:) = temp(:) 
     579         saltprac(:) = salt(:) 
    580580      ENDIF 
    581581 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/seddta.F90

    r12489 r13710  
    2424   !! * Substitutions 
    2525#  include "do_loop_substitute.h90" 
     26#  include "domzgr_substitute.h90" 
    2627   !! $Id$ 
    2728CONTAINS 
     
    9596      !    ----------------------------------------------------------- 
    9697      IF (ln_sediment_offline) THEN 
    97          DO_2D_11_11 
     98         DO_2D( 1, 1, 1, 1 ) 
    9899            ikt = mbkt(ji,jj) 
    99100            zwsbio4(ji,jj) = wsbio2 / rday 
     
    101102         END_2D 
    102103      ELSE 
    103          DO_2D_11_11 
     104         DO_2D( 1, 1, 1, 1 ) 
    104105            ikt = mbkt(ji,jj) 
    105106            zdep = e3t(ji,jj,ikt,Kmm) / rDt_trc 
     
    110111 
    111112      trc_data(:,:,:) = 0. 
    112       DO_2D_11_11 
     113      DO_2D( 1, 1, 1, 1 ) 
    113114         ikt = mbkt(ji,jj) 
    114115         IF ( tmask(ji,jj,ikt) == 1 ) THEN 
     
    164165      CALL pack_arr ( jpoce,  rainrm_dta(1:jpoce,jscal), trc_data(1:jpi,1:jpj,14), iarroce(1:jpoce) ) 
    165166      rainrm_dta(1:jpoce,jscal) = rainrm_dta(1:jpoce,jscal) * 1e-4 
    166       ! vector temperature [°C] and salinity  
     167      ! vector temperature [C] and salinity  
    167168      CALL pack_arr ( jpoce,  temp(1:jpoce), trc_data(1:jpi,1:jpj,15), iarroce(1:jpoce) ) 
    168169      CALL pack_arr ( jpoce,  salt(1:jpoce), trc_data(1:jpi,1:jpj,16), iarroce(1:jpoce) ) 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/sedini.F90

    r12489 r13710  
    135135      ! Determination of sediments number of points and allocate global variables 
    136136      epkbot(:,:) = 0. 
    137       DO_2D_11_11 
     137      DO_2D( 1, 1, 1, 1 ) 
    138138         ikt = mbkt(ji,jj)  
    139139         IF( tmask(ji,jj,ikt) == 1 ) epkbot(ji,jj) = e3t_1d(ikt) 
     
    247247      ! Computation of 1D array of sediments points 
    248248      indoce = 0 
    249       DO_2D_11_11 
     249      DO_2D( 1, 1, 1, 1 ) 
    250250         IF (  epkbot(ji,jj) > 0. ) THEN 
    251251            indoce          = indoce + 1 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/sedinorg.F90

    r10225 r13710  
    8989            zsolcpcl = zsolcpcl + solcp(ji,jk,jsclay) * dz(jk) 
    9090         END DO 
     91         zsolcpsi = MAX( zsolcpsi, rtrn ) 
    9192         zsieq(ji) = sieqs(ji) * MAX(0.25, 1.0 - (0.045 * zsolcpcl / zsolcpsi )**0.58 ) 
    9293         zsieq(ji) = MAX( rtrn, sieqs(ji) ) 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/sedrst.F90

    r12649 r13710  
    123123         cltra = TRIM(sedtrcd(jn)) 
    124124         IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    125             CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta(:,:,:,jn) ) 
     125            CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta(:,:,:,jn) ) 
    126126         ELSE 
    127127            zdta(:,:,:,jn) = 0.0 
     
    142142         cltra = TRIM(seddia3d(jn)) 
    143143         IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    144             CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta1(:,:,:,jn) ) 
     144            CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta1(:,:,:,jn) ) 
    145145         ELSE 
    146146            zdta1(:,:,:,jn) = 0.0 
     
    169169      cltra = "dbioturb" 
    170170      IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    171          CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:) ) 
     171         CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:) ) 
    172172      ELSE 
    173173         zdta2(:,:,:) = 0.0 
     
    179179      cltra = "irrig" 
    180180      IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    181          CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:) ) 
     181         CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:) ) 
    182182      ELSE 
    183183         zdta2(:,:,:) = 0.0 
     
    189189      cltra = "sedligand" 
    190190      IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    191          CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:) ) 
     191         CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:) ) 
    192192      ELSE 
    193193         zdta2(:,:,:) = 0.0 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/sedsfc.F90

    r12377 r13710  
    4848 
    4949 
    50       DO_2D_11_11 
     50      DO_2D( 1, 1, 1, 1 ) 
    5151         ikt = mbkt(ji,jj) 
    5252         IF ( tmask(ji,jj,ikt) == 1 ) THEN 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/SED/trcdmp_sed.F90

    r12377 r13710  
    2121   USE trc             ! ocean passive tracers variables 
    2222   USE trcdta 
    23    USE prtctl_trc      ! Print control for debbuging 
     23   USE prtctl          ! Print control for debbuging 
    2424   USE iom 
    2525 
     
    9393               CALL trc_dta( kt, Kmm, sf_trcdta(jl), rf_trfac(jl), ztrcdta )   ! read tracer data at nit000 
    9494               ! 
    95                DO_2D_11_11 
     95               DO_2D( 1, 1, 1, 1 ) 
    9696                  ikt = mbkt(ji,jj) 
    9797                  tr(ji,jj,ikt,jn,Kbb) = ztrcdta(ji,jj,ikt) + ( tr(ji,jj,ikt,jn,Kbb) -  ztrcdta(ji,jj,ikt) )     & 
     
    107107      IF( sn_cfctl%l_prttrc ) THEN 
    108108         WRITE(charout, FMT="('dmp ')") 
    109          CALL prt_ctl_trc_info(charout) 
    110          CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     109         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     110         CALL prt_ctl( tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    111111      ENDIF 
    112112      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/PISCES/trcwri_pisces.F90

    r12377 r13710  
    2121   !! * Substitutions 
    2222#  include "do_loop_substitute.h90" 
     23#  include "domzgr_substitute.h90" 
    2324   !!---------------------------------------------------------------------- 
    2425   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    6869            zo2min   (:,:) = tr(:,:,1,jpoxy,Kmm) * tmask(:,:,1) 
    6970            zdepo2min(:,:) = gdepw(:,:,1,Kmm)   * tmask(:,:,1) 
    70             DO_3D_11_11( 2, jpkm1 ) 
     71            DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    7172               IF( tmask(ji,jj,jk) == 1 ) then 
    7273                  IF( tr(ji,jj,jk,jpoxy,Kmm) < zo2min(ji,jj) ) then 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcadv.F90

    r12489 r13710  
    2929   USE ldfslp         ! Lateral diffusion: slopes of neutral surfaces 
    3030   ! 
    31    USE prtctl_trc     ! control print 
     31   USE prtctl         ! control print 
    3232   USE timing         ! Timing 
    3333 
     
    5959   INTEGER, PARAMETER ::   np_QCK     = 5   ! QUICK scheme 
    6060    
     61#  include "domzgr_substitute.h90" 
    6162   !!---------------------------------------------------------------------- 
    6263   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    137138      IF( sn_cfctl%l_prttrc ) THEN        !== print mean trends (used for debugging) 
    138139         WRITE(charout, FMT="('adv ')") 
    139          CALL prt_ctl_trc_info(charout) 
    140          CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     140         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     141         CALL prt_ctl( tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    141142      END IF 
    142143      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcatf.F90

    r12489 r13710  
    3131   USE trd_oce 
    3232   USE trdtra 
     33# if defined key_qco 
     34   USE traatfqco 
     35# else 
    3336   USE traatf 
     37# endif 
    3438   USE bdy_oce   , ONLY: ln_bdy 
    3539   USE trcbdy          ! BDY open boundaries 
     
    3943   ! 
    4044   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    41    USE prtctl_trc      ! Print control for debbuging 
     45   USE prtctl          ! Print control for debbuging 
    4246 
    4347   IMPLICIT NONE 
     
    5054   !! * Substitutions 
    5155#  include "do_loop_substitute.h90" 
     56#  include "domzgr_substitute.h90" 
    5257   !!---------------------------------------------------------------------- 
    5358   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    112117         ! total trend for the non-time-filtered variables.  
    113118         zfact = 1.0 / rn_Dt 
    114          ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from ts(Kmm) terms 
     119         ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3ta*Ta)/e3tn; e3tn cancel from ts(Kmm) terms 
    115120         IF( ln_linssh ) THEN       ! linear sea surface height only 
    116121            DO jn = 1, jptra 
     
    151156      ELSE      
    152157         IF( .NOT. l_offline ) THEN ! Leap-Frog + Asselin filter time stepping 
     158# if defined key_qco 
     159            IF( ln_linssh ) THEN   ;   CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nittrc000,        'TRC', ptr, jptra )                     !     linear ssh 
     160            ELSE                   ;   CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 
     161# else 
    153162            IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nittrc000,         'TRC', ptr, jptra )                     !     linear ssh 
    154163            ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 
     164# endif 
    155165            ENDIF 
    156166         ELSE 
     
    174184      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging) 
    175185         WRITE(charout, FMT="('nxt')") 
    176          CALL prt_ctl_trc_info(charout) 
    177          CALL prt_ctl_trc(tab4d=ptr(:,:,:,:,Kmm), mask=tmask, clinfo=ctrcnm) 
     186         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     187         CALL prt_ctl(tab4d_1=ptr(:,:,:,:,Kmm), mask1=tmask, clinfo=ctrcnm) 
    178188      ENDIF 
    179189      ! 
     
    182192   END SUBROUTINE trc_atf 
    183193 
    184  
     194# if ! defined key_qco 
    185195   SUBROUTINE trc_atf_off( kt, Kbb, Kmm, Kaa, ptr ) 
    186196      !!---------------------------------------------------------------------- 
     
    198208      !!                This can be summurized for tempearture as: 
    199209      !!             ztm = ( e3t_n*tn + rbcp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] )   ln_dynhpg_imp = T 
    200       !!                  /( e3t(:,:,:,Kmm)    + rbcp*[ e3t(:,:,:,Kbb)    - 2 e3t(:,:,:,Kmm)    + e3t(:,:,:,Kaa)    ] )    
     210      !!                  /( e3t(:,:,jk,Kmm)    + rbcp*[ e3t(:,:,jk,Kbb)    - 2 e3t(:,:,jk,Kmm)    + e3t(:,:,jk,Kaa)    ] )    
    201211      !!             ztm = 0                                                       otherwise 
    202212      !!             tb  = ( e3t_n*tn + rn_atfp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) 
    203       !!                  /( e3t(:,:,:,Kmm)    + rn_atfp*[ e3t(:,:,:,Kbb)    - 2 e3t(:,:,:,Kmm)    + e3t(:,:,:,Kaa)    ] ) 
     213      !!                  /( e3t(:,:,jk,Kmm)    + rn_atfp*[ e3t(:,:,jk,Kbb)    - 2 e3t(:,:,jk,Kmm)    + e3t(:,:,jk,Kaa)    ] ) 
    204214      !!             tn  = ta  
    205215      !!             ta  = zt        (NB: reset to 0 after eos_bn2 call) 
     
    229239      ! 
    230240      DO jn = 1, jptra       
    231          DO_3D_11_11( 1, jpkm1 ) 
     241         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    232242            ze3t_b = e3t(ji,jj,jk,Kbb) 
    233243            ze3t_n = e3t(ji,jj,jk,Kmm) 
     
    257267      ! 
    258268   END SUBROUTINE trc_atf_off 
     269# else 
     270   SUBROUTINE trc_atf_off( kt, Kbb, Kmm, Kaa, ptr ) 
     271      !!---------------------------------------------------------------------- 
     272      !!                   ***  ROUTINE tra_atf_off  *** 
     273      !! 
     274      !!          !!!!!!!!!!!!!!!!! REWRITE HEADER COMMENTS !!!!!!!!!!!!!! 
     275      !! 
     276      !! ** Purpose :   Time varying volume: apply the Asselin time filter   
     277      !!  
     278      !! ** Method  : - Apply a thickness weighted Asselin time filter on now fields. 
     279      !!              - save in (ta,sa) a thickness weighted average over the three  
     280      !!             time levels which will be used to compute rdn and thus the semi- 
     281      !!             implicit hydrostatic pressure gradient (ln_dynhpg_imp = T) 
     282      !!              - swap tracer fields to prepare the next time_step. 
     283      !!                This can be summurized for tempearture as: 
     284      !!             ztm = ( e3t_n*tn + rbcp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] )   ln_dynhpg_imp = T 
     285      !!                  /( e3t(:,:,jk,Kmm)    + rbcp*[ e3t(:,:,jk,Kbb)    - 2 e3t(:,:,jk,Kmm)    + e3t(:,:,jk,Kaa)    ] )    
     286      !!             ztm = 0                                                       otherwise 
     287      !!             tb  = ( e3t_n*tn + rn_atfp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) 
     288      !!                  /( e3t(:,:,jk,Kmm)    + rn_atfp*[ e3t(:,:,jk,Kbb)    - 2 e3t(:,:,jk,Kmm)    + e3t(:,:,jk,Kaa)    ] ) 
     289      !!             tn  = ta  
     290      !!             ta  = zt        (NB: reset to 0 after eos_bn2 call) 
     291      !! 
     292      !! ** Action  : - (tb,sb) and (tn,sn) ready for the next time step 
     293      !!              - (ta,sa) time averaged (t,s)   (ln_dynhpg_imp = T) 
     294      !!---------------------------------------------------------------------- 
     295      INTEGER                                   , INTENT(in   ) ::  kt            ! ocean time-step index 
     296      INTEGER                                   , INTENT(in   ) ::  Kbb, Kmm, Kaa ! time level indices 
     297      REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::  ptr           ! passive tracers 
     298      !!      
     299      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
     300      REAL(wp) ::   ztc_a , ztc_n , ztc_b , ztc_f , ztc_d    ! local scalar 
     301      REAL(wp) ::   ze3t_b, ze3t_n, ze3t_a, ze3t_f           !   -      - 
     302      !!---------------------------------------------------------------------- 
     303      ! 
     304      IF( kt == nittrc000 )  THEN 
     305         IF(lwp) WRITE(numout,*) 
     306         IF(lwp) WRITE(numout,*) 'trc_atf_off : Asselin time filtering' 
     307         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
     308         IF( .NOT. ln_linssh ) THEN 
     309            rfact1 = rn_atfp * rn_Dt 
     310            rfact2 = rfact1 / rho0 
     311         ENDIF 
     312        !   
     313      ENDIF 
     314      ! 
     315      DO jn = 1, jptra       
     316         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     317            ze3t_b = 1._wp + r3t(ji,jj,Kbb) * tmask(ji,jj,jk) 
     318            ze3t_n = 1._wp + r3t(ji,jj,Kmm) * tmask(ji,jj,jk) 
     319            ze3t_a = 1._wp + r3t(ji,jj,Kaa) * tmask(ji,jj,jk) 
     320            !                                         ! tracer content at Before, now and after 
     321            ztc_b  = ptr(ji,jj,jk,jn,Kbb) * ze3t_b 
     322            ztc_n  = ptr(ji,jj,jk,jn,Kmm) * ze3t_n 
     323            ztc_a  = ptr(ji,jj,jk,jn,Kaa) * ze3t_a 
     324            ! 
     325            ztc_d  = ztc_a  - 2. * ztc_n  + ztc_b 
     326            ! 
     327            ze3t_f = 1._wp + r3t_f(ji,jj)*tmask(ji,jj,jk) 
     328            ztc_f  = ztc_n  + rn_atfp * ztc_d 
     329            ! 
     330            IF( .NOT. ln_linssh .AND. jk == mikt(ji,jj) ) THEN           ! first level  
     331               ztc_f  = ztc_f  - rfact1 * ( sbc_trc(ji,jj,jn) - sbc_trc_b(ji,jj,jn) ) 
     332            ENDIF 
     333 
     334            ze3t_f = 1.e0 / ze3t_f 
     335            ptr(ji,jj,jk,jn,Kmm) = ztc_f * ze3t_f     ! time filtered "now" field 
     336            ! 
     337         END_3D 
     338         !  
     339      END DO 
     340      ! 
     341   END SUBROUTINE trc_atf_off 
     342# endif 
    259343 
    260344#else 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcbbl.F90

    r12377 r13710  
    2525   USE trdtra         ! tracer trends 
    2626   USE trabbl         ! bottom boundary layer  
    27    USE prtctl_trc     ! Print control for debbuging 
     27   USE prtctl         ! Print control for debbuging 
    2828 
    2929   PUBLIC   trc_bbl   !  routine called by trctrp.F90 
     
    7070         CALL tra_bbl_dif( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm )   
    7171         IF( sn_cfctl%l_prttrc )   THEN 
    72             WRITE(charout, FMT="(' bbl_dif')")  ;  CALL prt_ctl_trc_info(charout) 
    73             CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     72            WRITE(charout, FMT="(' bbl_dif')")  ;  CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     73            CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    7474         ENDIF 
    7575         ! 
     
    8181         CALL tra_bbl_adv( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm )   
    8282         IF( sn_cfctl%l_prttrc )   THEN 
    83             WRITE(charout, FMT="(' bbl_adv')")  ;  CALL prt_ctl_trc_info(charout) 
    84             CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     83            WRITE(charout, FMT="(' bbl_adv')")  ;  CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     84            CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    8585         ENDIF 
    8686         ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcdmp.F90

    r12377 r13710  
    2424   ! 
    2525   USE iom 
    26    USE prtctl_trc      ! Print control for debbuging 
     26   USE prtctl          ! Print control for debbuging 
    2727 
    2828   IMPLICIT NONE 
     
    4545   !! * Substitutions 
    4646#  include "do_loop_substitute.h90" 
     47#  include "domzgr_substitute.h90" 
    4748   !!---------------------------------------------------------------------- 
    4849   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    112113               ! 
    113114               CASE( 0 )                !==  newtonian damping throughout the water column  ==! 
    114                   DO_3D_00_00( 1, jpkm1 ) 
     115                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    115116                     ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
    116117                  END_3D 
    117118                  ! 
    118119               CASE ( 1 )                !==  no damping in the turbocline (avt > 5 cm2/s)  ==! 
    119                   DO_3D_00_00( 1, jpkm1 ) 
     120                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    120121                     IF( avt(ji,jj,jk) <= avt_c )  THEN  
    121122                        ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
     
    124125                  ! 
    125126               CASE ( 2 )               !==  no damping in the mixed layer   ==!  
    126                   DO_3D_00_00( 1, jpkm1 ) 
     127                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    127128                     IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 
    128129                        ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
     
    148149      IF( sn_cfctl%l_prttrc ) THEN 
    149150         WRITE(charout, FMT="('dmp ')") 
    150          CALL prt_ctl_trc_info(charout) 
    151          CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     151         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     152         CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    152153      ENDIF 
    153154      ! 
     
    204205         !Read in mask from file 
    205206         CALL iom_open ( cn_resto_tr, imask) 
    206          CALL iom_get  ( imask, jpdom_autoglo, 'resto', restotr) 
     207         CALL iom_get  ( imask, jpdom_auto, 'resto', restotr) 
    207208         CALL iom_close( imask ) 
    208209         ! 
     
    245246            !                                           ! ======================= 
    246247            CASE ( 1 )                                  ! eORCA_R1 configuration 
    247             !                                           ! ======================= 
    248             isrow = 332 - jpjglo 
    249             ! 
    250             nctsi1(1)   = 333  ; nctsj1(1)   = 243 - isrow   ! Caspian Sea 
    251             nctsi2(1)   = 342  ; nctsj2(1)   = 274 - isrow 
    252             !                                         
    253             nctsi1(2)   = 198  ; nctsj1(2)   = 258 - isrow   ! Lake Superior 
    254             nctsi2(2)   = 204  ; nctsj2(2)   = 262 - isrow 
    255             !                                          
    256             nctsi1(3)   = 201  ; nctsj1(3)   = 250 - isrow   ! Lake Michigan 
    257             nctsi2(3)   = 203  ; nctsj2(3)   = 256 - isrow 
    258             !                                         
    259             nctsi1(4)   = 204  ; nctsj1(4)   = 252 - isrow   ! Lake Huron 
    260             nctsi2(4)   = 209  ; nctsj2(4)   = 256 - isrow 
    261             !                                         
    262             nctsi1(5)   = 206  ; nctsj1(5)   = 249 - isrow   ! Lake Erie 
    263             nctsi2(5)   = 209  ; nctsj2(5)   = 251 - isrow 
    264             !                                         
    265             nctsi1(6)   = 210  ; nctsj1(6)   = 252 - isrow   ! Lake Ontario 
    266             nctsi2(6)   = 212  ; nctsj2(6)   = 252 - isrow 
    267             !                                         
    268             nctsi1(7)   = 321  ; nctsj1(7)   = 180 - isrow   ! Victoria Lake 
    269             nctsi2(7)   = 322  ; nctsj2(7)   = 189 - isrow 
    270             !                                         
    271             nctsi1(8)   = 297  ; nctsj1(8)   = 270 - isrow   ! Baltic Sea 
    272             nctsi2(8)   = 308  ; nctsj2(8)   = 293 - isrow 
    273             !                                         
    274             !                                           ! ======================= 
     248               !                                        ! ======================= 
     249               ! 
     250               isrow = 332 - (Nj0glo + 1)   ! was 332 - jpjglo -> jpjglo_old_version = Nj0glo + 1 
     251               ! 
     252               nctsi1(1)   = 333  ; nctsj1(1)   = 243 - isrow   ! Caspian Sea 
     253               nctsi2(1)   = 342  ; nctsj2(1)   = 274 - isrow 
     254               !                                         
     255               nctsi1(2)   = 198  ; nctsj1(2)   = 258 - isrow   ! Lake Superior 
     256               nctsi2(2)   = 204  ; nctsj2(2)   = 262 - isrow 
     257               !                                          
     258               nctsi1(3)   = 201  ; nctsj1(3)   = 250 - isrow   ! Lake Michigan 
     259               nctsi2(3)   = 203  ; nctsj2(3)   = 256 - isrow 
     260               !                                         
     261               nctsi1(4)   = 204  ; nctsj1(4)   = 252 - isrow   ! Lake Huron 
     262               nctsi2(4)   = 209  ; nctsj2(4)   = 256 - isrow 
     263               !                                         
     264               nctsi1(5)   = 206  ; nctsj1(5)   = 249 - isrow   ! Lake Erie 
     265               nctsi2(5)   = 209  ; nctsj2(5)   = 251 - isrow 
     266               !                                         
     267               nctsi1(6)   = 210  ; nctsj1(6)   = 252 - isrow   ! Lake Ontario 
     268               nctsi2(6)   = 212  ; nctsj2(6)   = 252 - isrow 
     269               !                                         
     270               nctsi1(7)   = 321  ; nctsj1(7)   = 180 - isrow   ! Victoria Lake 
     271               nctsi2(7)   = 322  ; nctsj2(7)   = 189 - isrow 
     272               !                                         
     273               nctsi1(8)   = 297  ; nctsj1(8)   = 270 - isrow   ! Baltic Sea 
     274               nctsi2(8)   = 308  ; nctsj2(8)   = 293 - isrow 
     275               ! 
     276               !                                        ! ======================= 
    275277            CASE ( 2 )                                  !  ORCA_R2 configuration 
    276278               !                                        ! ======================= 
     
    285287               nctsi2(3)   = 181  ;  nctsj2(3)   = 112 
    286288              !                                       
    287                nctsi1(4)   =   2  ;  nctsj1(4)   = 107      ! Black Sea 2 : est part of the Black Sea 
     289               nctsi1(4)   =   2  ;  nctsj1(4)   = 107       ! Black Sea 2 : est part of the Black Sea 
    288290               nctsi2(4)   =   6  ;  nctsj2(4)   = 112 
    289291               !                                      
    290292               nctsi1(5)   =  145 ;  nctsj1(5)   = 116       ! Baltic Sea 
    291293               nctsi2(5)   =  150 ;  nctsj2(5)   = 126 
     294               ! 
    292295               !                                        ! ======================= 
    293296            CASE ( 4 )                                  !  ORCA_R4 configuration 
     
    305308               nctsi1(4)   = 75  ;  nctsj1(4)   = 59         ! Baltic Sea 
    306309               nctsi2(4)   = 76  ;  nctsj2(4)   = 61 
     310               ! 
    307311               !                                        ! ======================= 
    308312            CASE ( 025 )                                ! ORCA_R025 configuration 
     
    318322            ! 
    319323         ENDIF 
     324         ! 
     325         nctsi1(:) = nctsi1(:) + nn_hls - 1   ;   nctsi2(:) = nctsi2(:) + nn_hls - 1   ! -1 as x-perio included in old input files 
     326         nctsj1(:) = nctsj1(:) + nn_hls       ;   nctsj2(:) = nctsj2(:) + nn_hls 
    320327         ! 
    321328         ! convert the position in local domain indices 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcldf.F90

    r12377 r13710  
    2525   USE trdtra         ! trends manager: tracers 
    2626   ! 
    27    USE prtctl_trc     ! Print control 
     27   USE prtctl         ! Print control 
    2828 
    2929   IMPLICIT NONE 
     
    4444   !! * Substitutions 
    4545#  include "do_loop_substitute.h90" 
     46#  include "domzgr_substitute.h90" 
    4647   !!---------------------------------------------------------------------- 
    4748   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8182      zahv(:,:,:) = rldf * ahtv(:,:,:) 
    8283      !                                  !* Enhanced zonal diffusivity coefficent in the equatorial domain 
    83       DO_3D_11_11( 1, jpk ) 
     84      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    8485         IF( gdept(ji,jj,jk,Kmm) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN 
    8586            zdep = MAX( gdept(ji,jj,jk,Kmm) - 1000., 0. ) / 1000. 
     
    114115      IF( sn_cfctl%l_prttrc ) THEN ! print mean trends (used for debugging) 
    115116         WRITE(charout, FMT="('ldf ')") 
    116          CALL prt_ctl_trc_info(charout) 
    117          CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     117         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     118         CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    118119      ENDIF 
    119120      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcrad.F90

    r12489 r13710  
    1919   USE trd_oce 
    2020   USE trdtra 
    21    USE prtctl_trc          ! Print control for debbuging 
     21   USE prtctl              ! Print control for debbuging 
    2222   USE lib_fortran 
    2323 
     
    7272      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging) 
    7373         WRITE(charout, FMT="('rad')") 
    74          CALL prt_ctl_trc_info( charout ) 
    75          CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Kbb), mask=tmask, clinfo=ctrcnm ) 
     74         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     75         CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Kbb), mask1=tmask, clinfo=ctrcnm ) 
    7676      ENDIF 
    7777      ! 
     
    168168              IF( l_trdtrc )   ztrtrd(:,:,:) = ptr(:,:,:,jn,itime)                       ! save input tr(:,:,:,:,Kbb) for trend computation            
    169169              ! 
    170               DO_3D_11_11( 1, jpkm1 ) 
     170              DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    171171                 IF( ztrneg(ji,jj,jn) /= 0. ) THEN                                 ! if negative values over the 3x3 box 
    172172                    ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcsbc.F90

    r12489 r13710  
    1818   USE oce_trc         ! ocean dynamics and active tracers variables 
    1919   USE trc             ! ocean  passive tracers variables 
    20    USE prtctl_trc      ! Print control for debbuging 
     20   USE prtctl          ! Print control for debbuging 
    2121   USE iom 
    2222   USE trd_oce 
     
    3030   !! * Substitutions 
    3131#  include "do_loop_substitute.h90" 
     32#  include "domzgr_substitute.h90" 
    3233   !!---------------------------------------------------------------------- 
    3334   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    4950      !!            The surface freshwater flux modify the ocean volume 
    5051      !!         and thus the concentration of a tracer as : 
    51       !!            tr(Krhs) = tr(Krhs) + emp * tr(Kmm) / e3t   for k=1 
     52      !!            tr(Krhs) = tr(Krhs) + emp * tr(Kmm) / e3t_   for k=1 
    5253      !!         where emp, the surface freshwater budget (evaporation minus 
    5354      !!         precipitation ) given in kg/m2/s is divided 
     
    8788            zfact = 0.5_wp 
    8889            DO jn = 1, jptra 
    89                CALL iom_get( numrtr, jpdom_autoglo, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn) )   ! before tracer content sbc 
     90               CALL iom_get( numrtr, jpdom_auto, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn) )   ! before tracer content sbc 
    9091            END DO 
    9192         ELSE                                         ! No restart or restart not found: Euler forward time stepping 
     
    120121         ! 
    121122         DO jn = 1, jptra 
    122             DO_2D_01_00 
     123            DO_2D( 0, 1, 0, 0 ) 
    123124               sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    124125            END_2D 
     
    128129         ! 
    129130         DO jn = 1, jptra 
    130             DO_2D_01_00 
     131            DO_2D( 0, 1, 0, 0 ) 
    131132               sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    132133            END_2D 
     
    136137         ! 
    137138         DO jn = 1, jptra 
    138             DO_2D_01_00 
     139            DO_2D( 0, 1, 0, 0 ) 
    139140               zse3t = 1. / e3t(ji,jj,1,Kmm) 
    140141               ! tracer flux at the ice/ocean interface (tracer/m2/s) 
     
    154155      END SELECT 
    155156      ! 
    156       CALL lbc_lnk( 'trcsbc', sbc_trc(:,:,:), 'T', 1. ) 
     157      CALL lbc_lnk( 'trcsbc', sbc_trc(:,:,:), 'T', 1.0_wp ) 
    157158      !                                       Concentration dilution effect on tracers due to evaporation & precipitation  
    158159      DO jn = 1, jptra 
     
    160161         IF( l_trdtrc )   ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs)  ! save trends 
    161162         ! 
    162          DO_2D_01_00 
     163         DO_2D( 0, 1, 0, 0 ) 
    163164            zse3t = zfact / e3t(ji,jj,1,Kmm) 
    164165            ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 
     
    186187      ! 
    187188      IF( sn_cfctl%l_prttrc )   THEN 
    188          WRITE(charout, FMT="('sbc ')") ;  CALL prt_ctl_trc_info(charout) 
    189                                            CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     189         WRITE(charout, FMT="('sbc ')") ;  CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     190                                           CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    190191      ENDIF 
    191192      IF( l_trdtrc )  DEALLOCATE( ztrtrd ) 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trcsink.F90

    r12377 r13710  
    2626   !! * Substitutions 
    2727#  include "do_loop_substitute.h90" 
     28#  include "domzgr_substitute.h90" 
    2829   !!---------------------------------------------------------------------- 
    2930   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    7374         iiter(:,:) = 1 
    7475      ELSE 
    75          DO_2D_11_11 
     76         DO_2D( 1, 1, 1, 1 ) 
    7677            iiter(ji,jj) = 1 
    7778            DO jk = 1, jpkm1 
     
    8586      ENDIF 
    8687 
    87       DO_3D_11_11( 1,jpkm1 ) 
     88      DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
    8889         IF( tmask(ji,jj,jk) == 1.0 ) THEN 
    8990           zwsmax = 0.5 * e3t(ji,jj,jk,Kmm) * rday / rsfact 
     
    145146      DO jn = 1, 2 
    146147         !  first guess of the slopes interior values 
    147          DO_2D_11_11 
     148         DO_2D( 1, 1, 1, 1 ) 
    148149            ! 
    149150            zstep = rsfact / REAL( kiter(ji,jj), wp ) / 2. 
     
    157158            ! slopes 
    158159            DO jk = 2, jpkm1 
    159                zign = 0.25 + SIGN( 0.25, ztraz(ji,jj,jk) * ztraz(ji,jj,jk+1) ) 
     160               zign = 0.25 + SIGN( 0.25_wp, ztraz(ji,jj,jk) * ztraz(ji,jj,jk+1) ) 
    160161               zakz(ji,jj,jk) = ( ztraz(ji,jj,jk) + ztraz(ji,jj,jk+1) ) * zign 
    161162            END DO 
     
    163164            ! Slopes limitation 
    164165            DO jk = 2, jpkm1 
    165                zakz(ji,jj,jk) = SIGN( 1., zakz(ji,jj,jk) ) *        & 
     166               zakz(ji,jj,jk) = SIGN( 1.0_wp, zakz(ji,jj,jk) ) *        & 
    166167                  &             MIN( ABS( zakz(ji,jj,jk) ), 2. * ABS(ztraz(ji,jj,jk+1)), 2. * ABS(ztraz(ji,jj,jk) ) ) 
    167168            END DO 
     
    185186      END DO 
    186187 
    187       DO_3D_11_11( 1,jpkm1 ) 
     188      DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
    188189         zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 
    189190         ztrb(ji,jj,jk) = ztrb(ji,jj,jk) + 2. * zflx 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trczdf.F90

    r12489 r13710  
    2222!!gm 
    2323   USE trdtra        ! trends manager: tracers  
    24    USE prtctl_trc    ! Print control 
     24   USE prtctl        ! Print control 
    2525 
    2626   IMPLICIT NONE 
     
    6969      IF( sn_cfctl%l_prttrc )   THEN 
    7070         WRITE(charout, FMT="('zdf ')") 
    71          CALL prt_ctl_trc_info(charout) 
    72          CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Kaa), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     71         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     72         CALL prt_ctl( tab4d_1=tr(:,:,:,:,Kaa), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    7373      END IF 
    7474      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trdmxl_trc.F90

    r12489 r13710  
    5151   !! * Substitutions 
    5252#  include "do_loop_substitute.h90" 
     53#  include "domzgr_substitute.h90" 
    5354   !!---------------------------------------------------------------------- 
    5455   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    124125 
    125126            IF( jpktrd_trc < jpk ) THEN                           ! description ??? 
    126                DO_2D_11_11 
     127               DO_2D( 1, 1, 1, 1 ) 
    127128                  IF( nmld_trc(ji,jj) <= jpktrd_trc ) THEN 
    128129                     zvlmsk(ji,jj) = tmask(ji,jj,1) 
     
    147148         ! ... Weights for vertical averaging 
    148149         wkx_trc(:,:,:) = 0.e0 
    149          DO_3D_11_11( 1, jpktrd_trc ) 
     150         DO_3D( 1, 1, 1, 1, 1, jpktrd_trc )                       ! initialize wkx_trc with vertical scale factor in mixed-layer 
    150151            IF( jk - nmld_trc(ji,jj) < 0 )   wkx_trc(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 
    151152         END_3D 
     
    258259         ! 
    259260         DO jn = 1, jptra 
    260             DO_2D_11_11 
     261            DO_2D( 1, 1, 1, 1 ) 
    261262               ik = nmld_trc(ji,jj) 
    262263               IF( ln_trdtrc(jn) )    & 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trdmxl_trc_rst.F90

    r12377 r13710  
    144144          
    145145         DO jn = 1, jptra 
    146             CALL iom_get( inum, jpdom_autoglo, 'tmlbb_trc_'  //ctrcnm(jn), tmlbb_trc  (:,:,jn) ) 
    147             CALL iom_get( inum, jpdom_autoglo, 'tmlbn_trc_'  //ctrcnm(jn), tmlbn_trc  (:,:,jn) ) 
    148             CALL iom_get( inum, jpdom_autoglo, 'tmlatfb_trc_'//ctrcnm(jn), tmlatfb_trc(:,:,jn) ) 
    149             CALL iom_get( inum, jpdom_autoglo, 'tmlradb_trc_'//ctrcnm(jn), tmlradb_trc(:,:,jn) ) 
     146            CALL iom_get( inum, jpdom_auto, 'tmlbb_trc_'  //ctrcnm(jn), tmlbb_trc  (:,:,jn) ) 
     147            CALL iom_get( inum, jpdom_auto, 'tmlbn_trc_'  //ctrcnm(jn), tmlbn_trc  (:,:,jn) ) 
     148            CALL iom_get( inum, jpdom_auto, 'tmlatfb_trc_'//ctrcnm(jn), tmlatfb_trc(:,:,jn) ) 
     149            CALL iom_get( inum, jpdom_auto, 'tmlradb_trc_'//ctrcnm(jn), tmlradb_trc(:,:,jn) ) 
    150150         END DO 
    151151          
    152152      ELSE 
    153          CALL iom_get( inum, jpdom_autoglo, 'rmldbn_trc', rmldbn_trc ) ! needed for rmld_sum 
     153         CALL iom_get( inum, jpdom_auto, 'rmldbn_trc', rmldbn_trc ) ! needed for rmld_sum 
    154154          
    155155         !                                                          ! =========== 
    156156         DO jn = 1, jptra                                           ! tracer loop 
    157157            !                                                       ! =========== 
    158             CALL iom_get( inum, jpdom_autoglo, 'tmlatfb_trc_' //ctrcnm(jn), tmlatfb_trc(:,:,jn) ) 
    159             CALL iom_get( inum, jpdom_autoglo, 'tmlbb_trc_'   //ctrcnm(jn), tmlbb_trc  (:,:,jn) ) 
    160             CALL iom_get( inum, jpdom_autoglo, 'tmlradb_trc_' //ctrcnm(jn), tmlradb_trc(:,:,jn) ) 
    161  
    162             CALL iom_get( inum, jpdom_autoglo, 'tmlbn_trc_'   //ctrcnm(jn), tmlbn_trc   (:,:,jn) ) ! needed for tml_sum 
    163             CALL iom_get( inum, jpdom_autoglo, 'tml_sumb_trc_'//ctrcnm(jn), tml_sumb_trc(:,:,jn) ) 
     158            CALL iom_get( inum, jpdom_auto, 'tmlatfb_trc_' //ctrcnm(jn), tmlatfb_trc(:,:,jn) ) 
     159            CALL iom_get( inum, jpdom_auto, 'tmlbb_trc_'   //ctrcnm(jn), tmlbb_trc  (:,:,jn) ) 
     160            CALL iom_get( inum, jpdom_auto, 'tmlradb_trc_' //ctrcnm(jn), tmlradb_trc(:,:,jn) ) 
     161 
     162            CALL iom_get( inum, jpdom_auto, 'tmlbn_trc_'   //ctrcnm(jn), tmlbn_trc   (:,:,jn) ) ! needed for tml_sum 
     163            CALL iom_get( inum, jpdom_auto, 'tml_sumb_trc_'//ctrcnm(jn), tml_sumb_trc(:,:,jn) ) 
    164164             
    165165            DO jk = 1, jpltrd_trc 
     
    169169                  WRITE(charout,FMT="('tmltrd_csum_ub_trc_', A3, '_', I2)") ctrcnm(jn), jk 
    170170               ENDIF 
    171                CALL iom_get( inum, jpdom_autoglo, charout, tmltrd_csum_ub_trc(:,:,jk,jn) ) 
     171               CALL iom_get( inum, jpdom_auto, charout, tmltrd_csum_ub_trc(:,:,jk,jn) ) 
    172172            END DO 
    173173             
    174             CALL iom_get( inum, jpdom_autoglo, 'tmltrd_atf_sumb_trc_'//ctrcnm(jn) , & 
     174            CALL iom_get( inum, jpdom_auto, 'tmltrd_atf_sumb_trc_'//ctrcnm(jn) , & 
    175175                 &        tmltrd_atf_sumb_trc(:,:,jn) ) 
    176176 
    177             CALL iom_get( inum, jpdom_autoglo, 'tmltrd_rad_sumb_trc_'//ctrcnm(jn) , & 
     177            CALL iom_get( inum, jpdom_auto, 'tmltrd_rad_sumb_trc_'//ctrcnm(jn) , & 
    178178                 &        tmltrd_rad_sumb_trc(:,:,jn) ) 
    179179            !                                                       ! =========== 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/TRP/trdtrc.F90

    r12377 r13710  
    1818   USE trdmxl_trc        ! Mixed layer trends diag. 
    1919   USE iom               ! I/O library 
     20   USE par_kind 
    2021 
    2122   IMPLICIT NONE 
     
    107108   !!---------------------------------------------------------------------- 
    108109 
     110   USE par_kind 
     111 
    109112   PUBLIC trd_trc 
    110113 
     
    116119      INTEGER               , INTENT( in )     ::   kjn     ! tracer index 
    117120      INTEGER               , INTENT( in )     ::   ktrd    ! tracer trend index 
    118       REAL, DIMENSION(:,:,:), INTENT( inout )  ::   ptrtrd  ! Temperature or U trend 
     121      REAL(wp), DIMENSION(:,:,:), INTENT( inout )  ::   ptrtrd  ! Temperature or U trend 
    119122      WRITE(*,*) 'trd_trc : You should not have seen this print! error?', ptrtrd(1,1,1) 
    120123      WRITE(*,*) '  "      "      : You should not have seen this print! error?', kjn 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/oce_trc.F90

    r12489 r13710  
    1818   USE par_oce , ONLY :   jp_tem   =>   jp_tem     !: indice for temperature 
    1919   USE par_oce , ONLY :   jp_sal   =>   jp_sal     !: indice for salinity 
     20   USE par_oce , ONLY :   nn_hls   =>   nn_hls     !:  
     21   USE par_oce , ONLY :   Nis0    =>   Nis0      !:  
     22   USE par_oce , ONLY :   Njs0    =>   Njs0      !:  
     23   USE par_oce , ONLY :   Nie0    =>   Nie0      !:  
     24   USE par_oce , ONLY :   Nje0    =>   Nje0      !:  
     25   USE par_oce , ONLY :   Nis1    =>   Nis1      !:  
     26   USE par_oce , ONLY :   Njs1    =>   Njs1      !:  
     27   USE par_oce , ONLY :   Nie1    =>   Nie1      !:  
     28   USE par_oce , ONLY :   Nje1    =>   Nje1      !:  
     29   USE par_oce , ONLY :   Nis1nxt2    =>   Nis1nxt2      !:  
     30   USE par_oce , ONLY :   Njs1nxt2    =>   Njs1nxt2      !:  
     31   USE par_oce , ONLY :   Nie1nxt2    =>   Nie1nxt2      !:  
     32   USE par_oce , ONLY :   Nje1nxt2    =>   Nje1nxt2      !:  
     33   USE par_oce , ONLY :   Nis2    =>   Nis2      !:  
     34   USE par_oce , ONLY :   Njs2    =>   Njs2      !:  
     35   USE par_oce , ONLY :   Nie2    =>   Nie2      !:  
     36   USE par_oce , ONLY :   Nje2    =>   Nje2      !:  
     37   USE par_oce , ONLY :   Ni_0    =>   Ni_0      !:  
     38   USE par_oce , ONLY :   Nj_0    =>   Nj_0      !:  
     39   USE par_oce , ONLY :   Ni_1    =>   Ni_1      !:  
     40   USE par_oce , ONLY :   Nj_1    =>   Nj_1      !:  
     41   USE par_oce , ONLY :   Ni_2    =>   Ni_2      !:  
     42   USE par_oce , ONLY :   Nj_2    =>   Nj_2      !:  
    2043 
    2144   USE in_out_manager                           !* IO manager * 
     
    6285   USE traqsr  , ONLY :   rn_abs     =>    rn_abs     !: fraction absorbed in the very near surface 
    6386   USE traqsr  , ONLY :   rn_si0     =>    rn_si0     !: very near surface depth of extinction 
     87   USE traqsr  , ONLY :   nksr       =>    nksr       !: levels below which the light cannot penetrate (depth larger than 391 m) 
     88   USE traqsr  , ONLY :   rkrgb      =>    rkrgb      !: tabulated attenuation coefficients for RGB absorption 
    6489   USE traqsr  , ONLY :   ln_qsr_bio =>    ln_qsr_bio !: flag to use or not the biological fluxes for light 
    6590   USE sbcrnf  , ONLY :   rnfmsk     =>    rnfmsk     !: mixed adv scheme in runoffs vicinity (hori.)  
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trc.F90

    r12489 r13710  
    2121   INTEGER, PUBLIC ::   numonr     = -1   !: reference passive tracer namelist output output.namelist.top 
    2222   INTEGER, PUBLIC ::   numstr            !: tracer statistics 
    23    INTEGER, PUBLIC ::   numrtr            !: trc restart (read ) 
     23   INTEGER, PUBLIC ::   numrtr     = -1   !: trc restart (read ) 
    2424   INTEGER, PUBLIC ::   numrtw            !: trc restart ( write ) 
    2525   CHARACTER(:), ALLOCATABLE, PUBLIC ::   numnat_ref   !: character buffer for reference passive tracer namelist_top_ref 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcbc.F90

    r12489 r13710  
    4848   !! * Substitutions 
    4949#  include "do_loop_substitute.h90" 
     50#  include "domzgr_substitute.h90" 
    5051   !!---------------------------------------------------------------------- 
    5152   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    151152               IF(trcdta_bdy(jn,ib)%cn_obc == 'frs' .AND. nn_trcdmp_bdy(ib) /= 0 )  & 
    152153                   & CALL ctl_stop( 'trc_bc_ini: Use FRS OR relaxation' ) 
    153                IF(  .NOT.( 0 < nn_trcdmp_bdy(ib)  .AND.  nn_trcdmp_bdy(ib) <= 2 )  )   & 
     154               IF(  .NOT.( 0 <= nn_trcdmp_bdy(ib)  .AND.  nn_trcdmp_bdy(ib) <= 2 )  )   & 
    154155                   & CALL ctl_stop( 'trc_bc_ini: Not a valid option for nn_trcdmp_bdy. Allowed: 0,1,2.' ) 
    155156            END DO 
     
    414415         ! Remove river dilution for tracers with absent river load 
    415416         IF( ln_rnf_ctl .AND. .NOT.ln_trc_cbc(jn) ) THEN 
    416             DO_2D_01_00 
     417            DO_2D( 0, 1, 0, 0 ) 
    417418               DO jk = 1, nk_rnf(ji,jj) 
    418419                  zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_rho0 / h_rnf(ji,jj) 
     
    428429            jl = n_trc_indsbc(jn) 
    429430            sf_trcsbc(jl)%fnow(:,:,1) = MAX( rtrn, sf_trcsbc(jl)%fnow(:,:,1) ) ! avoid nedgative value due to interpolation 
    430             DO_2D_01_00 
     431            DO_2D( 0, 1, 0, 0 ) 
    431432               zfact = 1. / ( e3t(ji,jj,1,Kmm) * rn_sbc_time ) 
    432433               ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + rf_trsfac(jl) * sf_trcsbc(jl)%fnow(ji,jj,1) * zfact 
     
    438439            IF( l_offline )   rn_rfact = 1._wp 
    439440            jl = n_trc_indcbc(jn) 
    440             DO_2D_01_00 
     441            DO_2D( 0, 1, 0, 0 ) 
    441442               DO jk = 1, nk_rnf(ji,jj) 
    442443                  zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcbdy.F90

    r12377 r13710  
    4949      INTEGER                           :: ib_bdy ,ir, jn ,igrd ! Loop indices 
    5050      REAL(wp), POINTER, DIMENSION(:,:) ::  ztrc 
    51       REAL(wp), POINTER                 ::  zfac 
    5251      LOGICAL                           :: llrim0               ! indicate if rim 0 is treated 
    5352      LOGICAL, DIMENSION(4)             :: llsend1, llrecv1     ! indicate how communications are to be carried out 
     
    6160         IF( ir == 0 ) THEN   ;   llrim0 = .TRUE. 
    6261         ELSE                 ;   llrim0 = .FALSE. 
    63          END IF 
     62         ENDIF 
    6463         DO ib_bdy=1, nb_bdy 
     64            ! 
    6565            DO jn = 1, jptra 
    6666               ! 
    67                ztrc => trcdta_bdy(jn,ib_bdy)%trc  
    68                zfac => trcdta_bdy(jn,ib_bdy)%rn_fac 
     67               IF( ASSOCIATED(trcdta_bdy(jn,ib_bdy)%trc) .AND. trcdta_bdy(jn,ib_bdy)%cn_obc /= 'neumann' ) THEN 
     68                  IF( .NOT. ASSOCIATED(ztrc) )   ALLOCATE( ztrc(idx_bdy(ib_bdy)%nblen(igrd),jpk) ) 
     69                  ztrc(:,:) = trcdta_bdy(jn,ib_bdy)%trc(:,:) * trcdta_bdy(jn,ib_bdy)%rn_fac 
     70               ENDIF 
    6971               ! 
    70                SELECT CASE( TRIM(trcdta_bdy(jn,ib_bdy)%cn_obc) ) 
     72               SELECT CASE( trcdta_bdy(jn,ib_bdy)%cn_obc ) 
    7173               CASE('none'        )   ;   CYCLE 
    7274               CASE('frs'         )   ! treat the whole boundary at once 
    73                   IF( ir == 0 ) CALL bdy_frs( idx_bdy(ib_bdy),                tr(:,:,:,jn,Krhs), ztrc*zfac ) 
     75                  IF( ir == 0 )           CALL bdy_frs( idx_bdy(ib_bdy),                   tr(:,:,:,jn,Krhs), ztrc ) 
    7476               CASE('specified'   )   ! treat the whole rim      at once 
    75                   IF( ir == 0 ) CALL bdy_spe( idx_bdy(ib_bdy),                tr(:,:,:,jn,Krhs), ztrc*zfac ) 
    76                CASE('neumann'     )   ;   CALL bdy_nmn( idx_bdy(ib_bdy), igrd         , tr(:,:,:,jn,Krhs) )   ! tra masked 
    77                CASE('orlanski'    )   ;   CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.false. ) 
    78                CASE('orlanski_npo')   ;   CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.true. ) 
     77                  IF( ir == 0 )           CALL bdy_spe( idx_bdy(ib_bdy),                   tr(:,:,:,jn,Krhs), ztrc ) 
     78               CASE('neumann'     )   ;   CALL bdy_nmn( idx_bdy(ib_bdy), igrd            , tr(:,:,:,jn,Krhs),       llrim0 )   ! tra masked 
     79               CASE('orlanski'    )   ;   CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc, llrim0,   & 
     80                  &                                     ll_npo=.FALSE. ) 
     81               CASE('orlanski_npo')   ;   CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc, llrim0,   & 
     82                  &                                     ll_npo=.TRUE.  ) 
    7983               CASE DEFAULT           ;   CALL ctl_stop( 'trc_bdy : unrecognised option for open boundaries for passive tracers' ) 
    8084               END SELECT 
    8185               ! 
    8286            END DO 
     87            ! 
     88            IF( ASSOCIATED(ztrc) )   DEALLOCATE(ztrc) 
     89            ! 
    8390         END DO 
    8491         ! 
    8592         IF( nn_hls > 1 .AND. ir == 1 ) CYCLE   ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 
    86          IF( nn_hls == 1 ) THEN   ;   llsend1(:) = .false.   ;   llrecv1(:) = .false.   ;   END IF 
     93         IF( nn_hls == 1 ) THEN   ;   llsend1(:) = .false.   ;   llrecv1(:) = .false.   ;   ENDIF 
    8794         DO ib_bdy=1, nb_bdy 
    88             SELECT CASE( TRIM(cn_tra(ib_bdy)) ) 
     95            SELECT CASE( cn_tra(ib_bdy) ) 
    8996            CASE('neumann') 
    9097               llsend1(:) = llsend1(:) .OR. lsend_bdyint(ib_bdy,1,:,ir)   ! possibly every direction, T points 
     
    96103         END DO 
    97104         IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN   ! if need to send/recv in at least one direction 
    98             CALL lbc_lnk( 'trcbdy', tr(:,:,:,:,Krhs), 'T',  1., kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    99          END IF 
     105            CALL lbc_lnk( 'trcbdy', tr(:,:,:,:,Krhs), 'T',  1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
     106         ENDIF 
    100107         ! 
    101108      END DO   ! ir 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcdta.F90

    r12377 r13710  
    4141   !! Substitutions 
    4242#include "do_loop_substitute.h90" 
     43#include "domzgr_substitute.h90" 
    4344   !!---------------------------------------------------------------------- 
    4445   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    198199               WRITE(numout,*) 'trc_dta: interpolates passive tracer data onto the s- or mixed s-z-coordinate mesh' 
    199200            ENDIF 
    200             DO_2D_11_11 
     201            DO_2D( 1, 1, 1, 1 )                 ! vertical interpolation of T & S 
    201202               DO jk = 1, jpk                        ! determines the intepolated T-S profiles at each (i,j) points 
    202203                  zl = gdept(ji,jj,jk,Kmm) 
     
    206207                     ztp(jk) = ptrcdta(ji,jj,jpkm1) 
    207208                  ELSE                                      ! inbetween : vertical interpolation between jkk & jkk+1 
    208                      DO jkk = 1, jpkm1                                  ! when  gdept(jkk) < zl < gdept(jkk+1) 
     209                     DO jkk = 1, jpkm1                                  ! when  gdept_1d(jkk) < zl < gdept_1d(jkk+1) 
    209210                        IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 
    210211                           zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcini.F90

    r12377 r13710  
    2020   USE trcnam          ! Namelist read 
    2121   USE daymod          ! calendar manager 
    22    USE prtctl_trc      ! Print control passive tracers (prt_ctl_trc_init routine) 
     22   USE prtctl          ! Print control passive tracers (prt_ctl_init routine) 
    2323   USE trcrst 
    2424   USE lib_mpp         ! distribued memory computing library 
     
    3131   PUBLIC   trc_init   ! called by opa 
    3232 
     33#  include "domzgr_substitute.h90" 
    3334   !!---------------------------------------------------------------------- 
    3435   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    9394      INTEGER             ::  jk, jn  ! dummy loop indices 
    9495      CHARACTER (len=25) :: charout 
     96      REAL(wp), DIMENSION(jpi,jpj,jpk,jptra) :: zzmsk 
     97      CHARACTER (len=25), DIMENSION(jptra) :: clseb   
    9598      !!---------------------------------------------------------------------- 
    9699      ! 
     
    124127      IF(lwp) WRITE(numout,*) 
    125128      IF(sn_cfctl%l_prttrc) THEN            ! print mean trends (used for debugging) 
    126          CALL prt_ctl_trc_init 
     129         CALL prt_ctl_init( 'top', jptra ) 
    127130         WRITE(charout, FMT="('ini ')") 
    128          CALL prt_ctl_trc_info( charout ) 
    129          CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Kmm), mask=tmask, clinfo=ctrcnm ) 
     131         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     132         CALL prt_ctl( tab4d_1=tr(:,:,:,:,Kmm), mask1=tmask, clinfo=ctrcnm ) 
     133         DO jn = 1, jptra 
     134            zzmsk(:,:,:,jn) = tmask(:,:,:) 
     135            WRITE(clseb(jn),'(a,i2.2)') 'seb ', jn 
     136         END DO 
     137         CALL prt_ctl( tab4d_1=zzmsk, mask1=tmask, clinfo=clseb ) 
    130138      ENDIF 
    1311399000  FORMAT('      tracer nb : ',i2,'      name :',a10,'      initial content :',e18.10) 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcrst.F90

    r12489 r13710  
    3333   PUBLIC   trc_rst_cal 
    3434 
     35#  include "domzgr_substitute.h90" 
    3536   !!---------------------------------------------------------------------- 
    3637   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    113114      ! READ prognostic variables and computes diagnostic variable 
    114115      DO jn = 1, jptra 
    115          CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm) ) 
    116       END DO 
    117  
    118       DO jn = 1, jptra 
    119          CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb) ) 
     116         CALL iom_get( numrtr, jpdom_auto, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm) ) 
     117      END DO 
     118 
     119      DO jn = 1, jptra 
     120         CALL iom_get( numrtr, jpdom_auto, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb) ) 
    120121      END DO 
    121122      ! 
     
    236237               ! calculate start time in hours and minutes 
    237238               zdayfrac=adatrj-INT(adatrj) 
    238                ksecs = NINT(zdayfrac*86400)            ! Nearest second to catch rounding errors in adatrj               
     239               ksecs = NINT(zdayfrac*86400)            ! Nearest second to catch rounding errors in adatrj 
    239240               ihour = INT(ksecs/3600) 
    240241               iminute = ksecs/60-ihour*60 
     
    257258               adatrj = INT(adatrj)                    ! adatrj set to integer as nn_time0 updated             
    258259             ELSE 
     260               ndt05 = NINT( 0.5 * rn_Dt  )   !  --- WARNING --- not defined yet are we did not go through day_init 
    259261               ! parameters corresponding to nit000 - 1 (as we start the step 
    260262               ! loop with a call to day) 
    261                ndastp = ndate0 - 1       ! ndate0 read in the namelist in dom_nam 
     263               ndastp = ndate0        ! ndate0 read in the namelist in dom_nam 
    262264               nhour   =   nn_time0 / 100 
    263265               nminute = ( nn_time0 - nhour * 100 ) 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcsms.F90

    r12377 r13710  
    2020   USE trcsms_age         ! AGE 
    2121   USE trcsms_my_trc      ! MY_TRC  tracers 
    22    USE prtctl_trc         ! Print control for debbuging 
     22   USE prtctl             ! Print control for debbuging 
    2323 
    2424   IMPLICIT NONE 
     
    5858      IF(sn_cfctl%l_prttrc) THEN                       ! print mean trends (used for debugging) 
    5959         WRITE(charout, FMT="('sms ')") 
    60          CALL prt_ctl_trc_info( charout ) 
    61          CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Kmm), mask=tmask, clinfo=ctrcnm ) 
     60         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     61         CALL prt_ctl( tab4d_1=tr(:,:,:,:,Kmm), mask1=tmask, clinfo=ctrcnm ) 
    6262      ENDIF 
    6363      ! 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcstp.F90

    r12620 r13710  
    2222   USE sms_pisces,  ONLY : ln_check_mass 
    2323   ! 
    24    USE prtctl_trc     ! Print control for debbuging 
     24   USE prtctl         ! Print control for debbuging 
    2525   USE iom            ! 
    2626   USE in_out_manager ! 
     
    3737   REAL(wp), DIMENSION(:,:,:), SAVE, ALLOCATABLE ::   qsr_arr   ! save qsr during TOP time-step 
    3838 
     39#  include "domzgr_substitute.h90" 
    3940   !!---------------------------------------------------------------------- 
    4041   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    9192      IF(sn_cfctl%l_prttrc) THEN 
    9293         WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 
    93          CALL prt_ctl_trc_info(charout) 
     94         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    9495      ENDIF 
    9596      ! 
     
    199200            rsecfst = INT( zkt ) * rn_Dt 
    200201            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 
    201             CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean )   !  A mean of qsr 
     202            CALL iom_get( numrtr, jpdom_auto, 'qsr_mean', qsr_mean )   !  A mean of qsr 
    202203            CALL iom_get( numrtr, 'nrdcy', zrec )   !  Number of record per days 
    203204            IF( INT( zrec ) == nb_rec_per_day ) THEN 
     
    205206                  IF( jn <= 9 )  THEN 
    206207                    WRITE(cl1,'(i1)') jn 
    207                     CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) )   !  A mean of qsr 
     208                    CALL iom_get( numrtr, jpdom_auto, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) )   !  A mean of qsr 
    208209                  ELSE 
    209210                    WRITE(cl2,'(i2.2)') jn 
    210                     CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) )   !  A mean of qsr 
     211                    CALL iom_get( numrtr, jpdom_auto, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) )   !  A mean of qsr 
    211212                  ENDIF 
    212213              END DO 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/TOP/trcwri.F90

    r12377 r13710  
    6060       CALL iom_put( "e3v_0", e3v_0(:,:,:) ) 
    6161       ! 
     62#if ! defined key_qco 
    6263       CALL iom_put( "e3t" , e3t(:,:,:,Kmm) ) 
    6364       CALL iom_put( "e3u" , e3u(:,:,:,Kmm) ) 
    6465       CALL iom_put( "e3v" , e3v(:,:,:,Kmm) ) 
     66#endif  
    6567       ! 
    6668      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.