Changeset 940 for palm/trunk/SOURCE/check_parameters.f90
- Timestamp:
- Jul 9, 2012 2:31:00 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_parameters.f90
r925 r940 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! checks for parameter neutral 7 7 ! 8 8 ! Former revisions: … … 1039 1039 ! 1040 1040 !-- Compute initial temperature profile using the given temperature gradients 1041 i = 1 1042 gradient = 0.0 1043 1044 IF ( .NOT. ocean ) THEN 1045 1046 pt_vertical_gradient_level_ind(1) = 0 1047 DO k = 1, nzt+1 1048 IF ( i < 11 ) THEN 1049 IF ( pt_vertical_gradient_level(i) < zu(k) .AND. & 1050 pt_vertical_gradient_level(i) >= 0.0 ) THEN 1051 gradient = pt_vertical_gradient(i) / 100.0 1052 pt_vertical_gradient_level_ind(i) = k - 1 1053 i = i + 1 1041 IF ( .NOT. neutral ) THEN 1042 1043 i = 1 1044 gradient = 0.0 1045 1046 IF ( .NOT. ocean ) THEN 1047 1048 pt_vertical_gradient_level_ind(1) = 0 1049 DO k = 1, nzt+1 1050 IF ( i < 11 ) THEN 1051 IF ( pt_vertical_gradient_level(i) < zu(k) .AND. & 1052 pt_vertical_gradient_level(i) >= 0.0 ) THEN 1053 gradient = pt_vertical_gradient(i) / 100.0 1054 pt_vertical_gradient_level_ind(i) = k - 1 1055 i = i + 1 1056 ENDIF 1054 1057 ENDIF 1055 ENDIF 1056 IF ( gradient /= 0.0 ) THEN 1057 IF ( k /= 1 ) THEN 1058 pt_init(k) = pt_init(k-1) + dzu(k) * gradient 1058 IF ( gradient /= 0.0 ) THEN 1059 IF ( k /= 1 ) THEN 1060 pt_init(k) = pt_init(k-1) + dzu(k) * gradient 1061 ELSE 1062 pt_init(k) = pt_surface + 0.5 * dzu(k) * gradient 1063 ENDIF 1059 1064 ELSE 1060 pt_init(k) = pt_ surface + 0.5 * dzu(k) * gradient1065 pt_init(k) = pt_init(k-1) 1061 1066 ENDIF 1062 ELSE 1063 pt_init(k) = pt_init(k-1) 1064 ENDIF 1065 ENDDO 1066 1067 ELSE 1068 1069 pt_vertical_gradient_level_ind(1) = nzt+1 1070 DO k = nzt, 0, -1 1071 IF ( i < 11 ) THEN 1072 IF ( pt_vertical_gradient_level(i) > zu(k) .AND. & 1073 pt_vertical_gradient_level(i) <= 0.0 ) THEN 1074 gradient = pt_vertical_gradient(i) / 100.0 1075 pt_vertical_gradient_level_ind(i) = k + 1 1076 i = i + 1 1067 ENDDO 1068 1069 ELSE 1070 1071 pt_vertical_gradient_level_ind(1) = nzt+1 1072 DO k = nzt, 0, -1 1073 IF ( i < 11 ) THEN 1074 IF ( pt_vertical_gradient_level(i) > zu(k) .AND. & 1075 pt_vertical_gradient_level(i) <= 0.0 ) THEN 1076 gradient = pt_vertical_gradient(i) / 100.0 1077 pt_vertical_gradient_level_ind(i) = k + 1 1078 i = i + 1 1079 ENDIF 1077 1080 ENDIF 1078 ENDIF 1079 IF ( gradient /= 0.0 ) THEN 1080 IF ( k /= nzt ) THEN 1081 pt_init(k) = pt_init(k+1) - dzu(k+1) * gradient 1081 IF ( gradient /= 0.0 ) THEN 1082 IF ( k /= nzt ) THEN 1083 pt_init(k) = pt_init(k+1) - dzu(k+1) * gradient 1084 ELSE 1085 pt_init(k) = pt_surface - 0.5 * dzu(k+1) * gradient 1086 pt_init(k+1) = pt_surface + 0.5 * dzu(k+1) * gradient 1087 ENDIF 1082 1088 ELSE 1083 pt_init(k) = pt_surface - 0.5 * dzu(k+1) * gradient 1084 pt_init(k+1) = pt_surface + 0.5 * dzu(k+1) * gradient 1089 pt_init(k) = pt_init(k+1) 1085 1090 ENDIF 1086 ELSE 1087 pt_init(k) = pt_init(k+1) 1088 ENDIF 1089 ENDDO 1091 ENDDO 1092 1093 ENDIF 1090 1094 1091 1095 ENDIF … … 1505 1509 IF ( surface_heatflux == 9999999.9 ) constant_heatflux = .FALSE. 1506 1510 IF ( top_heatflux == 9999999.9 ) constant_top_heatflux = .FALSE. 1511 1512 IF ( neutral ) THEN 1513 1514 IF ( surface_heatflux /= 0.0 .AND. surface_heatflux /= 9999999.9 ) & 1515 THEN 1516 message_string = 'heatflux must not be set for pure neutral flow' 1517 CALL message( 'check_parameters', 'PA0351', 1, 2, 0, 6, 0 ) 1518 ENDIF 1519 1520 IF ( top_heatflux /= 0.0 .AND. top_heatflux /= 9999999.9 ) & 1521 THEN 1522 message_string = 'heatflux must not be set for pure neutral flow' 1523 CALL message( 'check_parameters', 'PA0351', 1, 2, 0, 6, 0 ) 1524 ENDIF 1525 1526 ENDIF 1527 1507 1528 IF ( top_momentumflux_u /= 9999999.9 .AND. & 1508 1529 top_momentumflux_v /= 9999999.9 ) THEN
Note: See TracChangeset
for help on using the changeset viewer.