- Timestamp:
- Nov 27, 2018 5:44:21 PM (6 years ago)
- Location:
- palm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SCRIPTS/palmrun
r3555 r3570 27 27 # ----------------- 28 28 # $Id$ 29 # Rename job-id by run_id 30 # 31 # 3555 2018-11-22 13:50:37Z raasch 29 32 # sed-command to remove repeated space-characters replaced by tr-command, to 30 33 # guarantee mac compatible … … 3015 3018 3016 3019 # SUBMIT THE JOB 3017 printf " *** submit the job (output of submit command, e.g. the job-id, may follow) \n"3020 printf " *** submit the job (output of submit command, e.g. the run_id, may follow) \n" 3018 3021 if [[ $do_trace = true ]] 3019 3022 then -
palm/trunk/SOURCE/chem_emissions_mod.f90
r3483 r3570 27 27 ! ----------------- 28 28 ! $Id$ 29 ! resler: 30 ! Break lines at 132 characters 31 ! 32 ! 3483 2018-11-02 14:19:26Z raasch 29 33 ! bugfix: wrong locations of netCDF directives fixed 30 34 ! … … 704 708 DO ispec = 1 , len_index 705 709 706 IF ( emiss_factor_main(match_spec_input(ispec)) .LT. 0 .AND. emiss_factor_side(match_spec_input(ispec)) .LT. 0 ) THEN 710 IF ( emiss_factor_main(match_spec_input(ispec)) .LT. 0 .AND. & 711 emiss_factor_side(match_spec_input(ispec)) .LT. 0 ) THEN 707 712 708 713 message_string = 'PARAMETERIZED emissions mode selected:' // & … … 1185 1190 1186 1191 !Assign Constant Values of time factors, diurnal time profile for traffic sector: 1187 par_emis_time_factor( : ) = (/ 0.009, 0.004, 0.004, 0.009, 0.029, 0.039, 0.056, 0.053, 0.051, 0.051, 0.052, 0.055, & 1188 0.059, 0.061, 0.064, 0.067, 0.069, 0.069, 0.049, 0.039, 0.039, 0.029, 0.024, 0.019 /) 1192 par_emis_time_factor( : ) = & 1193 (/ 0.009, 0.004, 0.004, 0.009, 0.029, 0.039, 0.056, 0.053, 0.051, 0.051, 0.052, 0.055, & 1194 0.059, 0.061, 0.064, 0.067, 0.069, 0.069, 0.049, 0.039, 0.039, 0.029, 0.024, 0.019 /) 1189 1195 1190 1196 !> in this case allocate time factor each hour in a day … … 1249 1255 !> NOX Compositions 1250 1256 IF (TRIM(spc_names(match_spec_model(ispec)))=="NO") THEN 1251 !> Kg/m2*s kg/m2*s 1252 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)*emt_att%nox_comp(icat,1)*con_factor*hour_per_day 1253 1257 !> Kg/m2*s kg/m2*s 1258 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)* & 1259 emt_att%nox_comp(icat,1)*con_factor*hour_per_day 1260 1254 1261 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) 1255 1262 1256 1263 ELSE IF (TRIM(spc_names(match_spec_model(ispec)))=="NO2") THEN 1257 1258 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)*emt_att%nox_comp(icat,2)*con_factor*hour_per_day 1264 1265 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)* & 1266 emt_att%nox_comp(icat,2)*con_factor*hour_per_day 1259 1267 1260 1268 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) 1261 1269 1262 1270 !> SOX Compositions 1263 1271 1264 1272 ELSE IF (TRIM(spc_names(match_spec_model(ispec)))=="SO2") THEN 1265 !> Kg/m2*s kg/m2*s 1266 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)*emt_att%sox_comp(icat,1)*con_factor*hour_per_day 1273 !> Kg/m2*s kg/m2*s 1274 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)* & 1275 emt_att%sox_comp(icat,1)*con_factor*hour_per_day 1267 1276 1268 1277 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) 1269 1278 1270 1279 ELSE IF (TRIM(spc_names(match_spec_model(ispec)))=="SO4") THEN 1271 !> Kg/m2*s kg/m2*s 1272 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)*emt_att%sox_comp(icat,2)*con_factor*hour_per_day 1280 !> Kg/m2*s kg/m2*s 1281 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)* & 1282 emt_att%sox_comp(icat,2)*con_factor*hour_per_day 1273 1283 1274 1284 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) … … 1282 1292 DO i_pm_comp= 1,SIZE(emt_att%pm_comp(1,:,1)) 1283 1293 1284 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)*emt_att%pm_comp(icat,i_pm_comp,1)*con_factor*hour_per_day 1285 1286 1287 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) 1294 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)* & 1295 emt_att%pm_comp(icat,i_pm_comp,1)*con_factor*hour_per_day 1296 1297 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+ & 1298 delta_emis(nys:nyn,nxl:nxr) 1288 1299 1289 1300 ENDDO … … 1295 1306 DO i_pm_comp= 1,SIZE(emt_att%pm_comp(1,:,2)) 1296 1307 1297 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)*emt_att%pm_comp(icat,i_pm_comp,2)*con_factor*hour_per_day 1298 1299 1300 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) 1308 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)* & 1309 emt_att%pm_comp(icat,i_pm_comp,2)*con_factor*hour_per_day 1310 1311 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+ & 1312 delta_emis(nys:nyn,nxl:nxr) 1301 1313 1302 1314 ENDDO … … 1307 1319 !> Cycle over the different pm components for PM10 type 1308 1320 DO i_pm_comp= 1,SIZE(emt_att%pm_comp(1,:,3)) 1309 1310 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)*emt_att%pm_comp(icat,i_pm_comp,3)*con_factor*hour_per_day 1311 1312 1313 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) 1321 1322 delta_emis(nys:nyn,nxl:nxr) = emis(nys:nyn,nxl:nxr)*time_factor(icat)* & 1323 emt_att%pm_comp(icat,i_pm_comp,3)*con_factor*hour_per_day 1324 1325 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+ & 1326 delta_emis(nys:nyn,nxl:nxr) 1314 1327 1315 1328 ENDDO … … 1326 1339 emt_att%voc_comp(icat,match_spec_voc_input(ivoc))*con_factor*hour_per_day 1327 1340 1328 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+delta_emis(nys:nyn,nxl:nxr) 1341 emis_distribution(1,nys:nyn,nxl:nxr,ispec)=emis_distribution(1,nys:nyn,nxl:nxr,ispec)+ & 1342 delta_emis(nys:nyn,nxl:nxr) 1329 1343 1330 1344 ENDIF … … 1379 1393 1380 1394 !> PMs are already in mass units: kilograms 1381 IF (TRIM(spc_names(match_spec_model(ispec)))=="PM1" .OR. TRIM(spc_names(match_spec_model(ispec)))=="PM25" & 1395 IF (TRIM(spc_names(match_spec_model(ispec)))=="PM1" & 1396 .OR. TRIM(spc_names(match_spec_model(ispec)))=="PM25" & 1382 1397 .OR. TRIM(spc_names(match_spec_model(ispec)))=="PM10") THEN 1383 1398 1384 ! kg/(m^2*s) *kg/m^3 1399 ! kg/(m^2*s) *kg/m^3 1385 1400 surf_lsm_h%cssws(match_spec_model(ispec),m) = emiss_factor_main(match_spec_input(ispec)) * & 1386 1401 ! kg/(m^2*s) … … 1413 1428 1414 1429 !> PMs are already in mass units: micrograms 1415 IF (TRIM(spc_names(match_spec_model(ispec)))=="PM1" .OR. TRIM(spc_names(match_spec_model(ispec)))=="PM25" & 1430 IF (TRIM(spc_names(match_spec_model(ispec)))=="PM1" & 1431 .OR. TRIM(spc_names(match_spec_model(ispec)))=="PM25" & 1416 1432 .OR. TRIM(spc_names(match_spec_model(ispec)))=="PM10") THEN 1417 1433 -
palm/trunk/SOURCE/chemistry_model_mod.f90
r3543 r3570 21 21 ! 22 22 ! Current revisions: 23 ! ----------------- 23 ! ------------------ 24 24 ! 25 25 ! … … 27 27 ! ----------------- 28 28 ! $Id$ 29 ! resler: 30 ! Break lines at 132 characters 31 ! 32 ! 3543 2018-11-20 17:06:15Z suehring 29 33 ! Remove tabs 30 34 ! … … 323 327 ! 324 328 ! Set alpha for f_light (4.57 is conversion factor from 1./(mumol m-2 s-1) naar W m-2 325 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: alpha =(/0.009,0.009, 0.009,0.006,0.006, -999., -999.,0.009,-999.,-999.,0.009,0.006,-999.,0.009,0.008/)*4.57 329 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: alpha = & 330 (/0.009,0.009, 0.009,0.006,0.006, -999., -999.,0.009,-999.,-999.,0.009,0.006,-999.,0.009,0.008/)*4.57 326 331 ! 327 332 ! Set temperatures per land use for F_temp 328 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: Tmin = (/12.0, 12.0, 12.0, 0.0, 0.0, -999., -999., 12.0, -999., -999., 12.0, 0.0, -999., 12.0, 8.0/) 329 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: Topt = (/26.0, 26.0, 26.0, 18.0, 20.0, -999., -999., 26.0, -999., -999., 26.0, 20.0, -999., 26.0, 24.0 /) 330 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: Tmax = (/40.0, 40.0, 40.0, 36.0, 35.0, -999., -999., 40.0, -999., -999., 40.0, 35.0, -999., 40.0, 39.0 /) 333 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: Tmin = & 334 (/12.0, 12.0, 12.0, 0.0, 0.0, -999., -999., 12.0, -999., -999., 12.0, 0.0, -999., 12.0, 8.0/) 335 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: Topt = & 336 (/26.0, 26.0, 26.0, 18.0, 20.0, -999., -999., 26.0, -999., -999., 26.0, 20.0, -999., 26.0, 24.0 /) 337 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: Tmax = & 338 (/40.0, 40.0, 40.0, 36.0, 35.0, -999., -999., 40.0, -999., -999., 40.0, 35.0, -999., 40.0, 39.0 /) 331 339 ! 332 340 ! Set F_min: 333 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: F_min =(/0.01, 0.01, 0.01, 0.1, 0.1, -999., -999.,0.01, -999.,-999.,0.01,0.1,-999.,0.01, 0.04/) 341 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: F_min = & 342 (/0.01, 0.01, 0.01, 0.1, 0.1, -999., -999.,0.01, -999.,-999.,0.01,0.1,-999.,0.01, 0.04/) 334 343 335 344 ! Set maximal conductance (m/s) 336 345 ! (R T/P) = 1/41000 mmol/m3 is given for 20 deg C to go from mmol O3/m2/s to m/s 337 346 ! Could be refined to a function of T and P. in Jones 338 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: g_max =(/270., 300., 300., 140., 150., -999., -999.,270., -999.,-999.,270., 150.,-999.,300., 422./)/41000 347 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: g_max = & 348 (/270., 300., 300., 140., 150., -999., -999.,270., -999.,-999.,270., 150.,-999.,300., 422./)/41000 339 349 ! 340 350 ! Set max, min for vapour pressure deficit vpd; 341 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: vpd_max =(/1.3, 0.9, 0.9, 0.5, 1.0, -999., -999.,1.3, -999.,-999.,1.3,1.0, -999.,0.9, 2.8/) 342 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: vpd_min =(/3.0, 2.8, 2.8, 3.0, 3.25, -999., -999.,3.0, -999.,-999.,3.0,3.25, -999.,2.8, 4.5/) 351 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: vpd_max = & 352 (/1.3, 0.9, 0.9, 0.5, 1.0, -999., -999.,1.3, -999.,-999.,1.3,1.0, -999.,0.9, 2.8/) 353 REAL(wp), DIMENSION(nlu_dep), PARAMETER :: vpd_min = & 354 (/3.0, 2.8, 2.8, 3.0, 3.25, -999., -999.,3.0, -999.,-999.,3.0,3.25, -999.,2.8, 4.5/) 343 355 ! 344 356 ! … … 4958 4970 4959 4971 4960 REAL(kind=wp), PARAMETER :: rsoil_wet(ncmp) = (/2000., 10., 2000., -999., 10., -999., -999., -999., -999., -999./) 4961 REAL(kind=wp), PARAMETER :: rsoil_frozen(ncmp) = (/2000., 500., 2000., -999., 1000., -999., -999., -999., -999., -999./) 4972 REAL(kind=wp), PARAMETER :: rsoil_wet(ncmp) = & 4973 (/2000., 10., 2000., -999., 10., -999., -999., -999., -999., -999./) 4974 REAL(kind=wp), PARAMETER :: rsoil_frozen(ncmp) = & 4975 (/2000., 500., 2000., -999., 1000., -999., -999., -999., -999., -999./) 4962 4976 4963 4977 … … 5027 5041 ! b = empirical constant for computation of rinc (in canopy resistance) (= 14 m-1 or -999 IF not applicable) 5028 5042 ! h = vegetation height (m) grass arabl crops conIF decid water urba othr desr ice sav trf wai med semi 5029 REAL(kind=wp), DIMENSION(nlu_dep), PARAMETER :: b = (/ -999, 14, 14, 14, 14, -999, -999, -999, -999, -999, -999, 14, -999, 14, 14 /) 5030 REAL(kind=wp), DIMENSION(nlu_dep), PARAMETER :: h = (/ -999, 1, 1, 20, 20, -999, -999, -999, -999, -999, -999, 20, -999, 1 , 1 /) 5043 REAL(kind=wp), DIMENSION(nlu_dep), PARAMETER :: b = & 5044 (/ -999, 14, 14, 14, 14, -999, -999, -999, -999, -999, -999, 14, -999, 14, 14 /) 5045 REAL(kind=wp), DIMENSION(nlu_dep), PARAMETER :: h = & 5046 (/ -999, 1, 1, 20, 20, -999, -999, -999, -999, -999, -999, 20, -999, 1 , 1 /) 5031 5047 5032 5048 ! Compute Rinc only for arable land, perm. crops, forest; otherwise Rinc = 0:
Note: See TracChangeset
for help on using the changeset viewer.