Ignore:
Timestamp:
Apr 8, 2014 3:21:23 PM (10 years ago)
Author:
heinze
Message:

REAL constants provided with KIND-attribute

File:
1 edited

Legend:

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

    r1331 r1353  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! REAL constants provided with KIND-attribute
    2323!
    2424! Former revisions:
     
    238238   
    239239    REAL(wp)    ::  gradient                         !:
    240     REAL(wp)    ::  remote = 0.0                     !:
     240    REAL(wp)    ::  remote = 0.0_wp                  !:
    241241    REAL(wp)    ::  simulation_time_since_reference  !:
    242242
     
    307307          CALL message( 'check_parameters', 'PA0004', 1, 2, 0, 6, 0 )
    308308       ENDIF
    309        IF ( dt_coupling <= 0.0 )  THEN
     309       IF ( dt_coupling <= 0.0_wp )  THEN
    310310#if ! defined( __check )
    311311          IF ( myid == 0  ) THEN
     
    505505!
    506506!-- Check if vertical grid stretching is used together with particles
    507     IF ( dz_stretch_level < 100000.0 .AND. particle_advection )  THEN
     507    IF ( dz_stretch_level < 100000.0_wp .AND. particle_advection )  THEN
    508508       message_string = 'Vertical grid stretching is not allowed together ' // &
    509509                        'with particle advection.'
     
    677677       CALL message( 'check_parameters', 'PA0024', 1, 2, 0, 6, 0 )
    678678    ENDIF
    679     IF ( scalar_advec == 'bc-scheme'  .AND.  loop_optimization == 'cache' ) &
     679    IF ( scalar_advec == 'bc-scheme'  .AND.  loop_optimization == 'cache' )    &
    680680    THEN
    681681       message_string = 'advection_scheme scalar_advec = "' &
     
    685685    ENDIF
    686686
    687     IF ( use_sgs_for_particles  .AND.  .NOT. use_upstream_for_tke .AND.       &
     687    IF ( use_sgs_for_particles  .AND.  .NOT. use_upstream_for_tke .AND.        &
    688688         scalar_advec /= 'ws-scheme' )  THEN
    689689       use_upstream_for_tke = .TRUE.
    690        message_string = 'use_upstream_for_tke set .TRUE. because ' // &
    691                         'use_sgs_for_particles = .TRUE. '          // &
     690       message_string = 'use_upstream_for_tke set .TRUE. because ' //          &
     691                        'use_sgs_for_particles = .TRUE. '          //          &
    692692                        'and scalar_advec /= ws-scheme'
    693693       CALL message( 'check_parameters', 'PA0025', 0, 1, 0, 6, 0 )
     
    695695
    696696    IF ( use_sgs_for_particles  .AND.  curvature_solution_effects )  THEN
    697        message_string = 'use_sgs_for_particles = .TRUE. not allowed with ' // &
     697       message_string = 'use_sgs_for_particles = .TRUE. not allowed with ' //  &
    698698                        'curvature_solution_effects = .TRUE.'
    699699       CALL message( 'check_parameters', 'PA0349', 1, 2, 0, 6, 0 )
     
    719719
    720720       CASE DEFAULT
    721           message_string = 'unknown timestep scheme: timestep_scheme = "' // &
     721          message_string = 'unknown timestep scheme: timestep_scheme = "' //   &
    722722                           TRIM( timestep_scheme ) // '"'
    723723          CALL message( 'check_parameters', 'PA0027', 1, 2, 0, 6, 0 )
     
    725725    END SELECT
    726726
    727     IF ( (momentum_advec /= 'pw-scheme' .AND. momentum_advec /= 'ws-scheme') &
     727    IF ( (momentum_advec /= 'pw-scheme' .AND. momentum_advec /= 'ws-scheme')   &
    728728         .AND. timestep_scheme(1:5) == 'runge' ) THEN
    729729       message_string = 'momentum advection scheme "' // &
     
    833833    ENDIF
    834834
    835     IF ( plant_canopy .AND. ( drag_coefficient == 0.0 ) ) THEN
     835    IF ( plant_canopy .AND. ( drag_coefficient == 0.0_wp ) ) THEN
    836836       message_string = 'plant_canopy = .TRUE. requires a non-zero drag ' // &
    837837                        'coefficient & given value is drag_coefficient = 0.0'
     
    872872       IF ( ocean )           sa_init = sa_surface
    873873       IF ( passive_scalar )  q_init  = s_surface
    874        IF ( plant_canopy )    lad = 0.0
     874       IF ( plant_canopy )    lad = 0.0_wp
    875875
    876876!
     
    879879!--    (component ug)
    880880       i = 1
    881        gradient = 0.0
     881       gradient = 0.0_wp
    882882
    883883       IF ( .NOT. ocean )  THEN
     
    888888             IF ( i < 11 ) THEN
    889889                IF ( ug_vertical_gradient_level(i) < zu(k)  .AND. &
    890                      ug_vertical_gradient_level(i) >= 0.0 )  THEN
    891                    gradient = ug_vertical_gradient(i) / 100.0
     890                     ug_vertical_gradient_level(i) >= 0.0_wp )  THEN
     891                   gradient = ug_vertical_gradient(i) / 100.0_wp
    892892                   ug_vertical_gradient_level_ind(i) = k - 1
    893893                   i = i + 1
    894894                ENDIF
    895895             ENDIF       
    896              IF ( gradient /= 0.0 )  THEN
     896             IF ( gradient /= 0.0_wp )  THEN
    897897                IF ( k /= 1 )  THEN
    898898                   ug(k) = ug(k-1) + dzu(k) * gradient
     
    912912             IF ( i < 11 ) THEN
    913913                IF ( ug_vertical_gradient_level(i) > zu(k)  .AND. &
    914                      ug_vertical_gradient_level(i) <= 0.0 )  THEN
    915                    gradient = ug_vertical_gradient(i) / 100.0
     914                     ug_vertical_gradient_level(i) <= 0.0_wp )  THEN
     915                   gradient = ug_vertical_gradient(i) / 100.0_wp
    916916                   ug_vertical_gradient_level_ind(i) = k + 1
    917917                   i = i + 1
    918918                ENDIF
    919919             ENDIF
    920              IF ( gradient /= 0.0 )  THEN
     920             IF ( gradient /= 0.0_wp )  THEN
    921921                IF ( k /= nzt )  THEN
    922922                   ug(k) = ug(k+1) - dzu(k+1) * gradient
    923923                ELSE
    924                    ug(k)   = ug_surface - 0.5 * dzu(k+1) * gradient
    925                    ug(k+1) = ug_surface + 0.5 * dzu(k+1) * gradient
     924                   ug(k)   = ug_surface - 0.5_wp * dzu(k+1) * gradient
     925                   ug(k+1) = ug_surface + 0.5_wp * dzu(k+1) * gradient
    926926                ENDIF
    927927             ELSE
     
    935935!--    In case of no given gradients for ug, choose a zero gradient
    936936       IF ( ug_vertical_gradient_level(1) == -9999999.9_wp )  THEN
    937           ug_vertical_gradient_level(1) = 0.0
     937          ug_vertical_gradient_level(1) = 0.0_wp
    938938       ENDIF 
    939939
     
    943943!--    (component vg)
    944944       i = 1
    945        gradient = 0.0
     945       gradient = 0.0_wp
    946946
    947947       IF ( .NOT. ocean )  THEN
     
    952952             IF ( i < 11 ) THEN
    953953                IF ( vg_vertical_gradient_level(i) < zu(k)  .AND. &
    954                      vg_vertical_gradient_level(i) >= 0.0 )  THEN
    955                    gradient = vg_vertical_gradient(i) / 100.0
     954                     vg_vertical_gradient_level(i) >= 0.0_wp )  THEN
     955                   gradient = vg_vertical_gradient(i) / 100.0_wp
    956956                   vg_vertical_gradient_level_ind(i) = k - 1
    957957                   i = i + 1
    958958                ENDIF
    959959             ENDIF
    960              IF ( gradient /= 0.0 )  THEN
     960             IF ( gradient /= 0.0_wp )  THEN
    961961                IF ( k /= 1 )  THEN
    962962                   vg(k) = vg(k-1) + dzu(k) * gradient
     
    976976             IF ( i < 11 ) THEN
    977977                IF ( vg_vertical_gradient_level(i) > zu(k)  .AND. &
    978                      vg_vertical_gradient_level(i) <= 0.0 )  THEN
    979                    gradient = vg_vertical_gradient(i) / 100.0
     978                     vg_vertical_gradient_level(i) <= 0.0_wp )  THEN
     979                   gradient = vg_vertical_gradient(i) / 100.0_wp
    980980                   vg_vertical_gradient_level_ind(i) = k + 1
    981981                   i = i + 1
    982982                ENDIF
    983983             ENDIF
    984              IF ( gradient /= 0.0 )  THEN
     984             IF ( gradient /= 0.0_wp )  THEN
    985985                IF ( k /= nzt )  THEN
    986986                   vg(k) = vg(k+1) - dzu(k+1) * gradient
    987987                ELSE
    988                    vg(k)   = vg_surface - 0.5 * dzu(k+1) * gradient
    989                    vg(k+1) = vg_surface + 0.5 * dzu(k+1) * gradient
     988                   vg(k)   = vg_surface - 0.5_wp * dzu(k+1) * gradient
     989                   vg(k+1) = vg_surface + 0.5_wp * dzu(k+1) * gradient
    990990                ENDIF
    991991             ELSE
     
    999999!--    In case of no given gradients for vg, choose a zero gradient
    10001000       IF ( vg_vertical_gradient_level(1) == -9999999.9_wp )  THEN
    1001           vg_vertical_gradient_level(1) = 0.0
     1001          vg_vertical_gradient_level(1) = 0.0_wp
    10021002       ENDIF
    10031003
     
    10101010          v_init = vg
    10111011
    1012        ELSEIF ( u_profile(1) == 0.0  .AND.  v_profile(1) == 0.0 )  THEN
    1013 
    1014           IF ( uv_heights(1) /= 0.0 )  THEN
     1012       ELSEIF ( u_profile(1) == 0.0_wp  .AND.  v_profile(1) == 0.0_wp )  THEN
     1013
     1014          IF ( uv_heights(1) /= 0.0_wp )  THEN
    10151015             message_string = 'uv_heights(1) must be 0.0'
    10161016             CALL message( 'check_parameters', 'PA0345', 1, 2, 0, 6, 0 )
     
    10201020
    10211021          kk = 1
    1022           u_init(0) = 0.0
    1023           v_init(0) = 0.0
     1022          u_init(0) = 0.0_wp
     1023          v_init(0) = 0.0_wp
    10241024
    10251025          DO  k = 1, nz+1
     
    10581058
    10591059          i = 1
    1060           gradient = 0.0
     1060          gradient = 0.0_wp
    10611061
    10621062          IF ( .NOT. ocean )  THEN
     
    10661066                IF ( i < 11 ) THEN
    10671067                   IF ( pt_vertical_gradient_level(i) < zu(k)  .AND. &
    1068                         pt_vertical_gradient_level(i) >= 0.0 )  THEN
    1069                       gradient = pt_vertical_gradient(i) / 100.0
     1068                        pt_vertical_gradient_level(i) >= 0.0_wp )  THEN
     1069                      gradient = pt_vertical_gradient(i) / 100.0_wp
    10701070                      pt_vertical_gradient_level_ind(i) = k - 1
    10711071                      i = i + 1
    10721072                   ENDIF
    10731073                ENDIF
    1074                 IF ( gradient /= 0.0 )  THEN
     1074                IF ( gradient /= 0.0_wp )  THEN
    10751075                   IF ( k /= 1 )  THEN
    10761076                      pt_init(k) = pt_init(k-1) + dzu(k) * gradient
     
    10891089                IF ( i < 11 ) THEN
    10901090                   IF ( pt_vertical_gradient_level(i) > zu(k)  .AND. &
    1091                         pt_vertical_gradient_level(i) <= 0.0 )  THEN
    1092                       gradient = pt_vertical_gradient(i) / 100.0
     1091                        pt_vertical_gradient_level(i) <= 0.0_wp )  THEN
     1092                      gradient = pt_vertical_gradient(i) / 100.0_wp
    10931093                      pt_vertical_gradient_level_ind(i) = k + 1
    10941094                      i = i + 1
    10951095                   ENDIF
    10961096                ENDIF
    1097                 IF ( gradient /= 0.0 )  THEN
     1097                IF ( gradient /= 0.0_wp )  THEN
    10981098                   IF ( k /= nzt )  THEN
    10991099                      pt_init(k) = pt_init(k+1) - dzu(k+1) * gradient
    11001100                   ELSE
    1101                       pt_init(k)   = pt_surface - 0.5 * dzu(k+1) * gradient
    1102                       pt_init(k+1) = pt_surface + 0.5 * dzu(k+1) * gradient
     1101                      pt_init(k)   = pt_surface - 0.5_wp * dzu(k+1) * gradient
     1102                      pt_init(k+1) = pt_surface + 0.5_wp * dzu(k+1) * gradient
    11031103                   ENDIF
    11041104                ELSE
     
    11151115!--    stratification
    11161116       IF ( pt_vertical_gradient_level(1) == -9999999.9_wp )  THEN
    1117           pt_vertical_gradient_level(1) = 0.0
     1117          pt_vertical_gradient_level(1) = 0.0_wp
    11181118       ENDIF
    11191119
     
    11411141
    11421142          i = 1
    1143           gradient = 0.0
     1143          gradient = 0.0_wp
    11441144          q_vertical_gradient_level_ind(1) = 0
    11451145          DO  k = 1, nzt+1
    11461146             IF ( i < 11 ) THEN
    11471147                IF ( q_vertical_gradient_level(i) < zu(k)  .AND. &
    1148                      q_vertical_gradient_level(i) >= 0.0 )  THEN
    1149                    gradient = q_vertical_gradient(i) / 100.0
     1148                     q_vertical_gradient_level(i) >= 0.0_wp )  THEN
     1149                   gradient = q_vertical_gradient(i) / 100.0_wp
    11501150                   q_vertical_gradient_level_ind(i) = k - 1
    11511151                   i = i + 1
    11521152                ENDIF
    11531153             ENDIF
    1154              IF ( gradient /= 0.0 )  THEN
     1154             IF ( gradient /= 0.0_wp )  THEN
    11551155                IF ( k /= 1 )  THEN
    11561156                   q_init(k) = q_init(k-1) + dzu(k) * gradient
     
    11631163!
    11641164!--          Avoid negative humidities
    1165              IF ( q_init(k) < 0.0 )  THEN
    1166                 q_init(k) = 0.0
     1165             IF ( q_init(k) < 0.0_wp )  THEN
     1166                q_init(k) = 0.0_wp
    11671167             ENDIF
    11681168          ENDDO
     
    11711171!--       In case of no given humidity gradients, choose zero gradient
    11721172!--       conditions
    1173           IF ( q_vertical_gradient_level(1) == -1.0 )  THEN
    1174              q_vertical_gradient_level(1) = 0.0
     1173          IF ( q_vertical_gradient_level(1) == -1.0_wp )  THEN
     1174             q_vertical_gradient_level(1) = 0.0_wp
    11751175          ENDIF
    11761176!
     
    11861186
    11871187          i = 1
    1188           gradient = 0.0
     1188          gradient = 0.0_wp
    11891189
    11901190          sa_vertical_gradient_level_ind(1) = nzt+1
     
    11921192             IF ( i < 11 ) THEN
    11931193                IF ( sa_vertical_gradient_level(i) > zu(k)  .AND. &
    1194                      sa_vertical_gradient_level(i) <= 0.0 )  THEN
    1195                    gradient = sa_vertical_gradient(i) / 100.0
     1194                     sa_vertical_gradient_level(i) <= 0.0_wp )  THEN
     1195                   gradient = sa_vertical_gradient(i) / 100.0_wp
    11961196                   sa_vertical_gradient_level_ind(i) = k + 1
    11971197                   i = i + 1
    11981198                ENDIF
    11991199             ENDIF
    1200              IF ( gradient /= 0.0 )  THEN
     1200             IF ( gradient /= 0.0_wp )  THEN
    12011201                IF ( k /= nzt )  THEN
    12021202                   sa_init(k) = sa_init(k+1) - dzu(k+1) * gradient
    12031203                ELSE
    1204                    sa_init(k)   = sa_surface - 0.5 * dzu(k+1) * gradient
    1205                    sa_init(k+1) = sa_surface + 0.5 * dzu(k+1) * gradient
     1204                   sa_init(k)   = sa_surface - 0.5_wp * dzu(k+1) * gradient
     1205                   sa_init(k+1) = sa_surface + 0.5_wp * dzu(k+1) * gradient
    12061206                ENDIF
    12071207             ELSE
     
    12181218       
    12191219          i = 1
    1220           gradient = 0.0
     1220          gradient = 0.0_wp
    12211221
    12221222          IF ( .NOT. ocean ) THEN
     
    12281228                IF ( i < 11 ) THEN
    12291229                   IF ( lad_vertical_gradient_level(i) < zu(k) .AND.  &
    1230                         lad_vertical_gradient_level(i) >= 0.0 ) THEN
     1230                        lad_vertical_gradient_level(i) >= 0.0_wp ) THEN
    12311231                      gradient = lad_vertical_gradient(i)
    12321232                      lad_vertical_gradient_level_ind(i) = k - 1
     
    12341234                   ENDIF
    12351235                ENDIF
    1236                 IF ( gradient /= 0.0 ) THEN
     1236                IF ( gradient /= 0.0_wp ) THEN
    12371237                   IF ( k /= 1 ) THEN
    12381238                      lad(k) = lad(k-1) + dzu(k) * gradient
     
    12511251!--       gradient
    12521252          IF ( lad_vertical_gradient_level(1) == -9999999.9_wp ) THEN
    1253              lad_vertical_gradient_level(1) = 0.0
     1253             lad_vertical_gradient_level(1) = 0.0_wp
    12541254          ENDIF
    12551255
     
    12871287!
    12881288!-- Compute Coriolis parameter
    1289     f  = 2.0 * omega * SIN( phi / 180.0 * pi )
    1290     fs = 2.0 * omega * COS( phi / 180.0 * pi )
     1289    f  = 2.0_wp * omega * SIN( phi / 180.0_wp * pi )
     1290    fs = 2.0_wp * omega * COS( phi / 180.0_wp * pi )
    12911291
    12921292!
     
    12991299       use_single_reference_value = .TRUE.
    13001300       IF ( pt_reference == 9999999.9_wp )  pt_reference = pt_surface
    1301        vpt_reference = pt_reference * ( 1.0 + 0.61 * q_surface )
     1301       vpt_reference = pt_reference * ( 1.0_wp + 0.61_wp * q_surface )
    13021302    ELSE
    13031303       message_string = 'illegal value for reference_state: "' // &
     
    13151315!
    13161316!-- Sign of buoyancy/stability terms
    1317     IF ( ocean )  atmos_ocean_sign = -1.0
     1317    IF ( ocean )  atmos_ocean_sign = -1.0_wp
    13181318
    13191319!
     
    13261326!
    13271327!-- In case of a given slope, compute the relevant quantities
    1328     IF ( alpha_surface /= 0.0 )  THEN
    1329        IF ( ABS( alpha_surface ) > 90.0 )  THEN
     1328    IF ( alpha_surface /= 0.0_wp )  THEN
     1329       IF ( ABS( alpha_surface ) > 90.0_wp )  THEN
    13301330          WRITE( message_string, * ) 'ABS( alpha_surface = ', alpha_surface, &
    13311331                                     ' ) must be < 90.0'
     
    13331333       ENDIF
    13341334       sloping_surface = .TRUE.
    1335        cos_alpha_surface = COS( alpha_surface / 180.0 * pi )
    1336        sin_alpha_surface = SIN( alpha_surface / 180.0 * pi )
     1335       cos_alpha_surface = COS( alpha_surface / 180.0_wp * pi )
     1336       sin_alpha_surface = SIN( alpha_surface / 180.0_wp * pi )
    13371337    ENDIF
    13381338
    13391339!
    13401340!-- Check time step and cfl_factor
    1341     IF ( dt /= -1.0 )  THEN
    1342        IF ( dt <= 0.0  .AND.  dt /= -1.0 )  THEN
     1341    IF ( dt /= -1.0_wp )  THEN
     1342       IF ( dt <= 0.0_wp  .AND.  dt /= -1.0_wp )  THEN
    13431343          WRITE( message_string, * ) 'dt = ', dt , ' <= 0.0'
    13441344          CALL message( 'check_parameters', 'PA0044', 1, 2, 0, 6, 0 )
     
    13481348    ENDIF
    13491349
    1350     IF ( cfl_factor <= 0.0  .OR.  cfl_factor > 1.0 )  THEN
    1351        IF ( cfl_factor == -1.0 )  THEN
     1350    IF ( cfl_factor <= 0.0_wp  .OR.  cfl_factor > 1.0_wp )  THEN
     1351       IF ( cfl_factor == -1.0_wp )  THEN
    13521352          IF ( timestep_scheme == 'runge-kutta-2' )  THEN
    1353              cfl_factor = 0.8
     1353             cfl_factor = 0.8_wp
    13541354          ELSEIF ( timestep_scheme == 'runge-kutta-3' )  THEN
    1355              cfl_factor = 0.9
     1355             cfl_factor = 0.9_wp
    13561356          ELSE
    1357              cfl_factor = 0.9
     1357             cfl_factor = 0.9_wp
    13581358          ENDIF
    13591359       ELSE
     
    13711371!-- Store reference time for coupled runs and change the coupling flag,
    13721372!-- if ...
    1373     IF ( simulated_time == 0.0 )  THEN
    1374        IF ( coupling_start_time == 0.0 )  THEN
    1375           time_since_reference_point = 0.0
    1376        ELSEIF ( time_since_reference_point < 0.0 )  THEN
     1373    IF ( simulated_time == 0.0_wp )  THEN
     1374       IF ( coupling_start_time == 0.0_wp )  THEN
     1375          time_since_reference_point = 0.0_wp
     1376       ELSEIF ( time_since_reference_point < 0.0_wp )  THEN
    13771377          run_coupled = .FALSE.
    13781378       ENDIF
     
    13821382!-- Set wind speed in the Galilei-transformed system
    13831383    IF ( galilei_transformation )  THEN
    1384        IF ( use_ug_for_galilei_tr .AND.                  &
    1385             ug_vertical_gradient_level(1) == 0.0  .AND.  &
    1386             ug_vertical_gradient(1) == 0.0  .AND.        &
    1387             vg_vertical_gradient_level(1) == 0.0  .AND.  &
    1388             vg_vertical_gradient(1) == 0.0 )  THEN
    1389           u_gtrans = ug_surface * 0.6
    1390           v_gtrans = vg_surface * 0.6
    1391        ELSEIF ( use_ug_for_galilei_tr  .AND.                  &
    1392                 ( ug_vertical_gradient_level(1) /= 0.0  .OR.  &
    1393                 ug_vertical_gradient(1) /= 0.0 ) )  THEN
     1384       IF ( use_ug_for_galilei_tr .AND.                     &
     1385            ug_vertical_gradient_level(1) == 0.0_wp  .AND.  &
     1386            ug_vertical_gradient(1) == 0.0_wp  .AND.        &
     1387            vg_vertical_gradient_level(1) == 0.0_wp  .AND.  &
     1388            vg_vertical_gradient(1) == 0.0_wp )  THEN
     1389          u_gtrans = ug_surface * 0.6_wp
     1390          v_gtrans = vg_surface * 0.6_wp
     1391       ELSEIF ( use_ug_for_galilei_tr  .AND.                     &
     1392                ( ug_vertical_gradient_level(1) /= 0.0_wp  .OR.  &
     1393                ug_vertical_gradient(1) /= 0.0_wp ) )  THEN
    13941394          message_string = 'baroclinity (ug) not allowed simultaneously' // &
    13951395                           ' with galilei transformation'
    13961396          CALL message( 'check_parameters', 'PA0046', 1, 2, 0, 6, 0 )
    1397        ELSEIF ( use_ug_for_galilei_tr  .AND.                  &
    1398                 ( vg_vertical_gradient_level(1) /= 0.0  .OR.  &
    1399                 vg_vertical_gradient(1) /= 0.0 ) )  THEN
     1397       ELSEIF ( use_ug_for_galilei_tr  .AND.                     &
     1398                ( vg_vertical_gradient_level(1) /= 0.0_wp  .OR.  &
     1399                vg_vertical_gradient(1) /= 0.0_wp ) )  THEN
    14001400          message_string = 'baroclinity (vg) not allowed simultaneously' // &
    14011401                           ' with galilei transformation'
     
    15611561    IF ( neutral )  THEN
    15621562
    1563        IF ( surface_heatflux /= 0.0  .AND.  surface_heatflux /= 9999999.9_wp ) &
     1563       IF ( surface_heatflux /= 0.0_wp  .AND.  surface_heatflux /= 9999999.9_wp ) &
    15641564       THEN
    15651565          message_string = 'heatflux must not be set for pure neutral flow'
     
    15901590!-- forbidden.
    15911591    IF ( ibc_pt_b == 0  .AND.   constant_heatflux  .AND. &
    1592          surface_heatflux /= 0.0 )  THEN
     1592         surface_heatflux /= 0.0_wp )  THEN
    15931593       message_string = 'boundary_condition: bc_pt_b = "' // TRIM( bc_pt_b ) //&
    15941594                        '& is not allowed with constant_heatflux = .TRUE.'
    15951595       CALL message( 'check_parameters', 'PA0065', 1, 2, 0, 6, 0 )
    15961596    ENDIF
    1597     IF ( constant_heatflux  .AND.  pt_surface_initial_change /= 0.0 )  THEN
     1597    IF ( constant_heatflux  .AND.  pt_surface_initial_change /= 0.0_wp )  THEN
    15981598       WRITE ( message_string, * )  'constant_heatflux = .TRUE. is not allo', &
    15991599               'wed with pt_surface_initial_change (/=0) = ', &
     
    16071607!-- forbidden.
    16081608    IF ( ibc_pt_t == 0  .AND.   constant_top_heatflux  .AND. &
    1609          top_heatflux /= 0.0 )  THEN
     1609         top_heatflux /= 0.0_wp )  THEN
    16101610       message_string = 'boundary_condition: bc_pt_t = "' // TRIM( bc_pt_t ) //&
    16111611                        '" is not allowed with constant_top_heatflux = .TRUE.'
     
    16391639!--    forbidden.
    16401640       IF ( ibc_sa_t == 0  .AND.   constant_top_salinityflux  .AND. &
    1641             top_salinityflux /= 0.0 )  THEN
     1641            top_salinityflux /= 0.0_wp )  THEN
    16421642          message_string = 'boundary condition: bc_sa_t = "' // &
    16431643                           TRIM( bc_sa_t ) // '" is not allowed with ' // &
     
    17061706          CALL message( 'check_parameters', 'PA0073', 1, 2, 0, 6, 0 )
    17071707       ENDIF
    1708        IF ( constant_waterflux  .AND.  q_surface_initial_change /= 0.0 )  THEN
     1708       IF ( constant_waterflux  .AND.  q_surface_initial_change /= 0.0_wp )  THEN
    17091709          WRITE( message_string, * )  'a prescribed surface flux is not allo', &
    17101710                 'wed with ', sq, '_surface_initial_change (/=0) = ', &
     
    17471747!--          Velocities for the initial u,v-profiles are set zero at the top
    17481748!--          in case of dirichlet_0 conditions
    1749              u_init(nzt+1)    = 0.0
    1750              v_init(nzt+1)    = 0.0
     1749             u_init(nzt+1)    = 0.0_wp
     1750             v_init(nzt+1)    = 0.0_wp
    17511751          ENDIF
    17521752       ELSEIF ( bc_uv_t == 'neumann' )  THEN
     
    17611761!
    17621762!-- Compute and check, respectively, the Rayleigh Damping parameter
    1763     IF ( rayleigh_damping_factor == -1.0 )  THEN
    1764        rayleigh_damping_factor = 0.0
     1763    IF ( rayleigh_damping_factor == -1.0_wp )  THEN
     1764       rayleigh_damping_factor = 0.0_wp
    17651765    ELSE
    1766        IF ( rayleigh_damping_factor < 0.0 .OR. rayleigh_damping_factor > 1.0 ) &
     1766       IF ( rayleigh_damping_factor < 0.0 .OR. rayleigh_damping_factor > 1.0_wp ) &
    17671767       THEN
    17681768          WRITE( message_string, * )  'rayleigh_damping_factor = ', &
     
    17721772    ENDIF
    17731773
    1774     IF ( rayleigh_damping_height == -1.0 )  THEN
     1774    IF ( rayleigh_damping_height == -1.0_wp )  THEN
    17751775       IF ( .NOT. ocean )  THEN
    1776           rayleigh_damping_height = 0.66666666666 * zu(nzt)
     1776          rayleigh_damping_height = 0.66666666666_wp * zu(nzt)
    17771777       ELSE
    1778           rayleigh_damping_height = 0.66666666666 * zu(nzb)
     1778          rayleigh_damping_height = 0.66666666666_wp * zu(nzb)
    17791779       ENDIF
    17801780    ELSE
    17811781       IF ( .NOT. ocean )  THEN
    1782           IF ( rayleigh_damping_height < 0.0  .OR. &
     1782          IF ( rayleigh_damping_height < 0.0_wp  .OR. &
    17831783               rayleigh_damping_height > zu(nzt) )  THEN
    17841784             WRITE( message_string, * )  'rayleigh_damping_height = ', &
     
    17871787          ENDIF
    17881788       ELSE
    1789           IF ( rayleigh_damping_height > 0.0  .OR. &
     1789          IF ( rayleigh_damping_height > 0.0_wp  .OR. &
    17901790               rayleigh_damping_height < zu(nzb) )  THEN
    17911791             WRITE( message_string, * )  'rayleigh_damping_height = ', &
     
    18161816!-- Check the interval for sorting particles.
    18171817!-- Using particles as cloud droplets requires sorting after each timestep.
    1818     IF ( dt_sort_particles /= 0.0  .AND.  cloud_droplets )  THEN
    1819        dt_sort_particles = 0.0
     1818    IF ( dt_sort_particles /= 0.0_wp  .AND.  cloud_droplets )  THEN
     1819       dt_sort_particles = 0.0_wp
    18201820       message_string = 'dt_sort_particles is reset to 0.0 because of cloud' //&
    18211821                        '_droplets = .TRUE.'
     
    18991899!-- value (tries to minimize the number of calls of flow_statistics)
    19001900    IF ( dt_dots == 9999999.9_wp )  THEN
    1901        IF ( averaging_interval_pr == 0.0 )  THEN
     1901       IF ( averaging_interval_pr == 0.0_wp )  THEN
    19021902          dt_dots = MIN( dt_run_control, dt_dopr )
    19031903       ELSE
     
    19831983                   dopr_initial_index(i) = 7
    19841984                   hom(:,2,7,:)          = SPREAD( zu, 2, statistic_regions+1 )
    1985                    hom(nzb,2,7,:)        = 0.0    ! because zu(nzb) is negative
     1985                   hom(nzb,2,7,:)        = 0.0_wp    ! because zu(nzb) is negative
    19861986                   data_output_pr(i)     = data_output_pr(i)(2:)
    19871987                ENDIF
     
    19931993                   dopr_initial_index(i) = 28
    19941994                   hom(:,2,28,:)         = SPREAD( zu, 2, statistic_regions+1 )
    1995                    hom(nzb,2,28,:)       = 0.0    ! because zu(nzb) is negative
     1995                   hom(nzb,2,28,:)       = 0.0_wp    ! because zu(nzb) is negative
    19961996                   data_output_pr(i)     = data_output_pr(i)(2:)
    19971997                ENDIF
     
    20022002             dopr_unit(i)   = 'm2/s2'
    20032003             hom(:,2,8,:)   = SPREAD( zu, 2, statistic_regions+1 )
    2004              hom(nzb,2,8,:) = 0.0
     2004             hom(nzb,2,8,:) = 0.0_wp
    20052005
    20062006          CASE ( 'km', '#km' )
     
    20082008             dopr_unit(i)   = 'm2/s'
    20092009             hom(:,2,9,:)   = SPREAD( zu, 2, statistic_regions+1 )
    2010              hom(nzb,2,9,:) = 0.0
     2010             hom(nzb,2,9,:) = 0.0_wp
    20112011             IF ( data_output_pr(i)(1:1) == '#' )  THEN
    20122012                dopr_initial_index(i) = 23
     
    20192019             dopr_unit(i)    = 'm2/s'
    20202020             hom(:,2,10,:)   = SPREAD( zu, 2, statistic_regions+1 )
    2021              hom(nzb,2,10,:) = 0.0
     2021             hom(nzb,2,10,:) = 0.0_wp
    20222022             IF ( data_output_pr(i)(1:1) == '#' )  THEN
    20232023                dopr_initial_index(i) = 24
     
    20302030             dopr_unit(i)    = 'm'
    20312031             hom(:,2,11,:)   = SPREAD( zu, 2, statistic_regions+1 )
    2032              hom(nzb,2,11,:) = 0.0
     2032             hom(nzb,2,11,:) = 0.0_wp
    20332033             IF ( data_output_pr(i)(1:1) == '#' )  THEN
    20342034                dopr_initial_index(i) = 25
     
    21092109                   dopr_initial_index(i) = 26
    21102110                   hom(:,2,26,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2111                    hom(nzb,2,26,:)       = 0.0    ! weil zu(nzb) negativ ist
     2111                   hom(nzb,2,26,:)       = 0.0_wp    ! because zu(nzb) is negative
    21122112                   data_output_pr(i)     = data_output_pr(i)(2:)
    21132113                ENDIF
     
    21822182                   dopr_initial_index(i) = 26
    21832183                   hom(:,2,26,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2184                    hom(nzb,2,26,:)       = 0.0    ! weil zu(nzb) negativ ist
     2184                   hom(nzb,2,26,:)       = 0.0_wp    ! because zu(nzb) is negative
    21852185                   data_output_pr(i)     = data_output_pr(i)(2:)
    21862186                ENDIF
     
    22002200                   dopr_initial_index(i) = 26
    22012201                   hom(:,2,26,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2202                    hom(nzb,2,26,:)       = 0.0    ! weil zu(nzb) negativ ist
     2202                   hom(nzb,2,26,:)       = 0.0_wp    ! because zu(nzb) is negative
    22032203                   data_output_pr(i)     = data_output_pr(i)(2:)
    22042204                ENDIF
     
    22132213                   dopr_initial_index(i) = 26
    22142214                   hom(:,2,26,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2215                    hom(nzb,2,26,:)       = 0.0    ! weil zu(nzb) negativ ist
     2215                   hom(nzb,2,26,:)       = 0.0_wp    ! because zu(nzb) is negative
    22162216                   data_output_pr(i)     = data_output_pr(i)(2:)
    22172217                ENDIF
     
    22232223                   dopr_initial_index(i) = 27
    22242224                   hom(:,2,27,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2225                    hom(nzb,2,27,:)       = 0.0    ! weil zu(nzb) negativ ist
     2225                   hom(nzb,2,27,:)       = 0.0_wp   ! because zu(nzb) is negative
    22262226                   data_output_pr(i)     = data_output_pr(i)(2:)
    22272227                ENDIF
     
    22412241                   dopr_initial_index(i) = 7
    22422242                   hom(:,2,7,:)          = SPREAD( zu, 2, statistic_regions+1 )
    2243                    hom(nzb,2,7,:)        = 0.0    ! weil zu(nzb) negativ ist
     2243                   hom(nzb,2,7,:)        = 0.0_wp    ! because zu(nzb) is negative
    22442244                   data_output_pr(i)     = data_output_pr(i)(2:)
    22452245                ENDIF
     
    22532253                dopr_initial_index(i) = 29
    22542254                hom(:,2,29,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2255                 hom(nzb,2,29,:)       = 0.0    ! weil zu(nzb) negativ ist
     2255                hom(nzb,2,29,:)       = 0.0_wp    ! because zu(nzb) is negative
    22562256                data_output_pr(i)     = data_output_pr(i)(2:)
    22572257             ENDIF
     
    24702470                   dopr_initial_index(i) = 77
    24712471                   hom(:,2,77,:)         = SPREAD( zu, 2, statistic_regions+1 )
    2472                    hom(nzb,2,77,:)       = 0.0    ! because zu(nzb) is negative
     2472                   hom(nzb,2,77,:)       = 0.0_wp    ! because zu(nzb) is negative
    24732473                   data_output_pr(i)     = data_output_pr(i)(2:)
    24742474                ENDIF
     
    29772977!
    29782978!-- Averaged 2d or 3d output requires that an averaging interval has been set
    2979     IF ( doav_n > 0  .AND.  averaging_interval == 0.0 )  THEN
     2979    IF ( doav_n > 0  .AND.  averaging_interval == 0.0_wp )  THEN
    29802980       WRITE( message_string, * )  'output of averaged quantity "',            &
    29812981                                   TRIM( doav(1) ), '_av" requires to set a ', &
     
    30043004!
    30053005!-- Upper plot limit for 2D vertical sections
    3006     IF ( z_max_do2d == -1.0 )  z_max_do2d = zu(nzt)
     3006    IF ( z_max_do2d == -1.0_wp )  z_max_do2d = zu(nzt)
    30073007    IF ( z_max_do2d < zu(nzb+1)  .OR.  z_max_do2d > zu(nzt) )  THEN
    30083008       WRITE( message_string, * )  'z_max_do2d = ', z_max_do2d, &
     
    30663066       mask_scale(2) = mask_scale_y
    30673067       mask_scale(3) = mask_scale_z
    3068        IF ( ANY( mask_scale <= 0.0 ) )  THEN
     3068       IF ( ANY( mask_scale <= 0.0_wp ) )  THEN
    30693069          WRITE( message_string, * )  &
    30703070               'illegal value: mask_scale_x, mask_scale_y and mask_scale_z', &
     
    31513151!
    31523152!-- Check, whether a constant diffusion coefficient shall be used
    3153     IF ( km_constant /= -1.0 )  THEN
    3154        IF ( km_constant < 0.0 )  THEN
     3153    IF ( km_constant /= -1.0_wp )  THEN
     3154       IF ( km_constant < 0.0_wp )  THEN
    31553155          WRITE( message_string, * )  'km_constant = ', km_constant, ' < 0.0'
    31563156          CALL message( 'check_parameters', 'PA0121', 1, 2, 0, 6, 0 )
    31573157       ELSE
    3158           IF ( prandtl_number < 0.0 )  THEN
     3158          IF ( prandtl_number < 0.0_wp )  THEN
    31593159             WRITE( message_string, * )  'prandtl_number = ', prandtl_number, &
    31603160                                         ' < 0.0'
     
    31753175!-- potential temperature, check the width of the damping layer
    31763176    IF ( bc_lr /= 'cyclic' ) THEN
    3177        IF ( pt_damping_width < 0.0  .OR.  pt_damping_width > REAL( nx * dx ) )  THEN
     3177       IF ( pt_damping_width < 0.0_wp  .OR.  pt_damping_width > REAL( nx * dx ) )  THEN
    31783178          message_string = 'pt_damping_width out of range'
    31793179          CALL message( 'check_parameters', 'PA0124', 1, 2, 0, 6, 0 )
     
    31823182
    31833183    IF ( bc_ns /= 'cyclic' )  THEN
    3184        IF ( pt_damping_width < 0.0  .OR.  pt_damping_width > REAL( ny * dy ) )  THEN
     3184       IF ( pt_damping_width < 0.0_wp  .OR.  pt_damping_width > REAL( ny * dy ) )  THEN
    31853185          message_string = 'pt_damping_width out of range'
    31863186          CALL message( 'check_parameters', 'PA0124', 1, 2, 0, 6, 0 )
     
    33433343!
    33443344!--       Set the default value for the width of the recycling domain
    3345           recycling_width = 0.1 * nx * dx
     3345          recycling_width = 0.1_wp * nx * dx
    33463346       ELSE
    33473347          IF ( recycling_width < dx  .OR.  recycling_width > nx * dx )  THEN
     
    33683368!-- Determine damping level index for 1D model
    33693369    IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
    3370        IF ( damp_level_1d == -1.0 )  THEN
     3370       IF ( damp_level_1d == -1.0_wp )  THEN
    33713371          damp_level_1d     = zu(nzt+1)
    33723372          damp_level_ind_1d = nzt + 1
    3373        ELSEIF ( damp_level_1d < 0.0  .OR.  damp_level_1d > zu(nzt+1) )  THEN
     3373       ELSEIF ( damp_level_1d < 0.0_wp  .OR.  damp_level_1d > zu(nzt+1) )  THEN
    33743374          WRITE( message_string, * )  'damp_level_1d = ', damp_level_1d, &
    33753375                 ' must be > 0.0 and < ', zu(nzt+1), '(zu(nzt+1))'
     
    34163416!
    34173417!-- Set default value of the time needed to terminate a model run
    3418     IF ( termination_time_needed == -1.0 )  THEN
     3418    IF ( termination_time_needed == -1.0_wp )  THEN
    34193419       IF ( host(1:3) == 'ibm' )  THEN
    3420           termination_time_needed = 300.0
     3420          termination_time_needed = 300.0_wp
    34213421       ELSE
    3422           termination_time_needed = 35.0
     3422          termination_time_needed = 35.0_wp
    34233423       ENDIF
    34243424    ENDIF
     
    34303430!--    Time needed must be at least 30 seconds on all CRAY machines, because
    34313431!--    MPP_TREMAIN gives the remaining CPU time only in steps of 30 seconds
    3432        IF ( termination_time_needed <= 30.0 )  THEN
     3432       IF ( termination_time_needed <= 30.0_wp )  THEN
    34333433          WRITE( message_string, * )  'termination_time_needed = ', &
    34343434                 termination_time_needed, ' must be > 30.0 on host "', &
     
    34413441!--    because the job time consumed before executing palm (for compiling,
    34423442!--    copying of files, etc.) has to be regarded
    3443        IF ( termination_time_needed < 300.0 )  THEN
     3443       IF ( termination_time_needed < 300.0_wp )  THEN
    34443444          WRITE( message_string, * )  'termination_time_needed = ', &
    34453445                 termination_time_needed, ' should be >= 300.0 on host "', &
     
    34623462          CALL message( 'check_parameters', 'PA0151', 1, 2, 0, 6, 0 )
    34633463       ENDIF
    3464        IF ( .NOT. ANY( dpdxy /= 0.0 ) )  THEN
     3464       IF ( .NOT. ANY( dpdxy /= 0.0_wp ) )  THEN
    34653465          WRITE( message_string, * )  'dp_external is .TRUE. but dpdxy is ze', &
    34663466               'ro, i.e. the external pressure gradient & will not be applied'
     
    34683468       ENDIF
    34693469    ENDIF
    3470     IF ( ANY( dpdxy /= 0.0 ) .AND. .NOT. dp_external )  THEN
     3470    IF ( ANY( dpdxy /= 0.0_wp ) .AND. .NOT. dp_external )  THEN
    34713471       WRITE( message_string, * )  'dpdxy is nonzero but dp_external is ', &
    34723472            '.FALSE., i.e. the external pressure gradient & will not be applied'
     
    34993499       ENDIF
    35003500    ENDIF
    3501     IF ( ( u_bulk /= 0.0 .OR. v_bulk /= 0.0 ) .AND.  &
     3501    IF ( ( u_bulk /= 0.0_wp .OR. v_bulk /= 0.0_wp ) .AND.  &
    35023502         ( .NOT. conserve_volume_flow .OR.  &
    35033503         TRIM( conserve_volume_flow_mode ) /= 'bulk_velocity' ) )  THEN
Note: See TracChangeset for help on using the changeset viewer.