Changeset 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_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/DYN/dynadv_ubs.F90
r2715 r3294 22 22 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 23 23 USE lib_mpp ! MPP library 24 USE wrk_nemo ! Memory Allocation 25 USE timing ! Timing 24 26 25 27 IMPLICIT NONE 26 28 PRIVATE 27 29 28 REAL(wp), PARAMETER :: gamma1 = 1._wp/ 4._wp ! =1/4 quick ; =1/3 3rd order UBS30 REAL(wp), PARAMETER :: gamma1 = 1._wp/3._wp ! =1/4 quick ; =1/3 3rd order UBS 29 31 REAL(wp), PARAMETER :: gamma2 = 1._wp/8._wp ! =0 2nd order ; =1/8 4th order centred 30 32 … … 62 64 !! before velocity (forward in time). 63 65 !! Default value (hard coded in the begining of the module) are 64 !! gamma1=1/ 4and gamma2=1/8.66 !! gamma1=1/3 and gamma2=1/8. 65 67 !! 66 68 !! ** Action : - (ua,va) updated with the 3D advective momentum trends … … 68 70 !! Reference : Shchepetkin & McWilliams, 2005, Ocean Modelling. 69 71 !!---------------------------------------------------------------------- 70 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released71 USE oce , ONLY: zfu => ta , zfv => sa ! (ta,sa) used as 3D workspace72 USE wrk_nemo, ONLY: zfu_t => wrk_3d_1 , zfv_t =>wrk_3d_4 , zfu_uw =>wrk_3d_6 ! 3D workspace73 USE wrk_nemo, ONLY: zfu_f => wrk_3d_2 , zfv_f =>wrk_3d_5 , zfv_vw =>wrk_3d_774 USE wrk_nemo, ONLY: zfw => wrk_3d_375 USE wrk_nemo, ONLY: zlu_uu => wrk_4d_1 , zlv_vv=>wrk_4d_3 ! 4D workspace76 USE wrk_nemo, ONLY: zlu_uv => wrk_4d_2 , zlv_vu=>wrk_4d_477 !78 72 INTEGER, INTENT(in) :: kt ! ocean time-step index 79 73 ! … … 81 75 REAL(wp) :: zbu, zbv ! temporary scalars 82 76 REAL(wp) :: zui, zvj, zfuj, zfvi, zl_u, zl_v ! temporary scalars 77 REAL(wp), POINTER, DIMENSION(:,:,: ) :: zfu, zfv 78 REAL(wp), POINTER, DIMENSION(:,:,: ) :: zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw 79 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zlu_uu, zlv_vv, zlu_uv, zlv_vu 83 80 !!---------------------------------------------------------------------- 84 81 ! 82 IF( nn_timing == 1 ) CALL timing_start('dyn_adv_ubs') 83 ! 84 CALL wrk_alloc( jpi, jpj, jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 85 CALL wrk_alloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu ) 86 ! 85 87 IF( kt == nit000 ) THEN 86 88 IF(lwp) WRITE(numout,*) … … 88 90 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 89 91 ENDIF 90 91 ! Check that required workspace arrays are not already in use 92 IF( wrk_in_use(3, 1,2,3,4,5,6,7) .OR. wrk_in_use(4, 1,2,3,4) ) THEN 93 CALL ctl_stop('dyn_adv_ubs: requested workspace array unavailable') ; RETURN 94 ENDIF 95 92 ! 96 93 zfu_t(:,:,:) = 0._wp 97 94 zfv_t(:,:,:) = 0._wp … … 254 251 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 255 252 ! 256 IF( wrk_not_released(3, 1,2,3,4,5,6,7) .OR. & 257 wrk_not_released(4, 1,2,3,4) ) CALL ctl_stop('dyn_adv_ubs: failed to release workspace array') 253 CALL wrk_dealloc( jpi, jpj, jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 254 CALL wrk_dealloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu ) 255 ! 256 IF( nn_timing == 1 ) CALL timing_stop('dyn_adv_ubs') 258 257 ! 259 258 END SUBROUTINE dyn_adv_ubs
Note: See TracChangeset
for help on using the changeset viewer.