Changeset 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.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_ubs.F90
r2715 r3294 22 22 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 23 23 USE trc_oce ! share passive tracers/Ocean variables 24 USE wrk_nemo ! Memory Allocation 25 USE timing ! Timing 24 26 25 27 IMPLICIT NONE … … 40 42 CONTAINS 41 43 42 SUBROUTINE tra_adv_ubs ( kt, cdtype, p2dt, pun, pvn, pwn, &44 SUBROUTINE tra_adv_ubs ( kt, kit000, cdtype, p2dt, pun, pvn, pwn, & 43 45 & ptb, ptn, pta, kjpt ) 44 46 !!---------------------------------------------------------------------- … … 73 75 !! Farrow, D.E., Stevens, D.P., 1995, J. Phys. Ocean. 25, 1731Ð1741. 74 76 !!---------------------------------------------------------------------- 75 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released76 77 USE oce , ONLY: zwx => ua , zwy => va ! (ua,va) used as workspace 77 USE wrk_nemo, ONLY: ztu => wrk_3d_1 , ztv => wrk_3d_2 ! 3D workspace78 USE wrk_nemo, ONLY: zltu => wrk_3d_3 , zltv => wrk_3d_4 ! - -79 USE wrk_nemo, ONLY: zti => wrk_3d_5 , ztw => wrk_3d_6 ! - -80 78 ! 81 79 INTEGER , INTENT(in ) :: kt ! ocean time-step index 80 INTEGER , INTENT(in ) :: kit000 ! first time step index 82 81 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 83 82 INTEGER , INTENT(in ) :: kjpt ! number of tracers … … 91 90 REAL(wp) :: zfp_ui, zfm_ui, zcenut, ztak, zfp_wk, zfm_wk ! - - 92 91 REAL(wp) :: zfp_vj, zfm_vj, zcenvt, zeeu, zeev, z_hdivn ! - - 93 !!---------------------------------------------------------------------- 94 95 IF( wrk_in_use(3, 1,2,3,4,5,6) )THEN 96 CALL ctl_stop('tra_adv_ubs: requested workspace arrays unavailable') ; RETURN 97 ENDIF 98 99 IF( kt == nit000 ) THEN 92 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztu, ztv, zltu, zltv, zti, ztw 93 !!---------------------------------------------------------------------- 94 ! 95 IF( nn_timing == 1 ) CALL timing_start('tra_adv_ubs') 96 ! 97 CALL wrk_alloc( jpi, jpj, jpk, ztu, ztv, zltu, zltv, zti, ztw ) 98 ! 99 100 IF( kt == kit000 ) THEN 100 101 IF(lwp) WRITE(numout,*) 101 102 IF(lwp) WRITE(numout,*) 'tra_adv_ubs : horizontal UBS advection scheme on ', cdtype … … 268 269 ENDDO 269 270 ! 270 IF( wrk_not_released(3, 1,2,3,4,5,6) ) CALL ctl_stop('tra_adv_ubs: failed to release workspace arrays') 271 CALL wrk_dealloc( jpi, jpj, jpk, ztu, ztv, zltu, zltv, zti, ztw ) 272 ! 273 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_ubs') 271 274 ! 272 275 END SUBROUTINE tra_adv_ubs … … 286 289 !! in-space based differencing for fluid 287 290 !!---------------------------------------------------------------------- 288 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released289 USE wrk_nemo, ONLY: zbetup => wrk_3d_1, zbetdo => wrk_3d_2 ! 3D workspace290 291 ! 291 292 REAL(wp), INTENT(in ), DIMENSION(jpk) :: p2dt ! vertical profile of tracer time-step … … 297 298 INTEGER :: ikm1 ! local integer 298 299 REAL(wp) :: zpos, zneg, zbt, za, zb, zc, zbig, zrtrn, z2dtt ! local scalars 299 !!---------------------------------------------------------------------- 300 301 IF( wrk_in_use(3, 1,2) ) THEN 302 CALL ctl_stop('nonosc_z: requested workspace arrays unavailable') ; RETURN 303 ENDIF 300 REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo 301 !!---------------------------------------------------------------------- 302 ! 303 IF( nn_timing == 1 ) CALL timing_start('nonosc_z') 304 ! 305 CALL wrk_alloc( jpi, jpj, jpk, zbetup, zbetdo ) 306 ! 304 307 305 308 zbig = 1.e+40_wp … … 373 376 END DO 374 377 ! 375 IF( wrk_not_released(3, 1,2) ) CALL ctl_stop('nonosc_z: failed to release workspace arrays') 378 CALL wrk_dealloc( jpi, jpj, jpk, zbetup, zbetdo ) 379 ! 380 IF( nn_timing == 1 ) CALL timing_stop('nonosc_z') 376 381 ! 377 382 END SUBROUTINE nonosc_z
Note: See TracChangeset
for help on using the changeset viewer.