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 12810 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/TRA/traadv_mus.F90 – NEMO

Ignore:
Timestamp:
2020-04-24T17:09:39+02:00 (4 years ago)
Author:
francesca
Message:

POINTER removal and replacing of traadv_mus.F90 file with original version - ticket #2366

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/TRA/traadv_mus.F90

    r12719 r12810  
    3131   USE lbclnk         ! ocean lateral boundary condition (or mpp link)  
    3232   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    33    USE halo_mng 
    3433 
    3534   IMPLICIT NONE 
     
    3837   PUBLIC   tra_adv_mus   ! routine called by traadv.F90 
    3938    
    40    REAL(wp), POINTER, SAVE, DIMENSION(:,:)   ::   upsmsk   !: mixed upstream/centered scheme near some straits 
     39   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   upsmsk   !: mixed upstream/centered scheme near some straits 
    4140   !                                                           !  and in closed seas (orca 2 and 1 configurations) 
    4241   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xind     !: mixed upstream/centered index 
     
    4544   LOGICAL  ::   l_ptr   ! flag to compute poleward transport 
    4645   LOGICAL  ::   l_hst   ! flag to compute heat/salt transport 
    47  
    48    INTEGER :: jphls = 2 
    4946 
    5047   !! * Substitutions 
     
    8380      LOGICAL                                  , INTENT(in   ) ::   ld_msc_ups      ! use upstream scheme within muscl 
    8481      REAL(wp)                                 , INTENT(in   ) ::   p2dt            ! tracer time-step 
    85       REAL(wp), POINTER, DIMENSION(:,:,:)      , INTENT(in   ) ::   pU, pV, pW      ! 3 ocean volume flux components 
    86       REAL(wp), POINTER, DIMENSION(:,:,:,:,:)  , INTENT(inout) ::   pt              ! tracers and RHS of tracer equation 
     82      REAL(wp), DIMENSION(jpi,jpj,jpk         ), INTENT(in   ) ::   pU, pV, pW      ! 3 ocean volume flux components 
     83      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt,jpt), INTENT(inout) ::   pt              ! tracers and RHS of tracer equation 
    8784      ! 
    8885      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
     
    9087      REAL(wp) ::   zu, z0u, zzwx, zw , zalpha   ! local scalars 
    9188      REAL(wp) ::   zv, z0v, zzwy, z0w           !   -      - 
    92       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zwx, zslpx   ! 3D workspace 
    93       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zwy, zslpy   ! -      -  
     89      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx, zslpx   ! 3D workspace 
     90      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwy, zslpy   ! -      -  
    9491      !!---------------------------------------------------------------------- 
    9592      ! 
    96       CALL halo_mng_set(jphls) 
    97  
    98       ALLOCATE(zwx(jpi,jpj,jpk)) 
    99       ALLOCATE(zwy(jpi,jpj,jpk)) 
    100       ALLOCATE(zslpx(jpi,jpj,jpk)) 
    101       ALLOCATE(zslpy(jpi,jpj,jpk)) 
    102  
    103       CALL halo_mng_resize(r1_e1e2t,'T', 1._wp) 
    104       CALL halo_mng_resize(r1_e1e2u,'U', 1._wp) 
    105       CALL halo_mng_resize(r1_e1e2v,'V', 1._wp) 
    106       CALL halo_mng_resize(tmask,'T', 1._wp) 
    107       CALL halo_mng_resize(wmask,'W', 1._wp) 
    108       CALL halo_mng_resize(umask,'U', 1._wp) 
    109       CALL halo_mng_resize(vmask,'V', 1._wp) 
    110       CALL halo_mng_resize(pt, 'T', 1._wp, kjpt=kjpt, fjpt=Kbb ) 
    111       CALL halo_mng_resize(pt, 'T', 1._wp, kjpt=kjpt, fjpt=Krhs ) 
    112       CALL halo_mng_resize(e3t,'T', 1._wp, fillval=1._wp, fjpt=Kmm) 
    113       CALL halo_mng_resize(e3u,'U', 1._wp, fillval=1._wp, fjpt=Kmm ) 
    114       CALL halo_mng_resize(e3v,'V', 1._wp, fillval=1._wp, fjpt=Kmm) 
    115       CALL halo_mng_resize(e3w,'W', 1._wp, fillval=1._wp, fjpt=Kmm) 
    116       CALL halo_mng_resize(pU, 'U', -1._wp) 
    117       CALL halo_mng_resize(pV, 'V', -1._wp) 
    118       CALL halo_mng_resize(pW, 'W', 1._wp) 
    119       ! 
    120       IF( ln_isfcav ) CALL halo_mng_resize(mikt,  'T', 1._wp) 
    121       IF( ld_msc_ups) CALL halo_mng_resize(rnfmsk,'T', 1._wp) 
    122       IF( ld_msc_ups) CALL halo_mng_resize(upsmsk,'T', 1._wp) 
    123  
    12493      IF( kt == kit000 )  THEN 
    12594         IF(lwp) WRITE(numout,*) 
     
    167136         END_3D 
    168137         ! lateral boundary conditions   (changed sign) 
    169          !CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. ) 
     138         CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. ) 
    170139         !                                !-- Slopes of tracer 
    171140         zslpx(:,:,jpk) = 0._wp                 ! bottom values 
     
    203172            zwy(ji,jj,jk) = pV(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    204173         END_3D 
    205          !CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. )   ! lateral boundary conditions   (changed sign) 
     174         CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. )   ! lateral boundary conditions   (changed sign) 
    206175         ! 
    207176         DO_3D_00_00( 1, jpkm1 ) 
     
    264233         ! 
    265234      END DO                     ! end of tracer loop 
    266  
    267       DEALLOCATE(zwx,zwy) 
    268       DEALLOCATE(zslpx,zslpy) 
    269  
    270       CALL halo_mng_set(1) 
    271       ! 
    272       CALL halo_mng_resize(r1_e1e2t,'T', 1._wp) 
    273       CALL halo_mng_resize(r1_e1e2u,'U', 1._wp) 
    274       CALL halo_mng_resize(r1_e1e2v,'V', 1._wp) 
    275       CALL halo_mng_resize(pt,'T', 1._wp, kjpt=kjpt, fjpt=Kbb ) 
    276       CALL halo_mng_resize(pt,'T', 1._wp, kjpt=kjpt, fjpt=Krhs ) 
    277       CALL halo_mng_resize(tmask,'T', 1._wp) 
    278       CALL halo_mng_resize(wmask,'W', 1._wp) 
    279       CALL halo_mng_resize(umask,'U', 1._wp) 
    280       CALL halo_mng_resize(vmask,'V', 1._wp) 
    281       CALL halo_mng_resize(e3t,'T', 1._wp, fillval=1._wp, fjpt=Kmm) 
    282       CALL halo_mng_resize(e3u,'U', 1._wp, fillval=1._wp, fjpt=Kmm) 
    283       CALL halo_mng_resize(e3v,'V', 1._wp, fillval=1._wp, fjpt=Kmm) 
    284       CALL halo_mng_resize(e3w,'W', 1._wp, fillval=1._wp, fjpt=Kmm) 
    285       CALL halo_mng_resize(pU,'U', 1._wp) 
    286       CALL halo_mng_resize(pV,'V', 1._wp) 
    287       CALL halo_mng_resize(pW,'W', 1._wp) 
    288  
    289       IF( ln_isfcav ) CALL halo_mng_resize(mikt, 'T', 1._wp) 
    290       IF( ld_msc_ups) CALL halo_mng_resize(rnfmsk, 'T', 1._wp) 
    291       IF( ld_msc_ups) CALL halo_mng_resize(upsmsk, 'T', 1._wp) 
     235      ! 
    292236   END SUBROUTINE tra_adv_mus 
    293237 
Note: See TracChangeset for help on using the changeset viewer.