Ignore:
Timestamp:
Aug 1, 2016 2:48:05 PM (8 years ago)
Author:
suehring
Message:

Bugfix: checking for bottom and top boundary condition for humidity and scalars

File:
1 edited

Legend:

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

    r1973 r1984  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! Bugfix: checking for bottom and top boundary condition for humidity and scalars
    2222!
    2323! Former revisions:
     
    780780                  '''single_street_canyon'' & or ''read_from_file''.',         &
    781781                  ' & Choose ''cell_edge'' or ''cell_center''.'
    782              CALL message( 'user_check_parameters', 'PA0239', 1, 2, 0, 6, 0 )
     782             CALL message( 'check_parameters', 'PA0239', 1, 2, 0, 6, 0 )
    783783          ELSE
    784784!--          The default value is applicable here.
     
    796796               'The value for "topography_grid_convention" is ',               &
    797797               'not recognized. & Choose ''cell_edge'' or ''cell_center''.'
    798           CALL message( 'user_check_parameters', 'PA0240', 1, 2, 0, 6, 0 )
     798          CALL message( 'check_parameters', 'PA0240', 1, 2, 0, 6, 0 )
    799799       ENDIF
    800800
     
    17121712!-- Set boundary conditions for total water content
    17131713    IF ( humidity )  THEN
    1714        CALL check_bc_scalars( 'q', bc_q_b, bc_q_t, ibc_q_b, ibc_q_t,           &
    1715                               'PA0071', 'PA0072', 'PA0073', 'PA0074',          &
    1716                               surface_waterflux, constant_waterflux,           &
    1717                               q_surface_initial_change )
     1714       CALL set_bc_scalars( 'q', bc_q_b, bc_q_t, ibc_q_b, ibc_q_t,           &
     1715                            'PA0071', 'PA0072' )
    17181716
    17191717       IF ( surface_waterflux == 9999999.9_wp  )  THEN
     
    17371735       ENDIF
    17381736
     1737       CALL check_bc_scalars( 'q', bc_q_b, ibc_q_b, 'PA0073', 'PA0074',        &
     1738                              constant_waterflux, q_surface_initial_change )
     1739
    17391740    ENDIF
    17401741   
    17411742    IF ( passive_scalar )  THEN
    1742        CALL check_bc_scalars( 's', bc_s_b, bc_s_t, ibc_s_b, ibc_s_t,           &
    1743                               'PA0071', 'PA0072', 'PA0073', 'PA0074',          &
    1744                               surface_scalarflux, constant_scalarflux,         &
    1745                               s_surface_initial_change )
     1743       CALL set_bc_scalars( 's', bc_s_b, bc_s_t, ibc_s_b, ibc_s_t,             &
     1744                            'PA0071', 'PA0072' )
     1745
     1746       CALL check_bc_scalars( 's', bc_s_b, ibc_s_b, 'PA0073', 'PA0074',        &
     1747                              constant_scalarflux, s_surface_initial_change )
    17461748    ENDIF
    17471749!
     
    38753877! Description:
    38763878! ------------
    3877 !> Check the bottom and top boundary conditions for humidity and scalars.
     3879!> Set the bottom and top boundary conditions for humidity and scalars.
    38783880!------------------------------------------------------------------------------!
    38793881
    3880     SUBROUTINE check_bc_scalars( sq, bc_b, bc_t, ibc_b, ibc_t,                 &
    3881                                  err_nr_b, err_nr_t, err_nr_3, err_nr_4,       &
    3882                                  surface_flux, constant_flux, surface_initial_change )
     3882    SUBROUTINE set_bc_scalars( sq, bc_b, bc_t, ibc_b, ibc_t, err_nr_b, err_nr_t )
    38833883
    38843884
     
    38903890       CHARACTER (LEN=*)   ::  err_nr_b
    38913891       CHARACTER (LEN=*)   ::  err_nr_t
    3892        CHARACTER (LEN=*)   ::  err_nr_3
    3893        CHARACTER (LEN=*)   ::  err_nr_4
    3894        
     3892
    38953893       INTEGER(iwp)        ::  ibc_b
    38963894       INTEGER(iwp)        ::  ibc_t
    3897        
    3898        LOGICAL             ::  constant_flux
    3899        
    3900        REAL(wp)            ::  surface_flux
    3901        REAL(wp)            ::  surface_initial_change
    3902        
    3903 
     3895
     3896!
     3897!--    Set Integer flags and check for possilbe errorneous settings for bottom
     3898!--    boundary condition
    39043899       IF ( bc_b == 'dirichlet' )  THEN
    39053900          ibc_b = 0
     
    39113906          CALL message( 'check_parameters', err_nr_b, 1, 2, 0, 6, 0 )
    39123907       ENDIF
    3913        
     3908!
     3909!--    Set Integer flags and check for possilbe errorneous settings for top
     3910!--    boundary condition
    39143911       IF ( bc_t == 'dirichlet' )  THEN
    39153912          ibc_t = 0
     
    39233920          CALL message( 'check_parameters', err_nr_t, 1, 2, 0, 6, 0 )
    39243921       ENDIF
    3925  
     3922       
     3923   
     3924    END SUBROUTINE set_bc_scalars   
     3925
     3926
     3927
     3928!------------------------------------------------------------------------------!
     3929! Description:
     3930! ------------
     3931!> Check for consistent settings of bottom boundary conditions for humidity
     3932!> and scalars.
     3933!------------------------------------------------------------------------------!
     3934
     3935    SUBROUTINE check_bc_scalars( sq, bc_b, ibc_b,                 &
     3936                                 err_nr_1, err_nr_2,       &
     3937                                 constant_flux, surface_initial_change )
     3938
     3939
     3940       IMPLICIT NONE   
     3941   
     3942       CHARACTER (LEN=1)   ::  sq                       !<
     3943       CHARACTER (LEN=*)   ::  bc_b
     3944       CHARACTER (LEN=*)   ::  err_nr_1
     3945       CHARACTER (LEN=*)   ::  err_nr_2
     3946       
     3947       INTEGER(iwp)        ::  ibc_b
     3948       
     3949       LOGICAL             ::  constant_flux
     3950       
     3951       REAL(wp)            ::  surface_initial_change
     3952 
    39263953!
    39273954!--    A given surface value implies Dirichlet boundary condition for
     
    39343961                              '= "' // TRIM( bc_b ) // '" is not allowed with ' // &
    39353962                              'prescribed surface flux'
    3936              CALL message( 'check_parameters', err_nr_3, 1, 2, 0, 6, 0 )
     3963             CALL message( 'check_parameters', err_nr_1, 1, 2, 0, 6, 0 )
    39373964          ENDIF
    39383965       ENDIF
    3939        IF ( constant_waterflux  .AND.  surface_initial_change /= 0.0_wp )  THEN
     3966       IF ( constant_flux  .AND.  surface_initial_change /= 0.0_wp )  THEN
    39403967          WRITE( message_string, * )  'a prescribed surface flux is not allo', &
    39413968                 'wed with ', sq, '_surface_initial_change (/=0) = ',          &
    39423969                 surface_initial_change
    3943           CALL message( 'check_parameters', err_nr_4, 1, 2, 0, 6, 0 )
     3970          CALL message( 'check_parameters', err_nr_2, 1, 2, 0, 6, 0 )
    39443971       ENDIF 
    39453972       
Note: See TracChangeset for help on using the changeset viewer.