Changeset 1708 for trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90
- Timestamp:
- 2009-11-04T14:24:34+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r1694 r1708 94 94 INTEGER :: ji, jj, jk, jn ! dummy loop indices 95 95 INTEGER :: icycle ! temporary scalar 96 INTEGER :: ikbu, ikbv ! temporary scalar 96 97 97 98 REAL(wp) :: zraur, zcoef, z2dt_e, z2dt_b ! temporary scalars … … 102 103 !! 103 104 REAL(wp), DIMENSION(jpi,jpj) :: zhdiv, zsshb_e 105 !! 106 REAL(wp), DIMENSION(jpi,jpj) :: zbfru , zbfrv ! 2D workspace 104 107 !! 105 108 REAL(wp), DIMENSION(jpi,jpj) :: zsshun_e, zsshvn_e ! 2D workspace … … 119 122 IF(lwp) WRITE(numout,*) ' Number of sub cycle in 1 time-step (2 rdt) : icycle = ', 2*nn_baro 120 123 ! 121 CALL ts_rst( nit000, 'READ' ) ! read or initialize the following fields: 122 ! ! un_b, vn_b 124 CALL ts_rst( nit000, 'READ' ) ! read or initialize the following fields: un_b, vn_b 123 125 ! 124 126 ua_e (:,:) = un_b (:,:) … … 131 133 ftne(1,:) = 0.e0 ; ftnw(1,:) = 0.e0 ; ftse(1,:) = 0.e0 ; ftsw(1,:) = 0.e0 132 134 DO jj = 2, jpj 133 DO ji = 2, jpi ! NOvector opt.135 DO ji = fs_2, jpi ! vector opt. 134 136 ftne(ji,jj) = ( ff(ji-1,jj ) + ff(ji ,jj ) + ff(ji ,jj-1) ) / 3. 135 137 ftnw(ji,jj) = ( ff(ji-1,jj-1) + ff(ji-1,jj ) + ff(ji ,jj ) ) / 3. … … 252 254 END DO 253 255 254 ! ! Remove barotropic contribution of bottom friction 255 ! from the barotropic transport trend 256 257 ! ! Remove barotropic contribution of bottom friction 258 ! ! from the barotropic transport trend 259 zcoef = -1. / z2dt_b 260 # if defined key_vectopt_loop 261 DO jj = 1, 1 262 DO ji = jpi+2, jpij-jpi-1 ! vector opt. (forced unrolling) 263 # else 264 DO jj = 2, jpjm1 265 DO ji = 2, jpim1 266 # endif 267 ikbu = MIN( mbathy(ji+1,jj), mbathy(ji,jj) ) 268 ikbv = MIN( mbathy(ji,jj+1), mbathy(ji,jj) ) 269 ! 270 ! Apply stability criteria for bottom friction 271 !RBbug for vvl and external mode we may need to 272 ! use varying fse3 273 zbfru (ji,jj) = MAX( bfrua(ji,jj), fse3u(ji,jj,ikbu)*zcoef ) 274 zbfrv (ji,jj) = MAX( bfrva(ji,jj), fse3v(ji,jj,ikbv)*zcoef ) 275 END DO 276 END DO 277 256 278 IF( lk_vvl ) THEN 257 DO jj = 2, jpjm1 258 DO ji = fs_2, fs_jpim1 ! vector opt. 259 zua(ji,jj) = zua(ji,jj) - bfrua(ji,jj) * zub(ji,jj) / ( hu_0(ji,jj) + sshu_b(ji,jj) + 1.e0 - umask(ji,jj,1) ) 260 zva(ji,jj) = zva(ji,jj) - bfrva(ji,jj) * zvb(ji,jj) / ( hv_0(ji,jj) + sshv_b(ji,jj) + 1.e0 - vmask(ji,jj,1) ) 261 END DO 262 END DO 279 DO jj = 2, jpjm1 280 DO ji = fs_2, fs_jpim1 ! vector opt. 281 zua(ji,jj) = zua(ji,jj) - zbfru(ji,jj) * zub(ji,jj) & 282 & / ( hu_0(ji,jj) + sshu_b(ji,jj) + 1.e0 - umask(ji,jj,1) ) 283 zva(ji,jj) = zva(ji,jj) - zbfrv(ji,jj) * zvb(ji,jj) & 284 & / ( hv_0(ji,jj) + sshv_b(ji,jj) + 1.e0 - vmask(ji,jj,1) ) 285 END DO 286 END DO 263 287 ELSE 264 DO jj = 2, jpjm1265 DO ji = fs_2, fs_jpim1 ! vector opt.266 zua(ji,jj) = zua(ji,jj) - bfrua(ji,jj) * zub(ji,jj) * hur(ji,jj)267 zva(ji,jj) = zva(ji,jj) - bfrva(ji,jj) * zvb(ji,jj) * hvr(ji,jj)268 END DO269 END DO288 DO jj = 2, jpjm1 289 DO ji = fs_2, fs_jpim1 ! vector opt. 290 zua(ji,jj) = zua(ji,jj) - zbfru(ji,jj) * zub(ji,jj) * hur(ji,jj) 291 zva(ji,jj) = zva(ji,jj) - zbfrv(ji,jj) * zvb(ji,jj) * hvr(ji,jj) 292 END DO 293 END DO 270 294 ENDIF 271 295
Note: See TracChangeset
for help on using the changeset viewer.