Changeset 4183
- Timestamp:
- Aug 23, 2019 7:33:16 AM (5 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_parameters.f90
r4182 r4183 25 25 ! ----------------- 26 26 ! 4172 2019-08-20 11:55:33Z oliver.maas 27 ! removed conversion from recycle_absolute_quantities to raq, added check and 28 ! error message for correct input of recycling_method_for_thermodynamic_quantities 29 ! 30 ! 11:55:33Z oliver.maas 27 31 ! Corrected "Former revisions" section 28 32 ! … … 164 168 INTEGER(iwp) :: k !< loop index 165 169 INTEGER(iwp) :: kk !< loop index 166 INTEGER(iwp) :: r !< loop index167 170 INTEGER(iwp) :: mid !< masked output running index 168 171 INTEGER(iwp) :: netcdf_data_format_save !< initial value of netcdf_data_format … … 2928 2931 2929 2932 ! 2930 !-- In case of turbulent inflow calculate the index of the recycling plane2933 !-- In case of turbulent inflow 2931 2934 IF ( turbulent_inflow ) THEN 2935 2936 ! 2937 !-- Calculate the index of the recycling plane 2932 2938 IF ( recycling_width <= dx .OR. recycling_width >= nx * dx ) THEN 2933 2939 WRITE( message_string, * ) 'illegal value for recycling_width: ', & … … 2948 2954 2949 2955 ! 2950 !-- Convert recycle_absolute_quantities (list of strings that define the quantities for 2951 !-- absolute recycling) to raq (list of logicals with length 7 corresponding to u,v,w,pt,e,q,s). 2952 !-- Output error message for not implemented quantities. 2953 DO r = LBOUND( recycle_absolute_quantities, 1 ), UBOUND( recycle_absolute_quantities, 1 ) 2954 SELECT CASE ( TRIM( recycle_absolute_quantities(r) ) ) 2955 CASE ( 'theta' ) 2956 raq(4) = .TRUE. 2957 CASE ( 'q' ) 2958 raq(6) = .TRUE. 2959 CASE ( '' ) 2960 CONTINUE 2961 CASE DEFAULT 2962 message_string = 'absolute recycling not implemented for variable ' // & 2963 TRIM( recycle_absolute_quantities(r) ) 2964 CALL message( 'inflow_turbulence', 'PA0184', 1, 2, 0, 6, 0 ) 2965 END SELECT 2966 ENDDO 2956 !-- Check for correct input of recycling method for thermodynamic quantities 2957 IF ( TRIM( recycling_method_for_thermodynamic_quantities ) /= 'turbulent_fluctuation' .AND. & 2958 TRIM( recycling_method_for_thermodynamic_quantities ) /= 'absolute_value' ) THEN 2959 WRITE( message_string, * ) 'unknown recycling method for thermodynamic quantities: ', & 2960 TRIM( recycling_method_for_thermodynamic_quantities ) 2961 CALL message( 'check_parameters', 'PA0184', 1, 2, 0, 6, 0 ) 2962 ENDIF 2963 2967 2964 ENDIF 2968 2965 -
palm/trunk/SOURCE/inflow_turbulence.f90
r4182 r4183 25 25 ! ----------------- 26 26 ! $Id$ 27 ! simplified steering of recycling of absolute values by initialization 28 ! parameter recycling_method_for_thermodynamic_quantities 29 ! 30 ! 4182 2019-08-22 15:20:23Z scharf 27 31 ! Corrected "Former revisions" section 28 32 ! … … 47 51 48 52 USE control_parameters, & 49 ONLY: humidity, passive_scalar, recycling_plane, recycling_yshift, raq 53 ONLY: humidity, passive_scalar, recycling_plane, recycling_yshift, & 54 recycling_method_for_thermodynamic_quantities 50 55 51 56 USE cpulog, & … … 156 161 DO j = nysg, nyng 157 162 DO k = nzb, nzt + 1 158 159 163 inflow_dist(k,j,1,l) = u(k,j,i+1) - avpr(k,1,l) 160 164 inflow_dist(k,j,2,l) = v(k,j,i) - avpr(k,2,l) 161 165 inflow_dist(k,j,3,l) = w(k,j,i) - avpr(k,3,l) 162 IF ( raq(4) ) THEN 166 IF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 167 == 'turbulent_fluctuation' ) THEN 168 inflow_dist(k,j,4,l) = pt(k,j,i) - avpr(k,4,l) 169 ELSEIF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 170 == 'absolute_value' ) THEN 163 171 inflow_dist(k,j,4,l) = pt(k,j,i) 164 ELSE165 inflow_dist(k,j,4,l) = pt(k,j,i) - avpr(k,4,l)166 172 ENDIF 167 173 inflow_dist(k,j,5,l) = e(k,j,i) - avpr(k,5,l) 168 174 IF ( humidity ) THEN 169 IF ( raq(6) ) THEN 175 IF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 176 == 'turbulent_fluctuation' ) THEN 177 inflow_dist(k,j,6,l) = q(k,j,i) - avpr(k,6,l) 178 ELSEIF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 179 == 'absolute_value' ) THEN 170 180 inflow_dist(k,j,6,l) = q(k,j,i) 171 ELSE172 inflow_dist(k,j,6,l) = q(k,j,i) - avpr(k,6,l)173 181 ENDIF 174 182 ENDIF … … 188 196 inflow_dist(k,j,2,l) = v(k,j,i) - avpr(k,2,l) 189 197 inflow_dist(k,j,3,l) = w(k,j,i) - avpr(k,3,l) 190 IF ( raq(4) ) THEN 198 IF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 199 == 'turbulent_fluctuation' ) THEN 200 inflow_dist(k,j,4,l) = pt(k,j,i) - avpr(k,4,l) 201 ELSEIF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 202 == 'absolute_value' ) THEN 191 203 inflow_dist(k,j,4,l) = pt(k,j,i) 192 ELSE193 inflow_dist(k,j,4,l) = pt(k,j,i) - avpr(k,4,l)194 204 ENDIF 195 205 inflow_dist(k,j,5,l) = e(k,j,i) - avpr(k,5,l) 196 206 IF ( humidity ) THEN 197 IF ( raq(6) ) THEN 207 IF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 208 == 'turbulent_fluctuation' ) THEN 209 inflow_dist(k,j,6,l) = q(k,j,i) - avpr(k,6,l) 210 ELSEIF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 211 == 'absolute_value' ) THEN 198 212 inflow_dist(k,j,6,l) = q(k,j,i) 199 ELSE200 inflow_dist(k,j,6,l) = q(k,j,i) - avpr(k,6,l)201 213 ENDIF 202 214 ENDIF … … 264 276 DO k = nzb, nzt + 1 265 277 266 u(k,j,-nbgp+1:0) = mean_inflow_profiles(k,1) + &278 u(k,j,-nbgp+1:0) = mean_inflow_profiles(k,1) + & 267 279 inflow_dist(k,j,1,1:nbgp) * inflow_damping_factor(k) 268 v(k,j,-nbgp:-1) = mean_inflow_profiles(k,2) + &280 v(k,j,-nbgp:-1) = mean_inflow_profiles(k,2) + & 269 281 inflow_dist(k,j,2,1:nbgp) * inflow_damping_factor(k) 270 w(k,j,-nbgp:-1) = &282 w(k,j,-nbgp:-1) = & 271 283 inflow_dist(k,j,3,1:nbgp) * inflow_damping_factor(k) 272 IF ( raq(4) ) THEN 284 IF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 285 == 'turbulent_fluctuation' ) THEN 286 pt(k,j,-nbgp:-1) = mean_inflow_profiles(k,4) + & 287 inflow_dist(k,j,4,1:nbgp) * inflow_damping_factor(k) 288 ELSEIF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 289 == 'absolute_value' ) THEN 273 290 pt(k,j,-nbgp:-1) = inflow_dist(k,j,4,1:nbgp) 274 ELSE275 pt(k,j,-nbgp:-1) = mean_inflow_profiles(k,4) + &276 inflow_dist(k,j,4,1:nbgp) * inflow_damping_factor(k)277 291 ENDIF 278 e(k,j,-nbgp:-1) = mean_inflow_profiles(k,5) + &292 e(k,j,-nbgp:-1) = mean_inflow_profiles(k,5) + & 279 293 inflow_dist(k,j,5,1:nbgp) * inflow_damping_factor(k) 280 294 e(k,j,-nbgp:-1) = MAX( e(k,j,-nbgp:-1), 0.0_wp ) 281 282 295 IF ( humidity ) THEN 283 IF ( raq(6) ) THEN 296 IF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 297 == 'turbulent_fluctuation' ) THEN 298 q(k,j,-nbgp:-1) = mean_inflow_profiles(k,6) + & 299 inflow_dist(k,j,6,1:nbgp) * inflow_damping_factor(k) 300 ELSEIF ( TRIM( recycling_method_for_thermodynamic_quantities ) & 301 == 'absolute_value' ) THEN 284 302 q(k,j,-nbgp:-1) = inflow_dist(k,j,6,1:nbgp) 285 ELSE286 q(k,j,-nbgp:-1) = mean_inflow_profiles(k,6) + &287 inflow_dist(k,j,6,1:nbgp) * inflow_damping_factor(k)288 303 ENDIF 289 304 ENDIF 290 IF ( passive_scalar ) &291 s(k,j,-nbgp:-1) = mean_inflow_profiles(k,7) + &305 IF ( passive_scalar ) & 306 s(k,j,-nbgp:-1) = mean_inflow_profiles(k,7) + & 292 307 inflow_dist(k,j,7,1:nbgp) * inflow_damping_factor(k) 308 293 309 ENDDO 294 310 ENDDO -
palm/trunk/SOURCE/modules.f90
r4182 r4183 25 25 ! ----------------- 26 26 ! $Id$ 27 ! removed recycle_absolute_quantities and raq 28 ! added recycling_method_for_thermodynamic_quantities 29 ! 30 ! 4182 2019-08-22 15:20:23Z scharf 27 31 ! Corrected "Former revisions" section 28 32 ! … … 496 500 CHARACTER (LEN=20) :: mixing_length_1d = 'blackadar' !< namelist parameter 497 501 CHARACTER (LEN=20) :: random_generator = 'random-parallel' !< namelist parameter 502 CHARACTER (LEN=20) :: recycling_method_for_thermodynamic_quantities = 'turbulent_fluctuation' !< namelist parameter 498 503 CHARACTER (LEN=20) :: reference_state = 'initial_profile' !< namelist parameter 499 504 CHARACTER (LEN=20) :: timestep_scheme = 'runge-kutta-3' !< namelist parameter … … 527 532 CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) :: do3d = ' ' !< label array for 3d output quantities 528 533 529 CHARACTER (LEN=varnamelength), DIMENSION(7) :: recycle_absolute_quantities = ' ' !< namelist parameter530 531 534 INTEGER(iwp), PARAMETER :: fl_max = 500 !< maximum number of virtual-flight measurements 532 535 INTEGER(iwp), PARAMETER :: var_fl_max = 20 !< maximum number of different sampling variables in virtual flight measurements … … 764 767 765 768 LOGICAL, DIMENSION(max_masks) :: mask_surface = .FALSE. !< flag for surface-following masked output 766 767 LOGICAL, DIMENSION(7) :: raq = .FALSE. !< recycle absolute quantities (u,v,w,theta,e,q,s) in inflow_turbulence 768 769 769 770 REAL(wp) :: advected_distance_x = 0.0_wp !< advected distance of model domain along x 770 771 !< (galilei transformation) -
palm/trunk/SOURCE/parin.f90
r4182 r4183 25 25 ! ----------------- 26 26 ! $Id$ 27 ! replaced recycle_absolute_quantities by recycling_method_for_thermodynamic_quantities 28 ! 29 ! 4182 2019-08-22 15:20:23Z scharf 27 30 ! Corrected "Former revisions" section 28 31 ! … … 254 257 random_generator, random_heatflux, rans_const_c, rans_const_sigma,& 255 258 rayleigh_damping_factor, rayleigh_damping_height, & 256 recycling_width, recycling_yshift, recycle_absolute_quantities, & 259 recycling_width, recycling_yshift, & 260 recycling_method_for_thermodynamic_quantities, & 257 261 reference_state, residual_limit, & 258 262 roughness_length, scalar_advec, &
Note: See TracChangeset
for help on using the changeset viewer.