Changeset 964 for palm/trunk/SOURCE
- Timestamp:
- Jul 26, 2012 9:14:24 AM (12 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_open.f90
r887 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Test: append feature removed from unit 14 6 ! old profil-units (40:49) removed, 7 ! append feature removed from unit 14 7 8 ! 8 9 ! Former revisions: … … 155 156 SELECT CASE ( file_id ) 156 157 157 CASE ( 15, 16, 17, 18, 19, 40:49,50:59, 81:84, 104:105, 107, 109 )158 CASE ( 15, 16, 17, 18, 19, 50:59, 81:84, 104:105, 107, 109 ) 158 159 159 160 IF ( myid /= 0 ) THEN … … 582 583 ENDIF 583 584 584 CASE ( 40:49 )585 586 IF ( statistic_regions == 0 .AND. file_id == 40 ) THEN587 suffix = ''588 ELSE589 WRITE ( suffix, '(''_'',I1)' ) file_id - 40590 ENDIF591 OPEN ( file_id, FILE='PLOT1D_DATA'//TRIM( coupling_char )// &592 TRIM( suffix ), &593 FORM='FORMATTED' )594 !595 !-- Write contents comments at the top of the file596 WRITE ( file_id, 4000 ) TRIM( run_description_header ) // ' ' // &597 TRIM( region( file_id - 40 ) )598 599 585 CASE ( 50:59 ) 600 586 … … 637 623 klist(1:k) = cross_ts_numbers(1:k,j) 638 624 klist(k+1:10) = 999999 639 cucol(1:k) = linecolors(1:k)640 lstyle(1:k) = linestyles(1:k)641 625 ! 642 626 !-- Write CROSS parameter -
palm/trunk/SOURCE/check_parameters.f90
r941 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! check of old profil-parameters removed 7 7 ! 8 8 ! Former revisions: … … 2518 2518 END SELECT 2519 2519 2520 !2521 !-- Check to which of the predefined coordinate systems the profile belongs2522 DO k = 1, crmax2523 IF ( INDEX( cross_profiles(k), ' '//TRIM( data_output_pr(i) )//' ' ) &2524 /=0 ) &2525 THEN2526 dopr_crossindex(i) = k2527 EXIT2528 ENDIF2529 ENDDO2530 !2531 !-- Generate the text for the labels of the PROFIL output file. "-characters2532 !-- must be substituted, otherwise PROFIL would interpret them as TeX2533 !-- control characters2534 dopr_label(i) = data_output_pr(i)2535 position = INDEX( dopr_label(i) , '"' )2536 DO WHILE ( position /= 0 )2537 dopr_label(i)(position:position) = ''''2538 position = INDEX( dopr_label(i) , '"' )2539 ENDDO2540 2541 2520 ENDDO 2542 2543 !2544 !-- y-value range of the coordinate system (PROFIL).2545 !-- x-value range determined in plot_1d.2546 IF ( .NOT. ocean ) THEN2547 cross_uymin = 0.02548 IF ( z_max_do1d == -1.0 ) THEN2549 cross_uymax = zu(nzt+1)2550 ELSEIF ( z_max_do1d < zu(nzb+1) .OR. z_max_do1d > zu(nzt+1) ) THEN2551 WRITE( message_string, * ) 'z_max_do1d = ', z_max_do1d, ' must ', &2552 'be >= ', zu(nzb+1), ' or <= ', zu(nzt+1)2553 CALL message( 'check_parameters', 'PA0099', 1, 2, 0, 6, 0 )2554 ELSE2555 cross_uymax = z_max_do1d2556 ENDIF2557 ENDIF2558 2559 !2560 !-- Check whether the chosen normalizing factor for the coordinate systems is2561 !-- permissible2562 DO i = 1, crmax2563 SELECT CASE ( TRIM( cross_normalized_x(i) ) ) ! TRIM required on IBM2564 2565 CASE ( '', 'wpt0', 'ws2', 'tsw2', 'ws3', 'ws2tsw', 'wstsw2' )2566 j = 02567 2568 CASE DEFAULT2569 message_string = 'unknown normalization method cross_normali' // &2570 'zed_x = "' // TRIM( cross_normalized_x(i) ) // &2571 '"'2572 CALL message( 'check_parameters', 'PA0100', 1, 2, 0, 6, 0 )2573 2574 END SELECT2575 SELECT CASE ( TRIM( cross_normalized_y(i) ) ) ! TRIM required on IBM2576 2577 CASE ( '', 'z_i' )2578 j = 02579 2580 CASE DEFAULT2581 message_string = 'unknown normalization method cross_normali' // &2582 'zed_y = "' // TRIM( cross_normalized_y(i) ) // &2583 '"'2584 CALL message( 'check_parameters', 'PA0101', 1, 2, 0, 6, 0 )2585 2586 END SELECT2587 ENDDO2588 !2589 !-- Check normalized y-value range of the coordinate system (PROFIL)2590 IF ( z_max_do1d_normalized /= -1.0 .AND. z_max_do1d_normalized <= 0.0 ) &2591 THEN2592 WRITE( message_string, * ) 'z_max_do1d_normalized = ', &2593 z_max_do1d_normalized, ' must be >= 0.0'2594 CALL message( 'check_parameters', 'PA0101', 1, 2, 0, 6, 0 )2595 ENDIF2596 2521 2597 2522 … … 2864 2789 2865 2790 ! 2866 !-- Upper plot limit (grid point value) for 1D profiles2867 IF ( z_max_do1d == -1.0 ) THEN2868 2869 nz_do1d = nzt+12870 2871 ELSE2872 DO k = nzb+1, nzt+12873 nz_do1d = k2874 IF ( zw(k) > z_max_do1d ) EXIT2875 ENDDO2876 ENDIF2877 2878 !2879 2791 !-- Upper plot limit for 2D vertical sections 2880 2792 IF ( z_max_do2d == -1.0 ) z_max_do2d = zu(nzt) … … 2958 2870 CASE ( 'iso2d' ) 2959 2871 iso2d_output = .TRUE. 2960 CASE ( 'profil' )2961 profil_output = .TRUE.2962 2872 CASE ( 'avs' ) 2963 2873 avs_output = .TRUE. -
palm/trunk/SOURCE/close_file.f90
r565 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! old profil-units (40:49) and respective code removed 7 7 ! 8 8 ! Former revisions: … … 67 67 CHARACTER (LEN=2) :: suffix 68 68 CHARACTER (LEN=10) :: datform = 'lit_endian' 69 CHARACTER (LEN=80) :: rtext, title, utext = '', xtext = '', ytext = '' 70 71 INTEGER :: av, anzzeile, cranz, cross_count, cross_numbers, dimx, dimy, & 72 fid, file_id, j, k, legpos = 1, planz, timodex = 1 73 INTEGER, DIMENSION(100) :: klist, lstyle, cucol 74 75 LOGICAL :: checkuf = .TRUE., datleg = .TRUE., dp = .FALSE., & 76 grid = .TRUE., rand = .TRUE., swap, twoxa = .TRUE., & 77 twoya = .TRUE. 78 79 REAL :: ansx = -999.999, ansy = -999.999, gwid = 0.1, rlegfak, & 80 sizex, sizey, texfac, utmove = 50.0, uxmax, uxmin, uymax, & 81 uymin, yright 82 REAL, DIMENSION(100) :: lwid, normx, normy 83 84 NAMELIST /CROSS/ ansx, ansy, cucol, grid, gwid, klist, legpos, lstyle, & 85 lwid, normx, normy, rand, rlegfak, sizex, sizey, & 86 texfac, timodex, twoxa, twoya, utext, utmove, uxmax, & 87 uxmin, uymax, uymin, xtext, ytext 88 NAMELIST /GLOBAL/ checkuf, datform, dimx, dimy, dp, planz, sizex, sizey, & 89 title, yright 90 NAMELIST /RAHMEN/ anzzeile, cranz, datleg, rtext, swap 69 CHARACTER (LEN=80) :: rtext, title 70 71 INTEGER :: av, anzzeile, dimx, dimy, & 72 fid, file_id, j, k, planz 73 74 LOGICAL :: checkuf = .TRUE., datleg = .TRUE., dp = .FALSE., swap 75 76 REAL :: sizex, sizey, yright 77 78 NAMELIST /GLOBAL/ checkuf, datform, dimx, dimy, dp, planz, & 79 title 80 NAMELIST /RAHMEN/ anzzeile, datleg, rtext, swap 91 81 92 82 ! … … 190 180 WRITE ( 32, 3200) ' ', TRIM( run_description_header ), & 191 181 nx+2, ny+2, nz_do3d+1, do3d_avs_n 192 ENDIF193 194 CASE ( 40:49 )195 !196 !-- Write PROFIL namelist parameters for 1D profiles.197 !-- First determine, how many crosses are to be drawn.198 IF ( myid == 0 ) THEN199 cross_numbers = 0200 DO j = 1, crmax201 IF ( cross_profile_number_count(j) /= 0 ) THEN202 cross_numbers = cross_numbers + 1203 ENDIF204 ENDDO205 206 IF ( cross_numbers /= 0 ) THEN207 !208 !-- Determine remaining RAHMEN parameters209 swap = .FALSE.210 rtext = '\0.5 ' // TRIM( run_description_header ) // &211 ' ' // TRIM( region( fid - 40 ) )212 !213 !-- Write RAHMEN parameters214 IF ( statistic_regions == 0 .AND. fid == 40 ) THEN215 suffix = ''216 ELSE217 WRITE ( suffix, '(''_'',I1)' ) fid - 40218 ENDIF219 OPEN ( 90, FILE='PLOT1D_PAR' // TRIM( suffix ), &220 FORM='FORMATTED', DELIM='APOSTROPHE' )221 !222 !-- Subtitle for crosses with time averaging223 IF ( averaging_interval_pr /= 0.0 ) THEN224 WRITE ( utext, 4000 ) averaging_interval_pr225 ENDIF226 !227 !-- Determine and write CROSS parameters for each individual228 !-- cross229 cross_count = 0230 DO j = 1, crmax231 k = cross_profile_number_count(j)232 IF ( k /= 0 ) THEN233 cross_count = cross_count + 1234 !235 !-- Write RAHMEN parameters236 IF ( MOD( cross_count-1, &237 profile_rows*profile_columns ) == 0 ) &238 THEN239 !240 !-- Determine number of crosses still to be drawn241 cranz = MIN( cross_numbers - cross_count + 1, &242 profile_rows * profile_columns )243 !244 !-- If the first line cannot be filled with crosses245 !-- completely, the default number of crosses per246 !-- line has to be reduced.247 IF ( cranz < profile_columns ) THEN248 anzzeile = cranz249 ELSE250 anzzeile = profile_columns251 ENDIF252 253 WRITE ( 90, RAHMEN )254 255 ENDIF256 !257 !-- Store graph numbers258 klist(1:k) = cross_profile_numbers(1:k,j)259 klist(k+1:100) = 999999260 !261 !-- Store graph attributes262 cucol = cross_linecolors(:,j)263 lstyle = cross_linestyles(:,j)264 lwid = 0.6265 !266 !-- Sizes, text etc.267 sizex = 100.0; sizey = 120.0268 rlegfak = 0.7; texfac = 1.0269 !270 !-- Determine range of x-axis values271 IF ( cross_normalized_x(j) == ' ' ) THEN272 !273 !-- Non-normalized profiles274 IF ( cross_uxmin(j) == 0.0 .AND. &275 cross_uxmax(j) == 0.0 ) THEN276 uxmin = cross_uxmin_computed(j)277 uxmax = cross_uxmax_computed(j)278 IF ( uxmin == uxmax ) uxmax = uxmin + 1.0279 ELSE280 !281 !-- Values set in check_parameters are used here282 uxmin = cross_uxmin(j); uxmax = cross_uxmax(j)283 ENDIF284 ELSE285 !286 !-- Normalized profiles287 IF ( cross_uxmin_normalized(j) == 0.0 .AND. &288 cross_uxmax_normalized(j) == 0.0 ) THEN289 uxmin = cross_uxmin_normalized_computed(j)290 uxmax = cross_uxmax_normalized_computed(j)291 IF ( uxmin == uxmax ) uxmax = uxmin + 1.0292 ELSE293 !294 !-- Values set in check_parameters are used here295 uxmin = cross_uxmin_normalized(j)296 uxmax = cross_uxmax_normalized(j)297 ENDIF298 ENDIF299 !300 !-- Range of y-axis values301 !-- may be re-adjusted during normalization if required302 uymin = cross_uymin(j); uymax = cross_uymax(j)303 ytext = 'height in m'304 !305 !-- Normalization of the axes306 normx = cross_normx_factor(:,j)307 normy = cross_normy_factor(:,j)308 !309 !-- Labelling of the axes310 IF ( cross_normalized_x(j) == ' ' ) THEN311 xtext = cross_xtext(j)312 ELSE313 xtext = TRIM( cross_xtext(j) ) // ' / ' // &314 cross_normalized_x(j)315 ENDIF316 IF ( cross_normalized_y(j) == ' ' ) THEN317 ytext = 'height in m'318 ELSE319 ytext = 'height in m' // ' / ' // &320 cross_normalized_y(j)321 !322 !-- Determine upper limit of value range323 IF ( z_max_do1d_normalized /= -1.0 ) THEN324 uymax = z_max_do1d_normalized325 ENDIF326 ENDIF327 328 WRITE ( 90, CROSS )329 330 ENDIF331 ENDDO332 333 CLOSE ( 90 )334 ENDIF335 ENDIF336 337 CASE ( 50:59 )338 !339 !-- Write PROFIL namelist parameters for time series340 !-- first determine number of crosses to be drawn341 IF ( myid == 0 ) THEN342 cranz = 0343 DO j = 1, 12344 IF ( cross_ts_number_count(j) /= 0 ) cranz = cranz+1345 ENDDO346 347 IF ( cranz /= 0 ) THEN348 !349 !-- Determine RAHMEN parameters350 anzzeile = 1351 swap = .TRUE.352 rtext = '\1.0 ' // TRIM( run_description_header ) // &353 ' ' // TRIM( region( fid - 50 ) )354 !355 !-- Write RAHMEN parameters356 IF ( statistic_regions == 0 .AND. fid == 50 ) THEN357 suffix = ''358 ELSE359 WRITE ( suffix, '(''_'',I1)' ) fid - 50360 ENDIF361 OPEN ( 90, FILE='PLOTTS_PAR' // TRIM( suffix ), &362 FORM='FORMATTED', DELIM='APOSTROPHE' )363 WRITE ( 90, RAHMEN )364 !365 !-- Determine and write CROSS parameters for each individual366 !-- cross367 DO j = 1, 12368 k = cross_ts_number_count(j)369 IF ( k /= 0 ) THEN370 !371 !-- Store graph numbers372 klist(1:k) = cross_ts_numbers(1:k,j)373 klist(k+1:100) = 999999374 !375 !-- Store graph attributes376 cucol(1:k) = linecolors(1:k)377 lstyle(1:k) = linestyles(1:k)378 lwid = 0.4379 !380 !-- Sizes, text etc.381 sizex = 250.0; sizey = 40.0382 rlegfak = 1.5; texfac = 1.5383 xtext = 'time in s'384 ytext = ''385 utext = ''386 !387 !-- Determine range of y-axis values388 IF ( cross_ts_uymin(j) == 999.999 ) THEN389 uymin = cross_ts_uymin_computed(j)390 ELSE391 uymin = cross_ts_uymin(j)392 ENDIF393 IF ( cross_ts_uymax(j) == 999.999 ) THEN394 uymax = cross_ts_uymax_computed(j)395 ELSE396 uymax = cross_ts_uymax(j)397 ENDIF398 IF ( uymin == uymax ) uymax = uymin + 1.0399 !400 !-- Range of x-axis values401 uxmin = 0.0; uxmax = simulated_time402 !403 !-- Normalizations404 normx = 1.0; normy = 1.0405 406 WRITE ( 90, CROSS )407 408 ENDIF409 ENDDO410 411 CLOSE ( 90 )412 ENDIF413 182 ENDIF 414 183 -
palm/trunk/SOURCE/data_output_profiles.f90
r392 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! code for profil-output removed 7 7 ! 8 8 ! Former revisions: … … 52 52 53 53 INTEGER :: i, id, ilc, ils, j, k, sr 54 REAL :: uxma, uxmi55 56 54 57 55 ! … … 91 89 92 90 ! 93 !-- Open PROFIL-output files for each (sub-)region94 IF ( profil_output ) THEN95 DO sr = 0, statistic_regions96 CALL check_open( 40 + sr )97 ENDDO98 ENDIF99 100 !101 91 !-- Increment the counter for number of output times 102 92 dopr_time_count = dopr_time_count + 1 103 104 !105 !-- Re-set to zero the counter for the number of profiles already written106 !-- at the current output time into the respective crosses107 cross_pnc_local = 0108 93 109 94 ! … … 178 163 DO sr = 0, statistic_regions 179 164 180 IF ( profil_output ) THEN181 id = 40 + sr182 !183 !-- Write Label-Header184 WRITE ( id, 100 ) TRIM( data_output_pr(i) ), '(t=0)'185 !186 !-- Write total profile187 DO k = nzb, nzt+1188 WRITE ( id, 101 ) hom(k,2,dopr_initial_index(i),sr), &189 hom(k,1,dopr_initial_index(i),sr)190 ENDDO191 !192 !-- Write separation label193 WRITE ( id, 102 )194 ENDIF195 196 165 IF ( netcdf_output ) THEN 197 166 #if defined( __netcdf ) … … 208 177 ENDDO 209 178 210 IF ( profil_output ) THEN211 !212 !-- Determine indices for later NAMELIST-output (s. below)213 profile_number = profile_number + 1214 j = dopr_crossindex(i)215 IF ( j /= 0 ) THEN216 cross_profile_number_count(j) = &217 cross_profile_number_count(j) + 1218 k = cross_profile_number_count(j)219 cross_profile_numbers(k,j) = profile_number220 !221 !-- Initial profiles are always drawn as solid lines in222 !-- anti-background colour.223 cross_linecolors(k,j) = 1224 cross_linestyles(k,j) = 0225 !226 !-- If required, extend x-value range of the respective227 !-- cross, provided it has not been specified in &228 !-- check_parameters. Determination over all (sub-)regions.229 IF ( cross_uxmin(j) == 0.0 .AND. &230 cross_uxmax(j) == 0.0 ) THEN231 232 DO sr = 0, statistic_regions233 234 uxmi = &235 MINVAL( hom(:nz_do1d,1,dopr_initial_index(i),sr) )236 237 uxma = &238 MAXVAL( hom(:nz_do1d,1,dopr_initial_index(i),sr) )239 !240 !-- When the value range of the first line in the241 !-- corresponding cross is determined, its value range242 !-- is simply adopted.243 IF ( cross_uxmin_computed(j) > &244 cross_uxmax_computed(j) ) THEN245 cross_uxmin_computed(j) = uxmi246 cross_uxmax_computed(j) = uxma247 ELSE248 cross_uxmin_computed(j) = &249 MIN( cross_uxmin_computed(j), uxmi )250 cross_uxmax_computed(j) = &251 MAX( cross_uxmax_computed(j), uxma )252 ENDIF253 254 ENDDO255 256 ENDIF257 !258 !-- If required, determine and note normalizing factors259 SELECT CASE ( cross_normalized_x(j) )260 261 CASE ( 'ts2' )262 cross_normx_factor(k,j) = &263 ( hom_sum(nzb+3,pr_palm,normalizing_region) )**2264 CASE ( 'wpt0' )265 cross_normx_factor(k,j) = &266 hom_sum(nzb,18,normalizing_region)267 CASE ( 'wsts2' )268 cross_normx_factor(k,j) = &269 hom_sum(nzb+8,pr_palm,normalizing_region) &270 * ( hom_sum(nzb+3,pr_palm,normalizing_region) )**2271 CASE ( 'ws2' )272 cross_normx_factor(k,j) = &273 ( hom_sum(nzb+8,pr_palm,normalizing_region) )**2274 CASE ( 'ws2ts' )275 cross_normx_factor(k,j) = &276 ( hom_sum(nzb+8,pr_palm,normalizing_region) )**2 &277 * hom_sum(nzb+3,pr_palm,normalizing_region)278 CASE ( 'ws3' )279 cross_normx_factor(k,j) = &280 ( hom_sum(nzb+8,pr_palm,normalizing_region) )**3281 282 END SELECT283 284 SELECT CASE ( cross_normalized_y(j) )285 286 CASE ( 'z_i' )287 cross_normy_factor(k,j) = &288 hom_sum(nzb+6,pr_palm,normalizing_region)289 290 END SELECT291 292 !293 !-- Check the normalizing factors for zeros and deactivate294 !-- the normalization, if required.295 IF ( cross_normx_factor(k,j) == 0.0 .OR. &296 cross_normy_factor(k,j) == 0.0 ) THEN297 WRITE( message_string, * ) 'data_output_profiles: ', &298 'normalizing cross ',j, ' is not possible ', &299 'since one of the & normalizing factors ', &300 'is zero! & cross_normx_factor(',k,',',j,') = ', &301 cross_normx_factor(k,j), &302 ' & cross_normy_factor(',k,',',j,') = ', &303 cross_normy_factor(k,j)304 CALL message( 'data_output_profiles', 'PA0185',&305 0, 1, 0, 6, 0 )306 cross_normx_factor(k,j) = 1.0307 cross_normy_factor(k,j) = 1.0308 cross_normalized_x(j) = ' '309 cross_normalized_y(j) = ' '310 ENDIF311 312 !313 !-- If required, extend normalized x-value range of the314 !-- respective cross, provided it has not been specified in315 !-- check_parameters. Determination over all (sub-)regions.316 IF ( cross_uxmin_normalized(j) == 0.0 .AND. &317 cross_uxmax_normalized(j) == 0.0 ) THEN318 319 DO sr = 0, statistic_regions320 321 uxmi = MINVAL( hom(:nz_do1d,1, &322 dopr_initial_index(i),sr) ) / &323 cross_normx_factor(k,j)324 uxma = MAXVAL( hom(:nz_do1d,1, &325 dopr_initial_index(i),sr) ) / &326 cross_normx_factor(k,j)327 !328 !-- When the value range of the first line in the329 !-- corresponding cross is determined, its value range330 !-- is simply adopted.331 IF ( cross_uxmin_normalized_computed(j) > &332 cross_uxmax_normalized_computed(j) ) THEN333 cross_uxmin_normalized_computed(j) = uxmi334 cross_uxmax_normalized_computed(j) = uxma335 ELSE336 cross_uxmin_normalized_computed(j) = &337 MIN( cross_uxmin_normalized_computed(j), uxmi )338 cross_uxmax_normalized_computed(j) = &339 MAX( cross_uxmax_normalized_computed(j), uxma )340 ENDIF341 342 ENDDO343 344 ENDIF345 346 ENDIF ! Index determination347 348 ENDIF ! profil output349 350 179 ENDIF ! Initial profile available 351 180 … … 425 254 !-- Output for the individual (sub-)domains 426 255 DO sr = 0, statistic_regions 427 428 IF ( profil_output ) THEN429 id = 40 + sr430 !431 !-- Write Label-Header432 WRITE ( id, 100 ) TRIM( dopr_label(i) ), simulated_time_chr433 !434 !-- Output of total profile435 DO k = nzb, nzt+1436 WRITE ( id, 101 ) hom(k,2,dopr_index(i),sr), &437 hom_sum(k,dopr_index(i),sr)438 ENDDO439 !440 !-- Write separation label441 WRITE ( id, 102 )442 ENDIF443 256 444 257 IF ( netcdf_output ) THEN … … 456 269 ENDDO 457 270 458 IF ( profil_output ) THEN 459 ! 460 !-- Determine profile number on file and note the data for later 461 !-- NAMELIST output, if the respective profile is to be drawn by 462 !-- PROFIL (if it shall not be drawn, the variable dopr_crossindex has 463 !-- the value 0, otherwise the number of the coordinate cross) 464 profile_number = profile_number + 1 465 j = dopr_crossindex(i) 466 467 IF ( j /= 0 ) THEN 468 cross_profile_number_count(j) = cross_profile_number_count(j) +1 469 k = cross_profile_number_count(j) 470 cross_pnc_local(j) = cross_pnc_local(j) +1 471 cross_profile_numbers(k,j) = profile_number 472 ilc = MOD( dopr_time_count, 10 ) 473 IF ( ilc == 0 ) ilc = 10 474 cross_linecolors(k,j) = linecolors(ilc) 475 ils = MOD( cross_pnc_local(j), 11 ) 476 IF ( ils == 0 ) ils = 11 477 cross_linestyles(k,j) = linestyles(ils) 478 ! 479 !-- If required, extend x-value range of the respective coordinate 480 !-- cross, provided it has not been specified in check_parameters. 481 !-- Determination over all (sub-)regions. 482 IF ( cross_uxmin(j) == 0.0 .AND. cross_uxmax(j) == 0.0 ) THEN 483 484 DO sr = 0, statistic_regions 485 486 uxmi = MINVAL( hom_sum(:nz_do1d,dopr_index(i),sr) ) 487 uxma = MAXVAL( hom_sum(:nz_do1d,dopr_index(i),sr) ) 488 ! 489 !-- When the value range of the first line in the 490 !-- corresponding cross is determined, its value range is 491 !-- simply adopted. 492 IF ( cross_uxmin_computed(j) > cross_uxmax_computed(j) ) & 493 THEN 494 cross_uxmin_computed(j) = uxmi 495 cross_uxmax_computed(j) = uxma 496 ELSE 497 cross_uxmin_computed(j) = & 498 MIN( cross_uxmin_computed(j), uxmi ) 499 cross_uxmax_computed(j) = & 500 MAX( cross_uxmax_computed(j), uxma ) 501 ENDIF 502 503 ENDDO 504 505 ENDIF 506 ! 507 !-- If required, store the normalizing factors 508 SELECT CASE ( cross_normalized_x(j) ) 509 510 CASE ( 'tsw2' ) 511 cross_normx_factor(k,j) = & 512 ( hom_sum(nzb+11,pr_palm,normalizing_region) )**2 513 CASE ( 'wpt0' ) 514 cross_normx_factor(k,j) = & 515 hom_sum(nzb,18,normalizing_region) 516 CASE ( 'wstsw2' ) 517 cross_normx_factor(k,j) = & 518 hom_sum(nzb+8,pr_palm,normalizing_region) & 519 * ( hom_sum(nzb+11,pr_palm,normalizing_region) )**2 520 CASE ( 'ws2' ) 521 cross_normx_factor(k,j) = & 522 ( hom_sum(nzb+8,pr_palm,normalizing_region) )**2 523 CASE ( 'ws2tsw' ) 524 cross_normx_factor(k,j) = & 525 ( hom_sum(nzb+8,pr_palm,normalizing_region) )**2& 526 * hom_sum(nzb+11,pr_palm,normalizing_region) 527 CASE ( 'ws3' ) 528 cross_normx_factor(k,j) = & 529 ( hom_sum(nzb+8,pr_palm,normalizing_region) )**3 530 531 END SELECT 532 SELECT CASE ( cross_normalized_y(j) ) 533 534 CASE ( 'z_i' ) 535 cross_normy_factor(k,j) = & 536 hom_sum(nzb+6,pr_palm,normalizing_region) 537 538 END SELECT 539 540 ! 541 !-- Check the normalizing factors for zeros and deactivate 542 !-- the normalization, if required. 543 IF ( cross_normx_factor(k,j) == 0.0 .OR. & 544 cross_normy_factor(k,j) == 0.0 ) THEN 545 WRITE( message_string, * ) 'data_output_profiles: ', & 546 'normalizing cross ',j, ' is not possible ', & 547 'since one of the & normalizing factors ', & 548 'is zero! & cross_normx_factor(',k,',',j,') = ', & 549 cross_normx_factor(k,j), & 550 ' & cross_normy_factor(',k,',',j,') = ', & 551 cross_normy_factor(k,j) 552 CALL message( 'data_output_profiles', 'PA0185',& 553 0, 1, 0, 6, 0 ) 554 cross_normx_factor(k,j) = 1.0 555 cross_normy_factor(k,j) = 1.0 556 cross_normalized_x(j) = ' ' 557 cross_normalized_y(j) = ' ' 558 ENDIF 559 560 ! 561 !-- If required, extend normalized x-value range of the respective 562 !-- cross, provided it has not been specified in check_parameters. 563 !-- Determination over all (sub-)regions. 564 IF ( cross_uxmin_normalized(j) == 0.0 .AND. & 565 cross_uxmax_normalized(j) == 0.0 ) THEN 566 567 DO sr = 0, statistic_regions 568 569 uxmi = MINVAL( hom(:nz_do1d,1,dopr_index(i),sr) ) / & 570 cross_normx_factor(k,j) 571 uxma = MAXVAL( hom(:nz_do1d,1,dopr_index(i),sr) ) / & 572 cross_normx_factor(k,j) 573 ! 574 !-- When the value range of the first line in the 575 !-- corresponding cross is determined, its value range is 576 !-- simply adopted. 577 IF ( cross_uxmin_normalized_computed(j) > & 578 cross_uxmax_normalized_computed(j) ) THEN 579 cross_uxmin_normalized_computed(j) = uxmi 580 cross_uxmax_normalized_computed(j) = uxma 581 ELSE 582 cross_uxmin_normalized_computed(j) = & 583 MIN( cross_uxmin_normalized_computed(j), uxmi ) 584 cross_uxmax_normalized_computed(j) = & 585 MAX( cross_uxmax_normalized_computed(j), uxma ) 586 ENDIF 587 588 ENDDO 589 590 ENDIF 591 592 ENDIF ! Index determination 593 594 ENDIF ! profil output 595 596 ENDDO ! Loop over dopr_n 271 ENDDO 597 272 598 273 ENDIF ! Output on PE0 -
palm/trunk/SOURCE/data_output_spectra.f90
r392 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! code for profil-output removed 7 7 ! 8 8 ! Former revisions: … … 73 73 CALL handle_netcdf_error( 'data_output_spectra', 47 ) 74 74 #endif 75 76 IF ( profil_output ) THEN77 !78 !-- Compute RAHMEN-Parameter CRANZ for x- and y-spectra separately79 cranz_x = 0; cranz_y = 0; frame_x = .FALSE.; frame_y = .FALSE.80 81 m = 182 DO WHILE ( data_output_sp(m) /= ' ' .AND. m <= 10 )83 84 IF ( INDEX( spectra_direction(m), 'x' ) /= 0 ) THEN85 cranz_x = cranz_x + 186 ENDIF87 IF ( INDEX( spectra_direction(m), 'y' ) /= 0 ) THEN88 cranz_y = cranz_y + 189 ENDIF90 91 m = m + 192 93 ENDDO94 95 ENDIF96 75 97 76 ! … … 152 131 IF ( INDEX( spectra_direction(m), 'y' ) /= 0 ) THEN 153 132 CALL output_spectra_netcdf( m, 'y' ) 154 ENDIF155 ENDIF156 157 !158 !-- Output of spectra in profil format159 IF ( profil_output ) THEN160 !161 !-- Output of x-spectra162 IF ( INDEX( spectra_direction(m), 'x' ) /= 0 ) THEN163 CALL data_output_spectra_x( m, cranz_x, pr, frame_x )164 ENDIF165 166 !167 !-- Output of y-spectra168 IF ( INDEX( spectra_direction(m), 'y' ) /= 0 ) THEN169 CALL data_output_spectra_y( m, cranz_y, pr, frame_y )170 133 ENDIF 171 134 ENDIF -
palm/trunk/SOURCE/header.f90
r941 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! output of profil-related quantities removed 7 7 ! 8 8 ! Former revisions: … … 751 751 ELSE 752 752 output_format = 'NetCDF 64bit offset' 753 ENDIF754 ENDIF755 IF ( profil_output ) THEN756 IF ( netcdf_output ) THEN757 output_format = TRIM( output_format ) // ' and profil'758 ELSE759 output_format = 'profil'760 753 ENDIF 761 754 ENDIF … … 1150 1143 ELSE 1151 1144 output_format = 'NetCDF 64bit offset' 1152 ENDIF1153 ENDIF1154 IF ( profil_output ) THEN1155 IF ( netcdf_output ) THEN1156 output_format = TRIM( output_format ) // ' and profil'1157 ELSE1158 output_format = 'profil'1159 1145 ENDIF 1160 1146 ENDIF … … 1227 1213 ELSE 1228 1214 output_format = 'NetCDF 64bit offset' 1229 ENDIF1230 ENDIF1231 IF ( profil_output ) THEN1232 IF ( netcdf_output ) THEN1233 output_format = TRIM( output_format ) // ' and profil'1234 ELSE1235 output_format = 'profil'1236 1215 ENDIF 1237 1216 ENDIF -
palm/trunk/SOURCE/modules.f90
r952 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! -cross_linecolors, cross_linestyles, cross_normalized_x, cross_normx_factor, 7 ! cross_normalized_y, cross_normy_factor, cross_pnc_local, 8 ! cross_profile_numbers, cross_profile_number_counter, cross_uxmax, 9 ! cross_uxmax_computed, cross_uxmax_normalized, 10 ! cross_uxmax_normalized_computed, cross_uxmin, cross_uxmin_computed, 11 ! cross_uxmin_normalized, cross_uxmin_normalized_computed, cross_uymax, 12 ! cross_uymin, cross_xtext, dopr_crossindex, dopr_label, linecolors, linestyles, 13 ! nz_do1d, profil_output, z_max_do1d, z_max_do1d_normalized 7 14 ! 8 15 ! Former revisions: … … 539 546 netcdf_data_format = 2, ngsrb = 2, nsor = 20, & 540 547 nsor_ini = 100, n_sor, normalizing_region = 0, & 541 nz_do 1d, nz_do3d = -9999, outflow_damping_width = -1, &548 nz_do3d = -9999, outflow_damping_width = -1, & 542 549 pch_index = 0, prt_time_count = 0, recycling_plane, runnr = 0, & 543 550 skip_do_avs = 0, subdomain_size, terminate_coupled = 0, & … … 601 608 outflow_s = .FALSE., passive_scalar = .FALSE., & 602 609 plant_canopy = .FALSE., prandtl_layer = .TRUE., & 603 precipitation = .FALSE., profil_output = .FALSE.,&610 precipitation = .FALSE., & 604 611 radiation = .FALSE., random_heatflux = .FALSE., & 605 612 run_control_header = .FALSE., run_coupled = .TRUE., & … … 690 697 ups_limit_v = 0.0, ups_limit_w = 0.0, vg_surface = 0.0, & 691 698 v_bulk = 0.0, v_gtrans = 0.0, wall_adjustment_factor = 1.8, & 692 z_max_do 1d = -1.0, z_max_do1d_normalized = -1.0, z_max_do2d = -1.0699 z_max_do2d = -1.0 693 700 694 701 REAL :: do2d_xy_last_time(0:1) = -1.0, do2d_xz_last_time(0:1) = -1.0, & … … 1373 1380 INTEGER, PARAMETER :: crmax = 100 1374 1381 1375 CHARACTER (LEN=10), DIMENSION(100) :: dopr_label = ' '1376 1377 CHARACTER (LEN=10), DIMENSION(crmax) :: cross_normalized_x = ' ', &1378 cross_normalized_y = ' '1379 1380 1382 CHARACTER (LEN=20), DIMENSION(20) :: cross_ts_profiles = & 1381 1383 (/ ' E E* ', ' dt ', & … … 1387 1389 ( ' ', i9 = 1, 9 ) /) 1388 1390 1389 CHARACTER (LEN=40), DIMENSION(crmax) :: cross_xtext = &1390 (/ 'windspeed in ms>->1 ', &1391 'pot. temperature in K ', &1392 'heat flux in K ms>->1 ', &1393 'momentum flux in m>2s>2 ', &1394 'eddy diffusivity in m>2s>->1', &1395 'mixing length in m ', &1396 ( ' ', i9 = 1, 94 ) /)1397 1398 1391 CHARACTER (LEN=100), DIMENSION(crmax) :: cross_profiles = & 1399 1392 (/ ' u v ', & … … 1407 1400 INTEGER :: profile_columns = 2, profile_rows = 3, profile_number = 0 1408 1401 1409 INTEGER :: cross_linecolors(100,crmax) = 1, & 1410 cross_linestyles(100,crmax) = 0, & 1411 cross_profile_numbers(100,crmax) = 0, & 1412 cross_pnc_local(crmax), cross_profile_number_count(crmax) = 0, & 1413 cross_ts_numbers(crmax,crmax) = 0, & 1414 cross_ts_number_count(crmax) = 0, dopr_crossindex(100) = 0, & 1402 INTEGER :: cross_ts_numbers(crmax,crmax) = 0, & 1403 cross_ts_number_count(crmax) = 0, & 1415 1404 dopr_index(300) = 0, dopr_initial_index(300) = 0, & 1416 dots_crossindex(100) = 0, dots_index(100) = 0, & 1417 linecolors(10) = (/ 2, 3, 4, 5, 7, 8, 12, 15, 16, 23 /), & 1418 linestyles(11) = (/ 0, 7, 3, 10, 4, 1, 9, 2, 5, 8, 6 /) 1405 dots_crossindex(100) = 0, dots_index(100) = 0 1419 1406 1420 1407 1421 REAL :: cross_normx_factor(100,crmax) = 1.0, & 1422 cross_normy_factor(100,crmax) = 1.0, & 1423 cross_ts_uymax(20) = & 1408 REAL :: cross_ts_uymax(20) = & 1424 1409 (/ 999.999, 999.999, 999.999, 999.999, 999.999, & 1425 1410 999.999, 999.999, 999.999, 999.999, 999.999, & … … 1432 1417 999.999, 999.999, 999.999, 999.999, 999.999, & 1433 1418 999.999, 999.999, 999.999, 999.999, 999.999 /),& 1434 cross_ts_uymin_computed(20) = 999.999, & 1435 cross_uxmax(crmax) = 0.0, cross_uxmax_computed(crmax) = -1.0, & 1436 cross_uxmax_normalized(crmax) = 0.0, & 1437 cross_uxmax_normalized_computed(crmax) = -1.0, & 1438 cross_uxmin(crmax) = 0.0, cross_uxmin_computed(crmax) = 1.0, & 1439 cross_uxmin_normalized(crmax) = 0.0, & 1440 cross_uxmin_normalized_computed(crmax) = 1.0, & 1441 cross_uymax(crmax), cross_uymin(crmax) 1419 cross_ts_uymin_computed(20) = 999.999 1442 1420 1443 1421 SAVE -
palm/trunk/SOURCE/netcdf.f90
r960 r964 7 7 ! Current revisions: 8 8 ! ------------------ 9 ! 9 ! rev 951 and 959 reformatted 10 10 ! 11 11 ! Former revisions: … … 14 14 ! 15 15 ! 959 2012-07-24 13:13:41Z hoffmann 16 ! Bugfix in cross_profiles. It is not possible to arrange more than 10016 ! Bugfix in cross_profiles. It is not allowed to arrange more than 100 17 17 ! profiles with cross_profiles. 18 18 ! … … 130 130 INTEGER :: av, cross_profiles_count, cross_profiles_maxi, delim, & 131 131 delim_old, file_id, i, id_last, id_x, id_y, id_z, j, & 132 k, ns, ns_old, nz_old132 k, kk, ns, ns_old, nz_old 133 133 134 134 INTEGER, DIMENSION(1) :: id_dim_time_old, id_dim_x_yz_old, & … … 3147 3147 3148 3148 ! 3149 !-- Write columns and rows of cross_profiles to netcdf header. 3149 !-- Write number of columns and rows of coordinate systems to be plotted 3150 !-- on one page to the netcdf header. 3150 3151 !-- This information can be used by palmplot. 3151 3152 3152 nc_stat = NF90_PUT_ATT( id_set_pr, NF90_GLOBAL, & 3153 3153 'no_rows', & … … 3161 3161 3162 3162 3163 3163 cross_profiles_adj = ADJUSTL( cross_profiles ) 3164 3164 cross_profiles_numb = 999999 3165 3165 3166 k = 1 3167 3168 ! 3169 !-- Each profile defined in cross_profiles is written to a array 3170 !-- (cross_profiles_char). The number of its cross is assigned in a 3171 !-- second array (cross_profiles_numb). 3172 3173 DO i = 1, crmax 3174 IF ( TRIM( cross_profiles_adj(i) ) == ' ' ) EXIT 3175 delim_old = 0 3176 DO j = 1, crmax 3177 delim = INDEX( cross_profiles_adj(i)(delim_old+1:), ' ' ) 3178 IF (delim .EQ. 1) EXIT 3179 cross_profiles_char( MIN( crmax, k ) ) = cross_profiles_adj(i) & 3180 (delim_old+1:delim_old+delim-1) 3181 cross_profiles_numb( MIN( crmax, k ) ) = i 3182 k = k+1 3183 cross_profiles_maxi = i 3184 delim_old = delim_old + delim 3185 ENDDO 3186 ENDDO 3166 ! 3167 !-- Each profile defined in cross_profiles is written to an array 3168 !-- (cross_profiles_char). The number of the respective coordinate 3169 !-- system is assigned in a second array (cross_profiles_numb). 3170 k = 1 3171 3172 DO i = 1, crmax 3173 3174 IF ( TRIM( cross_profiles_adj(i) ) == ' ' ) EXIT 3175 delim_old = 0 3176 3177 DO j = 1, crmax 3178 delim = INDEX( cross_profiles_adj(i)(delim_old+1:), ' ' ) 3179 IF ( delim == 1 ) EXIT 3180 kk = MIN( crmax, k ) 3181 cross_profiles_char(kk) = cross_profiles_adj(i)(delim_old+1: & 3182 delim_old+delim-1) 3183 cross_profiles_numb(kk) = i 3184 k = k + 1 3185 cross_profiles_maxi = i 3186 delim_old = delim_old + delim 3187 ENDDO 3188 3189 ENDDO 3187 3190 3188 3191 cross_profiles_count = MIN( crmax, k-1 ) 3189 3190 3192 ! 3191 3193 !-- Check if all profiles defined in cross_profiles are defined in 3192 3194 !-- data_output_pr. If not, they will be skipped. 3193 3195 cross_profiles_log = .FALSE. 3196 message_string = '' 3197 3198 DO i = 1, cross_profiles_count 3199 DO j = 1, dopr_n 3200 3201 IF ( TRIM(cross_profiles_char(i)) == TRIM(data_output_pr(j)) ) & 3202 THEN 3203 EXIT 3204 ENDIF 3205 3206 IF ( j == dopr_n ) THEN 3207 cross_profiles_numb(i) = 999999 3208 cross_profiles_log = .TRUE. 3209 message_string = TRIM( message_string ) // ', ' // & 3210 TRIM( cross_profiles_char(i) ) 3211 ENDIF 3212 3213 ENDDO 3214 ENDDO 3215 3216 IF ( cross_profiles_log ) THEN 3217 message_string = TRIM( message_string ) // ' is/are not' // & 3218 ' defined in data_output_pr.' 3219 CALL message( 'define_netcdf_header', 'PA0352', 0, 0, 0, 6, 0 ) 3220 ENDIF 3221 3222 ! 3223 !-- Check if all profiles defined in data_output_pr are defined in 3224 !-- cross_profiles. If not, they will be added to cross_profiles. 3194 3225 cross_profiles_log = .FALSE. 3195 3226 message_string = ' ' 3196 3227 3197 DO i = 1, cross_profiles_count 3198 DO j = 1, dopr_n 3199 IF ( TRIM(cross_profiles_char(i) ) == TRIM(data_output_pr(j)) ) & 3200 EXIT 3201 IF ( j == dopr_n) THEN 3202 cross_profiles_numb(i) = 999999 3203 cross_profiles_log = .TRUE. 3204 message_string = TRIM(message_string) // ', ' // & 3205 TRIM(cross_profiles_char(i)) 3206 ENDIF 3207 ENDDO 3208 ENDDO 3209 3210 IF (cross_profiles_log) THEN 3211 message_string = TRIM(message_string(2:)) // ' is/are not' // & 3212 ' defined in data_output_pr.' 3213 CALL message( 'define_netcdf_header', 'PA0352', 0, 0, 0, 6, 0 ) 3214 ENDIF 3215 3216 ! 3217 !-- Check if all profiles defined in data_output_pr are defined in 3218 !-- cross_profiles. If not, they will be added to cross_profiles. 3219 3220 cross_profiles_log = .FALSE. 3221 message_string = ' ' 3222 3223 DO i = 1, dopr_n 3224 DO j = 1, cross_profiles_count 3225 IF ( TRIM( cross_profiles_char(j) ) == TRIM( data_output_pr(i)) )& 3226 EXIT 3227 IF ( j == cross_profiles_count ) THEN 3228 cross_profiles_count = cross_profiles_count + 1 3229 cross_profiles_maxi = cross_profiles_maxi + 1 3230 cross_profiles_char( MIN( crmax, cross_profiles_count ) ) = & 3228 DO i = 1, dopr_n 3229 DO j = 1, cross_profiles_count 3230 3231 IF ( TRIM(cross_profiles_char(j)) == TRIM(data_output_pr(i))) & 3232 THEN 3233 EXIT 3234 ENDIF 3235 3236 IF ( j == cross_profiles_count ) THEN 3237 cross_profiles_count = cross_profiles_count + 1 3238 cross_profiles_maxi = cross_profiles_maxi + 1 3239 cross_profiles_char(MIN( crmax, cross_profiles_count )) = & 3231 3240 TRIM( data_output_pr(i) ) 3232 cross_profiles_numb( MIN( crmax, cross_profiles_count ) ) =&3241 cross_profiles_numb(MIN( crmax, cross_profiles_count )) = & 3233 3242 cross_profiles_maxi 3234 cross_profiles_log = .TRUE. 3235 message_string = TRIM( message_string ) // ', '& 3236 // TRIM( data_output_pr(i) ) 3237 ENDIF 3238 ENDDO 3239 ENDDO 3240 3241 IF ( cross_profiles_log ) THEN 3242 message_string = TRIM(message_string(2:)) // & 3243 ' has/have been added to cross_profiles.' 3244 CALL message( 'define_netcdf_header', 'PA0353', 0, 0, 0, 6, 0 ) 3245 ENDIF 3246 3247 IF ( cross_profiles_count .ge. crmax ) THEN 3248 message_string = 'It is not possible to arrange more than '& 3249 // '100 profiles with cross_profiles.' 3250 CALL message( 'define_netcdf_header', 'PA0354', 0, 0, 0, 6, 0 ) 3251 ENDIF 3243 cross_profiles_log = .TRUE. 3244 message_string = TRIM( message_string ) // ', ' // & 3245 TRIM( data_output_pr(i) ) 3246 ENDIF 3247 3248 ENDDO 3249 ENDDO 3250 3251 IF ( cross_profiles_log ) THEN 3252 message_string = TRIM(message_string(2:)) // ' has/have been' // & 3253 ' added to cross_profiles.' 3254 CALL message( 'define_netcdf_header', 'PA0353', 0, 0, 0, 6, 0 ) 3255 ENDIF 3256 3257 IF ( cross_profiles_count >= crmax ) THEN 3258 message_string = 'It is not allowed to arrange more than '& 3259 // '100 profiles with cross_profiles.' 3260 CALL message( 'define_netcdf_header', 'PA0354', 0, 0, 0, 6, 0 ) 3261 ENDIF 3252 3262 3253 3263 ! … … 3255 3265 !-- used by palmplot. Each profile is separated by ",", each cross is 3256 3266 !-- separated by ";". 3257 3258 char_cross_profiles = ';' 3259 id_last = 1 3260 3261 DO i = 1, cross_profiles_count 3262 IF ( cross_profiles_numb(i) /= 999999 ) THEN 3263 IF ( TRIM( char_cross_profiles ) == ';' ) THEN 3264 char_cross_profiles = TRIM( char_cross_profiles ) // & 3265 TRIM( cross_profiles_char(i) ) 3266 ELSEIF ( id_last == cross_profiles_numb(i) ) THEN 3267 char_cross_profiles = TRIM( char_cross_profiles ) // & 3268 ',' // TRIM( cross_profiles_char(i) ) 3269 ELSE 3270 char_cross_profiles = TRIM( char_cross_profiles ) // & 3271 ';' // TRIM( cross_profiles_char(i) ) 3272 ENDIF 3273 id_last = cross_profiles_numb(i) 3274 ENDIF 3275 ENDDO 3276 3267 char_cross_profiles = ';' 3268 id_last = 1 3269 3270 DO i = 1, cross_profiles_count 3271 3272 IF ( cross_profiles_numb(i) /= 999999 ) THEN 3273 IF ( TRIM( char_cross_profiles ) == ';' ) THEN 3274 char_cross_profiles = TRIM( char_cross_profiles ) // & 3275 TRIM( cross_profiles_char(i) ) 3276 ELSEIF ( id_last == cross_profiles_numb(i) ) THEN 3277 char_cross_profiles = TRIM( char_cross_profiles ) // & 3278 ',' // TRIM( cross_profiles_char(i) ) 3279 ELSE 3280 char_cross_profiles = TRIM( char_cross_profiles ) // & 3281 ';' // TRIM( cross_profiles_char(i) ) 3282 ENDIF 3283 id_last = cross_profiles_numb(i) 3284 ENDIF 3285 3286 ENDDO 3287 3277 3288 char_cross_profiles = TRIM( char_cross_profiles ) // ';' 3278 3289 3279 3290 nc_stat = NF90_PUT_ATT( id_set_pr, NF90_GLOBAL, 'cross_profiles', & 3280 3291 TRIM( char_cross_profiles ) ) 3281 3292 CALL handle_netcdf_error( 'netcdf', 521 ) 3282 3293 3283 3294 ! -
palm/trunk/SOURCE/parin.f90
r941 r964 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! -cross_normalized_x, cross_normalized_y, cross_xtext, z_max_do1d, 7 ! z_max_do1d_normalized 7 8 ! 8 9 ! Former revisions: … … 200 201 201 202 NAMELIST /d3par/ averaging_interval, averaging_interval_pr, & 202 create_disturbances, cross_normalized_x, cross_normalized_y,&203 cross_profiles, cross_ts_uymax, cross_ts_uymin, cross_xtext,&203 create_disturbances, & 204 cross_profiles, cross_ts_uymax, cross_ts_uymin, & 204 205 data_output, data_output_format, data_output_masks, & 205 206 data_output_pr, data_output_2d_on_each_pe, disturbance_amplitude, & … … 219 220 skip_time_do2d_xz, skip_time_do2d_yz, skip_time_do3d, & 220 221 skip_time_domask, synchronous_exchange, termination_time_needed, & 221 use_prior_plot1d_parameters, z_max_do1d, z_max_do1d_normalized, & 222 z_max_do2d 222 use_prior_plot1d_parameters, z_max_do2d 223 223 224 224
Note: See TracChangeset
for help on using the changeset viewer.