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 14012 for NEMO/branches/2020/tickets_icb_1900/src/OCE/TRA/trazdf.F90 – NEMO

Ignore:
Timestamp:
2020-12-02T16:13:45+01:00 (4 years ago)
Author:
mathiot
Message:

ticket 1900: upgrade branch to 13991 before the next upgrade

Location:
NEMO/branches/2020/tickets_icb_1900
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/tickets_icb_1900

    • Property svn:externals
      •  

        old new  
        88 
        99# SETTE 
        10 ^/utils/CI/sette@13559        sette 
         10^/utils/CI/sette_MPI3_LoopFusion@13943         sette 
  • NEMO/branches/2020/tickets_icb_1900/src/OCE/TRA/trazdf.F90

    r13899 r14012  
    1313   !!---------------------------------------------------------------------- 
    1414   USE oce            ! ocean dynamics and tracers variables 
    15    USE dom_oce        ! ocean space and time domain variables  
     15   USE dom_oce        ! ocean space and time domain variables 
    1616   USE domvvl         ! variable volume 
    1717   USE phycst         ! physical constant 
     
    5555      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts                 ! active tracers and RHS of tracer equation 
    5656      ! 
    57       INTEGER  ::   jk   ! Dummy loop indices 
     57      INTEGER  ::   ji, jj, jk   ! Dummy loop indices 
    5858      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrdt, ztrds   ! 3D workspace 
    5959      !!--------------------------------------------------------------------- 
     
    6262      ! 
    6363      IF( kt == nit000 )  THEN 
    64          IF(lwp)WRITE(numout,*) 
    65          IF(lwp)WRITE(numout,*) 'tra_zdf : implicit vertical mixing on T & S' 
    66          IF(lwp)WRITE(numout,*) '~~~~~~~ ' 
     64         IF( ntile == 0 .OR. ntile == 1 )  THEN                   ! Do only on the first tile 
     65            IF(lwp)WRITE(numout,*) 
     66            IF(lwp)WRITE(numout,*) 'tra_zdf : implicit vertical mixing on T & S' 
     67            IF(lwp)WRITE(numout,*) '~~~~~~~ ' 
     68         ENDIF 
    6769      ENDIF 
    6870      ! 
    6971      IF( l_trdtra )   THEN                  !* Save ta and sa trends 
    70          ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) ) 
     72         ALLOCATE( ztrdt(jpi,jpj,jpk), ztrds(jpi,jpj,jpk) ) 
    7173         ztrdt(:,:,:) = pts(:,:,:,jp_tem,Kaa) 
    7274         ztrds(:,:,:) = pts(:,:,:,jp_sal,Kaa) 
     
    8082      ! JMM avoid negative salinities near river outlet ! Ugly fix 
    8183      ! JMM : restore negative salinities to small salinities: 
    82       WHERE( pts(:,:,:,jp_sal,Kaa) < 0._wp )   pts(:,:,:,jp_sal,Kaa) = 0.1_wp 
     84      WHERE( pts(A2D(0),:,jp_sal,Kaa) < 0._wp )   pts(A2D(0),:,jp_sal,Kaa) = 0.1_wp 
    8385!!gm 
    8486 
    8587      IF( l_trdtra )   THEN                      ! save the vertical diffusive trends for further diagnostics 
    86          DO jk = 1, jpkm1 
     88         DO jk = 1, jpk 
    8789            ztrdt(:,:,jk) = (   (  pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa)     & 
    8890               &                 - pts(:,:,jk,jp_tem,Kbb)*e3t(:,:,jk,Kbb)  )  & 
     
    9496               &          - ztrds(:,:,jk) 
    9597         END DO 
     98         ! NOTE: [tiling-comms-merge] The diagnostic results change along the north fold if this is removed 
    9699!!gm this should be moved in trdtra.F90 and done on all trends 
    97100         CALL lbc_lnk_multi( 'trazdf', ztrdt, 'T', 1.0_wp , ztrds, 'T', 1.0_wp ) 
     
    140143      INTEGER  ::  ji, jj, jk, jn   ! dummy loop indices 
    141144      REAL(wp) ::  zrhs, zzwi, zzws ! local scalars 
    142       REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwi, zwt, zwd, zws 
     145      REAL(wp), DIMENSION(A2D(nn_hls),jpk) ::  zwi, zwt, zwd, zws 
    143146      !!--------------------------------------------------------------------- 
    144147      ! 
     
    154157            ! 
    155158            ! vertical mixing coef.: avt for temperature, avs for salinity and passive tracers 
    156             IF( cdtype == 'TRA' .AND. jn == jp_tem ) THEN   ;   zwt(:,:,2:jpk) = avt(:,:,2:jpk) 
    157             ELSE                                            ;   zwt(:,:,2:jpk) = avs(:,:,2:jpk) 
     159            IF( cdtype == 'TRA' .AND. jn == jp_tem ) THEN 
     160               DO_3D( 1, 1, 1, 1, 2, jpk ) 
     161                  zwt(ji,jj,jk) = avt(ji,jj,jk) 
     162               END_3D 
     163            ELSE 
     164               DO_3D( 1, 1, 1, 1, 2, jpk ) 
     165                  zwt(ji,jj,jk) = avs(ji,jj,jk) 
     166               END_3D 
    158167            ENDIF 
    159168            zwt(:,:,1) = 0._wp 
     
    222231         END_2D 
    223232         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    224             zrhs =        e3t(ji,jj,jk,Kbb) * pt(ji,jj,jk,jn,Kbb)    &  
     233            zrhs =        e3t(ji,jj,jk,Kbb) * pt(ji,jj,jk,jn,Kbb)    & 
    225234               & + p2dt * e3t(ji,jj,jk,Kmm) * pt(ji,jj,jk,jn,Krhs)   ! zrhs=right hand side 
    226235            pt(ji,jj,jk,jn,Kaa) = zrhs - zwi(ji,jj,jk) / zwt(ji,jj,jk-1) * pt(ji,jj,jk-1,jn,Kaa) 
Note: See TracChangeset for help on using the changeset viewer.