Changeset 4601 for palm/trunk/SOURCE/chemistry_model_mod.f90
- Timestamp:
- Jul 14, 2020 12:06:09 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/chemistry_model_mod.f90
r4581 r4601 21 21 ! Current revisions: 22 22 ! ----------------- 23 ! 24 ! 23 ! 24 ! 25 25 ! Former revisions: 26 26 ! ----------------- 27 27 ! $Id$ 28 ! - Bugfix in variable name separation in profile-output initialization 29 ! - Bugfix in counting the number of chemistry profiles 30 ! 31 ! 4581 2020-06-29 08:49:58Z suehring 28 32 ! Enable output of resolved-scale vertical fluxes of chemical species. 29 33 ! … … 1109 1113 cs_pr_count_sp = cs_pr_count_sp + 1 1110 1114 cs_pr_index_sp(cs_pr_count_sp) = lsp 1111 dopr_index(var_count) = pr_palm + cs_pr_count_sp + cs_pr_count_fl_sgs + cs_pr_count_fl_res 1115 dopr_index(var_count) = pr_palm + cs_pr_count_sp + & 1116 cs_pr_count_fl_sgs + cs_pr_count_fl_res 1112 1117 dopr_unit = 'ppm' 1113 1118 IF ( spec_name(1:2) == 'PM') THEN 1114 1119 dopr_unit = 'kg m-3' 1115 1120 ENDIF 1116 hom(:,2, 1121 hom(:,2,dopr_index(var_count),:) = SPREAD( zu, 2, statistic_regions+1 ) 1117 1122 unit = dopr_unit 1118 1123 … … 1125 1130 IF ( TRIM( variable(1:5) ) == 'kc_w"' ) THEN 1126 1131 DO lsp = 1, nspec 1127 index_start = INDEX( TRIM( variable ), TRIM( chem_species(lsp)%name ) )1128 1132 index_end = LEN( TRIM( variable ) ) - 1 1129 IF ( index_start /= 0 ) THEN 1130 spec_name = TRIM( variable(index_start:index_end) ) 1131 IF ( TRIM( spec_name ) == TRIM( chem_species(lsp)%name ) ) THEN 1132 cs_pr_count_fl_sgs = cs_pr_count_fl_sgs + 1 1133 cs_pr_index_fl_sgs(cs_pr_count_fl_sgs) = lsp 1134 dopr_index(var_count) = pr_palm + cs_pr_count_sp + & 1135 cs_pr_count_fl_sgs + & 1136 cs_pr_count_fl_res 1137 dopr_unit = 'm ppm s-1' 1138 IF ( spec_name(1:2) == 'PM') THEN 1139 dopr_unit = 'kg m-2 s-1' 1140 ENDIF 1141 hom(:,2, dopr_index(var_count),:) = SPREAD( zu, 2, statistic_regions+1 ) 1142 unit = dopr_unit 1143 1144 hom_index_fl_sgs(cs_pr_count_fl_sgs) = dopr_index(var_count) 1133 index_start = 6 1134 spec_name = TRIM( variable(index_start:index_end) ) 1135 IF ( TRIM( spec_name ) == TRIM( chem_species(lsp)%name ) ) THEN 1136 cs_pr_count_fl_sgs = cs_pr_count_fl_sgs + 1 1137 cs_pr_index_fl_sgs(cs_pr_count_fl_sgs) = lsp 1138 dopr_index(var_count) = pr_palm + cs_pr_count_sp + & 1139 cs_pr_count_fl_sgs + & 1140 cs_pr_count_fl_res 1141 dopr_unit = 'm ppm s-1' 1142 IF ( spec_name(1:2) == 'PM') THEN 1143 dopr_unit = 'kg m-2 s-1' 1145 1144 ENDIF 1145 hom(:,2,dopr_index(var_count),:) = SPREAD( zu, 2, statistic_regions+1 ) 1146 unit = dopr_unit 1147 1148 hom_index_fl_sgs(cs_pr_count_fl_sgs) = dopr_index(var_count) 1146 1149 ENDIF 1147 1150 ENDDO … … 1152 1155 spec_name = TRIM( variable(6:) ) 1153 1156 DO lsp = 1, nspec 1154 index_start = INDEX( TRIM( variable ), TRIM( chem_species(lsp)%name ) )1157 index_start = 6 1155 1158 index_end = LEN( TRIM( variable ) ) - 1 1156 IF ( index_start /= 0 ) THEN 1157 spec_name = TRIM( variable(index_start:index_end) ) 1158 IF ( TRIM( spec_name ) == TRIM( chem_species(lsp)%name ) ) THEN 1159 cs_pr_count_fl_res = cs_pr_count_fl_res + 1 1160 cs_pr_index_fl_res(cs_pr_count_fl_res) = lsp 1161 dopr_index(var_count) = pr_palm + cs_pr_count_sp + & 1162 cs_pr_count_fl_sgs + & 1163 cs_pr_count_fl_res 1164 dopr_unit = 'm ppm s-1' 1165 IF ( spec_name(1:2) == 'PM') THEN 1166 dopr_unit = 'kg m-2 s-1' 1167 ENDIF 1168 hom(:,2, dopr_index(var_count),:) = SPREAD( zu, 2, statistic_regions+1 ) 1169 unit = dopr_unit 1170 1171 hom_index_fl_res(cs_pr_count_fl_res) = dopr_index(var_count) 1159 spec_name = TRIM( variable(index_start:index_end) ) 1160 IF ( TRIM( spec_name ) == TRIM( chem_species(lsp)%name ) ) THEN 1161 cs_pr_count_fl_res = cs_pr_count_fl_res + 1 1162 cs_pr_index_fl_res(cs_pr_count_fl_res) = lsp 1163 dopr_index(var_count) = pr_palm + cs_pr_count_sp + & 1164 cs_pr_count_fl_sgs + & 1165 cs_pr_count_fl_res 1166 dopr_unit = 'm ppm s-1' 1167 IF ( spec_name(1:2) == 'PM') THEN 1168 dopr_unit = 'kg m-2 s-1' 1172 1169 ENDIF 1170 hom(:,2, dopr_index(var_count),:) = SPREAD( zu, 2, statistic_regions+1 ) 1171 unit = dopr_unit 1172 1173 hom_index_fl_res(cs_pr_count_fl_res) = dopr_index(var_count) 1173 1174 ENDIF 1174 1175 ENDDO … … 2710 2711 i = 1 2711 2712 2712 DO WHILE ( data_output_pr(i) /= ' ' .AND. i <= 100 ) 2713 2713 DO WHILE ( data_output_pr(i) /= ' ' .AND. i <= SIZE( data_output_pr ) ) 2714 2714 IF ( TRIM( data_output_pr(i)(1:3) ) == 'kc_' ) THEN 2715 2715 max_pr_cs_tmp = max_pr_cs_tmp+1
Note: See TracChangeset
for help on using the changeset viewer.