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 14644 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/traadv_qck.F90 – NEMO

Ignore:
Timestamp:
2021-03-26T15:33:49+01:00 (3 years ago)
Author:
sparonuz
Message:

Merge trunk -r14642:HEAD

Location:
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette_wave@13990         sette 
         11^/utils/CI/sette@14244        sette 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/traadv_qck.F90

    r14219 r14644  
    146146         ! 
    147147!!gm why not using a SHIFT instruction... 
    148          DO_3D( 0, 0, nn_hls-1, nn_hls-1, 1, jpkm1 )     !--- Computation of the ustream and downstream value of the tracer and the mask 
     148         DO_3D( nn_hls-1, nn_hls-1, 0, 0, 1, jpkm1 )     !--- Computation of the ustream and downstream value of the tracer and the mask 
    149149            zfc(ji,jj,jk) = pt(ji-1,jj,jk,jn,Kbb)        ! Upstream   in the x-direction for the tracer 
    150150            zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb)        ! Downstream in the x-direction for the tracer 
    151151         END_3D 
    152          IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
     152         IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    153153 
    154154         ! 
    155155         ! Horizontal advective fluxes 
    156156         ! --------------------------- 
    157          DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
     157         DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
    158158            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    159159            zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji+1,jj,jk)  ! FU in the x-direction for T 
    160160         END_3D 
    161161         ! 
    162          DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
     162         DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
    163163            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    164164            zdx = ( zdir * e1t(ji,jj) + ( 1. - zdir ) * e1t(ji+1,jj) ) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 
     
    168168         END_3D 
    169169         !--- Lateral boundary conditions 
    170          IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp,  zwx(:,:,:), 'T', 1.0_wp ) 
     170         IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp,  zwx(:,:,:), 'T', 1.0_wp ) 
    171171 
    172172         !--- QUICKEST scheme 
     
    174174         ! 
    175175         ! Mask at the T-points in the x-direction (mask=0 or mask=1) 
    176          DO_3D( 0, 0, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
     176         DO_3D( nn_hls-1, nn_hls-1, 0, 0, 1, jpkm1 ) 
    177177            zfu(ji,jj,jk) = tmask(ji-1,jj,jk) + tmask(ji,jj,jk) + tmask(ji+1,jj,jk) - 2. 
    178178         END_3D 
     
    181181         ! 
    182182         ! Tracer flux on the x-direction 
    183          DO_3D( 0, 0, 1, 0, 1, jpkm1 ) 
     183         DO_3D( 1, 0, 0, 0, 1, jpkm1 ) 
    184184            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    185185            !--- If the second ustream point is a land point 
     
    233233            ! 
    234234            !--- Computation of the ustream and downstream value of the tracer and the mask 
    235             DO_2D( nn_hls-1, nn_hls-1, 0, 0 ) 
     235            DO_2D( 0, 0, nn_hls-1, nn_hls-1 ) 
    236236               ! Upstream in the x-direction for the tracer 
    237237               zfc(ji,jj,jk) = pt(ji,jj-1,jk,jn,Kbb) 
     
    240240            END_2D 
    241241         END DO 
    242          IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
     242         IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    243243 
    244244         ! 
     
    246246         ! --------------------------- 
    247247         ! 
    248          DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
     248         DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
    249249            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    250250            zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji,jj+1,jk)  ! FU in the x-direction for T 
    251251         END_3D 
    252252         ! 
    253          DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
     253         DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
    254254            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    255255            zdx = ( zdir * e2t(ji,jj) + ( 1. - zdir ) * e2t(ji,jj+1) ) * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
     
    260260 
    261261         !--- Lateral boundary conditions 
    262          IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwy(:,:,:), 'T', 1.0_wp ) 
     262         IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwy(:,:,:), 'T', 1.0_wp ) 
    263263 
    264264         !--- QUICKEST scheme 
     
    266266         ! 
    267267         ! Mask at the T-points in the x-direction (mask=0 or mask=1) 
    268          DO_3D( nn_hls-1, nn_hls-1, 0, 0, 1, jpkm1 ) 
     268         DO_3D( 0, 0, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    269269            zfu(ji,jj,jk) = tmask(ji,jj-1,jk) + tmask(ji,jj,jk) + tmask(ji,jj+1,jk) - 2. 
    270270         END_3D 
     
    272272         ! 
    273273         ! Tracer flux on the x-direction 
    274          DO_3D( 1, 0, 0, 0, 1, jpkm1 ) 
     274         DO_3D( 0, 0, 1, 0, 1, jpkm1 ) 
    275275            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    276276            !--- If the second ustream point is a land point 
Note: See TracChangeset for help on using the changeset viewer.