Changeset 6004 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90
- Timestamp:
- 2015-12-04T17:05:58+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90
r5883 r6004 70 70 !! Reference : Shchepetkin & McWilliams, 2005, Ocean Modelling. 71 71 !!---------------------------------------------------------------------- 72 INTEGER, INTENT(in) :: kt ! ocean time-step index 73 ! 74 INTEGER :: ji, jj, jk ! dummy loop indices 75 REAL(wp) :: zbu, zbv ! temporary scalars 76 REAL(wp) :: zui, zvj, zfuj, zfvi, zl_u, zl_v ! temporary scalars 72 INTEGER, INTENT(in) :: kt ! ocean time-step index 73 ! 74 INTEGER :: ji, jj, jk ! dummy loop indices 75 REAL(wp) :: zui, zvj, zfuj, zfvi, zl_u, zl_v ! local scalars 77 76 REAL(wp), POINTER, DIMENSION(:,:,: ) :: zfu, zfv 78 77 REAL(wp), POINTER, DIMENSION(:,:,: ) :: zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw … … 82 81 IF( nn_timing == 1 ) CALL timing_start('dyn_adv_ubs') 83 82 ! 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 )83 CALL wrk_alloc( jpi,jpj,jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 84 CALL wrk_alloc( jpi,jpj,jpk,jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu ) 86 85 ! 87 86 IF( kt == nit000 ) THEN … … 139 138 DO jk = 1, jpkm1 ! ====================== ! 140 139 ! ! horizontal volume fluxes 141 zfu(:,:,jk) = 0.25 * e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk)142 zfv(:,:,jk) = 0.25 * e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk)140 zfu(:,:,jk) = 0.25_wp * e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 141 zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 143 142 ! 144 143 DO jj = 1, jpjm1 ! horizontal momentum fluxes at T- and F-point … … 178 177 DO jj = 2, jpjm1 ! divergence of horizontal momentum fluxes 179 178 DO ji = fs_2, fs_jpim1 ! vector opt. 180 zbu = e1e2u(ji,jj) * e3u_n(ji,jj,jk) 181 zbv = e1e2v(ji,jj) * e3v_n(ji,jj,jk) 182 ! 183 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zfu_t(ji+1,jj ,jk) - zfu_t(ji ,jj ,jk) & 184 & + zfv_f(ji ,jj ,jk) - zfv_f(ji ,jj-1,jk) ) / zbu 185 va(ji,jj,jk) = va(ji,jj,jk) - ( zfu_f(ji ,jj ,jk) - zfu_f(ji-1,jj ,jk) & 186 & + zfv_t(ji ,jj+1,jk) - zfv_t(ji ,jj ,jk) ) / zbv 179 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zfu_t(ji+1,jj,jk) - zfu_t(ji,jj ,jk) & 180 & + zfv_f(ji ,jj,jk) - zfv_f(ji,jj-1,jk) ) * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk) 181 va(ji,jj,jk) = va(ji,jj,jk) - ( zfu_f(ji,jj ,jk) - zfu_f(ji-1,jj,jk) & 182 & + zfv_t(ji,jj+1,jk) - zfv_t(ji ,jj,jk) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 187 183 END DO 188 184 END DO … … 217 213 DO jj = 2, jpjm1 218 214 DO ji = fs_2, fs_jpim1 219 zfw(ji,jj,jk) = 0.25 * e1e2t(ji,jj) * wn(ji,jj,jk)215 zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * wn(ji,jj,jk) 220 216 END DO 221 217 END DO … … 245 241 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 246 242 ! 247 CALL wrk_dealloc( jpi, jpj, jpk,zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw )248 CALL wrk_dealloc( jpi, jpj, jpk, jpts,zlu_uu, zlv_vv, zlu_uv, zlv_vu )243 CALL wrk_dealloc( jpi,jpj,jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 244 CALL wrk_dealloc( jpi,jpj,jpk,jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu ) 249 245 ! 250 246 IF( nn_timing == 1 ) CALL timing_stop('dyn_adv_ubs')
Note: See TracChangeset
for help on using the changeset viewer.