Changeset 3636 for palm/trunk/SOURCE/urban_surface_mod.f90
- Timestamp:
- Dec 19, 2018 1:48:34 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/urban_surface_mod.f90
r3614 r3636 28 28 ! ----------------- 29 29 ! $Id$ 30 ! nopointer option removed 31 ! 32 ! 3614 2018-12-10 07:05:46Z raasch 30 33 ! unused variables removed 31 34 ! … … 393 396 394 397 USE arrays_3d, & 395 #if ! defined( __nopointer )396 398 ONLY: hyp, zu, pt, p, u, v, w, tend, exner, hyrho, prr, q, ql, vpt 397 #else 398 ONLY: hyp, pt, u, v, w, tend, exner, hyrho, prr, q, ql, vpt 399 #endif 399 400 400 USE calc_mean_profile_mod, & 401 401 ONLY: calc_mean_profile … … 936 936 END TYPE surf_type_usm 937 937 938 #if defined( __nopointer )939 TYPE(surf_type_usm), TARGET :: m_liq_usm_h, & !< liquid water reservoir (m), horizontal surface elements940 m_liq_usm_h_p !< progn. liquid water reservoir (m), horizontal surface elements941 942 TYPE(surf_type_usm), DIMENSION(0:3), TARGET :: &943 m_liq_usm_v, & !< liquid water reservoir (m), vertical surface elements944 m_liq_usm_v_p !< progn. liquid water reservoir (m), vertical surface elements945 #else946 938 TYPE(surf_type_usm), POINTER :: m_liq_usm_h, & !< liquid water reservoir (m), horizontal surface elements 947 939 m_liq_usm_h_p !< progn. liquid water reservoir (m), horizontal surface elements … … 957 949 m_liq_usm_v_1, & !< 958 950 m_liq_usm_v_2 !< 959 #endif960 951 961 952 TYPE(surf_type_usm), TARGET :: tm_liq_usm_h_m !< liquid water reservoir tendency (m), horizontal surface elements … … 1006 997 REAL(wp), DIMENSION(:), ALLOCATABLE :: zwn_green !< normalized green layer depths (m) 1007 998 1008 #if defined( __nopointer )1009 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_wall_h !< wall surface temperature (K) at horizontal walls1010 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_wall_h_p !< progn. wall surface temperature (K) at horizontal walls1011 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_window_h !< window surface temperature (K) at horizontal walls1012 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_window_h_p !< progn. window surface temperature (K) at horizontal walls1013 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_green_h !< green surface temperature (K) at horizontal walls1014 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_green_h_p !< progn. green surface temperature (K) at horizontal walls1015 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_wall_v1016 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_wall_v_p1017 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_window_v1018 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_window_v_p1019 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_green_v1020 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_green_v_p1021 #else1022 999 REAL(wp), DIMENSION(:), POINTER :: t_surf_wall_h 1023 1000 REAL(wp), DIMENSION(:), POINTER :: t_surf_wall_h_p … … 1047 1024 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_green_v_1 1048 1025 TYPE(t_surf_vertical), DIMENSION(0:3), TARGET :: t_surf_green_v_2 1049 1050 #endif1051 1026 1052 1027 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 1055 1030 !-- parameters of the land, roof and wall surfaces 1056 1031 1057 #if defined( __nopointer )1058 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h !< Wall temperature (K)1059 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h_p !< Prog. wall temperature (K)1060 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_window_h !< Window temperature (K)1061 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_window_h_p !< Prog. window temperature (K)1062 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_green_h !< Green temperature (K)1063 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_green_h_p !< Prog. green temperature (K)1064 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: swc_h !< soil water content green building layer1065 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: swc_h_av !< avg of soil water content green building layer1066 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: swc_h_p !< Prog. soil water content green building layer1067 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: swc_sat_h !< soil water content green building layer at saturation1068 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: swc_res_h !< soil water content green building layer residual1069 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: rootfr_h !< root fraction green green building layer1070 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: wilt_h !< wilting point green building layer1071 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: fc_h !< field capacity green building layer1072 1073 1074 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_wall_v !< Wall temperature (K)1075 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_wall_v_p !< Prog. wall temperature (K)1076 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_window_v !< Window temperature (K)1077 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_window_v_p !< Prog. window temperature (K)1078 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_green_v !< Green temperature (K)1079 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_green_v_p !< Prog. green temperature (K)1080 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: swc_v !< Wall swc1081 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: swc_v_p !< Prog. swc1082 1083 #else1084 1032 REAL(wp), DIMENSION(:,:), POINTER :: t_wall_h, t_wall_h_p 1085 1033 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h_1, t_wall_h_2 … … 1101 1049 TYPE(t_wall_vertical), DIMENSION(:), POINTER :: swc_v, swc_v_p 1102 1050 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: swc_v_1, swc_v_2 1103 #endif1104 1051 1105 1052 !-- Surface and material parameters classes (surface_type) … … 1417 1364 1418 1365 !-- allocate wall and roof temperature arrays, for horizontal walls 1419 #if defined( __nopointer )1420 IF ( .NOT. ALLOCATED( t_surf_wall_h ) ) &1421 ALLOCATE ( t_surf_wall_h(1:surf_usm_h%ns) )1422 IF ( .NOT. ALLOCATED( t_surf_wall_h_p ) ) &1423 ALLOCATE ( t_surf_wall_h_p(1:surf_usm_h%ns) )1424 IF ( .NOT. ALLOCATED( t_wall_h ) ) &1425 ALLOCATE ( t_wall_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1426 IF ( .NOT. ALLOCATED( t_wall_h_p ) ) &1427 ALLOCATE ( t_wall_h_p(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1428 IF ( .NOT. ALLOCATED( t_surf_window_h ) ) &1429 ALLOCATE ( t_surf_window_h(1:surf_usm_h%ns) )1430 IF ( .NOT. ALLOCATED( t_surf_window_h_p ) ) &1431 ALLOCATE ( t_surf_window_h_p(1:surf_usm_h%ns) )1432 IF ( .NOT. ALLOCATED( t_window_h ) ) &1433 ALLOCATE ( t_window_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1434 IF ( .NOT. ALLOCATED( t_window_h_p ) ) &1435 ALLOCATE ( t_window_h_p(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1436 IF ( .NOT. ALLOCATED( t_surf_green_h ) ) &1437 ALLOCATE ( t_surf_green_h(1:surf_usm_h%ns) )1438 IF ( .NOT. ALLOCATED( t_surf_green_h_p ) ) &1439 ALLOCATE ( t_surf_green_h_p(1:surf_usm_h%ns) )1440 IF ( .NOT. ALLOCATED( t_green_h ) ) &1441 ALLOCATE ( t_green_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1442 IF ( .NOT. ALLOCATED( t_green_h_p ) ) &1443 ALLOCATE ( t_green_h_p(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1444 IF ( .NOT. ALLOCATED( swc_h ) ) &1445 ALLOCATE ( swc_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1446 IF ( .NOT. ALLOCATED( swc_sat_h ) ) &1447 ALLOCATE ( swc_sat_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1448 IF ( .NOT. ALLOCATED( swc_res_h ) ) &1449 ALLOCATE ( swc_res_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1450 IF ( .NOT. ALLOCATED( rootfr_h ) ) &1451 ALLOCATE ( rootfr_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1452 IF ( .NOT. ALLOCATED( wilt_h ) ) &1453 ALLOCATE ( wilt_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1454 IF ( .NOT. ALLOCATED( fc_h ) ) &1455 ALLOCATE ( fc_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )1456 1457 IF ( .NOT. ALLOCATED( m_liq_usm_h%var_usm_1d ) ) &1458 ALLOCATE ( m_liq_usm_h%var_usm_1d(1:surf_usm_h%ns) )1459 1460 !-- Horizontal surfaces1461 ALLOCATE ( m_liq_usm_h_p%var_usm_1d(1:surf_usm_h%ns) )1462 !1463 !-- Vertical surfaces1464 DO l = 0, 31465 ALLOCATE ( m_liq_usm_v_p(l)%var_usm_1d(1:surf_usm_v(l)%ns) )1466 ENDDO1467 1468 #else1469 1366 ! 1470 1367 !-- Allocate if required. Note, in case of restarts, some of these arrays … … 1529 1426 wilt_h => wilt_h_1 1530 1427 fc_h => fc_h_1 1531 1532 #endif1533 1428 1534 1429 !-- allocate wall and roof temperature arrays, for vertical walls if required 1535 #if defined( __nopointer )1536 DO l = 0, 31537 IF ( .NOT. ALLOCATED( t_surf_wall_v(l)%t ) ) &1538 ALLOCATE ( t_surf_wall_v(l)%t(1:surf_usm_v(l)%ns) )1539 IF ( .NOT. ALLOCATED( t_surf_wall_v_p(l)%t ) ) &1540 ALLOCATE ( t_surf_wall_v_p(l)%t(1:surf_usm_v(l)%ns) )1541 IF ( .NOT. ALLOCATED( t_wall_v(l)%t ) ) &1542 ALLOCATE ( t_wall_v(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1543 IF ( .NOT. ALLOCATED( t_wall_v_p(l)%t ) ) &1544 ALLOCATE ( t_wall_v_p(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1545 IF ( .NOT. ALLOCATED( t_surf_window_v(l)%t ) ) &1546 ALLOCATE ( t_surf_window_v(l)%t(1:surf_usm_v(l)%ns) )1547 IF ( .NOT. ALLOCATED( t_surf_window_v_p(l)%t ) ) &1548 ALLOCATE ( t_surf_window_v_p(l)%t(1:surf_usm_v(l)%ns) )1549 IF ( .NOT. ALLOCATED( t_window_v(l)%t ) ) &1550 ALLOCATE ( t_window_v(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1551 IF ( .NOT. ALLOCATED( t_window_v_p(l)%t ) ) &1552 ALLOCATE ( t_window_v_p(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1553 IF ( .NOT. ALLOCATED( t_green_v(l)%t ) ) &1554 ALLOCATE ( t_green_v(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1555 IF ( .NOT. ALLOCATED( t_green_v_p(l)%t ) ) &1556 ALLOCATE ( t_green_v_p(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1557 IF ( .NOT. ALLOCATED( t_surf_green_v(l)%t ) ) &1558 ALLOCATE ( t_surf_green_v(l)%t(1:surf_usm_v(l)%ns) )1559 IF ( .NOT. ALLOCATED( t_surf_green_v_p(l)%t ) ) &1560 ALLOCATE ( t_surf_green_v_p(l)%t(1:surf_usm_v(l)%ns) )1561 IF ( .NOT. ALLOCATED( m_liq_usm_v(l)%var_usm_1d ) ) &1562 ALLOCATE ( m_liq_usm_v(l)%var_usm_1d(1:surf_usm_v(l)%ns) )1563 IF ( .NOT. ALLOCATED( swc_v(l)%t ) ) &1564 ALLOCATE ( swc_v(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1565 IF ( .NOT. ALLOCATED( swc_v_p(l)%t ) ) &1566 ALLOCATE ( swc_v_p(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )1567 ENDDO1568 #else1569 1430 ! 1570 1431 !-- Allocate if required. Note, in case of restarts, some of these arrays … … 1615 1476 swc_v => swc_v_1; swc_v_p => swc_v_2 1616 1477 1617 #endif1618 1478 ! 1619 1479 !-- Allocate intermediate timestep arrays. For horizontal surfaces. … … 4059 3919 REAL(wp) :: z_agl !< height above ground 4060 3920 4061 !4062 !-- NOPOINTER version not implemented yet4063 #if defined( __nopointer )4064 message_string = 'The urban surface module only runs with POINTER version'4065 CALL message( 'urban_surface_mod', 'PA0452', 1, 2, 0, 6, 0 )4066 #endif4067 3921 4068 3922 CALL cpu_log( log_point_s(78), 'usm_init', 'start' ) … … 5175 5029 !-- At horizontal surfaces. Please note, t_surf_wall_h is defined on a 5176 5030 !-- different data type, but with the same dimension. 5177 #if ! defined( __nopointer )5178 5031 DO m = 1, surf_usm_h%ns 5179 5032 i = surf_usm_h%i(m) … … 5200 5053 ENDDO 5201 5054 ENDDO 5202 #endif 5055 5203 5056 ! 5204 5057 !-- For the sake of correct initialization, set also q_surface. … … 6416 6269 6417 6270 CASE ( 't_surf_wall_h' ) 6418 #if defined( __nopointer )6419 IF ( k == 1 ) THEN6420 IF ( .NOT. ALLOCATED( t_surf_wall_h ) ) &6421 ALLOCATE( t_surf_wall_h(1:surf_usm_h%ns) )6422 READ ( 13 ) tmp_surf_wall_h6423 ENDIF6424 CALL surface_restore_elements( &6425 t_surf_wall_h, tmp_surf_wall_h, &6426 surf_usm_h%start_index, &6427 start_index_on_file, &6428 end_index_on_file, &6429 nxlc, nysc, &6430 nxlf, nxrf, nysf, nynf, &6431 nys_on_file, nyn_on_file, &6432 nxl_on_file,nxr_on_file )6433 #else6434 6271 IF ( k == 1 ) THEN 6435 6272 IF ( .NOT. ALLOCATED( t_surf_wall_h_1 ) ) & … … 6446 6283 nys_on_file, nyn_on_file, & 6447 6284 nxl_on_file,nxr_on_file ) 6448 #endif6449 6285 6450 6286 CASE ( 't_surf_wall_v(0)' ) 6451 #if defined( __nopointer )6452 IF ( k == 1 ) THEN6453 IF ( .NOT. ALLOCATED( t_surf_wall_v(0)%t ) ) &6454 ALLOCATE( t_surf_wall_v(0)%t(1:surf_usm_v(0)%ns) )6455 READ ( 13 ) tmp_surf_wall_v(0)%t6456 ENDIF6457 CALL surface_restore_elements( &6458 t_surf_wall_v(0)%t, tmp_surf_wall_v(0)%t, &6459 surf_usm_v(0)%start_index, &6460 start_index_on_file, &6461 end_index_on_file, &6462 nxlc, nysc, &6463 nxlf, nxrf, nysf, nynf, &6464 nys_on_file, nyn_on_file, &6465 nxl_on_file,nxr_on_file )6466 #else6467 6287 IF ( k == 1 ) THEN 6468 6288 IF ( .NOT. ALLOCATED( t_surf_wall_v_1(0)%t ) ) & … … 6479 6299 nys_on_file, nyn_on_file, & 6480 6300 nxl_on_file,nxr_on_file ) 6481 #endif6482 6301 6483 6302 CASE ( 't_surf_wall_v(1)' ) 6484 #if defined( __nopointer )6485 IF ( k == 1 ) THEN6486 IF ( .NOT. ALLOCATED( t_surf_wall_v(1)%t ) ) &6487 ALLOCATE( t_surf_wall_v(1)%t(1:surf_usm_v(1)%ns) )6488 READ ( 13 ) tmp_surf_wall_v(1)%t6489 ENDIF6490 CALL surface_restore_elements( &6491 t_surf_wall_v(1)%t, tmp_surf_wall_v(1)%t, &6492 surf_usm_v(1)%start_index, &6493 start_index_on_file, &6494 end_index_on_file, &6495 nxlc, nysc, &6496 nxlf, nxrf, nysf, nynf, &6497 nys_on_file, nyn_on_file, &6498 nxl_on_file,nxr_on_file )6499 #else6500 6303 IF ( k == 1 ) THEN 6501 6304 IF ( .NOT. ALLOCATED( t_surf_wall_v_1(1)%t ) ) & … … 6512 6315 nys_on_file, nyn_on_file, & 6513 6316 nxl_on_file,nxr_on_file ) 6514 #endif6515 6317 6516 6318 CASE ( 't_surf_wall_v(2)' ) 6517 #if defined( __nopointer )6518 IF ( k == 1 ) THEN6519 IF ( .NOT. ALLOCATED( t_surf_wall_v(2)%t ) ) &6520 ALLOCATE( t_surf_wall_v(2)%t(1:surf_usm_v(2)%ns) )6521 READ ( 13 ) tmp_surf_wall_v(2)%t6522 ENDIF6523 CALL surface_restore_elements( &6524 t_surf_wall_v(2)%t, tmp_surf_wall_v(2)%t, &6525 surf_usm_v(2)%start_index, &6526 start_index_on_file, &6527 end_index_on_file, &6528 nxlc, nysc, &6529 nxlf, nxrf, nysf, nynf, &6530 nys_on_file, nyn_on_file, &6531 nxl_on_file,nxr_on_file )6532 #else6533 6319 IF ( k == 1 ) THEN 6534 6320 IF ( .NOT. ALLOCATED( t_surf_wall_v_1(2)%t ) ) & … … 6545 6331 nys_on_file, nyn_on_file, & 6546 6332 nxl_on_file,nxr_on_file ) 6547 #endif6548 6333 6549 6334 CASE ( 't_surf_wall_v(3)' ) 6550 #if defined( __nopointer )6551 IF ( k == 1 ) THEN6552 IF ( .NOT. ALLOCATED( t_surf_wall_v(3)%t ) ) &6553 ALLOCATE( t_surf_wall_v(3)%t(1:surf_usm_v(3)%ns) )6554 READ ( 13 ) tmp_surf_wall_v(3)%t6555 ENDIF6556 CALL surface_restore_elements( &6557 t_surf_wall_v(3)%t, tmp_surf_wall_v(3)%t, &6558 surf_usm_v(3)%start_index, &6559 start_index_on_file, &6560 end_index_on_file, &6561 nxlc, nysc, &6562 nxlf, nxrf, nysf, nynf, &6563 nys_on_file, nyn_on_file, &6564 nxl_on_file,nxr_on_file )6565 #else6566 6335 IF ( k == 1 ) THEN 6567 6336 IF ( .NOT. ALLOCATED( t_surf_wall_v_1(3)%t ) ) & … … 6578 6347 nys_on_file, nyn_on_file, & 6579 6348 nxl_on_file,nxr_on_file ) 6580 #endif 6349 6581 6350 CASE ( 't_surf_green_h' ) 6582 #if defined( __nopointer )6583 IF ( k == 1 ) THEN6584 IF ( .NOT. ALLOCATED( t_surf_green_h ) ) &6585 ALLOCATE( t_surf_green_h(1:surf_usm_h%ns) )6586 READ ( 13 ) tmp_surf_green_h6587 ENDIF6588 CALL surface_restore_elements( &6589 t_surf_green_h, tmp_surf_green_h, &6590 surf_usm_h%start_index, &6591 start_index_on_file, &6592 end_index_on_file, &6593 nxlc, nysc, &6594 nxlf, nxrf, nysf, nynf, &6595 nys_on_file, nyn_on_file, &6596 nxl_on_file,nxr_on_file )6597 #else6598 6351 IF ( k == 1 ) THEN 6599 6352 IF ( .NOT. ALLOCATED( t_surf_green_h_1 ) ) & … … 6610 6363 nys_on_file, nyn_on_file, & 6611 6364 nxl_on_file,nxr_on_file ) 6612 #endif6613 6365 6614 6366 CASE ( 't_surf_green_v(0)' ) 6615 #if defined( __nopointer )6616 IF ( k == 1 ) THEN6617 IF ( .NOT. ALLOCATED( t_surf_green_v(0)%t ) ) &6618 ALLOCATE( t_surf_green_v(0)%t(1:surf_usm_v(0)%ns) )6619 READ ( 13 ) tmp_surf_green_v(0)%t6620 ENDIF6621 CALL surface_restore_elements( &6622 t_surf_green_v(0)%t, &6623 tmp_surf_green_v(0)%t, &6624 surf_usm_v(0)%start_index, &6625 start_index_on_file, &6626 end_index_on_file, &6627 nxlc, nysc, &6628 nxlf, nxrf, nysf, nynf, &6629 nys_on_file, nyn_on_file, &6630 nxl_on_file,nxr_on_file )6631 #else6632 6367 IF ( k == 1 ) THEN 6633 6368 IF ( .NOT. ALLOCATED( t_surf_green_v_1(0)%t ) ) & … … 6645 6380 nys_on_file, nyn_on_file, & 6646 6381 nxl_on_file,nxr_on_file ) 6647 #endif6648 6382 6649 6383 CASE ( 't_surf_green_v(1)' ) 6650 #if defined( __nopointer )6651 IF ( k == 1 ) THEN6652 IF ( .NOT. ALLOCATED( t_surf_green_v(1)%t ) ) &6653 ALLOCATE( t_surf_green_v(1)%t(1:surf_usm_v(1)%ns) )6654 READ ( 13 ) tmp_surf_green_v(1)%t6655 ENDIF6656 CALL surface_restore_elements( &6657 t_surf_green_v(1)%t, &6658 tmp_surf_green_v(1)%t, &6659 surf_usm_v(1)%start_index, &6660 start_index_on_file, &6661 end_index_on_file, &6662 nxlc, nysc, &6663 nxlf, nxrf, nysf, nynf, &6664 nys_on_file, nyn_on_file, &6665 nxl_on_file,nxr_on_file )6666 #else6667 6384 IF ( k == 1 ) THEN 6668 6385 IF ( .NOT. ALLOCATED( t_surf_green_v_1(1)%t ) ) & … … 6680 6397 nys_on_file, nyn_on_file, & 6681 6398 nxl_on_file,nxr_on_file ) 6682 #endif6683 6399 6684 6400 CASE ( 't_surf_green_v(2)' ) 6685 #if defined( __nopointer )6686 IF ( k == 1 ) THEN6687 IF ( .NOT. ALLOCATED( t_surf_green_v(2)%t ) ) &6688 ALLOCATE( t_surf_green_v(2)%t(1:surf_usm_v(2)%ns) )6689 READ ( 13 ) tmp_surf_green_v(2)%t6690 ENDIF6691 CALL surface_restore_elements( &6692 t_surf_green_v(2)%t, &6693 tmp_surf_green_v(2)%t, &6694 surf_usm_v(2)%start_index, &6695 start_index_on_file, &6696 end_index_on_file, &6697 nxlc, nysc, &6698 nxlf, nxrf, nysf, nynf, &6699 nys_on_file, nyn_on_file, &6700 nxl_on_file,nxr_on_file )6701 #else6702 6401 IF ( k == 1 ) THEN 6703 6402 IF ( .NOT. ALLOCATED( t_surf_green_v_1(2)%t ) ) & … … 6715 6414 nys_on_file, nyn_on_file, & 6716 6415 nxl_on_file,nxr_on_file ) 6717 #endif6718 6416 6719 6417 CASE ( 't_surf_green_v(3)' ) 6720 #if defined( __nopointer )6721 IF ( k == 1 ) THEN6722 IF ( .NOT. ALLOCATED( t_surf_green_v(3)%t ) ) &6723 ALLOCATE( t_surf_green_v(3)%t(1:surf_usm_v(3)%ns) )6724 READ ( 13 ) tmp_surf_green_v(3)%t6725 ENDIF6726 CALL surface_restore_elements( &6727 t_surf_green_v(3)%t, &6728 tmp_surf_green_v(3)%t, &6729 surf_usm_v(3)%start_index, &6730 start_index_on_file, &6731 end_index_on_file, &6732 nxlc, nysc, &6733 nxlf, nxrf, nysf, nynf, &6734 nys_on_file, nyn_on_file, &6735 nxl_on_file,nxr_on_file )6736 #else6737 6418 IF ( k == 1 ) THEN 6738 6419 IF ( .NOT. ALLOCATED( t_surf_green_v_1(3)%t ) ) & … … 6750 6431 nys_on_file, nyn_on_file, & 6751 6432 nxl_on_file,nxr_on_file ) 6752 #endif 6433 6753 6434 CASE ( 't_surf_window_h' ) 6754 #if defined( __nopointer )6755 IF ( k == 1 ) THEN6756 IF ( .NOT. ALLOCATED( t_surf_window_h ) ) &6757 ALLOCATE( t_surf_window_h(1:surf_usm_h%ns) )6758 READ ( 13 ) tmp_surf_window_h6759 ENDIF6760 CALL surface_restore_elements( &6761 t_surf_window_h, tmp_surf_window_h, &6762 surf_usm_h%start_index, &6763 start_index_on_file, &6764 end_index_on_file, &6765 nxlc, nysc, &6766 nxlf, nxrf, nysf, nynf, &6767 nys_on_file, nyn_on_file, &6768 nxl_on_file,nxr_on_file )6769 #else6770 6435 IF ( k == 1 ) THEN 6771 6436 IF ( .NOT. ALLOCATED( t_surf_window_h_1 ) ) & … … 6783 6448 nys_on_file, nyn_on_file, & 6784 6449 nxl_on_file,nxr_on_file ) 6785 #endif6786 6450 6787 6451 CASE ( 't_surf_window_v(0)' ) 6788 #if defined( __nopointer )6789 IF ( k == 1 ) THEN6790 IF ( .NOT. ALLOCATED( t_surf_window_v(0)%t ) ) &6791 ALLOCATE( t_surf_window_v(0)%t(1:surf_usm_v(0)%ns) )6792 READ ( 13 ) tmp_surf_window_v(0)%t6793 ENDIF6794 CALL surface_restore_elements( &6795 t_surf_window_v(0)%t, &6796 tmp_surf_window_v(0)%t, &6797 surf_usm_v(0)%start_index, &6798 start_index_on_file, &6799 end_index_on_file, &6800 nxlc, nysc, &6801 nxlf, nxrf, nysf, nynf, &6802 nys_on_file, nyn_on_file, &6803 nxl_on_file,nxr_on_file )6804 #else6805 6452 IF ( k == 1 ) THEN 6806 6453 IF ( .NOT. ALLOCATED( t_surf_window_v_1(0)%t ) ) & … … 6818 6465 nys_on_file, nyn_on_file, & 6819 6466 nxl_on_file,nxr_on_file ) 6820 #endif6821 6467 6822 6468 CASE ( 't_surf_window_v(1)' ) 6823 #if defined( __nopointer )6824 IF ( k == 1 ) THEN6825 IF ( .NOT. ALLOCATED( t_surf_window_v(1)%t ) ) &6826 ALLOCATE( t_surf_window_v(1)%t(1:surf_usm_v(1)%ns) )6827 READ ( 13 ) tmp_surf_window_v(1)%t6828 ENDIF6829 CALL surface_restore_elements( &6830 t_surf_window_v(1)%t, &6831 tmp_surf_window_v(1)%t, &6832 surf_usm_v(1)%start_index, &6833 start_index_on_file, &6834 end_index_on_file, &6835 nxlc, nysc, &6836 nxlf, nxrf, nysf, nynf, &6837 nys_on_file, nyn_on_file, &6838 nxl_on_file,nxr_on_file )6839 #else6840 6469 IF ( k == 1 ) THEN 6841 6470 IF ( .NOT. ALLOCATED( t_surf_window_v_1(1)%t ) ) & … … 6853 6482 nys_on_file, nyn_on_file, & 6854 6483 nxl_on_file,nxr_on_file ) 6855 #endif6856 6484 6857 6485 CASE ( 't_surf_window_v(2)' ) 6858 #if defined( __nopointer )6859 IF ( k == 1 ) THEN6860 IF ( .NOT. ALLOCATED( t_surf_window_v(2)%t ) ) &6861 ALLOCATE( t_surf_window_v(2)%t(1:surf_usm_v(2)%ns) )6862 READ ( 13 ) tmp_surf_window_v(2)%t6863 ENDIF6864 CALL surface_restore_elements( &6865 t_surf_window_v(2)%t, &6866 tmp_surf_window_v(2)%t, &6867 surf_usm_v(2)%start_index, &6868 start_index_on_file, &6869 end_index_on_file, &6870 nxlc, nysc, &6871 nxlf, nxrf, nysf, nynf, &6872 nys_on_file, nyn_on_file, &6873 nxl_on_file,nxr_on_file )6874 #else6875 6486 IF ( k == 1 ) THEN 6876 6487 IF ( .NOT. ALLOCATED( t_surf_window_v_1(2)%t ) ) & … … 6888 6499 nys_on_file, nyn_on_file, & 6889 6500 nxl_on_file,nxr_on_file ) 6890 #endif6891 6501 6892 6502 CASE ( 't_surf_window_v(3)' ) 6893 #if defined( __nopointer )6894 IF ( k == 1 ) THEN6895 IF ( .NOT. ALLOCATED( t_surf_window_v(3)%t ) ) &6896 ALLOCATE( t_surf_window_v(3)%t(1:surf_usm_v(3)%ns) )6897 READ ( 13 ) tmp_surf_window_v(3)%t6898 ENDIF6899 CALL surface_restore_elements( &6900 t_surf_window_v(3)%t, &6901 tmp_surf_window_v(3)%t, &6902 surf_usm_v(3)%start_index, &6903 start_index_on_file, &6904 end_index_on_file, &6905 nxlc, nysc, &6906 nxlf, nxrf, nysf, nynf, &6907 nys_on_file, nyn_on_file, &6908 nxl_on_file,nxr_on_file )6909 #else6910 6503 IF ( k == 1 ) THEN 6911 6504 IF ( .NOT. ALLOCATED( t_surf_window_v_1(3)%t ) ) & … … 6923 6516 nys_on_file, nyn_on_file, & 6924 6517 nxl_on_file,nxr_on_file ) 6925 #endif 6518 6926 6519 CASE ( 't_wall_h' ) 6927 #if defined( __nopointer )6928 IF ( k == 1 ) THEN6929 IF ( .NOT. ALLOCATED( t_wall_h ) ) &6930 ALLOCATE( t_wall_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )6931 READ ( 13 ) tmp_wall_h6932 ENDIF6933 CALL surface_restore_elements( &6934 t_wall_h, tmp_wall_h, &6935 surf_usm_h%start_index, &6936 start_index_on_file, &6937 end_index_on_file, &6938 nxlc, nysc, &6939 nxlf, nxrf, nysf, nynf, &6940 nys_on_file, nyn_on_file, &6941 nxl_on_file,nxr_on_file )6942 #else6943 6520 IF ( k == 1 ) THEN 6944 6521 IF ( .NOT. ALLOCATED( t_wall_h_1 ) ) & … … 6956 6533 nys_on_file, nyn_on_file, & 6957 6534 nxl_on_file,nxr_on_file ) 6958 #endif 6535 6959 6536 CASE ( 't_wall_v(0)' ) 6960 #if defined( __nopointer )6961 IF ( k == 1 ) THEN6962 IF ( .NOT. ALLOCATED( t_wall_v(0)%t ) ) &6963 ALLOCATE( t_wall_v(0)%t(nzb_wall:nzt_wall+1, &6964 1:surf_usm_v(0)%ns) )6965 READ ( 13 ) tmp_wall_v(0)%t6966 ENDIF6967 CALL surface_restore_elements( &6968 t_wall_v(0)%t, tmp_wall_v(0)%t, &6969 surf_usm_v(0)%start_index, &6970 start_index_on_file, &6971 end_index_on_file, &6972 nxlc, nysc, &6973 nxlf, nxrf, nysf, nynf, &6974 nys_on_file, nyn_on_file, &6975 nxl_on_file,nxr_on_file )6976 #else6977 6537 IF ( k == 1 ) THEN 6978 6538 IF ( .NOT. ALLOCATED( t_wall_v_1(0)%t ) ) & … … 6990 6550 nys_on_file, nyn_on_file, & 6991 6551 nxl_on_file,nxr_on_file ) 6992 #endif 6552 6993 6553 CASE ( 't_wall_v(1)' ) 6994 #if defined( __nopointer )6995 IF ( k == 1 ) THEN6996 IF ( .NOT. ALLOCATED( t_wall_v(1)%t ) ) &6997 ALLOCATE( t_wall_v(1)%t(nzb_wall:nzt_wall+1, &6998 1:surf_usm_v(1)%ns) )6999 READ ( 13 ) tmp_wall_v(1)%t7000 ENDIF7001 CALL surface_restore_elements( &7002 t_wall_v(1)%t, tmp_wall_v(1)%t, &7003 surf_usm_v(1)%start_index, &7004 start_index_on_file, &7005 end_index_on_file , &7006 nxlc, nysc, &7007 nxlf, nxrf, nysf, nynf, &7008 nys_on_file, nyn_on_file, &7009 nxl_on_file, nxr_on_file )7010 #else7011 6554 IF ( k == 1 ) THEN 7012 6555 IF ( .NOT. ALLOCATED( t_wall_v_1(1)%t ) ) & … … 7024 6567 nys_on_file, nyn_on_file, & 7025 6568 nxl_on_file,nxr_on_file ) 7026 #endif 6569 7027 6570 CASE ( 't_wall_v(2)' ) 7028 #if defined( __nopointer )7029 IF ( k == 1 ) THEN7030 IF ( .NOT. ALLOCATED( t_wall_v(2)%t ) ) &7031 ALLOCATE( t_wall_v(2)%t(nzb_wall:nzt_wall+1, &7032 1:surf_usm_v(2)%ns) )7033 READ ( 13 ) tmp_wall_v(2)%t7034 ENDIF7035 CALL surface_restore_elements( &7036 t_wall_v(2)%t, tmp_wall_v(2)%t, &7037 surf_usm_v(2)%start_index, &7038 start_index_on_file, &7039 end_index_on_file, &7040 nxlc, nysc, &7041 nxlf, nxrf, nysf, nynf, &7042 nys_on_file, nyn_on_file, &7043 nxl_on_file,nxr_on_file )7044 #else7045 6571 IF ( k == 1 ) THEN 7046 6572 IF ( .NOT. ALLOCATED( t_wall_v_1(2)%t ) ) & … … 7058 6584 nys_on_file, nyn_on_file, & 7059 6585 nxl_on_file,nxr_on_file ) 7060 #endif 6586 7061 6587 CASE ( 't_wall_v(3)' ) 7062 #if defined( __nopointer )7063 IF ( k == 1 ) THEN7064 IF ( .NOT. ALLOCATED( t_wall_v(3)%t ) ) &7065 ALLOCATE( t_wall_v(3)%t(nzb_wall:nzt_wall+1, &7066 1:surf_usm_v(3)%ns) )7067 READ ( 13 ) tmp_wall_v(3)%t7068 ENDIF7069 CALL surface_restore_elements( &7070 t_wall_v(3)%t, tmp_wall_v(3)%t, &7071 surf_usm_v(3)%start_index, &7072 start_index_on_file, &7073 end_index_on_file, &7074 nxlc, nysc, &7075 nxlf, nxrf, nysf, nynf, &7076 nys_on_file, nyn_on_file, &7077 nxl_on_file,nxr_on_file )7078 #else7079 6588 IF ( k == 1 ) THEN 7080 6589 IF ( .NOT. ALLOCATED( t_wall_v_1(3)%t ) ) & … … 7092 6601 nys_on_file, nyn_on_file, & 7093 6602 nxl_on_file,nxr_on_file ) 7094 #endif 6603 7095 6604 CASE ( 't_green_h' ) 7096 #if defined( __nopointer )7097 IF ( k == 1 ) THEN7098 IF ( .NOT. ALLOCATED( t_green_h ) ) &7099 ALLOCATE( t_green_h(nzb_wall:nzt_wall+1, &7100 1:surf_usm_h%ns) )7101 READ ( 13 ) tmp_green_h7102 ENDIF7103 CALL surface_restore_elements( &7104 t_green_h, tmp_green_h, &7105 surf_usm_h%start_index, &7106 start_index_on_file, &7107 end_index_on_file, &7108 nxlc, nysc, &7109 nxlf, nxrf, nysf, nynf, &7110 nys_on_file, nyn_on_file, &7111 nxl_on_file,nxr_on_file )7112 #else7113 6605 IF ( k == 1 ) THEN 7114 6606 IF ( .NOT. ALLOCATED( t_green_h_1 ) ) & … … 7126 6618 nys_on_file, nyn_on_file, & 7127 6619 nxl_on_file,nxr_on_file ) 7128 #endif 6620 7129 6621 CASE ( 't_green_v(0)' ) 7130 #if defined( __nopointer )7131 IF ( k == 1 ) THEN7132 IF ( .NOT. ALLOCATED( t_green_v(0)%t ) ) &7133 ALLOCATE( t_green_v(0)%t(nzb_wall:nzt_wall+1, &7134 1:surf_usm_v(0)%ns) )7135 READ ( 13 ) tmp_green_v(0)%t7136 ENDIF7137 CALL surface_restore_elements( &7138 t_green_v(0)%t, tmp_green_v(0)%t, &7139 surf_usm_v(0)%start_index, &7140 start_index_on_file, &7141 end_index_on_file, &7142 nxlc, nysc, &7143 nxlf, nxrf, nysf, nynf, &7144 nys_on_file, nyn_on_file, &7145 nxl_on_file,nxr_on_file )7146 #else7147 6622 IF ( k == 1 ) THEN 7148 6623 IF ( .NOT. ALLOCATED( t_green_v_1(0)%t ) ) & … … 7160 6635 nys_on_file, nyn_on_file, & 7161 6636 nxl_on_file,nxr_on_file ) 7162 #endif 6637 7163 6638 CASE ( 't_green_v(1)' ) 7164 #if defined( __nopointer )7165 IF ( k == 1 ) THEN7166 IF ( .NOT. ALLOCATED( t_green_v(1)%t ) ) &7167 ALLOCATE( t_green_v(1)%t(nzb_wall:nzt_wall+1, &7168 1:surf_usm_v(1)%ns) )7169 READ ( 13 ) tmp_green_v(1)%t7170 ENDIF7171 CALL surface_restore_elements( &7172 t_green_v(1)%t, tmp_green_v(1)%t, &7173 surf_usm_v(1)%start_index, &7174 start_index_on_file, &7175 end_index_on_file , &7176 nxlc, nysc, &7177 nxlf, nxrf, nysf, nynf, &7178 nys_on_file, nyn_on_file, &7179 nxl_on_file,nxr_on_file )7180 #else7181 6639 IF ( k == 1 ) THEN 7182 6640 IF ( .NOT. ALLOCATED( t_green_v_1(1)%t ) ) & … … 7194 6652 nys_on_file, nyn_on_file, & 7195 6653 nxl_on_file,nxr_on_file ) 7196 #endif 6654 7197 6655 CASE ( 't_green_v(2)' ) 7198 #if defined( __nopointer )7199 IF ( k == 1 ) THEN7200 IF ( .NOT. ALLOCATED( t_green_v(2)%t ) ) &7201 ALLOCATE( t_green_v(2)%t(nzb_wall:nzt_wall+1, &7202 1:surf_usm_v(2)%ns) )7203 READ ( 13 ) tmp_green_v(2)%t7204 ENDIF7205 CALL surface_restore_elements( &7206 t_green_v(2)%t, tmp_green_v(2)%t, &7207 surf_usm_v(2)%start_index, &7208 start_index_on_file, &7209 end_index_on_file, &7210 nxlc, nysc, &7211 nxlf, nxrf, nysf, nynf, &7212 nys_on_file, nyn_on_file, &7213 nxl_on_file,nxr_on_file )7214 #else7215 6656 IF ( k == 1 ) THEN 7216 6657 IF ( .NOT. ALLOCATED( t_green_v_1(2)%t ) ) & … … 7228 6669 nys_on_file, nyn_on_file, & 7229 6670 nxl_on_file,nxr_on_file ) 7230 #endif 6671 7231 6672 CASE ( 't_green_v(3)' ) 7232 #if defined( __nopointer )7233 IF ( k == 1 ) THEN7234 IF ( .NOT. ALLOCATED( t_green_v(3)%t ) ) &7235 ALLOCATE( t_green_v(3)%t(nzb_wall:nzt_wall+1, &7236 1:surf_usm_v(3)%ns) )7237 READ ( 13 ) tmp_green_v(3)%t7238 ENDIF7239 CALL surface_restore_elements( &7240 t_green_v(3)%t, tmp_green_v(3)%t, &7241 surf_usm_v(3)%start_index, &7242 start_index_on_file, &7243 end_index_on_file, &7244 nxlc, nysc, &7245 nxlf, nxrf, nysf, nynf, &7246 nys_on_file, nyn_on_file, &7247 nxl_on_file,nxr_on_file )7248 #else7249 6673 IF ( k == 1 ) THEN 7250 6674 IF ( .NOT. ALLOCATED( t_green_v_1(3)%t ) ) & … … 7262 6686 nys_on_file, nyn_on_file, & 7263 6687 nxl_on_file,nxr_on_file ) 7264 #endif 6688 7265 6689 CASE ( 't_window_h' ) 7266 #if defined( __nopointer )7267 IF ( k == 1 ) THEN7268 IF ( .NOT. ALLOCATED( t_window_h ) ) &7269 ALLOCATE( t_window_h(nzb_wall:nzt_wall+1, &7270 1:surf_usm_h%ns) )7271 READ ( 13 ) tmp_window_h7272 ENDIF7273 CALL surface_restore_elements( &7274 t_window_h, tmp_window_h, &7275 surf_usm_h%start_index, &7276 start_index_on_file, &7277 end_index_on_file, &7278 nxlc, nysc, &7279 nxlf, nxrf, nysf, nynf, &7280 nys_on_file, nyn_on_file, &7281 nxl_on_file,nxr_on_file )7282 #else7283 6690 IF ( k == 1 ) THEN 7284 6691 IF ( .NOT. ALLOCATED( t_window_h_1 ) ) & … … 7296 6703 nys_on_file, nyn_on_file, & 7297 6704 nxl_on_file, nxr_on_file ) 7298 #endif 6705 7299 6706 CASE ( 't_window_v(0)' ) 7300 #if defined( __nopointer )7301 IF ( k == 1 ) THEN7302 IF ( .NOT. ALLOCATED( t_window_v(0)%t ) ) &7303 ALLOCATE( t_window_v(0)%t(nzb_wall:nzt_wall+1, &7304 1:surf_usm_v(0)%ns) )7305 READ ( 13 ) tmp_window_v(0)%t7306 ENDIF7307 CALL surface_restore_elements( &7308 t_window_v(0)%t, tmp_window_v(0)%t, &7309 surf_usm_v(0)%start_index, &7310 start_index_on_file, &7311 end_index_on_file, &7312 nxlc, nysc, &7313 nxlf, nxrf, nysf, nynf, &7314 nys_on_file, nyn_on_file, &7315 nxl_on_file, nxr_on_file )7316 #else7317 6707 IF ( k == 1 ) THEN 7318 6708 IF ( .NOT. ALLOCATED( t_window_v_1(0)%t ) ) & … … 7331 6721 nys_on_file, nyn_on_file, & 7332 6722 nxl_on_file,nxr_on_file ) 7333 #endif 6723 7334 6724 CASE ( 't_window_v(1)' ) 7335 #if defined( __nopointer )7336 IF ( k == 1 ) THEN7337 IF ( .NOT. ALLOCATED( t_window_v(1)%t ) ) &7338 ALLOCATE( t_window_v(1)%t(nzb_wall:nzt_wall+1, &7339 1:surf_usm_v(1)%ns) )7340 READ ( 13 ) tmp_window_v(1)%t7341 ENDIF7342 CALL surface_restore_elements( &7343 t_window_v(1)%t, tmp_window_v(1)%t, &7344 surf_usm_v(1)%start_index, &7345 start_index_on_file, &7346 end_index_on_file , &7347 nxlc, nysc, &7348 nxlf, nxrf, nysf, nynf, &7349 nys_on_file, nyn_on_file, &7350 nxl_on_file, nxr_on_file )7351 #else7352 6725 IF ( k == 1 ) THEN 7353 6726 IF ( .NOT. ALLOCATED( t_window_v_1(1)%t ) ) & … … 7366 6739 nys_on_file, nyn_on_file, & 7367 6740 nxl_on_file,nxr_on_file ) 7368 #endif 6741 7369 6742 CASE ( 't_window_v(2)' ) 7370 #if defined( __nopointer )7371 IF ( k == 1 ) THEN7372 IF ( .NOT. ALLOCATED( t_window_v(2)%t ) ) &7373 ALLOCATE( t_window_v(2)%t(nzb_wall:nzt_wall+1, &7374 1:surf_usm_v(2)%ns) )7375 READ ( 13 ) tmp_window_v(2)%t7376 ENDIF7377 CALL surface_restore_elements( &7378 t_window_v(2)%t, tmp_window_v(2)%t, &7379 surf_usm_v(2)%start_index, &7380 start_index_on_file, &7381 end_index_on_file, &7382 nxlc, nysc, &7383 nxlf, nxrf, nysf, nynf, &7384 nys_on_file, nyn_on_file, &7385 nxl_on_file,nxr_on_file )7386 #else7387 6743 IF ( k == 1 ) THEN 7388 6744 IF ( .NOT. ALLOCATED( t_window_v_1(2)%t ) ) & … … 7401 6757 nys_on_file, nyn_on_file, & 7402 6758 nxl_on_file,nxr_on_file ) 7403 #endif 6759 7404 6760 CASE ( 't_window_v(3)' ) 7405 #if defined( __nopointer )7406 IF ( k == 1 ) THEN7407 IF ( .NOT. ALLOCATED( t_window_v(3)%t ) ) &7408 ALLOCATE( t_window_v(3)%t(nzb_wall:nzt_wall+1, &7409 1:surf_usm_v(3)%ns) )7410 READ ( 13 ) tmp_window_v(3)%t7411 ENDIF7412 CALL surface_restore_elements( &7413 t_window_v(3)%t, tmp_window_v(3)%t, &7414 surf_usm_v(3)%start_index, &7415 start_index_on_file, &7416 end_index_on_file, &7417 nxlc, nysc, &7418 nxlf, nxrf, nysf, nynf, &7419 nys_on_file, nyn_on_file, &7420 nxl_on_file,nxr_on_file )7421 #else7422 6761 IF ( k == 1 ) THEN 7423 6762 IF ( .NOT. ALLOCATED( t_window_v_1(3)%t ) ) & … … 7435 6774 nys_on_file, nyn_on_file, & 7436 6775 nxl_on_file,nxr_on_file ) 7437 #endif 6776 7438 6777 CASE DEFAULT 7439 6778 … … 7632 6971 7633 6972 IF ( usm_par(5,jw,iw) == 0 ) THEN 7634 #if ! defined( __nopointer ) 6973 7635 6974 IF ( zu(kw) >= roof_height_limit ) THEN 7636 6975 surf_usm_h%isroof_surf(m) = .TRUE. … … 7640 6979 surf_usm_h%surface_types(m) = land_category !< default category for land surface 7641 6980 ENDIF 7642 #endif 6981 7643 6982 surf_usm_h%albedo(:,m) = -1.0_wp 7644 6983 surf_usm_h%thickness_wall(m) = -1.0_wp … … 8188 7527 lambda_surface_green = surf_usm_h%lambda_surf_green(m) 8189 7528 ENDIF 8190 #if ! defined( __nopointer ) 7529 8191 7530 ! pt1 = pt(k,j,i) 8192 7531 IF ( humidity ) THEN … … 8199 7538 rho_cp = c_p * hyp(k) / ( r_d * surf_usm_h%pt1(m) * exner(k) ) 8200 7539 8201 if (surf_usm_h%frac(ind_pav_green,m).gt.0.0_wp) then 8202 ! 8203 !-- Calculate frequently used parameters8204 rho_lv = rho_cp / c_p * l_v8205 drho_l_lv = 1.0_wp / (rho_l * l_v)8206 endif 8207 #endif 7540 IF ( surf_usm_h%frac(ind_pav_green,m) > 0.0_wp ) THEN 7541 ! 7542 !-- Calculate frequently used parameters 7543 rho_lv = rho_cp / c_p * l_v 7544 drho_l_lv = 1.0_wp / (rho_l * l_v) 7545 ENDIF 7546 8208 7547 ! 8209 7548 !-- Calculate aerodyamic resistance. … … 8637 7976 lambda_surface_green = surf_usm_v(l)%lambda_surf_green(m) 8638 7977 8639 #if ! defined( __nopointer )8640 7978 ! pt1 = pt(k,j,i) 8641 7979 IF ( humidity ) THEN … … 8648 7986 rho_cp = c_p * hyp(k) / ( r_d * surf_usm_v(l)%pt1(m) * exner(k) ) 8649 7987 8650 if (surf_usm_v(l)%frac(1,m).gt.0.0_wp) then 8651 ! 8652 !-- Calculate frequently used parameters 8653 rho_lv = rho_cp / c_p * l_v 8654 drho_l_lv = 1.0_wp / (rho_l * l_v) 8655 endif 8656 #endif 7988 IF (surf_usm_v(l)%frac(1,m) > 0.0_wp ) THEN 7989 ! 7990 !-- Calculate frequently used parameters 7991 rho_lv = rho_cp / c_p * l_v 7992 drho_l_lv = 1.0_wp / (rho_l * l_v) 7993 ENDIF 8657 7994 8658 7995 !-- Calculation of r_a for vertical surfaces … … 9053 8390 !-- pt and shf are defined on nxlg:nxrg,nysg:nyng 9054 8391 !-- get the borders from neighbours 9055 #if ! defined( __nopointer )9056 8392 CALL exchange_horiz( pt, nbgp ) 9057 #endif9058 8393 9059 8394 !-- calculation of force_radiation_call: … … 9188 8523 9189 8524 INTEGER(iwp), INTENT(IN) :: mod_count 8525 9190 8526 9191 #if defined( __nopointer )9192 t_surf_wall_h = t_surf_wall_h_p9193 t_wall_h = t_wall_h_p9194 t_surf_wall_v = t_surf_wall_v_p9195 t_wall_v = t_wall_v_p9196 t_surf_window_h = t_surf_window_h_p9197 t_window_h = t_window_h_p9198 t_surf_window_v = t_surf_window_v_p9199 t_window_v = t_window_v_p9200 t_surf_green_h = t_surf_green_h_p9201 t_surf_green_v = t_surf_green_v_p9202 t_green_h = t_green_h_p9203 t_green_v = t_green_v_p9204 #else9205 8527 SELECT CASE ( mod_count ) 8528 9206 8529 CASE ( 0 ) 9207 8530 ! … … 9239 8562 t_green_v => t_green_v_2; t_green_v_p => t_green_v_1 9240 8563 END SELECT 9241 #endif9242 8564 9243 8565 END SUBROUTINE usm_swap_timelevel
Note: See TracChangeset
for help on using the changeset viewer.