Changeset 1320 for palm/trunk/SOURCE/init_grid.f90
- Timestamp:
- Mar 20, 2014 8:40:49 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/init_grid.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: … … 81 87 ! New cpp directive "__check" implemented which is used by check_namelist_files 82 88 ! 83 ! 759 2011-09-15 13:58:31Z raasch84 ! Splitting of parallel I/O in blocks of PEs85 !86 ! 722 2011-04-11 06:21:09Z raasch87 ! Bugfix: bc_lr/ns_cyc replaced by bc_lr/ns, because variables are not yet set88 ! here89 !90 ! 709 2011-03-30 09:31:40Z raasch91 ! formatting adjustments92 !93 ! 707 2011-03-29 11:39:40Z raasch94 ! bc_lr/ns replaced by bc_lr/ns_cyc95 !96 ! 667 2010-12-23 12:06:00Z suehring/gryschka97 ! Definition of new array bounds nxlg, nxrg, nysg, nyng on each PE.98 ! Furthermore the allocation of arrays and steering of loops is done with these99 ! parameters. Call of exchange_horiz are modified.100 ! In case of dirichlet bounday condition at the bottom zu(0)=0.0101 ! dzu_mg has to be set explicitly for a equally spaced grid near bottom.102 ! ddzu_pres added to use a equally spaced grid near bottom.103 !104 ! 555 2010-09-07 07:32:53Z raasch105 ! Bugfix: default setting of nzb_local for flat topography106 !107 ! 274 2009-03-26 15:11:21Z heinze108 ! Output of messages replaced by message handling routine.109 ! new topography case 'single_street_canyon'110 !111 ! 217 2008-12-09 18:00:48Z letzel112 ! +topography_grid_convention113 !114 ! 134 2007-11-21 07:28:38Z letzel115 ! Redefine initial nzb_local as the actual total size of topography (later the116 ! extent of topography in nzb_local is reduced by 1dx at the E topography walls117 ! and by 1dy at the N topography walls to form the basis for nzb_s_inner);118 ! for consistency redefine 'single_building' case.119 ! Calculation of wall flag arrays120 !121 ! 94 2007-06-01 15:25:22Z raasch122 ! Grid definition for ocean version123 !124 ! 75 2007-03-22 09:54:05Z raasch125 ! storage of topography height arrays zu_s_inner and zw_s_inner,126 ! 2nd+3rd argument removed from exchange horiz127 !128 ! 19 2007-02-23 04:53:48Z raasch129 ! Setting of nzt_diff130 !131 ! RCS Log replace by Id keyword, revision history cleaned up132 !133 ! Revision 1.17 2006/08/22 14:00:05 raasch134 ! +dz_max to limit vertical stretching,135 ! bugfix in index array initialization for line- or point-like topography136 ! structures137 !138 89 ! Revision 1.1 1997/08/11 06:17:45 raasch 139 90 ! Initial revision (Testversion) … … 145 96 !------------------------------------------------------------------------------! 146 97 147 USE arrays_3d 148 USE control_parameters 149 USE grid_variables 150 USE indices 98 USE arrays_3d, & 99 ONLY: dd2zu, ddzu, ddzu_pres, ddzw, dzu, dzu_mg, dzw, dzw_mg, f1_mg, & 100 f2_mg, f3_mg, l_grid, l_wall, zu, zw 101 102 USE control_parameters, & 103 ONLY: bc_lr, bc_ns, building_height, building_length_x, & 104 building_length_y, building_wall_left, building_wall_south, & 105 canyon_height, canyon_wall_left, canyon_wall_south, & 106 canyon_width_x, canyon_width_y, coupling_char, dp_level_ind_b, & 107 dz, dz_max, dz_stretch_factor, dz_stretch_level, & 108 dz_stretch_level_index, ibc_uv_b, io_blocks, io_group, & 109 inflow_l, inflow_n, inflow_r, inflow_s, masking_method, & 110 maximum_grid_level, message_string, momentum_advec, ocean, & 111 outflow_l, outflow_n, outflow_r, outflow_s, prandtl_layer, & 112 psolver, scalar_advec, topography, topography_grid_convention, & 113 use_surface_fluxes, use_top_fluxes, wall_adjustment_factor 114 115 USE grid_variables, & 116 ONLY: ddx, ddx2, ddx2_mg, ddy, ddy2, ddy2_mg, dx, dx2, dy, dy2, fwxm, & 117 fwxp, fwym, fwyp, fxm, fxp, fym, fyp, wall_e_x, wall_e_y, & 118 wall_u, wall_v, wall_w_x, wall_w_y, zu_s_inner, zw_w_inner 119 120 USE indices, & 121 ONLY: flags, nbgp, nx, nxl, nxlg, nxlu, nxl_mg, nxr, nxrg, nxr_mg, & 122 ny, nyn, nyng, nyn_mg, nys, nysv, nys_mg, nysg, nz, nzb, & 123 nzb_2d, nzb_diff, nzb_diff_s_inner, nzb_diff_s_outer, & 124 nzb_diff_u, nzb_diff_v, nzb_max, nzb_s_inner, nzb_s_outer, & 125 nzb_u_inner, nzb_u_outer, nzb_v_inner, nzb_v_outer, & 126 nzb_w_inner, nzb_w_outer, nzt, nzt_diff, nzt_mg, rflags_invers, & 127 rflags_s_inner, wall_flags_0, wall_flags_00, wall_flags_1, & 128 wall_flags_10, wall_flags_2, wall_flags_3, wall_flags_4, & 129 wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8, & 130 wall_flags_9 131 132 USE kinds 133 151 134 USE pegrid 152 135 153 136 IMPLICIT NONE 154 137 155 INTEGER :: bh, blx, bly, bxl, bxr, byn, bys, ch, cwx, cwy, cxl, cxr, cyn, & 156 cys, gls, i, ii, inc, j, k, l, nxl_l, nxr_l, nyn_l, nys_l, & 157 nzb_si, nzt_l, vi 158 159 INTEGER, DIMENSION(:), ALLOCATABLE :: vertical_influence 160 161 INTEGER, DIMENSION(:,:), ALLOCATABLE :: corner_nl, corner_nr, corner_sl, & 162 corner_sr, wall_l, wall_n, wall_r,& 163 wall_s, nzb_local, nzb_tmp 164 165 LOGICAL :: flag_set = .FALSE. 166 167 REAL :: dx_l, dy_l, dz_stretched 168 169 REAL, DIMENSION(:,:), ALLOCATABLE :: topo_height 138 INTEGER(iwp) :: bh !: 139 INTEGER(iwp) :: blx !: 140 INTEGER(iwp) :: bly !: 141 INTEGER(iwp) :: bxl !: 142 INTEGER(iwp) :: bxr !: 143 INTEGER(iwp) :: byn !: 144 INTEGER(iwp) :: bys !: 145 INTEGER(iwp) :: ch !: 146 INTEGER(iwp) :: cwx !: 147 INTEGER(iwp) :: cwy !: 148 INTEGER(iwp) :: cxl !: 149 INTEGER(iwp) :: cxr !: 150 INTEGER(iwp) :: cyn !: 151 INTEGER(iwp) :: cys !: 152 INTEGER(iwp) :: gls !: 153 INTEGER(iwp) :: i !: 154 INTEGER(iwp) :: ii !: 155 INTEGER(iwp) :: inc !: 156 INTEGER(iwp) :: j !: 157 INTEGER(iwp) :: k !: 158 INTEGER(iwp) :: l !: 159 INTEGER(iwp) :: nxl_l !: 160 INTEGER(iwp) :: nxr_l !: 161 INTEGER(iwp) :: nyn_l !: 162 INTEGER(iwp) :: nys_l !: 163 INTEGER(iwp) :: nzb_si !: 164 INTEGER(iwp) :: nzt_l !: 165 INTEGER(iwp) :: vi !: 166 167 INTEGER(iwp), DIMENSION(:), ALLOCATABLE :: vertical_influence !: 168 169 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: corner_nl !: 170 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: corner_nr !: 171 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: corner_sl !: 172 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: corner_sr !: 173 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: wall_l !: 174 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: wall_n !: 175 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: wall_r !: 176 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: wall_s !: 177 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: nzb_local !: 178 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: nzb_tmp !: 179 180 LOGICAL :: flag_set = .FALSE. !: 181 182 REAL(wp) :: dx_l !: 183 REAL(wp) :: dy_l !: 184 REAL(wp) :: dz_stretched !: 185 186 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: topo_height !: 170 187 171 188
Note: See TracChangeset
for help on using the changeset viewer.