Changeset 978 for palm/trunk/SOURCE/check_parameters.f90
- Timestamp:
- Aug 9, 2012 8:28:32 AM (12 years ago)
- Location:
- palm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk
- Property svn:mergeinfo changed
/palm/branches/fricke (added) merged: 942-944,967-968,971-972,977
- Property svn:mergeinfo changed
-
palm/trunk/SOURCE
- Property svn:mergeinfo changed
/palm/branches/fricke/SOURCE (added) merged: 967-968,971-972,977
- Property svn:mergeinfo changed
-
palm/trunk/SOURCE/check_parameters.f90
r965 r978 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! setting of bc_lr/ns_dirneu/neudir 7 ! outflow damping layer removed 8 ! check for z0h* 9 ! check for pt_damping_width 7 10 ! 8 11 ! Former revisions: … … 1379 1382 !-- Lateral boundary conditions 1380 1383 IF ( bc_lr /= 'cyclic' .AND. bc_lr /= 'dirichlet/radiation' .AND. & 1381 bc_lr /= 'radiation/dirichlet' ) THEN 1384 bc_lr /= 'radiation/dirichlet' .AND. bc_lr /= 'dirichlet/neumann' & 1385 .AND. bc_lr /= 'neumann/dirichlet' ) THEN 1382 1386 message_string = 'unknown boundary condition: bc_lr = "' // & 1383 1387 TRIM( bc_lr ) // '"' … … 1385 1389 ENDIF 1386 1390 IF ( bc_ns /= 'cyclic' .AND. bc_ns /= 'dirichlet/radiation' .AND. & 1387 bc_ns /= 'radiation/dirichlet' ) THEN 1391 bc_ns /= 'radiation/dirichlet' .AND. bc_ns /= 'dirichlet/neumann' & 1392 .AND. bc_ns /= 'neumann/dirichlet' ) THEN 1388 1393 message_string = 'unknown boundary condition: bc_ns = "' // & 1389 1394 TRIM( bc_ns ) // '"' … … 1396 1401 IF ( bc_lr == 'dirichlet/radiation' ) bc_lr_dirrad = .TRUE. 1397 1402 IF ( bc_lr == 'radiation/dirichlet' ) bc_lr_raddir = .TRUE. 1403 IF ( bc_lr == 'dirichlet/neumann' ) bc_lr_dirneu = .TRUE. 1404 IF ( bc_lr == 'neumann/dirichlet' ) bc_lr_neudir = .TRUE. 1398 1405 IF ( bc_ns /= 'cyclic' ) bc_ns_cyc = .FALSE. 1399 1406 IF ( bc_ns == 'dirichlet/radiation' ) bc_ns_dirrad = .TRUE. 1400 1407 IF ( bc_ns == 'radiation/dirichlet' ) bc_ns_raddir = .TRUE. 1408 IF ( bc_ns == 'dirichlet/neumann' ) bc_ns_dirneu = .TRUE. 1409 IF ( bc_ns == 'neumann/dirichlet' ) bc_ns_neudir = .TRUE. 1401 1410 1402 1411 ! … … 2659 2668 unit = 'psu' 2660 2669 2661 CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'qsws*', 'shf*', 'z0*' )2670 CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'qsws*', 'shf*', 'z0*', 'z0h*' ) 2662 2671 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN 2663 2672 message_string = 'illegal value for data_output: "' // & … … 2700 2709 IF ( TRIM( var ) == 'u*' ) unit = 'm/s' 2701 2710 IF ( TRIM( var ) == 'z0*' ) unit = 'm' 2711 IF ( TRIM( var ) == 'z0h*' ) unit = 'm' 2702 2712 2703 2713 … … 2964 2974 2965 2975 ! 2966 !-- In case of non-cyclic lateral boundaries, set the default maximum value 2967 !-- for the horizontal diffusivity used within the outflow damping layer, 2968 !-- and check/set the width of the damping layer 2976 !-- In case of non-cyclic lateral boundaries and a damping layer for the 2977 !-- potential temperature, check the width of the damping layer 2969 2978 IF ( bc_lr /= 'cyclic' ) THEN 2970 IF ( km_damp_max == -1.0 ) THEN 2971 km_damp_max = 0.5 * dx 2972 ENDIF 2973 IF ( outflow_damping_width == -1.0 ) THEN 2974 outflow_damping_width = MIN( 20, nx/2 ) 2975 ENDIF 2976 IF ( outflow_damping_width <= 0 .OR. outflow_damping_width > nx ) THEN 2977 message_string = 'outflow_damping width out of range' 2979 IF ( pt_damping_width < 0.0 .OR. pt_damping_width > REAL( nx * dx ) ) THEN 2980 message_string = 'pt_damping_width out of range' 2978 2981 CALL message( 'check_parameters', 'PA0124', 1, 2, 0, 6, 0 ) 2979 2982 ENDIF … … 2981 2984 2982 2985 IF ( bc_ns /= 'cyclic' ) THEN 2983 IF ( km_damp_max == -1.0 ) THEN 2984 km_damp_max = 0.5 * dy 2985 ENDIF 2986 IF ( outflow_damping_width == -1.0 ) THEN 2987 outflow_damping_width = MIN( 20, ny/2 ) 2988 ENDIF 2989 IF ( outflow_damping_width <= 0 .OR. outflow_damping_width > ny ) THEN 2990 message_string = 'outflow_damping width out of range' 2986 IF ( pt_damping_width < 0.0 .OR. pt_damping_width > REAL( ny * dy ) ) THEN 2987 message_string = 'pt_damping_width out of range' 2991 2988 CALL message( 'check_parameters', 'PA0124', 1, 2, 0, 6, 0 ) 2992 2989 ENDIF … … 3108 3105 ENDIF 3109 3106 3110 IF ( bc_lr == 'radiation/dirichlet' ) THEN3107 IF ( bc_lr == 'radiation/dirichlet' .OR. bc_lr == 'neumann/dirichlet' ) THEN 3111 3108 dist_nxr = nx - inflow_disturbance_begin 3112 3109 dist_nxl(1) = nx - inflow_disturbance_end 3113 ELSEIF ( bc_lr == 'dirichlet/radiation' ) THEN3110 ELSEIF ( bc_lr == 'dirichlet/radiation' .OR. bc_lr == 'dirichlet/neumann' ) THEN 3114 3111 dist_nxl = inflow_disturbance_begin 3115 3112 dist_nxr(1) = inflow_disturbance_end 3116 3113 ENDIF 3117 IF ( bc_ns == 'dirichlet/radiation' ) THEN3114 IF ( bc_ns == 'dirichlet/radiation' .OR. bc_ns == 'dirichlet/neumann' ) THEN 3118 3115 dist_nyn = ny - inflow_disturbance_begin 3119 3116 dist_nys(1) = ny - inflow_disturbance_end 3120 ELSEIF ( bc_ns == 'radiation/dirichlet' ) THEN3117 ELSEIF ( bc_ns == 'radiation/dirichlet' .OR. bc_ns == 'neumann/dirichlet' ) THEN 3121 3118 dist_nys = inflow_disturbance_begin 3122 3119 dist_nyn(1) = inflow_disturbance_end … … 3126 3123 !-- A turbulent inflow requires Dirichlet conditions at the respective inflow 3127 3124 !-- boundary (so far, a turbulent inflow is realized from the left side only) 3128 IF ( turbulent_inflow .AND. bc_lr /= 'dirichlet/radiation' ) THEN3125 IF ( turbulent_inflow .AND. bc_lr /= 'dirichlet/radiation' .AND. bc_lr /= 'dirichlet/neumann' ) THEN 3129 3126 message_string = 'turbulent_inflow = .T. requires a Dirichlet ' // & 3130 3127 'condition at the inflow boundary'
Note: See TracChangeset
for help on using the changeset viewer.