Changeset 1580 for palm/trunk/SOURCE/init_grid.f90
- Timestamp:
- Apr 10, 2015 1:43:49 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/init_grid.f90
r1576 r1580 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! Bugfix: setting flags for 5th order scheme near buildings. 23 23 ! 24 24 ! Former revisions: … … 1243 1243 DO i = nxl, nxr 1244 1244 DO j = nys, nyn 1245 DO k = nzb_u_inner(j,i)+1, nzt 1245 DO k = nzb+1, nzt 1246 ! 1247 !-- At first, set flags to WS1. 1248 !-- Since fluxes are swapped in advec_ws.f90, this is necessary to 1249 !-- in order to handle the left/south flux. 1250 !-- near vertical walls. 1251 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 9 ) 1252 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 12 ) 1246 1253 ! 1247 1254 !-- u component - x-direction … … 1251 1258 .OR. ( ( inflow_r .OR. outflow_r ) .AND. i == nxr ) & 1252 1259 ) THEN 1253 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 9 )1260 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 9 ) 1254 1261 ELSEIF ( k <= nzb_u_inner(j,i+2) .OR. k <= nzb_u_inner(j,i-1) & 1255 1262 .OR. ( ( inflow_r .OR. outflow_r ) .AND. i == nxr-1 )& … … 1257 1264 ) THEN 1258 1265 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 10 ) 1266 ! 1267 !-- Clear flag for WS1 1268 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 9 ) 1259 1269 ELSE 1260 1270 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 11 ) 1271 ! 1272 !-- Clear flag for WS1 1273 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 9 ) 1261 1274 ENDIF 1262 1263 1275 ! 1264 1276 !-- u component - y-direction … … 1267 1279 .AND. j == nys ) .OR. ( ( inflow_n .OR. outflow_n ) & 1268 1280 .AND. j == nyn ) ) THEN 1269 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 12 )1281 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 12 ) 1270 1282 ELSEIF ( k <= nzb_u_inner(j+2,i) .OR. k <= nzb_u_inner(j-1,i) & 1271 1283 .OR. ( ( inflow_s .OR. outflow_s ) .AND. j == nysv ) & … … 1273 1285 ) THEN 1274 1286 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 13 ) 1287 ! 1288 !-- Clear flag for WS1 1289 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 12 ) 1275 1290 ELSE 1276 1291 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 14 ) 1292 ! 1293 !-- Clear flag for WS1 1294 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 12 ) 1277 1295 ENDIF 1278 1296 ! … … 1296 1314 DO i = nxl, nxr 1297 1315 DO j = nys, nyn 1298 DO k = nzb_v_inner(j,i)+1, nzt 1316 DO k = nzb+1, nzt 1317 ! 1318 !-- At first, set flags to WS1. 1319 !-- Since fluxes are swapped in advec_ws.f90, this is necessary to 1320 !-- in order to handle the left/south flux. 1321 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 18 ) 1322 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 21 ) 1299 1323 ! 1300 1324 !-- v component - x-direction … … 1303 1327 .AND. i == nxl ) .OR. (( inflow_r .OR. outflow_r ) & 1304 1328 .AND. i == nxr ) ) THEN 1305 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 18 )1329 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 18 ) 1306 1330 !-- WS3 1307 1331 ELSEIF ( k <= nzb_v_inner(j,i+2) .OR. k <= nzb_v_inner(j,i-1) & … … 1310 1334 ) THEN 1311 1335 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 19 ) 1336 ! 1337 !-- Clear flag for WS1 1338 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 18 ) 1312 1339 ELSE 1313 1340 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 20 ) 1341 ! 1342 !-- Clear flag for WS1 1343 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 18 ) 1314 1344 ENDIF 1315 1345 ! … … 1320 1350 .OR. ( ( inflow_n .OR. outflow_n ) .AND. j == nyn ) & 1321 1351 ) THEN 1322 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 21 )1352 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 21 ) 1323 1353 ELSEIF ( k <= nzb_v_inner(j+2,i) .OR. k <= nzb_v_inner(j-1,i) & 1324 1354 .OR. ( ( inflow_s .OR. outflow_s ) .AND. j == nysv+1 )& … … 1326 1356 ) THEN 1327 1357 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 22 ) 1358 ! 1359 !-- Clear flag for WS1 1360 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 21 ) 1328 1361 ELSE 1329 1362 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 23 ) 1363 ! 1364 !-- Clear flag for WS1 1365 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 21 ) 1330 1366 ENDIF 1331 1367 ! … … 1348 1384 DO i = nxl, nxr 1349 1385 DO j = nys, nyn 1350 DO k = nzb_w_inner(j,i), nzt 1386 DO k = nzb+1, nzt 1387 ! 1388 !-- At first, set flags to WS1. 1389 !-- Since fluxes are swapped in advec_ws.f90, this is necessary to 1390 !-- in order to handle the left/south flux. 1391 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 27 ) 1392 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 30 ) 1351 1393 ! 1352 1394 !-- w component - x-direction … … 1355 1397 .AND. i == nxl ) .OR. ( ( inflow_r .OR. outflow_r ) & 1356 1398 .AND. i == nxr ) ) THEN 1357 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 27 )1399 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 27 ) 1358 1400 ELSEIF ( k <= nzb_w_inner(j,i+2) .OR. k <= nzb_w_inner(j,i-1) & 1359 1401 .OR. ( ( inflow_r .OR. outflow_r ) .AND. i == nxr-1 ) & … … 1361 1403 ) THEN 1362 1404 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 28 ) 1405 ! 1406 !-- Clear flag for WS1 1407 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 27 ) 1363 1408 ELSE 1364 1409 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i),29 ) 1410 ! 1411 !-- Clear flag for WS1 1412 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 27 ) 1365 1413 ENDIF 1366 1414 ! … … 1370 1418 .AND. j == nys ) .OR. ( ( inflow_n .OR. outflow_n ) & 1371 1419 .AND. j == nyn ) ) THEN 1372 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 30 )1420 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 30 ) 1373 1421 ELSEIF ( k <= nzb_w_inner(j+2,i) .OR. k <= nzb_w_inner(j-1,i) & 1374 1422 .OR. ( ( inflow_s .OR. outflow_s ) .AND. j == nysv ) & … … 1376 1424 ) THEN 1377 1425 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 31 ) 1426 ! 1427 !-- Clear flag for WS1 1428 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 30 ) 1378 1429 ELSE 1379 1430 wall_flags_00(k,j,i) = IBSET( wall_flags_00(k,j,i), 0 ) 1431 ! 1432 !-- Clear flag for WS1 1433 wall_flags_0(k,j,i) = IBCLR( wall_flags_0(k,j,i), 30 ) 1380 1434 ENDIF 1381 1435 !
Note: See TracChangeset
for help on using the changeset viewer.