Ignore:
Timestamp:
Nov 1, 2018 4:00:30 PM (3 years ago)
Author:
gronemeier
Message:

reworked check for output quantities; assign new palm-error numbers, set unit according to data standard

File:
1 edited

Legend:

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

    r3475 r3479  
    2727! -----------------
    2828! $Id$
     29! - reworked check for output quantities
     30! - assign new palm-error numbers
     31! - set unit according to data standard.
     32!
     33! 3475 2018-10-30 21:16:31Z kanani
    2934! Add option for using MRT from RTM instead of simplified global value
    3035!
     
    482487 SUBROUTINE biom_check_data_output( var, unit )
    483488
    484        USE control_parameters,                                                 &
    485            ONLY: data_output, message_string
    486 
    487        IMPLICIT NONE
    488 
    489        CHARACTER (LEN=*) ::  unit     !< The unit for the variable var
    490        CHARACTER (LEN=*) ::  var      !< The variable in question
    491 
    492 
    493                 unit = '°C'
    494                 IF ( .NOT. biometeorology ) THEN
    495                   message_string = 'output of "' // TRIM( var ) // '" req' //  &
    496                         'uires biometeorology = .TRUE. in initialisati' &
    497                         // 'on_parameters'
    498                   CALL message( 'check_parameters', 'PA0114', 1, 2, 0, 6, 0 )
    499                   unit = 'illegal'
    500                 ENDIF
    501                 IF ( .NOT.  radiation ) THEN
    502                    message_string = 'output of "' // TRIM( var ) // '" require'&
    503                                     // 's radiation = .TRUE.'
    504                    CALL message( 'check_parameters', 'PA0509', 1, 2, 0, 6, 0 )
    505                    unit = 'illegal'
    506                 ENDIF
    507                 IF ( mrt_nlevels == 0 ) THEN
    508                    message_string = 'output of "' // TRIM( var ) // '" require'&
    509                                     // 's mrt_nlevels > 0'
    510                    CALL message( 'check_parameters', 'PA0510', 1, 2, 0, 6, 0 )
    511                    unit = 'illegal'
    512                 ENDIF
     489    USE control_parameters,                                                    &
     490        ONLY: data_output, message_string
     491
     492    IMPLICIT NONE
     493
     494    CHARACTER (LEN=*) ::  unit     !< The unit for the variable var
     495    CHARACTER (LEN=*) ::  var      !< The variable in question
     496
     497
     498    SELECT CASE ( TRIM( var ) )
     499     
     500       CASE( 'biom_tmrt', 'biom_mrt', 'biom_pet', 'biom_pt', 'biom_utci' )
     501          unit = 'degree_C'
     502
     503       CASE DEFAULT
     504          unit = 'illegal'
     505
     506    END SELECT
     507
     508    IF ( unit /= 'illegal' )  THEN
     509!
     510!--    Futher checks if output belongs to biometeorology
     511       IF ( .NOT. biometeorology .OR. .NOT. radiation ) THEN
     512         message_string = 'output of "' // TRIM( var ) // '" req' //  &
     513               'uires biometeorology = .TRUE. and radiation = .TRUE. ' &
     514               // 'in initialisation_parameters'
     515         CALL message( 'biom_check_data_output', 'PA0561', 1, 2, 0, 6, 0 )
     516       ENDIF
     517       IF ( mrt_nlevels == 0 ) THEN
     518          message_string = 'output of "' // TRIM( var ) // '" require'&
     519                           // 's mrt_nlevels > 0'
     520          CALL message( 'biom_check_data_output', 'PA0562', 1, 2, 0, 6, 0 )
     521       ENDIF
     522
     523    ENDIF
    513524
    514525 END SUBROUTINE biom_check_data_output
Note: See TracChangeset for help on using the changeset viewer.