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 14789 for NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/TOP/TRP/trcatf.F90 – NEMO

Ignore:
Timestamp:
2021-05-05T13:18:04+02:00 (3 years ago)
Author:
mcastril
Message:

[2021/HPC-11_mcastril_HPDAonline_DiagGPU] Update externals

Location:
NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
         5^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8^/vendors/PPR@HEAD            ext/PPR 
        89 
        910# SETTE 
        10 ^/utils/CI/sette@13559        sette 
         11^/utils/CI/sette@14244        sette 
  • NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/TOP/TRP/trcatf.F90

    r13295 r14789  
    2525   !!   'key_top'                                                TOP models 
    2626   !!---------------------------------------------------------------------- 
    27    !!   trc_atf     : time stepping on passive tracers 
    28    !!---------------------------------------------------------------------- 
    29    USE oce_trc         ! ocean dynamics and tracers variables 
    30    USE trc             ! ocean passive tracers variables 
     27   !!   trc_atf       : time stepping on passive tracers 
     28   !!---------------------------------------------------------------------- 
     29   USE par_trc        ! need jptra, number of passive tracers 
     30   USE oce_trc        ! ocean dynamics and tracers variables 
     31   USE trc            ! ocean passive tracers variables 
    3132   USE trd_oce 
    3233   USE trdtra 
    33 # if defined key_qco 
    34    USE traatfqco 
     34# if defined key_qco   ||   defined key_linssh 
     35   USE traatf_qco     ! tracer : Asselin filter (qco) 
    3536# else 
    36    USE traatf 
     37   USE traatf         ! tracer : Asselin filter (vvl) 
    3738# endif 
    3839   USE bdy_oce   , ONLY: ln_bdy 
    39    USE trcbdy          ! BDY open boundaries 
     40   USE trcbdy         ! BDY open boundaries 
    4041# if defined key_agrif 
    4142   USE agrif_top_interp 
    4243# endif 
    4344   ! 
    44    USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    45    USE prtctl          ! Print control for debbuging 
     45   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
     46   USE prtctl         ! Print control for debbuging 
    4647 
    4748   IMPLICIT NONE 
     
    102103#endif 
    103104      ! Update after tracer on domain lateral boundaries 
    104       CALL lbc_lnk( 'trcatf', ptr(:,:,:,:,Kaa), 'T', 1. )    
     105      CALL lbc_lnk( 'trcatf', ptr(:,:,:,:,Kaa), 'T', 1._wp )    
    105106 
    106107      IF( ln_bdy )  CALL trc_bdy( kt, Kbb, Kmm, Kaa ) 
     
    156157      ELSE      
    157158         IF( .NOT. l_offline ) THEN ! Leap-Frog + Asselin filter time stepping 
    158 # if defined key_qco 
     159# if defined key_qco   ||   defined key_linssh 
    159160            IF( ln_linssh ) THEN   ;   CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nittrc000,        'TRC', ptr, jptra )                     !     linear ssh 
    160161            ELSE                   ;   CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 
    161162# else 
    162             IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nittrc000,         'TRC', ptr, jptra )                     !     linear ssh 
    163             ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 
     163            IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nittrc000,         'TRC', ptr, jptra )                       !     linear ssh 
     164            ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra )    ! non-linear ssh 
    164165# endif 
    165166            ENDIF 
     
    168169         ENDIF 
    169170         ! 
    170          CALL lbc_lnk_multi( 'trcatf', ptr(:,:,:,:,Kmm), 'T', 1._wp, ptr(:,:,:,:,Kaa), 'T', 1._wp, ptr(:,:,:,:,Kaa), 'T', 1._wp ) 
     171         CALL lbc_lnk( 'trcatf', ptr(:,:,:,:,Kmm), 'T', 1._wp ) 
    171172      ENDIF 
    172173      ! 
     
    192193   END SUBROUTINE trc_atf 
    193194 
    194 # if ! defined key_qco 
     195# if defined key_qco   ||   defined key_linssh 
    195196   SUBROUTINE trc_atf_off( kt, Kbb, Kmm, Kaa, ptr ) 
    196197      !!---------------------------------------------------------------------- 
     
    224225      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
    225226      REAL(wp) ::   ztc_a , ztc_n , ztc_b , ztc_f , ztc_d    ! local scalar 
    226       REAL(wp) ::   ze3t_b, ze3t_n, ze3t_a, ze3t_f, ze3t_d   !   -      - 
     227      REAL(wp) ::   ze3t_b, ze3t_n, ze3t_a, ze3t_f           !   -      - 
    227228      !!---------------------------------------------------------------------- 
    228229      ! 
     
    240241      DO jn = 1, jptra       
    241242         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    242             ze3t_b = e3t(ji,jj,jk,Kbb) 
    243             ze3t_n = e3t(ji,jj,jk,Kmm) 
    244             ze3t_a = e3t(ji,jj,jk,Kaa) 
     243            ze3t_b = 1._wp + r3t(ji,jj,Kbb) * tmask(ji,jj,jk) 
     244            ze3t_n = 1._wp + r3t(ji,jj,Kmm) * tmask(ji,jj,jk) 
     245            ze3t_a = 1._wp + r3t(ji,jj,Kaa) * tmask(ji,jj,jk) 
    245246            !                                         ! tracer content at Before, now and after 
    246             ztc_b  = ptr(ji,jj,jk,jn,Kbb)  * ze3t_b 
    247             ztc_n  = ptr(ji,jj,jk,jn,Kmm)  * ze3t_n 
     247            ztc_b  = ptr(ji,jj,jk,jn,Kbb) * ze3t_b 
     248            ztc_n  = ptr(ji,jj,jk,jn,Kmm) * ze3t_n 
    248249            ztc_a  = ptr(ji,jj,jk,jn,Kaa) * ze3t_a 
    249250            ! 
    250             ze3t_d = ze3t_a - 2. * ze3t_n + ze3t_b 
    251251            ztc_d  = ztc_a  - 2. * ztc_n  + ztc_b 
    252252            ! 
    253             ze3t_f = ze3t_n + rn_atfp * ze3t_d 
     253            ze3t_f = 1._wp + r3t_f(ji,jj)*tmask(ji,jj,jk) 
    254254            ztc_f  = ztc_n  + rn_atfp * ztc_d 
    255255            ! 
    256256            IF( .NOT. ln_linssh .AND. jk == mikt(ji,jj) ) THEN           ! first level  
    257                ze3t_f = ze3t_f - rfact2 * ( emp_b(ji,jj)      - emp(ji,jj)   )  
    258257               ztc_f  = ztc_f  - rfact1 * ( sbc_trc(ji,jj,jn) - sbc_trc_b(ji,jj,jn) ) 
    259258            ENDIF 
     
    299298      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
    300299      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           !   -      - 
     300      REAL(wp) ::   ze3t_b, ze3t_n, ze3t_a, ze3t_f, ze3t_d   !   -      - 
    302301      !!---------------------------------------------------------------------- 
    303302      ! 
     
    315314      DO jn = 1, jptra       
    316315         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) 
     316            ze3t_b = e3t(ji,jj,jk,Kbb) 
     317            ze3t_n = e3t(ji,jj,jk,Kmm) 
     318            ze3t_a = e3t(ji,jj,jk,Kaa) 
    320319            !                                         ! 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 
     320            ztc_b  = ptr(ji,jj,jk,jn,Kbb)  * ze3t_b 
     321            ztc_n  = ptr(ji,jj,jk,jn,Kmm)  * ze3t_n 
    323322            ztc_a  = ptr(ji,jj,jk,jn,Kaa) * ze3t_a 
    324323            ! 
     324            ze3t_d = ze3t_a - 2. * ze3t_n + ze3t_b 
    325325            ztc_d  = ztc_a  - 2. * ztc_n  + ztc_b 
    326326            ! 
    327             ze3t_f = 1._wp + r3t_f(ji,jj)*tmask(ji,jj,jk) 
     327            ze3t_f = ze3t_n + rn_atfp * ze3t_d 
    328328            ztc_f  = ztc_n  + rn_atfp * ztc_d 
    329329            ! 
    330330            IF( .NOT. ln_linssh .AND. jk == mikt(ji,jj) ) THEN           ! first level  
     331               ze3t_f = ze3t_f - rfact2 * ( emp_b(ji,jj)      - emp(ji,jj)   )  
    331332               ztc_f  = ztc_f  - rfact1 * ( sbc_trc(ji,jj,jn) - sbc_trc_b(ji,jj,jn) ) 
    332333            ENDIF 
Note: See TracChangeset for help on using the changeset viewer.