source: palm/tags/release-3.2a/SOURCE/parin.f90 @ 4418

Last change on this file since 4418 was 83, checked in by raasch, 17 years ago

New:
---

Changed:


PALM can be generally installed on any kind of Linux-, IBM-AIX-, or NEC-SX-system by adding appropriate settings to the configuration file.

Scripts are also running under the public domain ksh.

All system relevant compile and link options as well as the host identifier (local_host) are specified in the configuration file.

Filetransfer by ftp removed (options -f removed from mrun and mbuild).

Call of (system-)FLUSH routine moved to new routine local_flush.

return_addres and return_username are read from ENVPAR-NAMELIST-file instead of using local_getenv.

Preprocessor strings for different linux clusters changed to "lc", some preprocessor directives renamed (new: intel_openmp_bug), preprocessor directives for old systems removed

advec_particles, check_open, cpu_log, cpu_statistics, data_output_dvrp, flow_statistics, header, init_dvrp, init_particles, init_1d_model, init_dvrp, init_pegrid, local_getenv, local_system, local_tremain, local_tremain_ini, modules, palm, parin, run_control

new:
local_flush

mbuild, mrun

Errors:


  • Property svn:keywords set to Id
File size: 10.4 KB
Line 
1 SUBROUTINE parin
2
3!------------------------------------------------------------------------------!
4! Actual revisions:
5! -----------------
6!
7!
8! Former revisions:
9! -----------------
10! $Id: parin.f90 83 2007-04-19 16:27:07Z raasch $
11!
12! 82 2007-04-16 15:40:52Z raasch
13! +return_addres, return_username in envpar
14!
15! 75 2007-03-22 09:54:05Z raasch
16! +dt_max, netcdf_64bit_3d, precipitation_amount_interval in d3par,
17! +loop_optimization, pt_reference in inipar, -data_output_ts,
18! moisture renamed humidity
19!
20! 20 2007-02-26 00:12:32Z raasch
21! +top_heatflux, use_top_fluxes in inipar
22!
23! -netcdf_64bit_3d
24!
25! 3 2007-02-13 11:30:58Z raasch
26! +netcdf_64bit_3d in d3par,
27! RCS Log replace by Id keyword, revision history cleaned up
28!
29! Revision 1.57  2007/02/11 13:11:22  raasch
30! Values of environment variables are now read from file ENVPAR instead of
31! reading them with a system call, + NAMELIST envpar
32!
33! Revision 1.1  1997/07/24 11:22:50  raasch
34! Initial revision
35!
36!
37! Description:
38! ------------
39! This subroutine reads variables controling the run from the NAMELIST files
40!------------------------------------------------------------------------------!
41
42    USE arrays_3d
43    USE averaging
44    USE control_parameters
45    USE grid_variables
46    USE indices
47    USE model_1d
48    USE pegrid
49    USE profil_parameter
50    USE statistics
51
52    IMPLICIT NONE
53
54    INTEGER ::  idum
55
56
57    NAMELIST /inipar/  adjust_mixing_length, alpha_surface, bc_e_b, bc_lr, &
58                       bc_ns, bc_p_b, bc_p_t, bc_pt_b, bc_pt_t, bc_q_b, &
59                       bc_q_t,bc_s_b, bc_s_t, bc_uv_b, bc_uv_t, &
60                       building_height, building_length_x, building_length_y, &
61                       building_wall_left, building_wall_south, &
62                       cloud_droplets, cloud_physics, conserve_volume_flow, &
63                       cut_spline_overshoot, damp_level_1d, dissipation_1d, &
64                       dt, dt_pr_1d, dt_run_control_1d, dx, dy, dz, dz_max, &
65                       dz_stretch_factor, dz_stretch_level, e_min, &
66                       end_time_1d, fft_method, galilei_transformation, &
67                       grid_matching, humidity, inflow_disturbance_begin, &
68                       inflow_disturbance_end, initializing_actions, &
69                       km_constant, km_damp_max, long_filter_factor, &
70                       loop_optimization, mixing_length_1d, &
71                       momentum_advec, netcdf_precision, npex, npey, nsor_ini, &
72                       nx, ny, nz, omega, outflow_damping_width, &
73                       overshoot_limit_e, &
74                       overshoot_limit_pt, overshoot_limit_u, &
75                       overshoot_limit_v, overshoot_limit_w, passive_scalar, &
76                       phi, prandtl_layer, precipitation, pt_reference, &
77                       pt_surface, pt_surface_initial_change, &
78                       pt_vertical_gradient, pt_vertical_gradient_level, &
79                       q_surface, q_surface_initial_change, &
80                       q_vertical_gradient, q_vertical_gradient_level, &
81                       radiation, random_generator, random_heatflux, rif_max, &
82                       rif_min, roughness_length, scalar_advec, &
83                       statistic_regions, surface_heatflux, surface_pressure, &
84                       surface_scalarflux, surface_waterflux, s_surface, &
85                       s_surface_initial_change, s_vertical_gradient, &
86                       s_vertical_gradient_level, top_heatflux, &
87                       timestep_scheme, topography, ug_surface, &
88                       ug_vertical_gradient, ug_vertical_gradient_level, &
89                       ups_limit_e, ups_limit_pt, ups_limit_u, ups_limit_v, &
90                       ups_limit_w, use_surface_fluxes, use_top_fluxes, &
91                       use_ug_for_galilei_tr, use_upstream_for_tke, &
92                       vg_surface, vg_vertical_gradient, &
93                       vg_vertical_gradient_level, wall_adjustment, &
94                       wall_heatflux
95
96
97    NAMELIST /d3par/   averaging_interval,  averaging_interval_pr, &
98                       call_psolver_at_all_substeps, cfl_factor, &
99                       create_disturbances, cross_normalized_x, &
100                       cross_normalized_y, cross_profiles, cross_ts_uymax, &
101                       cross_ts_uymin, cross_xtext, cycle_mg, data_output, &
102                       data_output_format, data_output_pr, &
103                       data_output_2d_on_each_pe, disturbance_amplitude, &
104                       disturbance_energy_limit, disturbance_level_b, &
105                       disturbance_level_t, do2d_at_begin, do3d_at_begin, &
106                       do3d_compress, do3d_comp_prec, dt, dt_averaging_input, &
107                       dt_averaging_input_pr, dt_data_output, &
108                       dt_data_output_av, dt_disturb, dt_dopr, &
109                       dt_dopr_listing, dt_dots, dt_do2d_xy, dt_do2d_xz, &
110                       dt_do2d_yz, dt_do3d, dt_max, dt_restart, dt_run_control,&
111                       end_time, force_print_header, mg_cycles, &
112                       mg_switch_to_pe0_level, netcdf_64bit, netcdf_64bit_3d, &
113                       ngsrb, normalizing_region, nsor, nz_do3d, omega_sor, &
114                       prandtl_number, precipitation_amount_interval, &
115                       profile_columns, profile_rows, psolver, &
116                       rayleigh_damping_factor, rayleigh_damping_height, &
117                       residual_limit, restart_time, section_xy, section_xz, &
118                       section_yz, skip_time_data_output, &
119                       skip_time_data_output_av, skip_time_dopr, &
120                       skip_time_dosp, skip_time_do2d_xy, skip_time_do2d_xz, &
121                       skip_time_do2d_yz, skip_time_do3d, &
122                       termination_time_needed, use_prior_plot1d_parameters, &
123                       z_max_do1d, z_max_do1d_normalized, z_max_do2d
124
125
126    NAMELIST /envpar/  host, maximum_cpu_time_allowed, revision, return_addres,&
127                       return_username, run_identifier, tasks_per_node, &
128                       write_binary
129
130
131#if defined( __parallel )
132!
133!-- Preliminary determination of processor-id which is needed here to open the
134!-- input files belonging to the corresponding processor and to produce
135!-- messages by PE0 only (myid and myid_char are later determined in
136!-- init_pegrid)
137    CALL MPI_COMM_RANK( comm_palm, myid, ierr )
138    WRITE (myid_char,'(''_'',I4.4)')  myid
139!
140!-- Since on IBM machines the process rank may be changed when the final
141!-- communicator is defined, save the preliminary processor-id for opening
142!-- the binary output file for restarts (unit 14), because otherwise
143!-- a mismatch occurs when reading this file in the next job
144    myid_char_14 = myid_char
145#endif
146
147!
148!-- Open the NAMELIST-file which is send with this job
149    CALL check_open( 11 )
150
151!
152!-- Read the control parameters for initialization.
153!-- The namelist "inipar" must be provided in the NAMELIST-file. If this is
154!-- not the case and the file contains - instead of "inipar" - any other
155!-- namelist, a read error is created on t3e and control is transferred
156!-- to the statement with label 10. Therefore, on t3e machines one can not
157!-- distinguish between errors produced by a wrong "inipar" namelist or
158!-- because this namelist is totally missing.
159    READ ( 11, inipar, ERR=10, END=11 )
160    GOTO 12
161 10 IF ( myid == 0 )  THEN
162       PRINT*, '+++ parin: errors in \$inipar'
163       PRINT*, '           or no \$inipar-namelist found (CRAY-machines only)' 
164    ENDIF
165    CALL local_stop
166 11 IF ( myid == 0 )  THEN
167       PRINT*, '+++ parin: no \$inipar-namelist found'
168    ENDIF
169    CALL local_stop
170
171!
172!-- If required, read control parameters from restart file (produced by
173!-- a prior run)
174 12 IF ( TRIM( initializing_actions ) == 'read_restart_data' )  THEN
175
176       CALL read_var_list
177!
178!--    Increment the run count
179       runnr = runnr + 1
180
181    ELSE
182!
183!--    This is not a restart job.
184!--    Check, if the grid point numbers are well defined.
185       IF ( nx <= 0 )  THEN
186          IF ( myid == 0 )  THEN
187             PRINT*, '+++ parin: no value or wrong value given for nx: nx=', nx
188          ENDIF
189          CALL local_stop
190       ENDIF
191       IF ( ny <= 0 )  THEN
192          IF ( myid == 0 )  THEN
193             PRINT*, '+++ parin: no value or wrong value given for ny: ny=', ny
194          ENDIF
195          CALL local_stop
196       ENDIF
197       IF ( nz <= 0 )  THEN
198          IF ( myid == 0 )  THEN
199             PRINT*, '+++ parin: no value or wrong value given for nz: nz=', nz
200          ENDIF
201          CALL local_stop
202       ENDIF
203
204!
205!--    Allocate arrays which will be already initialized in init_pegrid or
206!--    check_parameters. During restart jobs, these arrays will be allocated
207!--    in read_var_list. All other arrays are allocated in init_3d_model.
208       ALLOCATE( ug(0:nz+1), vg(0:nz+1), &
209                 pt_init(0:nz+1), q_init(0:nz+1), u_init(0:nz+1), &
210                 v_init(0:nz+1),                                  &
211                 hom(0:nz+1,2,var_hom,0:statistic_regions) )
212       hom = 0.0
213
214    ENDIF
215
216!
217!-- Definition of names of areas used for computing statistics. They must
218!-- be defined at this place, because they are allowed to be redefined by
219!-- the user in user_parin.
220    region = 'total domain'
221
222!
223!-- Read runtime parameters given by the user for this run (namelist "d3par").
224!-- The namelist "d3par" can be omitted. In that case, default values are
225!-- used for the parameters.
226    READ ( 11, d3par, END=20 )
227
228!
229!-- Read control parameters for optionally used model software packages
230 20 CALL package_parin
231
232!
233!-- Read user-defined variables
234    CALL user_parin
235
236!
237!-- NAMELIST-file is not needed anymore
238    CALL close_file( 11 )
239
240!
241!-- Read values of environment variables (this NAMELIST file is generated by
242!-- mrun)
243    OPEN ( 90, FILE='ENVPAR', STATUS='OLD', FORM='FORMATTED', ERR=30 )
244    READ ( 90, envpar, ERR=31, END=32 )
245    CLOSE ( 90 )
246    RETURN
247
248 30 IF ( myid == 0 )  THEN
249       PRINT*, '+++ parin: WARNING: local file ENVPAR not found'
250       PRINT*, '           some variables for steering may not be properly set'
251    ENDIF
252    RETURN
253
254 31 IF ( myid == 0 )  THEN
255       PRINT*, '+++ parin: WARNING: errors in local file ENVPAR'
256       PRINT*, '           some variables for steering may not be properly set'
257    ENDIF
258    RETURN
259
260 32 IF ( myid == 0 )  THEN
261       PRINT*, '+++ parin: WARNING: no envpar-NAMELIST found in local file ', &
262                           'ENVPAR'
263       PRINT*, '           some variables for steering may not be properly set'
264    ENDIF
265
266 END SUBROUTINE parin
Note: See TracBrowser for help on using the repository browser.