Changeset 1320 for palm/trunk/SOURCE/diffusion_s.f90
- Timestamp:
- Mar 20, 2014 8:40:49 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/diffusion_s.f90
r1310 r1320 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! ONLY-attribute added to USE-statements, 23 ! kind-parameters added to all INTEGER and REAL declaration statements, 24 ! kinds are defined in new module kinds, 25 ! old module precision_kind is removed, 26 ! revision history before 2012 removed, 27 ! comment fields (!:) to be used for variable explanations added to 28 ! all variable declaration statements 23 29 ! 24 30 ! Former revisions: … … 47 53 ! 1001 2012-09-13 14:08:46Z raasch 48 54 ! some arrays comunicated by module instead of parameter list 49 !50 ! 667 2010-12-23 12:06:00Z suehring/gryschka51 ! nxl-1, nxr+1, nys-1, nyn+1 replaced by nxlg, nxrg, nysg, nyng52 !53 ! 183 2008-08-04 15:39:12Z letzel54 ! bugfix: calculation of fluxes at vertical surfaces55 !56 ! 129 2007-10-30 12:12:24Z letzel57 ! replace wall_heatflux by wall_s_flux that is now included in the parameter58 ! list, bugfix for assignment of fluxes at walls59 !60 ! 20 2007-02-26 00:12:32Z raasch61 ! Bugfix: ddzw dimensioned 1:nzt"+1"62 ! Calculation extended for gridpoint nzt, fluxes can be given at top,63 ! +s_flux_t in parameter list, s_flux renamed s_flux_b64 !65 ! RCS Log replace by Id keyword, revision history cleaned up66 !67 ! Revision 1.8 2006/02/23 10:34:17 raasch68 ! nzb_2d replaced by nzb_s_outer in horizontal diffusion and by nzb_s_inner69 ! or nzb_diff_s_inner, respectively, in vertical diffusion, prescribed surface70 ! fluxes at vertically oriented topography71 55 ! 72 56 ! Revision 1.1 2000/04/13 14:54:02 schroeter … … 99 83 SUBROUTINE diffusion_s( s, s_flux_b, s_flux_t, wall_s_flux ) 100 84 101 USE arrays_3d 102 USE control_parameters 103 USE grid_variables 104 USE indices 85 USE arrays_3d, & 86 ONLY: ddzu, ddzw, kh, tend 87 88 USE control_parameters, & 89 ONLY: use_surface_fluxes, use_top_fluxes 90 91 USE grid_variables, & 92 ONLY: ddx2, ddy2, fwxm, fwxp, fwym, fwyp, wall_w_x, wall_w_y 93 94 USE indices, & 95 ONLY: nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, & 96 nzb_diff_s_inner, nzb_s_inner, nzb_s_outer, nzt, nzt_diff 97 98 USE kinds 105 99 106 100 IMPLICIT NONE 107 101 108 INTEGER :: i, j, k 109 REAL :: wall_s_flux(0:4) 110 REAL, DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b, s_flux_t 102 INTEGER(iwp) :: i !: 103 INTEGER(iwp) :: j !: 104 INTEGER(iwp) :: k !: 105 REAL(wp) :: wall_s_flux(0:4) !: 106 REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b, s_flux_t !: 111 107 #if defined( __nopointer ) 112 REAL , DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s108 REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s !: 113 109 #else 114 REAL , DIMENSION(:,:,:), POINTER :: s110 REAL(wp), DIMENSION(:,:,:), POINTER :: s !: 115 111 #endif 116 112 … … 121 117 DO k = nzb_s_outer(j,i)+1, nzt 122 118 123 tend(k,j,i) = tend(k,j,i) &124 + 0.5 * ( &125 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &126 - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &127 ) * ddx2 &128 + 0.5 * ( &129 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &130 - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &119 tend(k,j,i) = tend(k,j,i) & 120 + 0.5 * ( & 121 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) & 122 - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) & 123 ) * ddx2 & 124 + 0.5 * ( & 125 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) & 126 - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) & 131 127 ) * ddy2 132 128 ENDDO … … 138 134 DO k = nzb_s_inner(j,i)+1, nzb_s_outer(j,i) 139 135 140 tend(k,j,i) = tend(k,j,i) &141 + ( fwxp(j,i) * 0.5 * &142 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &143 + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1) &144 -fwxm(j,i) * 0.5 * &145 ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &146 + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2) &147 ) * ddx2 &148 + ( fwyp(j,i) * 0.5 * &149 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &150 + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3) &151 -fwym(j,i) * 0.5 * &152 ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &153 + ( 1.0 - fwym(j,i) ) * wall_s_flux(4) &136 tend(k,j,i) = tend(k,j,i) & 137 + ( fwxp(j,i) * 0.5 * & 138 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) & 139 + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1) & 140 -fwxm(j,i) * 0.5 * & 141 ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) & 142 + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2) & 143 ) * ddx2 & 144 + ( fwyp(j,i) * 0.5 * & 145 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) & 146 + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3) & 147 -fwym(j,i) * 0.5 * & 148 ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) & 149 + ( 1.0 - fwym(j,i) ) * wall_s_flux(4) & 154 150 ) * ddy2 155 151 ENDDO … … 162 158 DO k = nzb_diff_s_inner(j,i), nzt_diff 163 159 164 tend(k,j,i) = tend(k,j,i) &165 + 0.5 * ( &166 ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) &167 - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k) &160 tend(k,j,i) = tend(k,j,i) & 161 + 0.5 * ( & 162 ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) & 163 - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k) & 168 164 ) * ddzw(k) 169 165 ENDDO … … 176 172 k = nzb_s_inner(j,i)+1 177 173 178 tend(k,j,i) = tend(k,j,i) &179 + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) ) &180 * ( s(k+1,j,i)-s(k,j,i) ) &181 * ddzu(k+1) &182 + s_flux_b(j,i) &174 tend(k,j,i) = tend(k,j,i) & 175 + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) ) & 176 * ( s(k+1,j,i)-s(k,j,i) ) & 177 * ddzu(k+1) & 178 + s_flux_b(j,i) & 183 179 ) * ddzw(k) 184 180 … … 192 188 k = nzt 193 189 194 tend(k,j,i) = tend(k,j,i) &195 + ( - s_flux_t(j,i) &196 - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) ) &197 * ( s(k,j,i)-s(k-1,j,i) ) &198 * ddzu(k) &190 tend(k,j,i) = tend(k,j,i) & 191 + ( - s_flux_t(j,i) & 192 - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) ) & 193 * ( s(k,j,i)-s(k-1,j,i) ) & 194 * ddzu(k) & 199 195 ) * ddzw(k) 200 196 … … 212 208 SUBROUTINE diffusion_s_acc( s, s_flux_b, s_flux_t, wall_s_flux ) 213 209 214 USE arrays_3d 215 USE control_parameters 216 USE grid_variables 217 USE indices 210 USE arrays_3d, & 211 ONLY: ddzu, ddzw, kh, tend 212 213 USE control_parameters, & 214 ONLY: use_surface_fluxes, use_top_fluxes 215 216 USE grid_variables, & 217 ONLY: ddx2, ddy2, fwxm, fwxp, fwym, fwyp, wall_w_x, wall_w_y 218 219 USE indices, & 220 ONLY: i_left, i_right, j_north, j_south, nxlg, nxrg, nyng, nysg, & 221 nzb_diff_s_inner, nzb_s_inner, nzb_s_outer, nzt, nzt_diff 222 223 USE kinds 218 224 219 225 IMPLICIT NONE 220 226 221 INTEGER :: i, j, k 222 REAL :: wall_s_flux(0:4) 223 REAL, DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b, s_flux_t 227 INTEGER(iwp) :: i !: 228 INTEGER(iwp) :: j !: 229 INTEGER(iwp) :: k !: 230 REAL(wp) :: wall_s_flux(0:4) !: 231 REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b !: 232 REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_t !: 224 233 #if defined( __nopointer ) 225 REAL , DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s234 REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s !: 226 235 #else 227 REAL , DIMENSION(:,:,:), POINTER :: s236 REAL(wp), DIMENSION(:,:,:), POINTER :: s !: 228 237 #endif 229 238 … … 239 248 IF ( k > nzb_s_outer(j,i) ) THEN 240 249 241 tend(k,j,i) = tend(k,j,i) &242 + 0.5 * ( &243 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &244 - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &245 ) * ddx2 &246 + 0.5 * ( &247 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &248 - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &250 tend(k,j,i) = tend(k,j,i) & 251 + 0.5 * ( & 252 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) & 253 - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) & 254 ) * ddx2 & 255 + 0.5 * ( & 256 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) & 257 - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) & 249 258 ) * ddy2 250 259 ENDIF … … 257 266 ( wall_w_x(j,i) /= 0.0 .OR. wall_w_y(j,i) /= 0.0 ) ) & 258 267 THEN 259 tend(k,j,i) = tend(k,j,i) &260 + ( fwxp(j,i) * 0.5 * &261 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &262 + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1) &263 -fwxm(j,i) * 0.5 * &264 ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &265 + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2) &266 ) * ddx2 &267 + ( fwyp(j,i) * 0.5 * &268 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &269 + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3) &270 -fwym(j,i) * 0.5 * &271 ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &272 + ( 1.0 - fwym(j,i) ) * wall_s_flux(4) &268 tend(k,j,i) = tend(k,j,i) & 269 + ( fwxp(j,i) * 0.5 * & 270 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) & 271 + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1) & 272 -fwxm(j,i) * 0.5 * & 273 ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) & 274 + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2) & 275 ) * ddx2 & 276 + ( fwyp(j,i) * 0.5 * & 277 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) & 278 + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3) & 279 -fwym(j,i) * 0.5 * & 280 ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) & 281 + ( 1.0 - fwym(j,i) ) * wall_s_flux(4) & 273 282 ) * ddy2 274 283 ENDIF … … 281 290 DO k = 1, nzt_diff 282 291 IF ( k >= nzb_diff_s_inner(j,i) ) THEN 283 tend(k,j,i) = tend(k,j,i) &284 + 0.5 * ( &285 ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) &286 - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k) &292 tend(k,j,i) = tend(k,j,i) & 293 + 0.5 * ( & 294 ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) & 295 - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k) & 287 296 ) * ddzw(k) 288 297 ENDIF … … 294 303 DO k = 1, nzt 295 304 IF ( use_surface_fluxes .AND. k == nzb_s_inner(j,i)+1 ) THEN 296 tend(k,j,i) = tend(k,j,i) &297 + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) ) &298 * ( s(k+1,j,i)-s(k,j,i) ) &299 * ddzu(k+1) &300 + s_flux_b(j,i) &305 tend(k,j,i) = tend(k,j,i) & 306 + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) ) & 307 * ( s(k+1,j,i)-s(k,j,i) ) & 308 * ddzu(k+1) & 309 + s_flux_b(j,i) & 301 310 ) * ddzw(k) 302 311 ENDIF … … 327 336 SUBROUTINE diffusion_s_ij( i, j, s, s_flux_b, s_flux_t, wall_s_flux ) 328 337 329 USE arrays_3d 330 USE control_parameters 331 USE grid_variables 332 USE indices 338 USE arrays_3d, & 339 ONLY: ddzu, ddzw, kh, tend 340 341 USE control_parameters, & 342 ONLY: use_surface_fluxes, use_top_fluxes 343 344 USE grid_variables, & 345 ONLY: ddx2, ddy2, fwxm, fwxp, fwym, fwyp, wall_w_x, wall_w_y 346 347 USE indices, & 348 ONLY: nxlg, nxrg, nyng, nysg, nzb_diff_s_inner, nzb_s_inner, & 349 nzb_s_outer, nzt, nzt_diff 350 351 USE kinds 333 352 334 353 IMPLICIT NONE 335 354 336 INTEGER :: i, j, k 337 REAL :: wall_s_flux(0:4) 338 REAL, DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b, s_flux_t 355 INTEGER(iwp) :: i !: 356 INTEGER(iwp) :: j !: 357 INTEGER(iwp) :: k !: 358 REAL(wp) :: wall_s_flux(0:4) !: 359 REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b !: 360 REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_t !: 339 361 #if defined( __nopointer ) 340 REAL , DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s362 REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s !: 341 363 #else 342 REAL , DIMENSION(:,:,:), POINTER :: s364 REAL(wp), DIMENSION(:,:,:), POINTER :: s !: 343 365 #endif 344 366 … … 347 369 DO k = nzb_s_outer(j,i)+1, nzt 348 370 349 tend(k,j,i) = tend(k,j,i) &350 + 0.5 * ( &351 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &352 - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &353 ) * ddx2 &354 + 0.5 * ( &355 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &356 - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &371 tend(k,j,i) = tend(k,j,i) & 372 + 0.5 * ( & 373 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) & 374 - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) & 375 ) * ddx2 & 376 + 0.5 * ( & 377 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) & 378 - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) & 357 379 ) * ddy2 358 380 ENDDO … … 360 382 ! 361 383 !-- Apply prescribed horizontal wall heatflux where necessary 362 IF ( ( wall_w_x(j,i) .NE. 0.0 ) .OR. ( wall_w_y(j,i) .NE. 0.0 ) ) &384 IF ( ( wall_w_x(j,i) .NE. 0.0 ) .OR. ( wall_w_y(j,i) .NE. 0.0 ) ) & 363 385 THEN 364 386 DO k = nzb_s_inner(j,i)+1, nzb_s_outer(j,i) 365 387 366 tend(k,j,i) = tend(k,j,i) &367 + ( fwxp(j,i) * 0.5 * &368 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &369 + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1) &370 -fwxm(j,i) * 0.5 * &371 ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &372 + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2) &373 ) * ddx2 &374 + ( fwyp(j,i) * 0.5 * &375 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &376 + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3) &377 -fwym(j,i) * 0.5 * &378 ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &379 + ( 1.0 - fwym(j,i) ) * wall_s_flux(4) &388 tend(k,j,i) = tend(k,j,i) & 389 + ( fwxp(j,i) * 0.5 * & 390 ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) & 391 + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1) & 392 -fwxm(j,i) * 0.5 * & 393 ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) & 394 + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2) & 395 ) * ddx2 & 396 + ( fwyp(j,i) * 0.5 * & 397 ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) & 398 + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3) & 399 -fwym(j,i) * 0.5 * & 400 ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) & 401 + ( 1.0 - fwym(j,i) ) * wall_s_flux(4) & 380 402 ) * ddy2 381 403 ENDDO … … 388 410 DO k = nzb_diff_s_inner(j,i), nzt_diff 389 411 390 tend(k,j,i) = tend(k,j,i) &391 + 0.5 * ( &392 ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) &393 - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k) &412 tend(k,j,i) = tend(k,j,i) & 413 + 0.5 * ( & 414 ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) & 415 - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k) & 394 416 ) * ddzw(k) 395 417 ENDDO … … 401 423 k = nzb_s_inner(j,i)+1 402 424 403 tend(k,j,i) = tend(k,j,i) + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) ) &404 * ( s(k+1,j,i)-s(k,j,i) ) &405 * ddzu(k+1) &406 + s_flux_b(j,i) &425 tend(k,j,i) = tend(k,j,i) + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) ) & 426 * ( s(k+1,j,i)-s(k,j,i) ) & 427 * ddzu(k+1) & 428 + s_flux_b(j,i) & 407 429 ) * ddzw(k) 408 430 … … 415 437 k = nzt 416 438 417 tend(k,j,i) = tend(k,j,i) + ( - s_flux_t(j,i) &418 - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) ) &419 * ( s(k,j,i)-s(k-1,j,i) ) &420 * ddzu(k) &439 tend(k,j,i) = tend(k,j,i) + ( - s_flux_t(j,i) & 440 - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) ) & 441 * ( s(k,j,i)-s(k-1,j,i) ) & 442 * ddzu(k) & 421 443 ) * ddzw(k) 422 444
Note: See TracChangeset
for help on using the changeset viewer.