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 9019 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90 – NEMO

Ignore:
Timestamp:
2017-12-13T15:58:53+01:00 (6 years ago)
Author:
timgraham
Message:

Merge of dev_CNRS_2017 into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90

    r7646 r9019  
    2525   USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
    2626   USE in_out_manager  ! I/O manager 
    27    USE wrk_nemo        ! Memory Allocation 
    2827   USE timing          ! Timing 
    2928   USE lib_fortran     ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    4342#  include "vectopt_loop_substitute.h90" 
    4443   !!---------------------------------------------------------------------- 
    45    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     44   !! NEMO/OPA 4.0 , NEMO Consortium (2017) 
    4645   !! $Id$ 
    4746   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    9695      !!---------------------------------------------------------------------- 
    9796      ! 
    98       IF( nn_timing == 1 )  CALL timing_start('tra_adv_qck') 
     97      IF( ln_timing )   CALL timing_start('tra_adv_qck') 
    9998      ! 
    10099      IF( kt == kit000 )  THEN 
     
    118117      CALL tra_adv_cen2_k( kt, cdtype, pwn,         ptn, pta, kjpt ) 
    119118      ! 
    120       IF( nn_timing == 1 )  CALL timing_stop('tra_adv_qck') 
     119      IF( ln_timing )   CALL timing_stop('tra_adv_qck') 
    121120      ! 
    122121   END SUBROUTINE tra_adv_qck 
     
    138137      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    139138      REAL(wp) ::   ztra, zbtr, zdir, zdx, zmsk   ! local scalars 
    140       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx, zfu, zfc, zfd 
     139      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx, zfu, zfc, zfd 
    141140      !---------------------------------------------------------------------- 
    142141      ! 
    143       CALL wrk_alloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd ) 
    144142      !                                                          ! =========== 
    145143      DO jn = 1, kjpt                                            ! tracer loop 
     
    230228         END DO 
    231229         !                                 ! trend diagnostics 
    232          IF( l_trd )                     CALL trd_tra( kt, cdtype, jn, jptra_xad, zwx, pun, ptn(:,:,:,jn) ) 
     230         IF( l_trd )   CALL trd_tra( kt, cdtype, jn, jptra_xad, zwx, pun, ptn(:,:,:,jn) ) 
    233231         ! 
    234232      END DO 
    235       ! 
    236       CALL wrk_dealloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd ) 
    237233      ! 
    238234   END SUBROUTINE tra_adv_qck_i 
     
    252248      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta        ! tracer trend  
    253249      !! 
    254       INTEGER  :: ji, jj, jk, jn   ! dummy loop indices 
     250      INTEGER  :: ji, jj, jk, jn                ! dummy loop indices 
    255251      REAL(wp) :: ztra, zbtr, zdir, zdx, zmsk   ! local scalars 
    256       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwy, zfu, zfc, zfd 
     252      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwy, zfu, zfc, zfd   ! 3D workspace 
    257253      !---------------------------------------------------------------------- 
    258       ! 
    259       CALL wrk_alloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd ) 
    260254      ! 
    261255      !                                                          ! =========== 
     
    320314            END DO 
    321315         END DO 
    322          !--- Lateral boundary conditions  
    323          CALL lbc_lnk( zfu(:,:,:), 'T', 1. )  
     316         CALL lbc_lnk( zfu(:,:,:), 'T', 1. )    !--- Lateral boundary conditions  
    324317         ! 
    325318         ! Tracer flux on the x-direction 
     
    353346         END DO 
    354347         !                                 ! trend diagnostics 
    355          IF( l_trd )                     CALL trd_tra( kt, cdtype, jn, jptra_yad, zwy, pvn, ptn(:,:,:,jn) ) 
     348         IF( l_trd )   CALL trd_tra( kt, cdtype, jn, jptra_yad, zwy, pvn, ptn(:,:,:,jn) ) 
    356349         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    357          IF( l_ptr )                     CALL dia_ptr_hst( jn, 'adv', zwy(:,:,:) ) 
     350         IF( l_ptr )   CALL dia_ptr_hst( jn, 'adv', zwy(:,:,:) ) 
    358351         ! 
    359352      END DO 
    360       ! 
    361       CALL wrk_dealloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd ) 
    362353      ! 
    363354   END SUBROUTINE tra_adv_qck_j 
     
    377368      ! 
    378369      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    379       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz 
    380       !!---------------------------------------------------------------------- 
    381       ! 
    382       CALL wrk_alloc( jpi,jpj,jpk,   zwz ) 
     370      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwz   ! 3D workspace 
     371      !!---------------------------------------------------------------------- 
    383372      ! 
    384373      zwz(:,:, 1 ) = 0._wp       ! surface & bottom values set to zero for all tracers 
     
    421410      END DO 
    422411      ! 
    423       CALL wrk_dealloc( jpi,jpj,jpk,   zwz ) 
    424       ! 
    425412   END SUBROUTINE tra_adv_cen2_k 
    426413 
     
    443430      !---------------------------------------------------------------------- 
    444431      ! 
    445       IF( nn_timing == 1 )  CALL timing_start('quickest') 
     432      IF( ln_timing )   CALL timing_start('quickest') 
    446433      ! 
    447434      DO jk = 1, jpkm1 
     
    475462      END DO 
    476463      ! 
    477       IF( nn_timing == 1 )  CALL timing_stop('quickest') 
     464      IF( ln_timing )   CALL timing_stop('quickest') 
    478465      ! 
    479466   END SUBROUTINE quickest 
Note: See TracChangeset for help on using the changeset viewer.