Changeset 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
- Timestamp:
- 2012-01-28T17:44:18+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r2715 r3294 26 26 USE diaptr ! poleward transport diagnostics 27 27 USE trc_oce ! share passive tracers/Ocean variables 28 USE wrk_nemo ! Memory Allocation 29 USE timing ! Timing 28 30 29 31 IMPLICIT NONE … … 45 47 CONTAINS 46 48 47 SUBROUTINE tra_adv_qck ( kt, cdtype, p2dt, pun, pvn, pwn, &49 SUBROUTINE tra_adv_qck ( kt, kit000, cdtype, p2dt, pun, pvn, pwn, & 48 50 & ptb, ptn, pta, kjpt ) 49 51 !!---------------------------------------------------------------------- … … 82 84 !!---------------------------------------------------------------------- 83 85 INTEGER , INTENT(in ) :: kt ! ocean time-step index 86 INTEGER , INTENT(in ) :: kit000 ! first time step index 84 87 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 85 88 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 90 93 !!---------------------------------------------------------------------- 91 94 92 IF( kt == nit000 ) THEN 95 ! 96 IF( nn_timing == 1 ) CALL timing_start('tra_adv_qck') 97 ! 98 IF( kt == kit000 ) THEN 93 99 IF(lwp) WRITE(numout,*) 94 100 IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme on ', cdtype … … 107 113 CALL tra_adv_cen2_k( kt, cdtype, pwn, ptn, pta, kjpt ) 108 114 ! 115 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_qck') 116 ! 109 117 END SUBROUTINE tra_adv_qck 110 118 … … 115 123 !! 116 124 !!---------------------------------------------------------------------- 117 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released118 125 USE oce , ONLY: zwx => ua ! ua used as workspace 119 USE wrk_nemo, ONLY: zfu => wrk_3d_1 , zfc => wrk_3d_2, zfd => wrk_3d_3 ! 3D workspace120 126 ! 121 127 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 129 135 INTEGER :: ji, jj, jk, jn ! dummy loop indices 130 136 REAL(wp) :: ztra, zbtr, zdir, zdx, zdt, zmsk ! local scalars 137 REAL(wp), POINTER, DIMENSION(:,:,:) :: zfu, zfc, zfd 131 138 !---------------------------------------------------------------------- 132 139 ! 133 IF( wrk_in_use(3, 1,2,3) ) THEN 134 CALL ctl_stop('tra_adv_qck_i: requested workspace arrays unavailable') ; RETURN 135 ENDIF 140 CALL wrk_alloc( jpi, jpj, jpk, zfu, zfc, zfd ) 136 141 ! ! =========== 137 142 DO jn = 1, kjpt ! tracer loop … … 228 233 END DO 229 234 ! 230 IF( wrk_not_released(3, 1,2,3) ) CALL ctl_stop('tra_adv_qck_i: failed to release workspace arrays')235 CALL wrk_dealloc( jpi, jpj, jpk, zfu, zfc, zfd ) 231 236 ! 232 237 END SUBROUTINE tra_adv_qck_i … … 238 243 !! 239 244 !!---------------------------------------------------------------------- 240 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released241 245 USE oce , ONLY: zwy => ua ! ua used as workspace 242 USE wrk_nemo, ONLY: zfu => wrk_3d_1 , zfc => wrk_3d_2, zfd => wrk_3d_3 ! 3D workspace243 246 ! 244 247 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 252 255 INTEGER :: ji, jj, jk, jn ! dummy loop indices 253 256 REAL(wp) :: ztra, zbtr, zdir, zdx, zdt, zmsk ! local scalars 257 REAL(wp), POINTER, DIMENSION(:,:,:) :: zfu, zfc, zfd 254 258 !---------------------------------------------------------------------- 255 259 ! 256 IF(wrk_in_use(3, 1,2,3))THEN 257 CALL ctl_stop('tra_adv_qck_j: ERROR: requested workspace arrays unavailable') 258 RETURN 259 END IF 260 CALL wrk_alloc( jpi, jpj, jpk, zfu, zfc, zfd ) 261 ! 260 262 ! ! =========== 261 263 DO jn = 1, kjpt ! tracer loop … … 359 361 END DO 360 362 ! 361 IF( wrk_not_released(3, 1,2,3) ) CALL ctl_stop('tra_adv_qck_j: failed to release workspace arrays')363 CALL wrk_dealloc( jpi, jpj, jpk, zfu, zfc, zfd ) 362 364 ! 363 365 END SUBROUTINE tra_adv_qck_j … … 436 438 REAL(wp) :: zc, zcurv, zfho ! - - 437 439 !---------------------------------------------------------------------- 438 440 ! 441 IF( nn_timing == 1 ) CALL timing_start('quickest') 442 ! 439 443 DO jk = 1, jpkm1 440 444 DO jj = 1, jpj … … 467 471 END DO 468 472 ! 473 IF( nn_timing == 1 ) CALL timing_stop('quickest') 474 ! 469 475 END SUBROUTINE quickest 470 476
Note: See TracChangeset
for help on using the changeset viewer.