source: palm/trunk/SOURCE/package_parin.f90 @ 139

Last change on this file since 139 was 139, checked in by raasch, 14 years ago

New:
---

Plant canopy model of Watanabe (2004,BLM 112,307-341) added.
It can be switched on by the inipar parameter plant_canopy.
The inipar parameter canopy_mode can be used to prescribe a
plant canopy type. The default case is a homogeneous plant
canopy. Heterogeneous distributions of the leaf area
density and the canopy drag coefficient can be defined in the
new routine user_init_plant_canopy (user_interface).
The inipar parameters lad_surface, lad_vertical_gradient and
lad_vertical_gradient_level can be used in order to
prescribe the vertical profile of leaf area density. The
inipar parameter drag_coefficient determines the canopy
drag coefficient.
Finally, the inipar parameter pch_index determines the
index of the upper boundary of the plant canopy.

Allow new case bc_uv_t = 'dirichlet_0' for channel flow.

For unknown variables (CASE DEFAULT) call new subroutine user_data_output_dvrp

Pressure boundary conditions for vertical walls added to the multigrid solver.
They are applied using new wall flag arrays (wall_flags_..) which are defined
for each grid level. New argument gls added to routine user_init_grid
(user_interface).

Frequence of sorting particles can be controlled with new particles_par
parameter dt_sort_particles. Sorting is moved from the SGS timestep loop in
advec_particles after the end of this loop.

advec_particles, check_parameters, data_output_dvrp, header, init_3d_model, init_grid, init_particles, init_pegrid, modules, package_parin, parin, plant_canopy_model, read_var_list, read_3d_binary, user_interface, write_var_list, write_3d_binary

Changed:


Redefine initial nzb_local as the actual total size of topography (later the
extent of topography in nzb_local is reduced by 1dx at the E topography walls
and by 1dy at the N topography walls to form the basis for nzb_s_inner);
for consistency redefine 'single_building' case.

Vertical profiles now based on nzb_s_inner; they are divided by
ngp_2dh_s_inner (scalars, procucts of scalars) and ngp_2dh (staggered velocity
components and their products, procucts of scalars and velocity components),
respectively.

Allow two instead of one digit to specify isosurface and slicer variables.

Status of 3D-volume NetCDF data file only depends on switch netcdf_64bit_3d (check_open)

prognostic_equations include the respective wall_*flux in the parameter list of
calls of diffusion_s. Same as before, only the values of wall_heatflux(0:4)
can be assigned. At present, wall_humidityflux, wall_qflux, wall_salinityflux,
and wall_scalarflux are kept zero. diffusion_s uses the respective wall_*flux
instead of wall_heatflux. This update serves two purposes:

  • it avoids errors in calculations with humidity/scalar/salinity and prescribed

non-zero wall_heatflux,

  • it prepares PALM for a possible assignment of wall fluxes of

humidity/scalar/salinity in a future release.

buoyancy, check_open, data_output_dvrp, diffusion_s, diffusivities, flow_statistics, header, init_3d_model, init_dvrp, init_grid, modules, prognostic_equations

Errors:


Bugfix: summation of sums_l_l in diffusivities.

Several bugfixes in the ocean part: Initial density rho is calculated
(init_ocean). Error in initializing u_init and v_init removed
(check_parameters). Calculation of density flux now starts from
nzb+1 (production_e).

Bugfix: pleft/pright changed to pnorth/psouth in sendrecv of particle tail
numbers along y, small bugfixes in the SGS part (advec_particles)

Bugfix: model_string needed a default value (combine_plot_fields)

Bugfix: wavenumber calculation for even nx in routines maketri (poisfft)

Bugfix: assignment of fluxes at walls

Bugfix: absolute value of f must be used when calculating the Blackadar mixing length (init_1d_model)

advec_particles, check_parameters, combine_plot_fields, diffusion_s, diffusivities, init_ocean, init_1d_model, poisfft, production_e

  • Property svn:keywords set to Id
