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 3159 for branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90 – NEMO

Ignore:
Timestamp:
2011-11-18T22:41:44+01:00 (13 years ago)
Author:
cetlod
Message:

New dynamical allocation + timing on TRA/ routines

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90

    r3116 r3159  
    2626   USE diaptr          ! poleward transport diagnostics 
    2727   USE trc_oce         ! share passive tracers/Ocean variables 
     28   USE wrk_nemo_2      ! Memory Allocation 
     29   USE timing          ! Timing 
    2830 
    2931   IMPLICIT NONE 
     
    9193      !!---------------------------------------------------------------------- 
    9294 
     95      ! 
     96      IF( nn_timing == 1 )  CALL timing_start('tra_adv_qck') 
     97      ! 
    9398      IF( kt == kit000 )  THEN 
    9499         IF(lwp) WRITE(numout,*) 
     
    108113      CALL tra_adv_cen2_k( kt, cdtype, pwn,         ptn, pta, kjpt ) 
    109114      ! 
     115      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_qck') 
     116      ! 
    110117   END SUBROUTINE tra_adv_qck 
    111118 
     
    116123      !! 
    117124      !!---------------------------------------------------------------------- 
    118       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    119125      USE oce     , ONLY:   zwx => ua       ! ua used as workspace 
    120       USE wrk_nemo, ONLY:   zfu => wrk_3d_11 , zfc => wrk_3d_12, zfd => wrk_3d_13   ! 3D workspace 
    121126      ! 
    122127      INTEGER                              , INTENT(in   ) ::   kt         ! ocean time-step index 
     
    130135      INTEGER  :: ji, jj, jk, jn   ! dummy loop indices 
    131136      REAL(wp) :: ztra, zbtr, zdir, zdx, zdt, zmsk   ! local scalars 
     137      REAL(wp), POINTER, DIMENSION(:,:,:) :: zfu, zfc, zfd 
    132138      !---------------------------------------------------------------------- 
    133139      ! 
    134       IF( wrk_in_use(3, 11,12,13) ) THEN 
    135          CALL ctl_stop('tra_adv_qck_i: requested workspace arrays unavailable')   ;   RETURN 
    136       ENDIF 
     140      CALL wrk_alloc( jpi, jpj, jpk, zfu, zfc, zfd ) 
    137141      !                                                          ! =========== 
    138142      DO jn = 1, kjpt                                            ! tracer loop 
     
    229233      END DO 
    230234      ! 
    231       IF( wrk_not_released(3, 11,12,13) )   CALL ctl_stop('tra_adv_qck_i: failed to release workspace arrays') 
     235      CALL wrk_dealloc( jpi, jpj, jpk, zfu, zfc, zfd ) 
    232236      ! 
    233237   END SUBROUTINE tra_adv_qck_i 
     
    239243      !! 
    240244      !!---------------------------------------------------------------------- 
    241       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    242245      USE oce     , ONLY:   zwy => ua       ! ua used as workspace 
    243       USE wrk_nemo, ONLY:   zfu => wrk_3d_11 , zfc => wrk_3d_12, zfd => wrk_3d_13   ! 3D workspace 
    244246      ! 
    245247      INTEGER                              , INTENT(in   ) ::   kt         ! ocean time-step index 
     
    253255      INTEGER  :: ji, jj, jk, jn   ! dummy loop indices 
    254256      REAL(wp) :: ztra, zbtr, zdir, zdx, zdt, zmsk   ! local scalars 
     257      REAL(wp), POINTER, DIMENSION(:,:,:) :: zfu, zfc, zfd 
    255258      !---------------------------------------------------------------------- 
    256259      ! 
    257       IF(wrk_in_use(3, 11,12,13))THEN 
    258          CALL ctl_stop('tra_adv_qck_j: ERROR: requested workspace arrays unavailable') 
    259          RETURN 
    260       END IF 
     260      CALL wrk_alloc( jpi, jpj, jpk, zfu, zfc, zfd ) 
     261      ! 
    261262      !                                                          ! =========== 
    262263      DO jn = 1, kjpt                                            ! tracer loop 
     
    360361      END DO 
    361362      ! 
    362       IF( wrk_not_released(3, 11,12,13) )   CALL ctl_stop('tra_adv_qck_j: failed to release workspace arrays') 
     363      CALL wrk_dealloc( jpi, jpj, jpk, zfu, zfc, zfd ) 
    363364      ! 
    364365   END SUBROUTINE tra_adv_qck_j 
     
    437438      REAL(wp) ::  zc, zcurv, zfho          !   -      - 
    438439      !---------------------------------------------------------------------- 
    439  
     440      ! 
     441      IF( nn_timing == 1 )  CALL timing_start('quickest') 
     442      ! 
    440443      DO jk = 1, jpkm1 
    441444         DO jj = 1, jpj 
     
    468471      END DO 
    469472      ! 
     473      IF( nn_timing == 1 )  CALL timing_stop('quickest') 
     474      ! 
    470475   END SUBROUTINE quickest 
    471476 
Note: See TracChangeset for help on using the changeset viewer.