Changeset 1299 for palm/trunk
- Timestamp:
- Mar 6, 2014 1:15:21 PM (11 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_parameters.f90
r1277 r1299 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! enable usage of large_scale subsidence in combination with large_scale_forcing 23 ! output for profile of large scale vertical velocity w_subs added 23 24 ! 24 25 ! Former revisions: … … 1354 1355 ! 1355 1356 !-- Initialize large scale subsidence if required 1356 IF ( subs_vertical_gradient_level(1) /= -9999999.9 ) THEN 1357 large_scale_subsidence = .TRUE. 1358 CALL init_w_subsidence 1359 ENDIF 1357 If ( large_scale_subsidence ) THEN 1358 IF ( subs_vertical_gradient_level(1) /= -9999999.9 .AND. & 1359 .NOT. large_scale_forcing ) THEN 1360 CALL init_w_subsidence 1361 ENDIF 1362 ! 1363 !-- In case large_scale_forcing is used, profiles for subsidence velocity 1364 !-- are read in from file LSF_DATA 1365 1366 IF ( subs_vertical_gradient_level(1) == -9999999.9 .AND. & 1367 .NOT. large_scale_forcing ) THEN 1368 message_string = 'There is no default large scale vertical ' // & 1369 'velocity profile set. Specify the subsidence ' // & 1370 'velocity profile via subs_vertical_gradient and ' // & 1371 'subs_vertical_gradient_level.' 1372 CALL message( 'check_parameters', 'PA0380', 1, 2, 0, 6, 0 ) 1373 ENDIF 1374 ELSE 1375 IF ( subs_vertical_gradient_level(1) /= -9999999.9 ) THEN 1376 message_string = 'Enable usage of large scale subsidence by ' // & 1377 'setting large_scale_subsidence = .T..' 1378 CALL message( 'check_parameters', 'PA0381', 1, 2, 0, 6, 0 ) 1379 ENDIF 1380 ENDIF 1360 1381 1361 1382 ! … … 2723 2744 hom(:,2,79,:) = SPREAD( zu, 2, statistic_regions+1 ) 2724 2745 2746 CASE ( 'w_subs' ) 2747 IF ( .NOT. large_scale_subsidence ) THEN 2748 message_string = 'data_output_pr = ' // & 2749 TRIM( data_output_pr(i) ) // ' is not imp' // & 2750 'lemented for large_scale_subsidence = .FALSE.' 2751 CALL message( 'check_parameters', 'PA0382', 1, 2, 0, 6, 0 ) 2752 ELSE 2753 dopr_index(i) = 80 2754 dopr_unit(i) = 'm/s' 2755 hom(:,2,80,:) = SPREAD( zu, 2, statistic_regions+1 ) 2756 ENDIF 2757 2725 2758 CASE DEFAULT 2726 2759 -
palm/trunk/SOURCE/flow_statistics.f90
r1258 r1299 21 21 ! Current revisions: 22 22 ! ----------------- 23 ! 23 ! Output of large scale vertical velocity w_subs 24 24 ! 25 25 ! Former revisions: … … 1164 1164 hom(:,1,78,sr) = ug ! ug 1165 1165 hom(:,1,79,sr) = vg ! vg 1166 hom(:,1,80,sr) = w_subs ! w_subs 1166 1167 1167 1168 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) … … 2784 2785 hom(:,1,78,sr) = ug ! ug 2785 2786 hom(:,1,79,sr) = vg ! vg 2787 hom(:,1,80,sr) = w_subs ! w_subs 2786 2788 2787 2789 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) -
palm/trunk/SOURCE/header.f90
r1242 r1299 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! output for using large_scale subsidence in combination 23 ! with large_scale_forcing 24 ! reformatting, more detailed explanations 23 25 ! 24 26 ! Former revisions: … … 368 370 IF ( momentum_advec == 'pw-scheme' ) THEN 369 371 WRITE ( io, 113 ) 370 ELSEIF (momentum_advec == 'ws-scheme' ) THEN372 ELSEIF (momentum_advec == 'ws-scheme' ) THEN 371 373 WRITE ( io, 503 ) 372 374 ENDIF … … 578 580 ENDIF 579 581 580 IF ( plant_canopy ) THEN582 IF ( plant_canopy ) THEN 581 583 582 584 WRITE ( io, 280 ) canopy_mode, pch_index, drag_coefficient 583 IF ( passive_scalar ) THEN585 IF ( passive_scalar ) THEN 584 586 WRITE ( io, 281 ) scalar_exchange_coefficient, & 585 587 leaf_surface_concentration … … 717 719 WRITE ( io, 303 ) 718 720 IF ( constant_heatflux ) THEN 719 IF ( large_scale_forcing .AND. lsf_surf ) THEN721 IF ( large_scale_forcing .AND. lsf_surf ) THEN 720 722 WRITE ( io, 306 ) shf(0,0) 721 723 ELSE … … 725 727 ENDIF 726 728 IF ( humidity .AND. constant_waterflux ) THEN 727 IF ( large_scale_forcing .AND. lsf_surf ) THEN729 IF ( large_scale_forcing .AND. lsf_surf ) THEN 728 730 WRITE ( io, 311 ) qsws(0,0) 729 731 ELSE … … 1227 1229 ! 1228 1230 !-- Spectra output 1229 IF ( dt_dosp /= 9999999.9 ) THEN1231 IF ( dt_dosp /= 9999999.9 ) THEN 1230 1232 WRITE ( io, 370 ) 1231 1233 … … 1269 1271 ! 1270 1272 !-- Cloud physics parameters 1271 IF ( cloud_physics ) THEN1273 IF ( cloud_physics ) THEN 1272 1274 WRITE ( io, 415 ) 1273 1275 WRITE ( io, 416 ) surface_pressure, r_d, rho_surface, cp, l_v … … 1307 1309 ENDDO 1308 1310 1309 IF ( .NOT. large_scale_forcing ) THEN1311 IF ( .NOT. large_scale_forcing ) THEN 1310 1312 WRITE ( io, 423 ) TRIM( coordinates ), TRIM( ugcomponent ), & 1311 1313 TRIM( gradients ), TRIM( slices ) … … 1343 1345 ENDDO 1344 1346 1345 IF ( .NOT. large_scale_forcing ) THEN1347 IF ( .NOT. large_scale_forcing ) THEN 1346 1348 WRITE ( io, 424 ) TRIM( coordinates ), TRIM( vgcomponent ), & 1347 1349 TRIM( gradients ), TRIM( slices ) … … 1382 1384 ENDDO 1383 1385 1384 IF ( .NOT. nudging ) THEN1386 IF ( .NOT. nudging ) THEN 1385 1387 WRITE ( io, 420 ) TRIM( coordinates ), TRIM( temperatures ), & 1386 1388 TRIM( gradients ), TRIM( slices ) … … 1421 1423 1422 1424 IF ( humidity ) THEN 1423 IF ( .NOT. nudging ) THEN1425 IF ( .NOT. nudging ) THEN 1424 1426 WRITE ( io, 421 ) TRIM( coordinates ), TRIM( temperatures ), & 1425 1427 TRIM( gradients ), TRIM( slices ) … … 1498 1500 ENDDO 1499 1501 1500 WRITE ( io, 426 ) TRIM( coordinates ), TRIM( temperatures ), & 1501 TRIM( gradients ), TRIM( slices ) 1502 1503 IF ( .NOT. large_scale_forcing ) THEN 1504 WRITE ( io, 426 ) TRIM( coordinates ), TRIM( temperatures ), & 1505 TRIM( gradients ), TRIM( slices ) 1506 ELSE 1507 WRITE ( io, 460 ) 1508 ENDIF 1509 1510 1502 1511 ENDIF 1503 1512 … … 1734 1743 /' starting from dp_level_b =', F8.3, 'm', A /) 1735 1744 153 FORMAT (' --> Large-scale vertical motion is used in the ', & 1736 'prognostic equation for')1737 154 FORMAT (' the potential temperature')1745 'prognostic equation(s) for') 1746 154 FORMAT (' the scalar(s) only') 1738 1747 155 FORMAT (' --> Nudging is used - initial profiles for u, v, pt and q ',& 1739 1748 'correspond to the') … … 1996 2005 ' NUDGING_DATA') 1997 2006 429 FORMAT (/' Geostrophic wind profiles (ug, vg) are are taken from file '/ & 1998 ' LSF_DATA _DATA')2007 ' LSF_DATA') 1999 2008 430 FORMAT (//' Cloud physics quantities / methods:'/ & 2000 2009 ' ----------------------------------'/) … … 2023 2032 454 FORMAT (' TKE is not allowed to fall below ',E9.2,' (m/s)**2') 2024 2033 455 FORMAT (' initial TKE is prescribed as ',E9.2,' (m/s)**2') 2034 460 FORMAT (/' Profiles for large scale vertical velocity are '/ & 2035 ' taken from file LSF_DATA') 2025 2036 470 FORMAT (//' Actions during the simulation:'/ & 2026 2037 ' -----------------------------'/) -
palm/trunk/SOURCE/init_3d_model.f90
r1242 r1299 23 23 ! Current revisions: 24 24 ! ------------------ 25 ! 25 ! Allocate w_subs due to extension of large scale subsidence in combination 26 ! with large scale forcing data (LSF_DATA) 26 27 ! 27 28 ! Former revisions: … … 542 543 543 544 ! 545 !-- 1D-array for large scale subsidence velocity 546 IF ( large_scale_subsidence ) THEN 547 ALLOCATE ( w_subs(nzb:nzt+1) ) 548 w_subs = 0.0 549 ENDIF 550 551 ! 544 552 !-- 3D-arrays for the leaf area density and the canopy drag coefficient 545 553 IF ( plant_canopy ) THEN -
palm/trunk/SOURCE/ls_forcing.f90
r1277 r1299 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! Ensure a zero large scale vertical velocity at the surface 23 ! Bugfix: typo in case of boundary condition in if-clause 23 24 ! 24 25 ! Former revisions: … … 39 40 ! ------------ 40 41 ! Calculates large scale forcings (geostrophic wind and subsidence velocity) as 41 ! well as surfaces fluxes dependen don time given in an external file (LSF_DATA).42 ! well as surfaces fluxes dependent on time given in an external file (LSF_DATA). 42 43 ! Code is based in parts on DALES and UCLA-LES. 43 44 !--------------------------------------------------------------------------------! … … 110 111 111 112 IF ( ierrn < 0 ) THEN 112 WRITE ( message_string, * ) 'No time dependen dsurface variables ',&113 WRITE ( message_string, * ) 'No time dependent surface variables ',& 113 114 'in&LSF_DATA for end of run found' 114 115 … … 119 120 120 121 IF ( time_surf(1) > end_time ) THEN 121 WRITE ( message_string, * ) 'No time dependen dsurface variables in ',&122 WRITE ( message_string, * ) 'No time dependent surface variables in ',& 122 123 '&LSF_DATA for end of run found - ', & 123 124 'lsf_surf is set to FALSE' … … 146 147 READ ( finput, *, IOSTAT=ierrn ) hash, time_vert(t) 147 148 IF ( ierrn < 0 ) THEN 148 WRITE( message_string, * ) 'No time dependen dvertical profiles',&149 WRITE( message_string, * ) 'No time dependent vertical profiles',& 149 150 ' in&LSF_DATA for end of run found' 150 151 CALL message( 'ls_forcing', 'PA0372', 1, 2, 0, 6, 0 ) … … 158 159 IF ( ierrn /= 0 ) THEN 159 160 message_string = 'errors in file LSF_DATA' 160 CALL message( ' nudging', 'PA0369', 1, 2, 0, 6, 0 )161 CALL message( 'ls_forcing', 'PA0369', 1, 2, 0, 6, 0 ) 161 162 ENDIF 162 163 … … 166 167 IF ( ierrn /= 0 ) THEN 167 168 message_string = 'errors in file LSF_DATA' 168 CALL message( ' nudging', 'PA0369', 1, 2, 0, 6, 0 )169 CALL message( 'ls_forcing', 'PA0369', 1, 2, 0, 6, 0 ) 169 170 ENDIF 170 171 … … 183 184 IF ( ierrn /= 0 ) THEN 184 185 message_string = 'errors in file LSF_DATA' 185 CALL message( ' nudging', 'PA0369', 1, 2, 0, 6, 0 )186 CALL message( 'ls_forcing', 'PA0369', 1, 2, 0, 6, 0 ) 186 187 ENDIF 187 188 … … 200 201 ENDDO 201 202 203 ! 204 !-- Large scale vertical velocity has to be zero at the surface 205 wsubs_vert(nzb,:) = 0.0 206 202 207 IF ( time_vert(1) > end_time ) THEN 203 208 WRITE ( message_string, * ) 'Time dependent large scale profile ',& … … 262 267 q_surface = q_surf(t) + fac * ( q_surf(t+1) - q_surf(t) ) 263 268 264 ELSEIF ( ibc_ pt_b == 1 ) THEN269 ELSEIF ( ibc_q_b == 1 ) THEN 265 270 266 271 qsws = qsws_surf(t) + fac * ( qsws_surf(t+1) - qsws_surf(t) )
Note: See TracChangeset
for help on using the changeset viewer.