Ignore:
Timestamp:
Jan 14, 2021 10:42:28 AM (3 years ago)
Author:
raasch
Message:

reading of namelist file and actions in case of namelist errors revised so that statement labels and goto statements are not required any more, deprecated namelists removed

File:
1 edited

Legend:

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

    r4836 r4842  
    2727! -----------------
    2828! $Id$
    29 ! openmp bugfix: some missing arrays added to reduction clause
     29! reading of namelist file and actions in case of namelist errors revised so that statement labels
     30! and goto statements are not required any more,
     31! deprectaed namelist name removed
     32!
     33! 4836 2021-01-07 13:58:12Z raasch
     34! openmp bugfix: some missing arrays added to reduction clause
    3035!
    3136! 4824 2020-12-12 20:45:23Z moh.hefny
     
    717722                                   0.06_wp, 0.06_wp, 0.06_wp,            & !  1 - ocean
    718723                                   0.19_wp, 0.28_wp, 0.09_wp,            & !  2 - mixed farming, tall grassland
    719                                    0.23_wp, 0.33_wp, 0.11_wp,            & !  3 - tall/medium grassland 
    720                                    0.23_wp, 0.33_wp, 0.11_wp,            & !  4 - evergreen shrubland 
    721                                    0.25_wp, 0.34_wp, 0.14_wp,            & !  5 - short grassland/meadow/shrubland 
    722                                    0.14_wp, 0.22_wp, 0.06_wp,            & !  6 - evergreen needleleaf forest 
    723                                    0.17_wp, 0.27_wp, 0.06_wp,            & !  7 - mixed deciduous forest 
    724                                    0.19_wp, 0.31_wp, 0.06_wp,            & !  8 - deciduous forest 
     724                                   0.23_wp, 0.33_wp, 0.11_wp,            & !  3 - tall/medium grassland
     725                                   0.23_wp, 0.33_wp, 0.11_wp,            & !  4 - evergreen shrubland
     726                                   0.25_wp, 0.34_wp, 0.14_wp,            & !  5 - short grassland/meadow/shrubland
     727                                   0.14_wp, 0.22_wp, 0.06_wp,            & !  6 - evergreen needleleaf forest
     728                                   0.17_wp, 0.27_wp, 0.06_wp,            & !  7 - mixed deciduous forest
     729                                   0.19_wp, 0.31_wp, 0.06_wp,            & !  8 - deciduous forest
    725730                                   0.14_wp, 0.22_wp, 0.06_wp,            & !  9 - tropical evergreen broadleaved forest
    726                                    0.18_wp, 0.28_wp, 0.06_wp,            & ! 10 - medium/tall grassland/woodland 
    727                                    0.43_wp, 0.51_wp, 0.35_wp,            & ! 11 - desert, sandy 
    728                                    0.32_wp, 0.40_wp, 0.24_wp,            & ! 12 - desert, rocky 
    729                                    0.19_wp, 0.27_wp, 0.10_wp,            & ! 13 - tundra 
    730                                    0.77_wp, 0.65_wp, 0.90_wp,            & ! 14 - land ice 
    731                                    0.77_wp, 0.65_wp, 0.90_wp,            & ! 15 - sea ice 
    732                                    0.82_wp, 0.70_wp, 0.95_wp,            & ! 16 - snow 
    733                                    0.08_wp, 0.08_wp, 0.08_wp,            & ! 17 - bare soil 
    734                                    0.17_wp, 0.17_wp, 0.17_wp,            & ! 18 - asphalt/concrete mix 
    735                                    0.17_wp, 0.17_wp, 0.17_wp,            & ! 19 - asphalt (asphalt concrete) 
    736                                    0.30_wp, 0.30_wp, 0.30_wp,            & ! 20 - concrete (Portland concrete) 
    737                                    0.17_wp, 0.17_wp, 0.17_wp,            & ! 21 - sett 
     731                                   0.18_wp, 0.28_wp, 0.06_wp,            & ! 10 - medium/tall grassland/woodland
     732                                   0.43_wp, 0.51_wp, 0.35_wp,            & ! 11 - desert, sandy
     733                                   0.32_wp, 0.40_wp, 0.24_wp,            & ! 12 - desert, rocky
     734                                   0.19_wp, 0.27_wp, 0.10_wp,            & ! 13 - tundra
     735                                   0.77_wp, 0.65_wp, 0.90_wp,            & ! 14 - land ice
     736                                   0.77_wp, 0.65_wp, 0.90_wp,            & ! 15 - sea ice
     737                                   0.82_wp, 0.70_wp, 0.95_wp,            & ! 16 - snow
     738                                   0.08_wp, 0.08_wp, 0.08_wp,            & ! 17 - bare soil
     739                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 18 - asphalt/concrete mix
     740                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 19 - asphalt (asphalt concrete)
     741                                   0.30_wp, 0.30_wp, 0.30_wp,            & ! 20 - concrete (Portland concrete)
     742                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 21 - sett
    738743                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 22 - paving stones
    739                                    0.17_wp, 0.17_wp, 0.17_wp,            & ! 23 - cobblestone 
     744                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 23 - cobblestone
    740745                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 24 - metal
    741746                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 25 - wood
    742747                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 26 - gravel
    743                                    0.17_wp, 0.17_wp, 0.17_wp,            & ! 27 - fine gravel 
    744                                    0.17_wp, 0.17_wp, 0.17_wp,            & ! 28 - pebblestone 
     748                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 27 - fine gravel
     749                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 28 - pebblestone
    745750                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 29 - woodchips
    746751                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 30 - tartan (sports)
    747752                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 31 - artificial turf (sports)
    748                                    0.17_wp, 0.17_wp, 0.17_wp,            & ! 32 - clay (sports) 
     753                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 32 - clay (sports)
    749754                                   0.17_wp, 0.17_wp, 0.17_wp,            & ! 33 - building (dummy)
    750755                                   0.60_wp, 0.60_wp, 0.60_wp,            & ! 34 - building wall type 1 - reflecting facade
     
    41054110 SUBROUTINE radiation_parin
    41064111
    4107 
    41084112    IMPLICIT NONE
    41094113
    4110     CHARACTER(LEN=80) ::  line  !< dummy string that contains the current line of the parameter file
    4111 
    4112     NAMELIST /radiation_par/   albedo,                                                             &
    4113                                albedo_lw_dif,                                                      &
    4114                                albedo_lw_dir,                                                      &
    4115                                albedo_sw_dif,                                                      &
    4116                                albedo_sw_dir,                                                      &
    4117                                albedo_type,                                                        &
    4118                                bufsize_alltoall,                                                   &
    4119                                constant_albedo,                                                    &
    4120                                dt_radiation,                                                       &
    4121                                emissivity,                                                         &
    4122                                lw_radiation,                                                       &
    4123                                max_raytracing_dist,                                                &
    4124                                min_irrf_value,                                                     &
    4125                                mrt_geom,                                                           &
    4126                                mrt_geom_params,                                                    &
    4127                                mrt_include_sw,                                                     &
    4128                                mrt_nlevels,                                                        &
    4129                                mrt_skip_roof,                                                      &
    4130                                net_radiation,                                                      &
    4131                                nrefsteps,                                                          &
    4132                                plant_lw_interact,                                                  &
    4133                                rad_angular_discretization,                                         &
    4134                                radiation_interactions_on,                                          &
    4135                                radiation_scheme,                                                   &
    4136                                raytrace_discrete_azims,                                            &
    4137                                raytrace_discrete_elevs,                                            &
    4138                                raytrace_mpi_rma,                                                   &
    4139                                trace_fluxes_above,                                                 &
    4140                                skip_time_do_radiation,                                             &
    4141                                surface_reflections,                                                &
    4142                                svfnorm_report_thresh,                                              &
    4143                                sw_radiation,                                                       &
    4144                                unscheduled_radiation_calls
     4114    CHARACTER(LEN=100) ::  line  !< dummy string that contains the current line of the parameter file
     4115
     4116    INTEGER(iwp) ::  io_status   !< status after reading the namelist file
    41454117
    41464118
     
    41794151                                    unscheduled_radiation_calls
    41804152
    4181     line = ' '
    4182 
    4183 !
    4184 !-- Try to find radiation model namelist
     4153!
     4154!-- Move to the beginning of the namelist file and try to find and read the namelist.
    41854155    REWIND( 11 )
    4186     line = ' '
    4187     DO WHILE ( INDEX( line, '&radiation_parameters' ) == 0 )
    4188        READ( 11, '(A)', END = 12 )  line
    4189     ENDDO
    4190     BACKSPACE( 11 )
    4191 
    4192 !
    4193 !-- Read user-defined namelist
    4194     READ( 11, radiation_parameters, ERR = 10 )
    4195 
    4196 !
    4197 !-- Set flag that indicates that the radiation model is switched on
    4198     radiation = .TRUE.
    4199 
    4200     GOTO 14
    4201 
    4202  10 BACKSPACE( 11 )
    4203     READ( 11 , '(A)') line
    4204     CALL parin_fail_message( 'radiation_parameters', line )
    4205 !
    4206 !-- Try to find old namelist
    4207  12 REWIND( 11 )
    4208     line = ' '
    4209     DO WHILE ( INDEX( line, '&radiation_par' ) == 0 )
    4210        READ( 11, '(A)', END = 14 )  line
    4211     ENDDO
    4212     BACKSPACE( 11 )
    4213 
    4214 !
    4215 !-- Read user-defined namelist
    4216     READ( 11, radiation_par, ERR = 13, END = 14 )
    4217 
    4218     message_string = 'namelist radiation_par is deprecated and will be removed in near future. '// &
    4219                      'Please use namelist radiation_parameters instead'
    4220     CALL message( 'radiation_parin', 'PA0487', 0, 1, 0, 6, 0 )
    4221 
    4222 !
    4223 !-- Set flag that indicates that the radiation model is switched on
    4224     radiation = .TRUE.
    4225 
    4226     IF ( .NOT.  radiation_interactions_on  .AND.  surface_reflections )  THEN
    4227        message_string = 'surface_reflections is allowed only when ' //                             &
    4228                         'radiation_interactions_on is set to TRUE'
    4229        CALL message( 'radiation_parin', 'PA0293',1, 2, 0, 6, 0 )
     4156    READ( 11, radiation_parameters, IOSTAT=io_status )
     4157
     4158!
     4159!-- Action depending on the READ status
     4160    IF ( io_status == 0 )  THEN
     4161!
     4162!--    radiation_parameters namelist was found and read correctly. Set flag that indicates that the
     4163!--    radiation model is switched on.
     4164       radiation = .TRUE.
     4165
     4166    ELSEIF ( io_status > 0 )  THEN
     4167!
     4168!--    radiation_parameters namelist was found but contained errors. Print an error message
     4169!--    including the line that caused the problem.
     4170       BACKSPACE( 11 )
     4171       READ( 11 , '(A)' ) line
     4172       CALL parin_fail_message( 'radiation_parameters', line )
     4173
    42304174    ENDIF
    4231 
    4232     GOTO 14
    4233 
    4234  13 BACKSPACE( 11 )
    4235     READ( 11 , '(A)') line
    4236     CALL parin_fail_message( 'radiation_par', line )
    4237 
    4238  14 CONTINUE
    42394175
    42404176 END SUBROUTINE radiation_parin
Note: See TracChangeset for help on using the changeset viewer.