Changeset 72
- Timestamp:
- Mar 19, 2007 8:20:46 AM (18 years ago)
- Location:
- palm/trunk
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/DOC/app/chapter_4.1.html
r62 r72 1245 1245 coagulation of cloud drops among themselves. Precipitation begins and 1246 1246 is immediately removed from the flow as soon as the liquid water 1247 content exceeds the critical value of 0.5 g/kg.</p> </td> </tr>1247 content exceeds the critical value of 0.5 g/kg.</p><p>The precipitation rate and amount can be output by assigning the runtime parameter <a href="chapter_4.2.html#data_output">data_output</a> = <span style="font-style: italic;">'prr*'</span> or <span style="font-style: italic;">'pra*'</span>, respectively. The time interval on which the precipitation amount is defined can be controlled via runtime parameter <a href="chapter_4.2.html#precipitation_amount_interval">precipitation_amount_interval</a>.</p> </td> </tr> 1248 1248 <tr><td style="vertical-align: top;"><a name="pt_reference"></a><span style="font-weight: bold;">pt_reference</span></td><td style="vertical-align: top;">R</td><td style="vertical-align: top;"><span style="font-style: italic;">use horizontal average as 1249 1249 refrence</span></td><td style="vertical-align: top;">Reference -
palm/trunk/DOC/app/chapter_4.2.html
r61 r72 377 377 "ncdump -c <filename>". See chapter <a href="chapter_4.5.1.html">4.5.1</a> about processing 378 378 the PALM NetCDF data.<br><br>The following quantities are 379 available for output by default :<br><br><table style="text-align: left; width: 576px; height: 481px;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td style="width: 106px;"><span style="font-weight: bold;">quantity379 available for output by default (quantity names ending with '*' are only allowed for the output of horizontal cross sections):<br><br><table style="text-align: left; width: 576px; height: 481px;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td style="width: 106px;"><span style="font-weight: bold;">quantity 380 380 name</span></td><td style="width: 196px;"><span style="font-weight: bold;">meaning</span></td><td><span style="font-weight: bold;">unit</span></td><td><span style="font-weight: bold;">remarks</span></td></tr><tr><td style="width: 106px;"><span style="font-style: italic;">e</span></td><td style="width: 196px;">SGS TKE</td><td>m<sup>2</sup>/s<sup>2</sup></td><td></td></tr><tr><td style="width: 106px; vertical-align: top;"><span style="font-style: italic;">lwp*</span></td><td style="width: 196px; vertical-align: top;">liquid water path</td><td style="vertical-align: top;">m</td><td style="vertical-align: top;">only horizontal cross section 381 381 is allowed, requires <a href="chapter_4.1.html#cloud_physics">cloud_physics</a> … … 388 388 particle/droplet radius </td><td style="vertical-align: top;">m</td><td style="vertical-align: top;">requires that particle 389 389 advection is switched on by <span style="font-weight: bold;">mrun</span>-option 390 "-p particles"</td></tr><tr><td style="width: 106px; vertical-align: top;"><span style="font-style: italic;">pt</span></td><td style="width: 196px; vertical-align: top;">potential 390 "-p particles"</td></tr><tr><td style="vertical-align: top;"><span style="font-style: italic;">pra*</span></td><td style="vertical-align: top;">precipitation amount</td><td style="vertical-align: top;">mm</td><td style="vertical-align: top;">only horizontal cross section 391 is allowed, requires <a href="chapter_4.1.html#precipitation">precipitation</a> 392 = <span style="font-style: italic;">.TRUE., </span>time interval on which amount refers to is defined by <a href="#precipitation_amount_interval">precipitation_amount_interval</a></td></tr><tr><td style="vertical-align: top;"><span style="font-style: italic;">prr*</span></td><td style="vertical-align: top;">precipitation rate</td><td style="vertical-align: top;">mm/s</td><td style="vertical-align: top;">only horizontal cross section 393 is allowed, requires <a href="chapter_4.1.html#precipitation">precipitation</a> 394 = <span style="font-style: italic;">.TRUE.</span></td></tr><tr><td style="width: 106px; vertical-align: top;"><span style="font-style: italic;">pt</span></td><td style="width: 196px; vertical-align: top;">potential 391 395 temperature<br></td><td style="vertical-align: top;">K</td><td style="vertical-align: top;"></td></tr><tr><td style="width: 106px; vertical-align: top;"><span style="font-style: italic;">q</span></td><td style="width: 196px; vertical-align: top;">specific humidity 392 396 (or total water content, if cloud physics is switched on)</td><td style="vertical-align: top;">kg/kg</td><td style="vertical-align: top;">requires <a href="chapter_4.1.html#moisture">moisture</a> = <span style="font-style: italic;">.TRUE.</span></td></tr><tr><td style="width: 106px; vertical-align: top;"><span style="font-style: italic;">ql</span></td><td style="width: 196px; vertical-align: top;">liquid water … … 411 415 the velocity</td><td style="vertical-align: top;">m/s</td><td style="vertical-align: top;"></td></tr><tr><td style="width: 106px; vertical-align: top;"><span style="font-style: italic;">vpt</span></td><td style="width: 196px; vertical-align: top;">virtual potential 412 416 temperature</td><td style="vertical-align: top;">K</td><td style="vertical-align: top;">requires <a href="chapter_4.1.html#moisture">moisture</a> = <span style="font-style: italic;">.TRUE.</span></td></tr><tr><td style="width: 106px; vertical-align: top;"><span style="font-style: italic;">w</span></td><td style="width: 196px; vertical-align: top;">w-component of 413 the velocity</td><td style="vertical-align: top;">m/s</td><td style="vertical-align: top;"></td></tr>< /tbody></table><br>Multiple417 the velocity</td><td style="vertical-align: top;">m/s</td><td style="vertical-align: top;"></td></tr><tr><td style="vertical-align: top;"><span style="font-style: italic;">z0*</span></td><td style="vertical-align: top;">roughness length</td><td style="vertical-align: top;">m</td><td></td></tr></tbody></table><br>Multiple 414 418 quantities can be assigned, e.g. <span style="font-weight: bold;">data_output</span> 415 419 = <span style="font-style: italic;">'e'</span>, <span style="font-style: italic;">'u'</span>, <span style="font-style: italic;">'w'</span>.<br><br>By … … 1595 1599 </p> <p>For runs with constant eddy diffusivity (see <a href="chapter_4.1.html#km_constant">km_constant</a>), 1596 1600 this parameter can be used to assign the Prandtl number (ratio K<sub>m</sub> 1597 / K<sub>h</sub>).</p> </td> </tr> <tr> 1601 / K<sub>h</sub>).</p> </td> </tr> <tr><td style="vertical-align: top;"><a name="precipitation_amount_interval"></a><span style="font-weight: bold;">precipitation_amount_</span><br style="font-weight: bold;"><span style="font-weight: bold;">interval</span></td><td style="vertical-align: top;">R</td><td style="vertical-align: top;"><i>value of 1602 <a href="chapter_4.2.html#dt_do2d_xy">dt_do2d_<br>xy</a></i></td><td style="vertical-align: top;"><p lang="en-GB"><font face="Thorndale"><font face="Thorndale, serif">Temporal 1603 interval</font> for which the precipitation amount (in mm) shall be calculated and output (</font>in <font face="Thorndale">s). 1604 </font> </p> <p><span lang="en-GB"></span><a href="chapter_4.2.html#data_output"><span lang="en-GB"></span></a><span lang="en-GB"></span><a href="chapter_4.2.html#section_xy"><span lang="en-GB"></span></a><span lang="en-GB"><font face="Thorndale">This 1605 parameter requires <a href="chapter_4.1.html#precipitation">precipitation</a> = <span style="font-style: italic;">.TRUE.</span>. </font></span><span lang="en-GB"></span><span lang="en-GB"><font face="Thorndale"><span style="font-weight: bold;"></span><span style="font-weight: bold;"></span>The interval must be smaller or equal than the output interval for 2d horizontal cross sections given by </font></span><a href="chapter_4.2.html#dt_do2d_xy"><span lang="en-GB"><font face="Thorndale">dt_do2d_xy</font></span></a><span lang="en-GB"><font face="Thorndale">). The output of the precipitation amount also requires setting of <a href="chapter_4.2.html#data_output">data_output</a> =<span style="font-style: italic;"> 'pra*'</span>.<br> 1606 </font></span></p> <span lang="en-GB"></span></td></tr><tr> 1598 1607 <td style="vertical-align: top;"> <p><a name="profile_columns"></a><b>profile_columns</b></p> 1599 1608 </td> <td style="vertical-align: top;">I</td> -
palm/trunk/DOC/app/chapter_4.6.html
r62 r72 975 975 <td style="vertical-align: middle;"><span style="font-style: italic;">.F.</span></td> <td style="vertical-align: middle;">Parameter to 976 976 switch on the 977 precipitation scheme.</td> </tr> <tr> <td style="vertical-align: middle;" width="15%"> <p><a href="chapter_4.2.html#profile_columns"><b>profile_columns</b></a></p> 977 precipitation scheme.</td> </tr> <tr><td><a style="font-weight: bold;" href="chapter_4.2.html#precipitation_amount_interval">precipitation_amount_<br>interval</a></td><td>R</td><td>R</td><td><i>value 978 of <a href="chapter_4.2.html#dt_do2d_xy">dt_do2d_<br> 979 xy</a></i></td><td><font face="Thorndale"><font face="Thorndale, serif">Temporal 980 interval</font> for which the precipitation amount (in mm) shall be calculated and output (</font>in <font face="Thorndale">s). </font></td></tr><tr> <td style="vertical-align: middle;" width="15%"> <p><a href="chapter_4.2.html#profile_columns"><b>profile_columns</b></a></p> 978 981 </td> <td style="vertical-align: middle;" width="5%"> 979 982 <p>R</p> </td> <td style="vertical-align: middle;" width="7%"> <p>I</p> -
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r63 r72 22 22 samples added to the user interface which show how to add user-define time series quantities. 23 23 24 calculation/output of precipitation amount, precipitation rate and z0 (by setting "pra*", "prr*", "z0*" with data_output). The time interval on which the precipitation amount is defined is set by new d3par-parameter precipitation_amount_interval 25 24 26 unit 9 opened for debug output (file DEBUG_<pe#>) 25 27 26 Makefile, advec_particles, buoyancy, check_open, check_parameters, diffusion_e, diffusion_u, diffusion_v, diffusion_w, diffusivities, header, init_particles, init_3d_model, modules, netcdf, parin, production_e, read_var_list, user_interface, write_var_list28 Makefile, advec_particles, average_3d_data, buoyancy, calc_precipitation, check_open, check_parameters, data_output_2d, diffusion_e, diffusion_u, diffusion_v, diffusion_w, diffusivities, header, impact_of_latent_heat, init_particles, init_3d_model, modules, netcdf, parin, production_e, read_var_list, read_3d_binary, sum_up_3d_data, user_interface, write_var_list, write_3d_binary 27 29 28 30 New: wall_fluxes … … 44 46 __vtk directives removed from main program. 45 47 48 The uitility routine interpret_config reads PALM environment variables from NAMELIST instead using the system call GETENV. 49 46 50 check_parameters, data_output_dvrp, data_output_ptseries, data_output_ts, flow_statistics, header, init_particles, init_3d_model, modules, palm, package_parin, parin, time_integration 47 51 … … 54 58 Bugfix in sample for reading user defined data from restart file (user_init) 55 59 60 Check for possible negative humidities in the initial humidity profile. 61 56 62 in Makefile, default suffixes removed from the suffix list to avoid calling of m2c in 57 63 # case of .mod files 58 64 59 65 Makefile 60 init_1d_model, user_interface66 check_parameters, init_1d_model, user_interface -
palm/trunk/SOURCE/average_3d_data.f90
r4 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Averaging the precipitation rate and roughness length (prr*, z0*) 7 7 ! 8 8 ! Former revisions: … … 90 90 ENDDO 91 91 92 CASE ( 'prr*' ) 93 DO i = nxl-1, nxr+1 94 DO j = nys-1, nyn+1 95 precipitation_rate_av(j,i) = precipitation_rate_av(j,i) / & 96 REAL( average_count_3d ) 97 ENDDO 98 ENDDO 99 92 100 CASE ( 'pt' ) 93 101 DO i = nxl-1, nxr+1 … … 213 221 ENDDO 214 222 223 CASE ( 'z0*' ) 224 DO i = nxl-1, nxr+1 225 DO j = nys-1, nyn+1 226 z0_av(j,i) = z0_av(j,i) / REAL( average_count_3d ) 227 ENDDO 228 ENDDO 229 215 230 CASE DEFAULT 216 231 ! -
palm/trunk/SOURCE/calc_precipitation.f90
r39 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Precipitation rate and amount are calculated/stored, 7 ! + module control_parameters 7 8 ! 8 9 ! Former revisions: … … 48 49 USE cloud_parameters 49 50 USE constants 51 USE control_parameters 50 52 USE indices 51 53 … … 53 55 54 56 INTEGER :: i, j, k 55 REAL :: precipitation_rate57 REAL :: dqdt_precip 56 58 59 60 precipitation_rate = 0.0 57 61 58 62 DO i = nxl, nxr … … 61 65 62 66 IF ( ql(k,j,i) > ql_crit ) THEN 63 precipitation_rate = prec_time_const * & 64 ( ql(k,j,i) - ql_crit ) 67 dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit ) 65 68 ELSE 66 precipitation_rate= 0.069 dqdt_precip = 0.0 67 70 ENDIF 68 tend(k,j,i) = tend(k,j,i) - precipitation_rate 71 tend(k,j,i) = tend(k,j,i) - dqdt_precip 72 ! 73 !-- Precipitation rate in (kg * 0.001) / m**2 / s (because 1kg 74 !-- gives 1 mm) 75 precipitation_rate(j,i) = precipitation_rate(j,i) + & 76 dqdt_precip * dzw(k) * 0.001 69 77 70 78 ENDDO 79 ! 80 !-- Sum up the precipitation amount (unit kg * 0.001 / m**2) 81 IF ( intermediate_timestep_count == & 82 intermediate_timestep_count_max .AND. & 83 ( dt_do2d_xy-time_do2d_xy ) < precipitation_amount_interval )& 84 THEN 85 precipitation_amount(j,i) = precipitation_amount(j,i) + & 86 precipitation_rate(j,i) * dt_3d 87 ENDIF 71 88 ENDDO 72 89 ENDDO … … 83 100 USE cloud_parameters 84 101 USE constants 102 USE control_parameters 85 103 USE indices 86 104 87 105 IMPLICIT NONE 88 106 89 INTEGER :: i, j, k90 REAL :: precipitation_rate107 INTEGER :: i, j, k 108 REAL :: dqdt_precip 91 109 92 110 111 precipitation_rate(j,i) = 0.0 112 113 ! 114 !-- Ghostpoints are included (although not needed for tend) to avoid a later 115 !-- exchange of these data for the precipitation amount/rate arrays 93 116 DO k = nzb_2d(j,i)+1, nzt 94 117 95 118 IF ( ql(k,j,i) > ql_crit ) THEN 96 precipitation_rate= prec_time_const * ( ql(k,j,i) - ql_crit )119 dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit ) 97 120 ELSE 98 precipitation_rate= 0.0121 dqdt_precip = 0.0 99 122 ENDIF 100 tend(k,j,i) = tend(k,j,i) - precipitation_rate 123 tend(k,j,i) = tend(k,j,i) - dqdt_precip 124 125 ! 126 !-- Precipitation rate in (kg * 0.001) / m**2 / s (because 1kg gives 1 mm) 127 ! precipitation_rate(j,i) = precipitation_rate(j,i) + dqdt_precip * & 128 ! dzw(k) * 0.001 129 precipitation_rate(j,i) = 1.0 101 130 102 131 ENDDO 132 133 ! 134 !-- Sum up the precipitation amount (unit kg * 0.001 / m**2) 135 IF ( intermediate_timestep_count == intermediate_timestep_count_max & 136 .AND. ( dt_do2d_xy-time_do2d_xy ) < precipitation_amount_interval )& 137 THEN 138 precipitation_amount(j,i) = precipitation_amount(j,i) + & 139 precipitation_rate(j,i) * dt_3d 140 ENDIF 103 141 104 142 END SUBROUTINE calc_precipitation_ij -
palm/trunk/SOURCE/check_parameters.f90
r63 r72 6 6 ! "by_user" allowed as initializing action, -data_output_ts, 7 7 ! leapfrog with non-flat topography not allowed any more, loop_optimization 8 ! and pt_reference are checked 8 ! and pt_reference are checked, 9 ! output of precipitation amount/rate and roughnes length + check 10 ! possible negative humidities are avoided in initial profile 9 11 ! 10 12 ! Former revisions: … … 351 353 352 354 IF ( cloud_physics .AND. .NOT. moisture ) THEN 353 IF ( myid == 0 ) PRINT*, '+++ check_parameters: moisture =', & 354 moisture, ' is not allowed with ', & 355 'cloud_physics=', cloud_physics 355 IF ( myid == 0 ) PRINT*, '+++ check_parameters: cloud_physics =', & 356 cloud_physics, ' is not allowed with ', & 357 'moisture =', moisture 358 CALL local_stop 359 ENDIF 360 361 IF ( precipitation .AND. .NOT. cloud_physics ) THEN 362 IF ( myid == 0 ) PRINT*, '+++ check_parameters: precipitation =', & 363 precipitation, ' is not allowed with ', & 364 'cloud_physics =', cloud_physics 356 365 CALL local_stop 357 366 ENDIF … … 570 579 q_init(k) = q_init(k-1) 571 580 ENDIF 581 ! 582 !-- Avoid negative humidities 583 IF ( q_init(k) < 0.0 ) THEN 584 q_init(k) = 0.0 585 ENDIF 572 586 ENDDO 573 587 … … 1163 1177 1164 1178 ! 1179 !-- Set the default value for the integration interval of precipitation amount 1180 IF ( precipitation ) THEN 1181 IF ( precipitation_amount_interval == 9999999.9 ) THEN 1182 precipitation_amount_interval = dt_do2d_xy 1183 ELSE 1184 IF ( precipitation_amount_interval > dt_do2d_xy ) THEN 1185 IF ( myid == 0 ) PRINT*, '+++ check_parameters: ', & 1186 'precipitation_amount_interval =', & 1187 precipitation_amount_interval, & 1188 ' must not be larger than dt_do2d_xy', & 1189 ' = ', dt_do2d_xy 1190 CALL local_stop 1191 ENDIF 1192 ENDIF 1193 ENDIF 1194 1195 ! 1165 1196 !-- Determine the number of output profiles and check whether they are 1166 1197 !-- permissible … … 1840 1871 unit = 'conc' 1841 1872 1842 CASE ( 'u*', 't*', 'lwp*' )1873 CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'z0*' ) 1843 1874 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN 1844 1875 IF ( myid == 0 ) THEN … … 1856 1887 CALL local_stop 1857 1888 ENDIF 1889 IF ( TRIM( var ) == 'pra*' .AND. .NOT. precipitation ) THEN 1890 IF ( myid == 0 ) THEN 1891 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 1892 '" requires precipitation = .TRUE.' 1893 ENDIF 1894 CALL local_stop 1895 ENDIF 1896 IF ( TRIM( var ) == 'pra*' .AND. j == 1 ) THEN 1897 IF ( myid == 0 ) THEN 1898 PRINT*, '+++ check_parameters: temporal averaging of ', & 1899 ' precipitation amount "', TRIM( var ), & 1900 '" not possible' 1901 ENDIF 1902 CALL local_stop 1903 ENDIF 1904 IF ( TRIM( var ) == 'prr*' .AND. .NOT. precipitation ) THEN 1905 IF ( myid == 0 ) THEN 1906 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 1907 '" requires precipitation = .TRUE.' 1908 ENDIF 1909 CALL local_stop 1910 ENDIF 1911 1912 1858 1913 IF ( TRIM( var ) == 'u*' ) unit = 'm/s' 1859 1914 IF ( TRIM( var ) == 't*' ) unit = 'K' 1860 1915 IF ( TRIM( var ) == 'lwp*' ) unit = 'kg/kg*m' 1916 IF ( TRIM( var ) == 'pra*' ) unit = 'mm' 1917 IF ( TRIM( var ) == 'prr*' ) unit = 'mm/s' 1918 IF ( TRIM( var ) == 'z0*' ) unit = 'm' 1861 1919 1862 1920 CASE ( 'p', 'pt', 'u', 'v', 'w' ) -
palm/trunk/SOURCE/data_output_2d.f90
r4 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Output of precipitation amount/rate and roughness length 7 7 ! 8 8 ! Former revisions: … … 257 257 ENDIF 258 258 259 CASE ( 'pra*_xy' ) ! 2d-array / integral quantity => no av 260 CALL exchange_horiz_2d( precipitation_amount ) 261 DO i = nxl-1, nxr+1 262 DO j = nys-1, nyn+1 263 local_pf(i,j,nzb+1) = precipitation_amount(j,i) 264 ENDDO 265 ENDDO 266 precipitation_amount = 0.0 ! reset for next integ. interval 267 resorted = .TRUE. 268 two_d = .TRUE. 269 level_z(nzb+1) = zu(nzb+1) 270 271 CASE ( 'prr*_xy' ) ! 2d-array 272 IF ( av == 0 ) THEN 273 CALL exchange_horiz_2d( precipitation_rate ) 274 DO i = nxl-1, nxr+1 275 DO j = nys-1, nyn+1 276 local_pf(i,j,nzb+1) = precipitation_rate(j,i) 277 ENDDO 278 ENDDO 279 ELSE 280 CALL exchange_horiz_2d( precipitation_rate_av ) 281 DO i = nxl-1, nxr+1 282 DO j = nys-1, nyn+1 283 local_pf(i,j,nzb+1) = precipitation_rate_av(j,i) 284 ENDDO 285 ENDDO 286 ENDIF 287 resorted = .TRUE. 288 two_d = .TRUE. 289 level_z(nzb+1) = zu(nzb+1) 290 259 291 CASE ( 'pt_xy', 'pt_xz', 'pt_yz' ) 260 292 IF ( av == 0 ) THEN … … 419 451 ENDIF 420 452 IF ( mode == 'xy' ) level_z = zw 453 454 CASE ( 'z0*_xy' ) ! 2d-array 455 IF ( av == 0 ) THEN 456 DO i = nxl-1, nxr+1 457 DO j = nys-1, nyn+1 458 local_pf(i,j,nzb+1) = z0(j,i) 459 ENDDO 460 ENDDO 461 ELSE 462 DO i = nxl-1, nxr+1 463 DO j = nys-1, nyn+1 464 local_pf(i,j,nzb+1) = z0_av(j,i) 465 ENDDO 466 ENDDO 467 ENDIF 468 resorted = .TRUE. 469 two_d = .TRUE. 470 level_z(nzb+1) = zu(nzb+1) 421 471 422 472 CASE DEFAULT -
palm/trunk/SOURCE/impact_of_latent_heat.f90
r39 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! precipitation_rate renamed dqdt_precip 7 7 ! 8 8 ! Former revisions: … … 52 52 53 53 INTEGER :: i, j, k 54 REAL :: precipitation_rate54 REAL :: dqdt_precip 55 55 56 56 … … 60 60 61 61 IF ( ql(k,j,i) > ql_crit ) THEN 62 precipitation_rate = prec_time_const * & 63 ( ql(k,j,i) - ql_crit ) 62 dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit ) 64 63 ELSE 65 precipitation_rate= 0.064 dqdt_precip = 0.0 66 65 ENDIF 67 tend(k,j,i) = tend(k,j,i) + precipitation_rate * l_d_cp * & 68 pt_d_t(k) 66 tend(k,j,i) = tend(k,j,i) + dqdt_precip * l_d_cp * pt_d_t(k) 69 67 70 68 ENDDO … … 87 85 IMPLICIT NONE 88 86 89 INTEGER :: i, j, k90 REAL :: precipitation_rate87 INTEGER :: i, j, k 88 REAL :: dqdt_precip 91 89 92 90 … … 94 92 95 93 IF ( ql(k,j,i) > ql_crit ) THEN 96 precipitation_rate= prec_time_const * ( ql(k,j,i) - ql_crit )94 dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit ) 97 95 ELSE 98 precipitation_rate= 0.096 dqdt_precip = 0.0 99 97 ENDIF 100 tend(k,j,i) = tend(k,j,i) + precipitation_rate* l_d_cp * pt_d_t(k)98 tend(k,j,i) = tend(k,j,i) + dqdt_precip * l_d_cp * pt_d_t(k) 101 99 102 100 ENDDO -
palm/trunk/SOURCE/init_3d_model.f90
r63 r72 8 8 ! ----------------- 9 9 ! New initializing action "by_user" calls user_init_3d_model, 10 ! ts_value isallocated, +module netcdf_control,10 ! precipitation_amount/rate, ts_value are allocated, +module netcdf_control, 11 11 ! initial velocities at nzb+1 are regarded for volume 12 12 ! flow control in case they have been set zero before (to avoid small timesteps) … … 40 40 USE arrays_3d 41 41 USE averaging 42 USE cloud_parameters 42 43 USE constants 43 44 USE control_parameters … … 157 158 !-- Liquid water content 158 159 ALLOCATE ( ql_1(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) ) 160 ! 161 !-- Precipitation amount and rate (only needed if output is switched) 162 ALLOCATE( precipitation_amount(nys-1:nyn+1,nxl-1:nxr+1), & 163 precipitation_rate(nys-1:nyn+1,nxl-1:nxr+1) ) 159 164 ENDIF 160 165 … … 642 647 643 648 ! 644 !-- Treating cloud physics, liquid water content is zero at beginning of 645 !-- the simulation 646 IF ( cloud_physics ) ql = 0.0 649 !-- Treating cloud physics, liquid water content and precipitation amount 650 !-- are zero at beginning of the simulation 651 IF ( cloud_physics ) THEN 652 ql = 0.0 653 IF ( precipitation ) precipitation_amount = 0.0 654 ENDIF 647 655 648 656 ! -
palm/trunk/SOURCE/modules.f90
r63 r72 5 5 ! Actual revisions: 6 6 ! ----------------- 7 ! +array rif_wall 7 ! +arrays precipitation_amount, precipitation_rate, precipitation_rate_av, 8 ! rif_wall, z0_av 8 9 ! +loop_optimization, netcdf_64bit_3d, zu_s_inner, zw_w_inner, id_var_zusi_*, 9 10 ! id_var_zwwi_*, ts_value, u_nzb_p1_for_vfc, v_nzb_p1_for_vfc, pt_reference, 10 ! use_pt_reference, 11 ! use_pt_reference, precipitation_amount_interval 11 12 ! +age_m in particle_type 12 13 ! -data_output_ts, dots_n … … 128 129 !------------------------------------------------------------------------------! 129 130 130 REAL, DIMENSION(:,:), ALLOCATABLE :: lwp_av, ts_av, us_av 131 REAL, DIMENSION(:,:), ALLOCATABLE :: lwp_av, precipitation_rate_av, & 132 ts_av, us_av, z0_av 131 133 132 134 REAL, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: & … … 156 158 REAL, DIMENSION(:), ALLOCATABLE :: hydro_press, pt_d_t, t_d_pt 157 159 160 REAL, DIMENSION(:,:), ALLOCATABLE :: precipitation_amount, & 161 precipitation_rate 162 158 163 SAVE 159 164 … … 211 216 CHARACTER (LEN=8) :: run_date, run_time 212 217 CHARACTER (LEN=9) :: simulated_time_chr 213 CHARACTER (LEN=12) :: version = 'PALM 3. 1c'218 CHARACTER (LEN=12) :: version = 'PALM 3.2' 214 219 CHARACTER (LEN=16) :: loop_optimization = 'default', & 215 220 momentum_advec = 'pw-scheme', & … … 333 338 overshoot_limit_u = 0.0, overshoot_limit_v = 0.0, & 334 339 overshoot_limit_w = 0.0, particle_maximum_age = 9999999.9, & 335 phi = 55.0, prandtl_number = 1.0, pt_reference = 9999999.9, & 340 phi = 55.0, prandtl_number = 1.0, & 341 precipitation_amount_interval = 9999999.9, & 342 pt_reference = 9999999.9, & 336 343 pt_slope_offset = 0.0, pt_surface = 300.0, & 337 344 pt_surface_initial_change = 0.0, q_surface = 0.0, & -
palm/trunk/SOURCE/parin.f90
r63 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! +dt_max, netcdf_64bit_3d in d3par, +loop_optimization, pt_reference in7 ! inipar, -data_output_ts6 ! +dt_max, netcdf_64bit_3d, precipitation_amount_interval in d3par, 7 ! +loop_optimization, pt_reference in inipar, -data_output_ts 8 8 ! 9 9 ! Former revisions: … … 105 105 mg_switch_to_pe0_level, netcdf_64bit, netcdf_64bit_3d, & 106 106 ngsrb, normalizing_region, nsor, nz_do3d, omega_sor, & 107 prandtl_number, profile_columns, profile_rows, psolver, & 107 prandtl_number, precipitation_amount_interval, & 108 profile_columns, profile_rows, psolver, & 108 109 rayleigh_damping_factor, rayleigh_damping_height, & 109 110 residual_limit, restart_time, section_xy, section_xz, & -
palm/trunk/SOURCE/production_e.f90
r57 r72 910 910 !-- of the eddy diffusivity by km = u* * kappa * zp / phi_m. 911 911 !$OMP PARALLEL DO PRIVATE( ku, kv ) 912 DO i = nxl, nxr 913 DO j = nys, nyn 912 DO i = nxl, nxr+1 913 DO j = nys, nyn+1 914 914 915 915 ku = nzb_u_inner(j,i)+1 -
palm/trunk/SOURCE/read_3d_binary.f90
r51 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! + rif_wall6 ! +precipitation_amount, precipitation_rate_av, rif_wall, z0_av 7 7 ! 8 8 ! Former revisions: … … 29 29 USE arrays_3d 30 30 USE averaging 31 USE cloud_parameters 31 32 USE control_parameters 32 33 USE cpulog … … 219 220 ALLOCATE( pr_av(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) ) 220 221 READ ( 13 ) pr_av 222 CASE ( 'precipitation_amount' ) 223 READ ( 13 ) precipitation_amount 224 CASE ( 'precipitation_rate_a' ) 225 ALLOCATE( precipitation_rate_av(nys-1:nyn+1,nxl-1:nxr+1) ) 226 READ ( 13 ) precipitation_rate_av 221 227 CASE ( 'pt' ) 222 228 READ ( 13 ) pt … … 336 342 CASE ( 'z0' ) 337 343 READ ( 13 ) z0 344 CASE ( 'z0_av' ) 345 ALLOCATE( z0_av(nys-1:nyn+1,nxl-1:nxr+1) ) 346 READ ( 13 ) z0_av 338 347 339 348 CASE ( 'cross_linecolors' ) -
palm/trunk/SOURCE/sum_up_3d_data.f90
r4 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! +sum-up of precipitation rate and roughness length (prr*, z0*) 7 7 ! 8 8 ! Former revisions: … … 80 80 pr_av = 0.0 81 81 82 CASE ( 'prr*' ) 83 IF ( .NOT. ALLOCATED( precipitation_rate_av ) ) THEN 84 ALLOCATE( precipitation_rate_av(nys-1:nyn+1,nxl-1:nxr+1) ) 85 ENDIF 86 precipitation_rate_av = 0.0 87 82 88 CASE ( 'pt' ) 83 89 IF ( .NOT. ALLOCATED( pt_av ) ) THEN … … 163 169 ENDIF 164 170 w_av = 0.0 171 172 CASE ( 'z0*' ) 173 IF ( .NOT. ALLOCATED( z0_av ) ) THEN 174 ALLOCATE( z0_av(nys-1:nyn+1,nxl-1:nxr+1) ) 175 ENDIF 176 z0_av = 0.0 165 177 166 178 CASE DEFAULT … … 239 251 ENDDO 240 252 253 CASE ( 'pr*' ) 254 DO i = nxl-1, nxr+1 255 DO j = nys-1, nyn+1 256 precipitation_rate_av(j,i) = precipitation_rate_av(j,i) + & 257 precipitation_rate(j,i) 258 ENDDO 259 ENDDO 260 241 261 CASE ( 'pt' ) 242 262 IF ( .NOT. cloud_physics ) THEN … … 372 392 ENDDO 373 393 394 CASE ( 'z0*' ) 395 DO i = nxl-1, nxr+1 396 DO j = nys-1, nyn+1 397 z0_av(j,i) = z0_av(j,i) + z0(j,i) 398 ENDDO 399 ENDDO 400 374 401 CASE DEFAULT 375 402 ! -
palm/trunk/SOURCE/write_3d_binary.f90
r51 r72 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! + rif_wall6 ! +precipitation_amount, precipitation_rate_av, rif_wall, z0_av 7 7 ! 8 8 ! Former revisions: … … 29 29 USE arrays_3d 30 30 USE averaging 31 USE cloud_parameters 31 32 USE control_parameters 32 33 USE cpulog … … 93 94 WRITE ( 14 ) 'pr_av '; WRITE ( 14 ) pr_av 94 95 ENDIF 96 IF ( ALLOCATED( precipitation_amount ) ) THEN 97 WRITE ( 14 ) 'precipitation_amount'; WRITE ( 14 ) precipitation_amount 98 ENDIF 99 IF ( ALLOCATED( precipitation_rate_av ) ) THEN 100 WRITE ( 14 ) 'precipitation_rate_a'; WRITE ( 14 ) & 101 precipitation_rate_av 102 ENDIF 95 103 WRITE ( 14 ) 'pt '; WRITE ( 14 ) pt 96 104 IF ( ALLOCATED( pt_av ) ) THEN … … 195 203 WRITE ( 14 ) 'w_m '; WRITE ( 14 ) w_m 196 204 WRITE ( 14 ) 'z0 '; WRITE ( 14 ) z0 205 IF ( ALLOCATED( z0_av ) ) THEN 206 WRITE ( 14 ) 'z0_av '; WRITE ( 14 ) z0_av 207 ENDIF 197 208 198 209 WRITE ( 14 ) 'cross_linecolors '; WRITE ( 14 ) cross_linecolors -
palm/trunk/UTIL/interpret_config.f90
r69 r72 1 1 PROGRAM interpret_config 2 2 3 !-------------------------------------------------------------------------------! 3 !------------------------------------------------------------------------------! 4 ! Actual revisions: 5 ! ----------------- 6 ! mrun environment variables are read from NAMELIST instead of using GETENV. 7 ! Variables are allways assigned a value, also if they already got one. These 8 ! values are re-assigned later in mrun. 9 ! 10 ! Former revisions: 11 ! ----------------- 12 ! $Id$ 13 ! 14 ! 28/02/07 - Siggi - empty lines in configuration file are accepted 15 ! 01/11/05 - Siggi - s2b-Feld erlaubt den Wert locopt 16 ! 29/06/05 - Siggi - Fehlermeldung ins englische uebertragen und ergaenzt 17 ! 29/04/05 - Siggi - extin wird auch fuer Input-Dateien ausgegeben 18 ! 18/11/97 - Siggi - Komma in 2010-FORMAT hinzugefuegt 4 19 ! 21/07/97 - Siggi - Erste Fassung 5 ! 18/11/97 - Siggi - Komma in 2010-FORMAT hinzugefuegt 6 ! 29/04/05 - Siggi - extin wird auch fuer Input-Dateien ausgegeben 7 ! 29/06/05 - Siggi - Fehlermeldung ins englische uebertragen und ergaenzt 8 ! 01/11/05 - Siggi - s2b-Feld erlaubt den Wert locopt 9 ! 28/02/07 - Siggi - empty lines in configuration file are accepted 10 ! 11 ! Letzte Aenderungen: 12 ! ------------------- 13 ! 14 ! Beschreibung: 20 ! 21 ! Description: 15 22 ! ------------- 16 ! Interpretation der MRUN-Konfigurationsdatei. Ausgegeben werden ksh-Kommandos, 17 ! die anschliessend von MRUN ausgefuehrt werden muessen. 18 !-------------------------------------------------------------------------------! 23 ! This program reads the mrun-configuration file .mrun.config and outputs 24 ! its content in form of ksh-commands, which can then be executed by mrun. 25 ! mrun is also able to directly read from the configuration file by using 26 ! the option "-S" (but with much slower speed). 27 !------------------------------------------------------------------------------! 19 28 20 29 IMPLICIT NONE 21 30 22 CHARACTER (LEN=1) :: bs = ACHAR( 92 ) ! backslash (auf vpp sonst n. druckbar) 31 CHARACTER (LEN=1) :: bs = ACHAR( 92 ) ! backslash (auf vpp sonst n. 32 ! druckbar) 23 33 CHARACTER (LEN=20) :: do_remote, do_trace, host, localhost 24 34 CHARACTER (LEN=100) :: config_file, icf 25 CHARACTER (LEN=300) :: cond1, cond2, empty = REPEAT( ' ', 240 ), &26 for_cond1, for_cond2, for_host, input_list, &35 CHARACTER (LEN=300) :: cond1, cond2, empty = REPEAT( ' ', 240 ), & 36 for_cond1, for_cond2, for_host, input_list, & 27 37 iolist, output_list, s1, s2, s2a, s2b, s2c, s3, & 28 s3cond, s4, s5, s6, value, value_mrun,& 29 var, zeile 30 31 INTEGER :: dummy, i, icomment = 0, icond1, icond2, idatver = 0, iec = 0, & 32 ienvvar = 0, ifor_cond1, ifor_cond2, ifor_host, ihost, & 38 s3cond, s4, s5, s6, value, value_mrun, var, zeile 39 40 INTEGER :: dummy, i, icomment = 0, icond1, icond2, idatver = 0, iec = 0, & 41 ienvvar = 0, ifor_cond1, ifor_cond2, ifor_host, ihost, & 33 42 iic = 0, iicf, iin = 0, iinput_list, il, ilocalhost, ioc = 0, & 34 ios, iout = 0, ioutput_list, is1, is2, is2a, is2b, is2c, &35 is3, is3cond, is4, is5, is6, ivalue, iva lue_mrun, ivar, izeile43 ios, iout = 0, ioutput_list, is1, is2, is2a, is2b, is2c, & 44 is3, is3cond, is4, is5, is6, ivalue, ivar, izeile 36 45 37 46 LOGICAL :: found 38 47 39 NAMELIST /mrun_environment/ cond1, cond2, config_file, do_remote, do_trace, & 40 host, input_list, icf, localhost, output_list 48 NAMELIST /mrun_environment/ cond1, cond2, config_file, do_remote, & 49 do_trace, host, input_list, icf, localhost, & 50 output_list 41 51 42 52 … … 53 63 ioutput_list = LEN_TRIM( output_list ) 54 64 55 ! CALL local_getenv( 'cond1', 5, cond1, icond1 )56 ! CALL local_getenv( 'cond2', 5, cond2, icond2 )57 ! CALL local_getenv( 'config_file', 11, config_file, il )58 ! CALL local_getenv( 'do_remote', 9, do_remote, dummy )59 ! CALL local_getenv( 'do_trace', 8, do_trace, dummy )60 ! CALL local_getenv( 'host', 4, host, ihost )61 ! CALL local_getenv( 'input_list', 10, input_list, iinput_list )62 ! CALL local_getenv( 'interpreted_config_file', 23, icf, iicf )63 ! CALL local_getenv( 'localhost', 9, localhost, ilocalhost )64 ! CALL local_getenv( 'output_list', 11, output_list, ioutput_list )65 65 iolist = input_list(1:iinput_list) // output_list(1:ioutput_list) 66 66 … … 89 89 90 90 IF ( LEN_TRIM( zeile ) == 0 ) THEN 91 91 92 CONTINUE 93 92 94 ELSEIF ( zeile(1:1) == '#' ) THEN 95 93 96 icomment = icomment + 1 97 94 98 ELSEIF ( zeile(1:1) == '%' ) THEN 99 95 100 ienvvar = ienvvar + 1 96 101 i = INDEX( zeile, ' ' ) … … 98 103 ivar = i - 2 99 104 100 ! 101 !-- Achtung: Auf hpmuk und vpp sind nur die Variablen bekannt, die 102 !-- von MRUN exportiert wurden! 103 ! CALL local_getenv( var, ivar, value_mrun, ivalue_mrun ) 104 value_mrun = '' 105 ivalue_mrun = 1 106 107 ! 108 !-- Variable bekommt nur dann neuen Wert, wenn ihr per Shellscript- 109 !-- Option noch keiner zugewiesen wurde 110 IF ( value_mrun(1:ivalue_mrun) == '' .OR. & 111 value_mrun(1:ivalue_mrun) == '0' ) THEN 105 zeile(1:i) = empty(1:i) 106 zeile = ADJUSTL( zeile ) 107 i = INDEX( zeile, ' ' ) 108 value = zeile(1:i-1) 109 ivalue = i - 1 110 111 zeile(1:i) = empty(1:i) 112 zeile = ADJUSTL( zeile ) 113 i = INDEX( zeile, ' ' ) 114 115 IF ( i /= 1 ) THEN 116 for_host = zeile(1:i-1) 117 ifor_host = i - 1 112 118 113 119 zeile(1:i) = empty(1:i) 114 120 zeile = ADJUSTL( zeile ) 115 121 i = INDEX( zeile, ' ' ) 116 value = zeile(1:i-1)117 ivalue = i - 1118 119 zeile(1:i) = empty(1:i)120 zeile = ADJUSTL( zeile )121 i = INDEX( zeile, ' ' )122 122 123 123 IF ( i /= 1 ) THEN 124 for_ host= zeile(1:i-1)125 ifor_ host= i - 1124 for_cond1 = zeile(1:i-1) 125 ifor_cond1 = i - 1 126 126 127 127 zeile(1:i) = empty(1:i) … … 130 130 131 131 IF ( i /= 1 ) THEN 132 for_cond1 = zeile(1:i-1) 133 ifor_cond1 = i - 1 134 135 zeile(1:i) = empty(1:i) 136 zeile = ADJUSTL( zeile ) 137 i = INDEX( zeile, ' ' ) 138 139 IF ( i /= 1 ) THEN 140 for_cond2 = zeile(1:i-1) 141 ifor_cond2 = i - 1 142 ELSE 143 for_cond2 = '' 144 ifor_cond2 = 0 145 ENDIF 132 for_cond2 = zeile(1:i-1) 133 ifor_cond2 = i - 1 146 134 ELSE 147 for_cond1 = ''148 ifor_cond1 = 0149 135 for_cond2 = '' 150 136 ifor_cond2 = 0 151 137 ENDIF 152 138 ELSE 153 for_host = ' '154 ifor_host = 1155 139 for_cond1 = '' 156 140 ifor_cond1 = 0 … … 158 142 ifor_cond2 = 0 159 143 ENDIF 144 ELSE 145 for_host = ' ' 146 ifor_host = 1 147 for_cond1 = '' 148 ifor_cond1 = 0 149 for_cond2 = '' 150 ifor_cond2 = 0 151 ENDIF 152 IF ( do_trace(1:4) == 'true' ) THEN 153 PRINT*,'var="',var(1:ivar),'"' 154 PRINT*,'value="',value(1:ivalue),'"' 155 PRINT*,'for_host="',for_host(1:ifor_host),'"' 156 PRINT*,'for_cond1="',for_cond1(1:ifor_cond1),'"' 157 PRINT*,'for_cond2="',for_cond2(1:ifor_cond2),'"' 158 ENDIF 159 ! 160 !-- Geltungsbereich pruefen und evtl. Variable ausgeben 161 IF ( for_host == ' ' .OR. ( & 162 for_host(1:ifor_host) == host(1:ihost) .AND. & 163 for_cond1(1:ifor_cond1) == cond1(1:icond1) .AND. & 164 for_cond2(1:ifor_cond2) == cond2(1:icond2) & 165 ) .OR. ( & 166 INDEX( iolist, for_host(1:ifor_host) ) /= 0 & 167 ) ) THEN 168 169 ! 170 !-- Zuerst Doppelpunkte durch Blanks ersetzen (aber doppelt 171 !-- auftretende Doppelpunkte durch einen Doppelpunkt) 172 i = 0 173 DO 174 i = i + 1 175 IF ( i > ivalue ) EXIT 176 IF ( value(i:i) == ':' ) THEN 177 IF ( value(i+1:i+1) == ':' ) THEN 178 value = value(1:i) // value(i+2:ivalue) 179 ivalue = ivalue - 1 180 ELSE 181 value(i:i) = ' ' 182 ENDIF 183 ENDIF 184 ENDDO 185 186 ! 187 !-- Variable ausgeben 188 WRITE (2,2200) var(1:ivar), bs, value(1:ivalue), bs, & 189 var(1:ivar) 190 2200 FORMAT ('eval ',A,'=',A,'"',A,A,'"'/'export ',A) 191 160 192 IF ( do_trace(1:4) == 'true' ) THEN 161 PRINT*,'var="',var(1:ivar),'"' 162 PRINT*,'value="',value(1:ivalue),'"' 163 PRINT*,'for_host="',for_host(1:ifor_host),'"' 164 PRINT*,'for_cond1="',for_cond1(1:ifor_cond1),'"' 165 PRINT*,'for_cond2="',for_cond2(1:ifor_cond2),'"' 166 ENDIF 167 ! 168 !-- Geltungsbereich pruefen und evtl. Variable ausgeben 169 IF ( for_host == ' ' .OR. ( & 170 for_host(1:ifor_host) == host(1:ihost) .AND. & 171 for_cond1(1:ifor_cond1) == cond1(1:icond1) .AND. & 172 for_cond2(1:ifor_cond2) == cond2(1:icond2) & 173 ) .OR. ( & 174 INDEX( iolist, for_host(1:ifor_host) ) /= 0 & 175 ) ) THEN 176 177 ! 178 !-- Zuerst Doppelpunkte durch Blanks ersetzen (aber doppelt 179 !-- auftretende Doppelpunkte durch einen Doppelpunkt) 180 i = 0 181 DO 182 i = i + 1 183 IF ( i > ivalue ) EXIT 184 IF ( value(i:i) == ':' ) THEN 185 IF ( value(i+1:i+1) == ':' ) THEN 186 value = value(1:i) // value(i+2:ivalue) 187 ivalue = ivalue - 1 188 ELSE 189 value(i:i) = ' ' 190 ENDIF 191 ENDIF 192 ENDDO 193 194 ! 195 !-- Variable ausgeben 196 WRITE (2,2200) var(1:ivar), bs, value(1:ivalue), bs, & 197 var(1:ivar) 198 2200 FORMAT ('eval ',A,'=',A,'"',A,A,'"'/'export ',A) 199 200 IF ( do_trace(1:4) == 'true' ) THEN 201 WRITE (2,2201) bs, var(1:ivar), value(1:ivalue) 202 2201 FORMAT ('printf "',A,'n*** ENVIRONMENT-VARIABLE ',A,' = ',A) 203 ENDIF 204 205 ENDIF 206 207 ! 208 !-- Variable "host" muss gleich ausgewertet werden, da mit ihr ein 209 !-- neuer Geltungsbereich festgelegt wird 210 IF ( var(1:ivar) == 'host' ) THEN 211 212 host = value(1:ivalue) 213 ihost = ivalue 214 215 ! IF ( host(1:ihost) /= localhost(1:ilocalhost) ) THEN 216 ! 217 ! SELECT CASE ( value(1:ivalue) ) 218 ! 219 ! CASE ( 'cray','hpcs','t3d','t3eb','t3eh','unics','vpp' ) 220 ! 221 ! dummy = 1 222 ! 223 ! CASE DEFAULT 224 ! 225 ! WRITE (2,2202) bs, bs, value(1:ivalue), bs, bs 226 ! 2202 FORMAT ('printf "',A,'n +++ Auf Zielrechner ',A,'"',A,A,'" ist kein NQS-System vorhanden"'/ & 227 ! 'printf "',A,'n Programmlauf kann deshalb nicht gestartet werden"'/ & 228 ! 'locat=nqs; exit') 229 ! STOP 230 ! 231 ! END SELECT 232 ! 233 ! ENDIF 234 235 ENDIF 193 WRITE (2,2201) bs, var(1:ivar), value(1:ivalue) 194 2201 FORMAT ('printf "',A,'n*** ENVIRONMENT-VARIABLE ',A,' = ',A) 195 ENDIF 196 197 ENDIF 198 199 ! 200 !-- Variable "host" muss gleich ausgewertet werden, da mit ihr ein 201 !-- neuer Geltungsbereich festgelegt wird 202 IF ( var(1:ivar) == 'host' ) THEN 203 204 host = value(1:ivalue) 205 ihost = ivalue 206 207 ! IF ( host(1:ihost) /= localhost(1:ilocalhost) ) THEN 208 ! 209 ! SELECT CASE ( value(1:ivalue) ) 210 ! 211 ! CASE ( 'cray','hpcs','t3d','t3eb','t3eh','unics','vpp' ) 212 ! 213 ! dummy = 1 214 ! 215 ! CASE DEFAULT 216 ! 217 ! WRITE (2,2202) bs, bs, value(1:ivalue), bs, bs 218 ! 2202 FORMAT ('printf "',A,'n +++ Auf Zielrechner ',A,'"',A,A,'" ist kein NQS-System vorhanden"'/ & 219 ! 'printf "',A,'n Programmlauf kann deshalb nicht gestartet werden"'/ & 220 ! 'locat=nqs; exit') 221 ! STOP 222 ! 223 ! END SELECT 224 ! 225 ! ENDIF 236 226 237 227 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.