File size: 4.5 KB
Line 
1 SUBROUTINE package_parin
2
3!------------------------------------------------------------------------------!
4! Actual revisions:
5! -----------------
6!
7!
8! Former revisions:
9! -----------------
10! $Id: package_parin.f90 139 2007-11-29 09:37:41Z raasch $
11!
12! 116 2007-10-11 02:30:27Z raasch
13! +dt_sort_particles in package_parin
14!
15! 60 2007-03-11 11:50:04Z raasch
16! Particles-paclage is now part of the default code
17!
18! RCS Log replace by Id keyword, revision history cleaned up
19!
20! Revision 1.18  2006/08/04 14:52:23  raasch
21! +dt_dopts, dt_min_part, end_time_prel, particles_per_point,
22! use_sgs_for_particles in particles_par
23!
24! Revision 1.1  2000/12/28 13:21:57  raasch
25! Initial revision
26!
27!
28! Description:
29! ------------
30! This subroutine reads from the NAMELIST file variables controling model
31! software packages which are used optionally in the run.
32!------------------------------------------------------------------------------!
33
34    USE control_parameters
35    USE dvrp_variables
36    USE particle_attributes
37    USE spectrum
38
39    IMPLICIT NONE
40
41    CHARACTER (LEN=80) ::  zeile
42
43    NAMELIST /dvrp_graphics_par/  dt_dvrp, dvrp_directory, dvrp_file,          &
44                                  dvrp_host, dvrp_output, dvrp_password,       &
45                                  dvrp_username, mode_dvrp,                    &
46                                  slicer_range_limits_dvrp, superelevation,    &
47                                  superelevation_x, superelevation_y, threshold
48    NAMELIST /particles_par/      bc_par_b, bc_par_lr, bc_par_ns, bc_par_t,    &
49                                  density_ratio, radius, dt_dopts,             &
50                                  dt_min_part, dt_prel, dt_sort_particles,     &
51                                  dt_write_particle_data, dvrp_psize,          &
52                                  end_time_prel, initial_weighting_factor,     &
53                                  maximum_number_of_particles,                 &
54                                  maximum_number_of_tailpoints,                &
55                                  maximum_tailpoint_age,                       &
56                                  minimum_tailpoint_distance,                  &
57                                  number_of_particle_groups,                   &
58                                  particles_per_point,                         &
59                                  particle_advection_start,                    &
60                                  particle_maximum_age, pdx, pdy, pdz, psb,    &
61                                  psl, psn, psr, pss, pst,                     &
62                                  random_start_position,                       &
63                                  read_particles_from_restartfile,             &
64                                  skip_particles_for_tail, use_particle_tails, &
65                                  use_sgs_for_particles,                       &
66                                  vertical_particle_advection,                 &
67                                  write_particle_statistics
68    NAMELIST /spectra_par/        averaging_interval_sp, comp_spectra_level,   &
69                                  data_output_sp, dt_dosp, plot_spectra_level, &
70                                  skip_time_dosp, spectra_direction
71
72!
73!-- Position the namelist-file at the beginning (it was already opened in
74!-- parin), search for the namelist-group of the package and position the
75!-- file at this line. Do the same for each optionally used package.
76    zeile = ' '
77
78#if defined( __dvrp_graphics )
79    REWIND ( 11 )
80    zeile = ' '
81    DO   WHILE ( INDEX( zeile, '&dvrp_graphics_par' ) == 0 )
82       READ ( 11, '(A)', END=10 )  zeile
83    ENDDO
84    BACKSPACE ( 11 )
85
86!
87!-- Read user-defined namelist
88    READ ( 11, dvrp_graphics_par )
89
90 10 CONTINUE
91#endif
92
93!
94!-- Try to find particles package
95    REWIND ( 11 )
96    zeile = ' '
97    DO   WHILE ( INDEX( zeile, '&particles_par' ) == 0 )
98       READ ( 11, '(A)', END=20 )  zeile
99    ENDDO
100    BACKSPACE ( 11 )
101
102!
103!-- Read user-defined namelist
104    READ ( 11, particles_par )
105
106!
107!-- Set flag that indicates that particles are switched on
108    particle_advection = .TRUE.
109
110 20 CONTINUE
111
112
113#if defined( __spectra )
114    REWIND ( 11 )
115    zeile = ' '
116    DO   WHILE ( INDEX( zeile, '&spectra_par' ) == 0 )
117       READ ( 11, '(A)', END=30 )  zeile
118    ENDDO
119    BACKSPACE ( 11 )
120
121!
122!-- Read user-defined namelist
123    READ ( 11, spectra_par )
124
125!
126!-- Default setting of dt_dosp here (instead of check_parameters), because its
127!-- current value is needed in init_pegrid
128    IF ( dt_dosp == 9999999.9 )  dt_dosp = dt_data_output
129
130 30 CONTINUE
131#endif
132
133 END SUBROUTINE package_parin
Note: See TracBrowser for help on using the repository browser.