Changeset 354 for palm/trunk/SOURCE


Ignore:
Timestamp:
Jul 13, 2009 1:14:25 PM (15 years ago)
Author:
maronga
Message:

xy cross section output of sensible and latent heatflux is now available

Location:
palm/trunk/SOURCE
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/CURRENT_MODIFICATIONS

    r348 r354  
    4040(data_output_2d, user_data_output_2d)
    4141
    42 check_for_restart, check_parameters, data_output_2d, data_output_3d, data_output_dvrp, data_output_profiles, data_output_ptseries, data_output_spectra, data_output_tseries, init_coupling, init_dvrp, init_grid, init_3d_model, header, modules, mrun, package_parin, parin, prognostic_equations, read_var_list, surface_coupler, timestep, time_integration, user_check_parameters, user_data_output_2d, user_data_output_dvrp, user_header, user_init_grid, write_var_list
     42xy cross section output of surface heatfluxes (latent, sensible)
     43(average_3d_data, check_parameters, data_output_2d, modules, read_3d_binary,
     44sum_up_3d_data, write_3d_binary)
     45
     46
     47average_3d_data, check_for_restart, check_parameters, data_output_2d, data_output_3d, data_output_dvrp, data_output_profiles, data_output_ptseries, data_output_spectra, data_output_tseries, init_coupling, init_dvrp, init_grid, init_3d_model, header, modules, mrun, package_parin, parin, prognostic_equations, read_3d_binary, read_var_list, surface_coupler, timestep, time_integration, user_check_parameters, user_data_output_2d, user_data_output_dvrp, user_header, user_init_grid, write_3d_binary, write_var_list
    4348
    4449New: set_particle_attributes, set_slicer_attributes_dvrp
  • palm/trunk/SOURCE/average_3d_data.f90

    r98 r354  
    6363             ENDDO
    6464
     65          CASE ( 'qsws*' )
     66             DO  i = nxl-1, nxr+1
     67                DO  j = nys-1, nyn+1
     68                   qsws_av(j,i) = qsws_av(j,i) / REAL( average_count_3d )
     69                ENDDO
     70             ENDDO
     71
    6572          CASE ( 'lwp*' )
    6673             DO  i = nxl-1, nxr+1
     
    168175                ENDDO
    169176             ENDDO
    170              
     177         
    171178          CASE ( 'rho' )
    172179             DO  i = nxl-1, nxr+1
     
    193200                      sa_av(k,j,i) = sa_av(k,j,i) / REAL( average_count_3d )
    194201                   ENDDO
     202                ENDDO
     203             ENDDO
     204             
     205         CASE ( 'shf*' )
     206             DO  i = nxl-1, nxr+1
     207                DO  j = nys-1, nyn+1
     208                   shf_av(j,i) = shf_av(j,i) / REAL( average_count_3d )
    195209                ENDDO
    196210             ENDDO
  • palm/trunk/SOURCE/check_parameters.f90

    r343 r354  
    23652365             unit = 'psu'
    23662366
    2367           CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'z0*' )
     2367          CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'qsws*', 'shf*', 'z0*' )
    23682368             IF ( k == 0  .OR.  data_output(i)(ilen-2:ilen) /= '_xy' )  THEN
    23692369                message_string = 'illegal value for data_output: "' // &
     
    23922392                CALL message( 'check_parameters', 'PA0112', 1, 2, 0, 6, 0 )
    23932393             ENDIF
    2394 
    2395 
    2396              IF ( TRIM( var ) == 'u*'   )  unit = 'm/s'
    2397              IF ( TRIM( var ) == 't*'   )  unit = 'K'
    2398              IF ( TRIM( var ) == 'lwp*' )  unit = 'kg/kg*m'
    2399              IF ( TRIM( var ) == 'pra*' )  unit = 'mm'
    2400              IF ( TRIM( var ) == 'prr*' )  unit = 'mm/s'
    2401              IF ( TRIM( var ) == 'z0*'  )  unit = 'm'
     2394             IF ( TRIM( var ) == 'qsws*'  .AND.  .NOT. humidity )  THEN
     2395                message_string = 'output of "' // TRIM( var ) // '" requi' // &
     2396                                 'res humidity = .TRUE.'
     2397                CALL message( 'check_parameters', 'PA0322', 1, 2, 0, 6, 0 )
     2398             ENDIF
     2399
     2400             IF ( TRIM( var ) == 'lwp*'   )  unit = 'kg/kg*m'
     2401             IF ( TRIM( var ) == 'pra*'   )  unit = 'mm'
     2402             IF ( TRIM( var ) == 'prr*'   )  unit = 'mm/s'
     2403             IF ( TRIM( var ) == 'qsws*'  )  unit = 'kgm/kgs'
     2404             IF ( TRIM( var ) == 'shf*'   )  unit = 'K*m/s'
     2405             IF ( TRIM( var ) == 't*'     )  unit = 'K'
     2406             IF ( TRIM( var ) == 'u*'     )  unit = 'm/s'
     2407             IF ( TRIM( var ) == 'z0*'    )  unit = 'm'
     2408
    24022409
    24032410          CASE ( 'p', 'pt', 'u', 'v', 'w' )
  • palm/trunk/SOURCE/data_output_2d.f90

    r343 r354  
    375375                IF ( mode == 'xy' )  level_z = zu
    376376
     377             CASE ( 'qsws*_xy' )        ! 2d-array
     378                IF ( av == 0 ) THEN
     379                   DO  i = nxl-1, nxr+1
     380                      DO  j = nys-1, nyn+1
     381                         local_pf(i,j,nzb+1) =  qsws(j,i)
     382                      ENDDO
     383                   ENDDO
     384                ELSE
     385                   DO  i = nxl-1, nxr+1
     386                      DO  j = nys-1, nyn+1
     387                         local_pf(i,j,nzb+1) =  qsws_av(j,i)
     388                      ENDDO
     389                   ENDDO
     390                ENDIF
     391                resorted = .TRUE.
     392                two_d = .TRUE.
     393                level_z(nzb+1) = zu(nzb+1)
     394
    377395             CASE ( 'qv_xy', 'qv_xz', 'qv_yz' )
    378396                IF ( av == 0 )  THEN
     
    410428                   to_be_resorted => sa_av
    411429                ENDIF
     430
     431             CASE ( 'shf*_xy' )        ! 2d-array
     432                IF ( av == 0 ) THEN
     433                   DO  i = nxl-1, nxr+1
     434                      DO  j = nys-1, nyn+1
     435                         local_pf(i,j,nzb+1) =  shf(j,i)
     436                      ENDDO
     437                   ENDDO
     438                ELSE
     439                   DO  i = nxl-1, nxr+1
     440                      DO  j = nys-1, nyn+1
     441                         local_pf(i,j,nzb+1) =  shf_av(j,i)
     442                      ENDDO
     443                   ENDDO
     444                ENDIF
     445                resorted = .TRUE.
     446                two_d = .TRUE.
     447                level_z(nzb+1) = zu(nzb+1)
    412448
    413449             CASE ( 't*_xy' )        ! 2d-array
  • palm/trunk/SOURCE/modules.f90

    r345 r354  
    193193!------------------------------------------------------------------------------!
    194194
    195     REAL, DIMENSION(:,:), ALLOCATABLE ::  lwp_av, precipitation_rate_av, &
    196                                           ts_av, us_av, z0_av
     195    REAL, DIMENSION(:,:), ALLOCATABLE ::  lwp_av, precipitation_rate_av,       &
     196                                          qsws_av, shf_av,ts_av, us_av, z0_av
    197197
    198198    REAL, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: &
     
    312312    CHARACTER (LEN=7),  DIMENSION(100) ::  do3d_comp_prec = ' '
    313313    CHARACTER (LEN=10), DIMENSION(10)  ::  data_output_format = ' '
    314     CHARACTER (LEN=10), DIMENSION(100) ::  data_output = ' ',    &
     314    CHARACTER (LEN=11), DIMENSION(100) ::  data_output = ' ',    &
    315315                                           data_output_user = ' ', doav = ' '
    316316    CHARACTER (LEN=10), DIMENSION(300) ::  data_output_pr = ' '
  • palm/trunk/SOURCE/read_3d_binary.f90

    r277 r354  
    521521                                          tmp_2d(nysf-1:nynf+1,nxlf-1:nxrf+1)
    522522
     523                CASE ( 'qsws_av' )
     524                   IF ( .NOT. ALLOCATED( qsws_av ) )  THEN
     525                      ALLOCATE( qsws_av(nys-1:nyn+1,nxl-1:nxr+1) )
     526                   ENDIF 
     527                   IF ( k == 1 )  READ ( 13 )  tmp_2d
     528                   qsws_av(nysc-1:nync+1,nxlc-1:nxrc+1) = &
     529                                          tmp_2d(nysf-1:nynf+1,nxlf-1:nxrf+1)
     530
    523531                CASE ( 'qswst' )
    524532                   IF ( k == 1 )  READ ( 13 )  tmp_2d
     
    610618                   shf_m(nysc-1:nync+1,nxlc-1:nxrc+1) = &
    611619                                          tmp_2d(nysf-1:nynf+1,nxlf-1:nxrf+1)
    612 
     620                CASE ( 'shf_av' )
     621                   IF ( .NOT. ALLOCATED( shf_av ) )  THEN
     622                      ALLOCATE( shf_av(nys-1:nyn+1,nxl-1:nxr+1) )
     623                   ENDIF
     624                   IF ( k == 1 )  READ ( 13 )  tmp_2d
     625                   shf_av(nysc-1:nync+1,nxlc-1:nxrc+1) = &
     626                                          tmp_2d(nysf-1:nynf+1,nxlf-1:nxrf+1)
    613627                CASE ( 'spectrum_x' )
    614628                   IF ( k == 1 )  THEN
  • palm/trunk/SOURCE/sum_up_3d_data.f90

    r98 r354  
    129129                ql_vp_av = 0.0
    130130
     131             CASE ( 'qsws*' )
     132                IF ( .NOT. ALLOCATED( qsws_av ) )  THEN
     133                   ALLOCATE( qsws_av(nys-1:nyn+1,nxl-1:nxr+1) )
     134                ENDIF
     135                qsws_av = 0.0
     136
    131137             CASE ( 'qv' )
    132138                IF ( .NOT. ALLOCATED( qv_av ) )  THEN
     
    152158                ENDIF
    153159                sa_av = 0.0
     160
     161             CASE ( 'shf*' )
     162                IF ( .NOT. ALLOCATED( shf_av ) )  THEN
     163                   ALLOCATE( shf_av(nys-1:nyn+1,nxl-1:nxr+1) )
     164                ENDIF
     165                shf_av = 0.0
    154166
    155167             CASE ( 't*' )
  • palm/trunk/SOURCE/write_3d_binary.f90

    r198 r354  
    139139          WRITE ( 14 )  'qsws_m              ';  WRITE ( 14 ) qsws_m
    140140       ENDIF
     141       IF ( ALLOCATED( qsws_av ) )  THEN
     142          WRITE ( 14 )  'qsws_av             ';  WRITE ( 14 )  qsws_av
     143       ENDIF
    141144       WRITE ( 14 )  'qswst               ';  WRITE ( 14 ) qswst
    142145       IF ( timestep_scheme(1:5) /= 'runge' )  THEN
     
    182185    IF ( timestep_scheme(1:5) /= 'runge' )  THEN
    183186       WRITE ( 14 )  'shf_m               ';  WRITE ( 14 )  shf_m
     187    ENDIF
     188    IF ( ALLOCATED( shf_av ) )  THEN
     189       WRITE ( 14 )  'shf_av              ';  WRITE ( 14 )  shf_av
    184190    ENDIF
    185191    IF ( ALLOCATED( spectrum_x ) )  THEN
Note: See TracChangeset for help on using the changeset viewer.