Changeset 457 for trunk/NEMO/OPA_SRC/TRA/traadv_tvd.F90
- Timestamp:
- 2006-05-10T19:01:19+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r408 r457 42 42 CONTAINS 43 43 44 SUBROUTINE tra_adv_tvd( kt )44 SUBROUTINE tra_adv_tvd( kt, pun, pvn, pwn ) 45 45 !!---------------------------------------------------------------------- 46 46 !! *** ROUTINE tra_adv_tvd *** … … 64 64 !! 8.5 ! 02-06 (G. Madec) F90: Free form and module 65 65 !! 9.0 ! 04-01 (A. de Miranda, G. Madec, J.M. Molines ): advective bbl 66 !! "! 08-04 (S. Cravatte) add the i-, j- & k- trends computation66 !! 9.0 ! 08-04 (S. Cravatte) add the i-, j- & k- trends computation 67 67 !! " ! 05-11 (V. Garnier) Surface pressure gradient organization 68 68 !!---------------------------------------------------------------------- … … 72 72 & ztaz => tladi, & ! use ua as workspace 73 73 & zsaz => sladi ! use ua as workspace 74 #if defined key_trabbl_adv75 USE oce , zun => ua, & ! use ua as workspace76 & zvn => va ! use va as workspace77 78 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwn79 #else80 USE oce , zun => un, & ! When no bbl, zun == un81 zvn => vn, & ! zvn == vn82 zwn => wn ! zwn == wn83 #endif84 74 85 75 !! * Arguments 86 INTEGER, INTENT( in ) :: kt ! ocean time-step 76 INTEGER , INTENT( in ) :: kt ! ocean time-step index 77 REAL(wp), INTENT( in ), DIMENSION(jpi,jpj,jpk) :: & 78 pun, pvn, pwn ! now ocean velocity fields 87 79 88 80 !! * Local declarations … … 122 114 ENDIF 123 115 124 #if defined key_trabbl_adv125 ! Advective Bottom boundary layer: add the velocity126 ! -------------------------------------------------127 zun(:,:,:) = un (:,:,:) - u_bbl(:,:,:)128 zvn(:,:,:) = vn (:,:,:) - v_bbl(:,:,:)129 zwn(:,:,:) = wn (:,:,:) + w_bbl(:,:,:)130 #endif131 116 132 117 ! 1. Bottom value : flux set to zero … … 144 129 DO jj = 1, jpjm1 145 130 DO ji = 1, fs_jpim1 ! vector opt. 146 zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * zun(ji,jj,jk)147 zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * zvn(ji,jj,jk)131 zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * pun(ji,jj,jk) 132 zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * pvn(ji,jj,jk) 148 133 ! upstream scheme 149 134 zfp_ui = zeu + ABS( zeu ) … … 161 146 ! upstream tracer flux in the k direction 162 147 ! Surface value 163 IF( lk_dynspg_rl ) THEN 148 IF( lk_dynspg_rl ) THEN ! rigid lid : flux set to zero 164 149 ztw(:,:,1) = 0.e0 165 150 zsw(:,:,1) = 0.e0 166 ELSE 151 ELSE ! free surface 167 152 DO jj = 1, jpj 168 153 DO ji = 1, jpi 169 zew = e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,1)154 zew = e1t(ji,jj) * e2t(ji,jj) * pwn(ji,jj,1) 170 155 ztw(ji,jj,1) = zew * tb(ji,jj,1) 171 156 zsw(ji,jj,1) = zew * sb(ji,jj,1) … … 178 163 DO jj = 1, jpj 179 164 DO ji = 1, jpi 180 zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,jk)165 zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * pwn(ji,jj,jk) 181 166 zfp_wk = zew + ABS( zew ) 182 167 zfm_wk = zew - ABS( zew ) … … 247 232 DO jj = 1, jpjm1 248 233 DO ji = 1, fs_jpim1 ! vector opt. 249 zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * zun(ji,jj,jk)250 zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * zvn(ji,jj,jk)234 zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * pun(ji,jj,jk) 235 zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * pvn(ji,jj,jk) 251 236 ztu(ji,jj,jk) = zeu * ( tn(ji,jj,jk) + tn(ji+1,jj,jk) ) - ztu(ji,jj,jk) 252 237 zsu(ji,jj,jk) = zeu * ( sn(ji,jj,jk) + sn(ji+1,jj,jk) ) - zsu(ji,jj,jk) … … 266 251 DO jj = 1, jpj 267 252 DO ji = 1, jpi 268 zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,jk)253 zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * pwn(ji,jj,jk) 269 254 ztw(ji,jj,jk) = zew * ( tn(ji,jj,jk) + tn(ji,jj,jk-1) ) - ztw(ji,jj,jk) 270 255 zsw(ji,jj,jk) = zew * ( sn(ji,jj,jk) + sn(ji,jj,jk-1) ) - zsw(ji,jj,jk) … … 401 386 zbig = 1.e+40 402 387 zrtrn = 1.e-15 403 zbetup(:,:,:) = 0.e0 ; zbetdo(:,:,:) = 0.e0 388 zbetup(:,:,:) = 0.e0 ; zbetdo(:,:,:) = 0.e0 404 389 405 390 ! Search local extrema
Note: See TracChangeset
for help on using the changeset viewer.