Ignore:
Timestamp:
Aug 12, 2016 3:14:59 PM (8 years ago)
Author:
suehring
Message:

Prescribing scalar flux at model top; several bugfixes concering data output of scalars and output of flight data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/check_parameters.f90

    r1985 r1992  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! New checks for top_scalarflux
     22! Bugfixes concerning data output of profiles in case of passive_scalar
    2223!
    2324! Former revisions:
     
    17061707          message_string = 'boundary condition: bc_sa_t = "' //                &
    17071708                           TRIM( bc_sa_t ) // '" is not allowed with ' //      &
    1708                            'constant_top_salinityflux = .TRUE.'
     1709                           'top_salinityflux /= 0.0'
    17091710          CALL message( 'check_parameters', 'PA0070', 1, 2, 0, 6, 0 )
    17101711       ENDIF
     
    17491750       CALL check_bc_scalars( 's', bc_s_b, ibc_s_b, 'PA0073', 'PA0074',        &
    17501751                              constant_scalarflux, s_surface_initial_change )
     1752
     1753       IF ( top_scalarflux == 9999999.9_wp )  constant_top_scalarflux = .FALSE.
     1754!
     1755!--    A fixed scalar concentration at the top implies Dirichlet boundary
     1756!--    condition for scalar. Hence, in this case specification of a constant
     1757!--    scalar flux is forbidden.
     1758       IF ( ( ibc_s_t == 0 .OR. ibc_s_t == 2 )  .AND.  constant_top_scalarflux &
     1759               .AND.  top_scalarflux /= 0.0_wp )  THEN
     1760          message_string = 'boundary condition: bc_s_t = "' //                 &
     1761                           TRIM( bc_sa_t ) // '" is not allowed with ' //      &
     1762                           'top_scalarflux /= 0.0'
     1763          CALL message( 'check_parameters', 'PA0441', 1, 2, 0, 6, 0 )
     1764       ENDIF
    17511765    ENDIF
    17521766!
     
    22102224                CALL message( 'check_parameters', 'PA0093', 1, 2, 0, 6, 0 )
    22112225             ELSE
    2212                 dopr_index(i) = 41
     2226                dopr_index(i) = 117
    22132227                dopr_unit(i)  = 'kg/m3'
    2214                 hom(:,2,41,:) = SPREAD( zu, 2, statistic_regions+1 )
     2228                hom(:,2,117,:) = SPREAD( zu, 2, statistic_regions+1 )
    22152229                IF ( data_output_pr(i)(1:1) == '#' )  THEN
    2216                    dopr_initial_index(i) = 26
    2217                    hom(:,2,26,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2218                    hom(nzb,2,26,:)       = 0.0_wp    ! because zu(nzb) is negative
     2230                   dopr_initial_index(i) = 117
     2231                   hom(:,2,117,:)        = SPREAD( zu, 2, statistic_regions+1 )
     2232                   hom(nzb,2,117,:)      = 0.0_wp    ! because zu(nzb) is negative
    22192233                   data_output_pr(i)     = data_output_pr(i)(2:)
    22202234                ENDIF
     
    23312345                CALL message( 'check_parameters', 'PA0093', 1, 2, 0, 6, 0 )
    23322346             ELSE
    2333                 dopr_index(i) = 48
     2347                dopr_index(i) = 119
    23342348                dopr_unit(i)  = 'kg/m3 m/s'
    2335                 hom(:,2,48,:) = SPREAD( zw, 2, statistic_regions+1 )
     2349                hom(:,2,119,:) = SPREAD( zw, 2, statistic_regions+1 )
    23362350             ENDIF
    23372351
     
    23432357                CALL message( 'check_parameters', 'PA0093', 1, 2, 0, 6, 0 )
    23442358             ELSE
    2345                 dopr_index(i) = 49
     2359                dopr_index(i) = 116
    23462360                dopr_unit(i)  = 'kg/m3 m/s'
    2347                 hom(:,2,49,:) = SPREAD( zw, 2, statistic_regions+1 )
     2361                hom(:,2,116,:) = SPREAD( zw, 2, statistic_regions+1 )
    23482362             ENDIF
    23492363
     
    23552369                CALL message( 'check_parameters', 'PA0093', 1, 2, 0, 6, 0 )
    23562370             ELSE
    2357                 dopr_index(i) = 50
     2371                dopr_index(i) = 120
    23582372                dopr_unit(i)  = 'kg/m3 m/s'
    2359                 hom(:,2,50,:) = SPREAD( zw, 2, statistic_regions+1 )
     2373                hom(:,2,120,:) = SPREAD( zw, 2, statistic_regions+1 )
    23602374             ENDIF
    23612375
     
    39163930       ELSEIF ( bc_t == 'neumann' )  THEN
    39173931          ibc_t = 1
     3932       ELSEIF ( bc_t == 'initial_gradient' )  THEN
     3933          ibc_t = 2
    39183934       ELSEIF ( bc_t == 'nested' )  THEN
    39193935          ibc_t = 3
Note: See TracChangeset for help on using the changeset viewer.