Ignore:
Timestamp:
Mar 20, 2014 8:40:49 AM (10 years ago)
Author:
raasch
Message:

ONLY-attribute added to USE-statements,
kind-parameters added to all INTEGER and REAL declaration statements,
kinds are defined in new module kinds,
old module precision_kind is removed,
revision history before 2012 removed,
comment fields (!:) to be used for variable explanations added to all variable declaration statements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/init_grid.f90

    r1310 r1320  
    2020! Current revisions:
    2121! -----------------
    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
    2329!
    2430! Former revisions:
     
    8187! New cpp directive "__check" implemented which is used by check_namelist_files
    8288!
    83 ! 759 2011-09-15 13:58:31Z raasch
    84 ! Splitting of parallel I/O in blocks of PEs
    85 !
    86 ! 722 2011-04-11 06:21:09Z raasch
    87 ! Bugfix: bc_lr/ns_cyc replaced by bc_lr/ns, because variables are not yet set
    88 !         here
    89 !
    90 ! 709 2011-03-30 09:31:40Z raasch
    91 ! formatting adjustments
    92 !
    93 ! 707 2011-03-29 11:39:40Z raasch
    94 ! bc_lr/ns replaced by bc_lr/ns_cyc
    95 !
    96 ! 667 2010-12-23 12:06:00Z suehring/gryschka
    97 ! 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 these
    99 ! parameters. Call of exchange_horiz are modified.
    100 ! In case of dirichlet bounday condition at the bottom zu(0)=0.0
    101 ! 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 raasch
    105 ! Bugfix: default setting of nzb_local for flat topography
    106 !
    107 ! 274 2009-03-26 15:11:21Z heinze
    108 ! Output of messages replaced by message handling routine.
    109 ! new topography case 'single_street_canyon'
    110 !
    111 ! 217 2008-12-09 18:00:48Z letzel
    112 ! +topography_grid_convention
    113 !
    114 ! 134 2007-11-21 07:28:38Z letzel
    115 ! Redefine initial nzb_local as the actual total size of topography (later the
    116 ! extent of topography in nzb_local is reduced by 1dx at the E topography walls
    117 ! 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 arrays
    120 !
    121 ! 94 2007-06-01 15:25:22Z raasch
    122 ! Grid definition for ocean version
    123 !
    124 ! 75 2007-03-22 09:54:05Z raasch
    125 ! storage of topography height arrays zu_s_inner and zw_s_inner,
    126 ! 2nd+3rd argument removed from exchange horiz
    127 !
    128 ! 19 2007-02-23 04:53:48Z raasch
    129 ! Setting of nzt_diff
    130 !
    131 ! RCS Log replace by Id keyword, revision history cleaned up
    132 !
    133 ! Revision 1.17  2006/08/22 14:00:05  raasch
    134 ! +dz_max to limit vertical stretching,
    135 ! bugfix in index array initialization for line- or point-like topography
    136 ! structures
    137 !
    13889! Revision 1.1  1997/08/11 06:17:45  raasch
    13990! Initial revision (Testversion)
     
    14596!------------------------------------------------------------------------------!
    14697
    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   
    151134    USE pegrid
    152135
    153136    IMPLICIT NONE
    154137
    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  !:
    170187
    171188   
Note: See TracChangeset for help on using the changeset viewer.