Changeset 343
- Timestamp:
- 2011-07-26T11:04:04+02:00 (13 years ago)
- Location:
- branches/ORCHIDEE_EXT/ORCHIDEE/src_parameters
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_EXT/ORCHIDEE/src_parameters/constantes.f90
r328 r343 28 28 ! we provide here a way to catch that in the calling procedure. (JP) 29 29 LOGICAL,PARAMETER :: diag_qsat = .TRUE. 30 31 !!$ ! One of the most frequent problems is a temperature out of range32 !!$ ! we provide here a way to catch that in the calling procedure. (JP)33 !!$ LOGICAL,SAVE :: diag_qsat = .TRUE.34 30 35 31 !- … … 1147 1143 CONTAINS 1148 1144 1149 SUBROUTINE activate_sub_models( active_sechiba,active_routing, active_stomate)1145 SUBROUTINE activate_sub_models(ok_sechiba,ok_routing, ok_stomate) 1150 1146 1151 1147 IMPLICIT NONE … … 1153 1149 LOGICAL, SAVE :: first_call = .TRUE. 1154 1150 ! input 1155 LOGICAL, INTENT(in) :: active_sechiba1156 LOGICAL, INTENT(in) :: active_routing1157 LOGICAL, INTENT(in) :: active_stomate1151 LOGICAL, INTENT(in) :: ok_sechiba 1152 LOGICAL, INTENT(in) :: ok_routing 1153 LOGICAL, INTENT(in) :: ok_stomate 1158 1154 1159 1155 IF (first_call) THEN 1160 1156 1161 IF( active_sechiba .AND. active_routing) THEN1157 IF(ok_sechiba .AND. ok_routing) THEN 1162 1158 1163 1159 !Config Key = DO_IRRIGATION … … 1184 1180 1185 1181 1186 IF( active_stomate) THEN1182 IF(ok_stomate) THEN 1187 1183 1188 1184 !Config Key = HERBIVORES … … 1227 1223 ! Check consistency (see later) 1228 1224 ! 1229 !!$ IF(.NOT.( active_routing) .AND. (doirrigation .OR. dofloodplains)) THEN1225 !!$ IF(.NOT.(ok_routing) .AND. (doirrigation .OR. dofloodplains)) THEN 1230 1226 !!$ CALL ipslerr (2,'activate_sub_models', & 1231 1227 !!$ & 'Problem :you tried to activate the irrigation and floodplains without activating the routing',& … … 1234 1230 !!$ ENDIF 1235 1231 1236 !!$ IF(.NOT.( active_stomate) .AND. (ok_herbivores .OR. treat_expansion .OR. lpj_gap_const_mort &1232 !!$ IF(.NOT.(ok_stomate) .AND. (ok_herbivores .OR. treat_expansion .OR. lpj_gap_const_mort & 1237 1233 !!$ & .OR. harvest_agri .OR. disable_fire)) THEN 1238 1234 !!$ CALL ipslerr (2,'activate_sub_models', & … … 1279 1275 ! 1280 1276 CALL getin_p('IMPOSE_VEG', impveg) 1281 ! 1282 !Config Key = IMPOSE_SOILT 1283 !Config Desc = Should the soil typ be prescribed 1284 !Config Def = n 1285 !Config If = IMPOSE_VEG 1286 !Config Help = This flag allows the user to impose a soil type distribution. 1287 !Config It is espacially interesting for 0D 1288 !Config simulations. On the globe it does not make too much sense as 1289 !Config it imposes the same soil everywhere 1290 CALL getin_p('IMPOSE_SOILT', impsoilt) 1291 ! 1292 !Config Key = LAND_COVER_CHANGE 1293 !Config Desc = treat land use modifications 1294 !Config If = LAND_USE 1295 !Config Def = y 1296 !Config Help = With this variable, you can use a Land Use map 1297 !Config to simulate anthropic modifications such as 1298 !Config deforestation. 1299 CALL getin_p('LAND_COVER_CHANGE', lcchange) 1300 ! 1277 1278 IF(impveg) THEN 1279 !Config Key = IMPOSE_SOILT 1280 !Config Desc = Should the soil typ be prescribed 1281 !Config Def = n 1282 !Config If = IMPOSE_VEG 1283 !Config Help = This flag allows the user to impose a soil type distribution. 1284 !Config It is espacially interesting for 0D 1285 !Config simulations. On the globe it does not make too much sense as 1286 !Config it imposes the same soil everywhere 1287 CALL getin_p('IMPOSE_SOILT', impsoilt) 1288 ENDIF 1289 1301 1290 !Config Key = LAI_MAP 1302 1291 !Config Desc = Read the LAI map … … 1305 1294 !Config then be interpolated to daily values as needed. 1306 1295 CALL getin_p('LAI_MAP',read_lai) 1307 ! 1308 !Config Key = SLOWPROC_LAI_OLD_INTERPOL 1309 !Config Desc = Flag to use old "interpolation" of LAI 1310 !Config If = LAI_MAP 1311 !Config Def = FALSE 1312 !Config Help = If you want to recover the old (ie orchidee_1_2 branch) 1313 !Config "interpolation" of LAI map. 1314 CALL getin_p('SLOWPROC_LAI_OLD_INTERPOL',old_lai) 1296 1297 IF(read_lai) THEN 1298 !Config Key = SLOWPROC_LAI_OLD_INTERPOL 1299 !Config Desc = Flag to use old "interpolation" of LAI 1300 !Config If = LAI_MAP 1301 !Config Def = FALSE 1302 !Config Help = If you want to recover the old (ie orchidee_1_2 branch) 1303 !Config "interpolation" of LAI map. 1304 CALL getin_p('SLOWPROC_LAI_OLD_INTERPOL',old_lai) 1305 ENDIF 1315 1306 1316 !Config Key = SLOWPROC_VEGET_OLD_INTERPOL1317 !Config Desc = Flag to use old "interpolation" of vegetation map.1318 !Config If = NOT IMPOSE_VEG and NOT LAND_USE1319 !Config Def = FALSE1320 !Config Help = If you want to recover the old (ie orchidee_1_2 branch)1321 !Config "interpolation" of vegetation map.1322 CALL getin_p('SLOWPROC_VEGET_OLD_INTERPOL',old_veget)1323 1307 ! 1324 1308 !Config Key = LAND_USE … … 1327 1311 !Config Help = pft values are needed, max time axis is 293 1328 1312 CALL getin_p('LAND_USE',land_use) 1329 ! 1330 !Config Key = VEGET_REINIT 1331 !Config Desc = booleen to indicate that a new LAND USE file will be used. 1332 !Config If = LAND_USE 1333 !Config Def = n 1334 !Config Help = The parameter is used to bypass veget_year count 1335 !Config Help and reinitialize it with VEGET_YEAR parameter. 1336 !Config Help Then it is possible to change LAND USE file. 1337 CALL getin_p('VEGET_REINIT', veget_reinit) 1313 1314 IF(land_use) THEN 1315 !Config Key = VEGET_REINIT 1316 !Config Desc = booleen to indicate that a new LAND USE file will be used. 1317 !Config If = LAND_USE 1318 !Config Def = n 1319 !Config Help = The parameter is used to bypass veget_year count 1320 !Config Help and reinitialize it with VEGET_YEAR parameter. 1321 !Config Help Then it is possible to change LAND USE file. 1322 CALL getin_p('VEGET_REINIT', veget_reinit) 1323 ! 1324 !Config Key = LAND_COVER_CHANGE 1325 !Config Desc = treat land use modifications 1326 !Config If = LAND_USE 1327 !Config Def = y 1328 !Config Help = With this variable, you can use a Land Use map 1329 !Config to simulate anthropic modifications such as 1330 !Config deforestation. 1331 CALL getin_p('LAND_COVER_CHANGE', lcchange) 1332 ! 1333 !Config Key = VEGET_YEAR 1334 !Config Desc = Year of the land_use vegetation map to be read (0 == NO TIME AXIS) 1335 !Config If = LAND_USE 1336 !Config Def = 282 1337 !Config Help = First year for landuse vegetation (2D map by pft). 1338 !Config Help If VEGET_YEAR == 0, this means there is no time axis. 1339 CALL getin_p('VEGET_YEAR', veget_year_orig) 1340 ENDIF 1341 1342 IF(.NOT. impveg .AND. .NOT. land_use) THEN 1343 !Config Key = SLOWPROC_VEGET_OLD_INTERPOL 1344 !Config Desc = Flag to use old "interpolation" of vegetation map. 1345 !Config If = NOT IMPOSE_VEG and NOT LAND_USE 1346 !Config Def = FALSE 1347 !Config Help = If you want to recover the old (ie orchidee_1_2 branch) 1348 !Config "interpolation" of vegetation map. 1349 CALL getin_p('SLOWPROC_VEGET_OLD_INTERPOL',old_veget) 1350 ENDIF 1351 1352 ! 1353 ! Check consistency 1354 ! 1355 ! 1. You have to activate agriculture and land_use 1356 IF ( .NOT. agriculture .AND. land_use ) THEN 1357 CALL ipslerr (2,'veget_config', & 1358 & 'Problem with agriculture desactivated and Land Use activated.',& 1359 & 'Are you sure ?', & 1360 & '(check your parameters).') 1361 ENDIF 1362 1338 1363 1339 1364 first_call = .FALSE. 1340 1365 1341 ENDIF1342 1343 ! Check consistency1344 1345 ! 1. You have to activate agriculture and land_use1346 IF ( .NOT. agriculture .AND. land_use ) THEN1347 CALL ipslerr (2,'veget_config', &1348 & 'Problem with agriculture desactivated and Land Use activated.',&1349 & 'Are you sure ?', &1350 & '(check your parameters).')1351 1366 ENDIF 1352 1367 … … 1464 1479 CALL getin_p('ALB_BARE_MODEL', alb_bare_model) 1465 1480 ! 1466 !Config Key = IMPOSE_AZE1467 !Config Desc = Should the surface parameters be prescribed1468 !Config Def = n1469 !Config Help = This flag allows the user to impose the surface parameters1470 !Config (Albedo Roughness and Emissivity). It is espacially interesting for 0D1471 !Config simulations. On the globe it does not make too much sense as1472 !Config it imposes the same vegetation everywhere1473 CALL getin_p('IMPOSE_AZE', impaze)1474 !1475 1481 !Config Key = Z0CDRAG_AVE 1476 1482 !Config Desc = Average method for z0 … … 1483 1489 CALL getin_p('Z0CDRAG_AVE', z0cdrag_ave) 1484 1490 ! 1485 !Config Key = CONDVEG_Z01486 !Config Desc = S urface roughness (m)1487 !Config Def = 0.151488 !Config If = IMPOSE_AZE1489 !Config Help = Surface rougness to be used on the point if a 0-dim version1490 !Config of SECHIBA is used. Look at the description of the forcing1491 !Config data for the correct value.1492 CALL getin_p(' CONDVEG_Z0', z0_scal)1491 !Config Key = IMPOSE_AZE 1492 !Config Desc = Should the surface parameters be prescribed 1493 !Config Def = n 1494 !Config Help = This flag allows the user to impose the surface parameters 1495 !Config (Albedo Roughness and Emissivity). It is espacially interesting for 0D 1496 !Config simulations. On the globe it does not make too much sense as 1497 !Config it imposes the same vegetation everywhere 1498 CALL getin_p('IMPOSE_AZE', impaze) 1493 1499 ! 1494 !Config Key = ROUGHHEIGHT 1495 !Config Desc = Height to be added to the height of the first level (m) 1496 !Config Def = 0.0 1497 !Config If = IMPOSE_AZE 1498 !Config Help = ORCHIDEE assumes that the atmospheric level height is counted 1499 !Config from the zero wind level. Thus to take into account the roughness 1500 !Config of tall vegetation we need to correct this by a certain fraction 1501 !Config of the vegetation height. This is called the roughness height in 1502 !Config ORCHIDEE talk. 1503 CALL getin_p('ROUGHHEIGHT', roughheight_scal) 1504 ! 1505 !Config Key = CONDVEG_ALBVIS 1506 !Config Desc = SW visible albedo for the surface 1507 !Config Def = 0.25 1508 !Config If = IMPOSE_AZE 1509 !Config Help = Surface albedo in visible wavelengths to be used 1510 !Config on the point if a 0-dim version of SECHIBA is used. 1511 !Config Look at the description of the forcing data for 1512 !Config the correct value. 1513 CALL getin_p('CONDVEG_ALBVIS', albedo_scal(ivis)) 1500 IF(impaze) THEN 1501 ! 1502 !Config Key = CONDVEG_Z0 1503 !Config Desc = Surface roughness (m) 1504 !Config Def = 0.15 1505 !Config If = IMPOSE_AZE 1506 !Config Help = Surface rougness to be used on the point if a 0-dim version 1507 !Config of SECHIBA is used. Look at the description of the forcing 1508 !Config data for the correct value. 1509 CALL getin_p('CONDVEG_Z0', z0_scal) 1510 ! 1511 !Config Key = ROUGHHEIGHT 1512 !Config Desc = Height to be added to the height of the first level (m) 1513 !Config Def = 0.0 1514 !Config If = IMPOSE_AZE 1515 !Config Help = ORCHIDEE assumes that the atmospheric level height is counted 1516 !Config from the zero wind level. Thus to take into account the roughness 1517 !Config of tall vegetation we need to correct this by a certain fraction 1518 !Config of the vegetation height. This is called the roughness height in 1519 !Config ORCHIDEE talk. 1520 CALL getin_p('ROUGHHEIGHT', roughheight_scal) 1521 ! 1522 !Config Key = CONDVEG_ALBVIS 1523 !Config Desc = SW visible albedo for the surface 1524 !Config Def = 0.25 1525 !Config If = IMPOSE_AZE 1526 !Config Help = Surface albedo in visible wavelengths to be used 1527 !Config on the point if a 0-dim version of SECHIBA is used. 1528 !Config Look at the description of the forcing data for 1529 !Config the correct value. 1530 CALL getin_p('CONDVEG_ALBVIS', albedo_scal(ivis)) 1531 ! 1532 !Config Key = CONDVEG_ALBNIR 1533 !Config Desc = SW near infrared albedo for the surface 1534 !Config Def = 0.25 1535 !Config If = IMPOSE_AZE 1536 !Config Help = Surface albedo in near infrared wavelengths to be used 1537 !Config on the point if a 0-dim version of SECHIBA is used. 1538 !Config Look at the description of the forcing data for 1539 !Config the correct value. 1540 CALL getin_p('CONDVEG_ALBNIR', albedo_scal(inir)) 1541 ! 1542 !Config Key = CONDVEG_EMIS 1543 !Config Desc = Emissivity of the surface for LW radiation 1544 !Config Def = 1.0 1545 !Config If = IMPOSE_AZE 1546 !Config Help = The surface emissivity used for compution the LE emission 1547 !Config of the surface in a 0-dim version. Values range between 1548 !Config 0.97 and 1.. The GCM uses 0.98. 1549 CALL getin_p('CONDVEG_EMIS', emis_scal) 1550 ENDIF 1514 1551 ! 1515 !Config Key = CONDVEG_ALBNIR1516 !Config Desc = SW near infrared albedo for the surface1517 !Config Def = 0.251518 !Config If = IMPOSE_AZE1519 !Config Help = Surface albedo in near infrared wavelengths to be used1520 !Config on the point if a 0-dim version of SECHIBA is used.1521 !Config Look at the description of the forcing data for1522 !Config the correct value.1523 CALL getin_p('CONDVEG_ALBNIR', albedo_scal(inir))1524 !1525 !Config Key = CONDVEG_EMIS1526 !Config Desc = Emissivity of the surface for LW radiation1527 !Config Def = 1.01528 !Config If = IMPOSE_AZE1529 !Config Help = The surface emissivity used for compution the LE emission1530 !Config of the surface in a 0-dim version. Values range between1531 !Config 0.97 and 1.. The GCM uses 0.98.1532 CALL getin_p('CONDVEG_EMIS', emis_scal)1533 1552 !- 1534 1553 ! diffuco … … 1544 1563 CALL getin_p('MIN_VEGFRAC',min_vegfrac) 1545 1564 CALL getin_p('SOILTYPE_DEFAULT',soiltype_default) 1546 !1547 !Config Key = VEGET_YEAR1548 !Config Desc = Year of the land_use vegetation map to be read (0 == NO TIME AXIS)1549 !Config If = LAND_USE1550 !Config Def = 2821551 !Config Help = First year for landuse vegetation (2D map by pft).1552 !Config Help If VEGET_YEAR == 0, this means there is no time axis.1553 CALL getin_p('VEGET_YEAR', veget_year_orig)1554 1565 ! 1555 1566 first_call =.FALSE. -
branches/ORCHIDEE_EXT/ORCHIDEE/src_parameters/pft_parameters.f90
r312 r343 512 512 513 513 ! 514 ! 1. Initialisation !! not all the parameters are initialized 515 ! 516 517 !- 518 ! Vegetation structure 519 !- 520 ! 521 ! 1 .Sechiba 522 ! 523 veget_ori_fixed_test_1(:) = zero 524 llaimax(:) = zero 525 llaimin(:) = zero 526 height_presc(:) = zero 527 rveg_pft(:) = zero 528 ! 529 ! 2 .Stomate 530 ! 531 leaf_tab(:) = zero_int 532 sla(:) = zero 533 !- 534 ! Evapotranspiration - sechiba 535 !- 536 rstruct_const(:) = zero 537 kzero(:) = zero 538 !- 539 ! Water - sechiba 540 !- 541 wmax_veg(:) = zero 542 humcste(:) = zero 543 throughfall_by_pft(:) = zero 544 !- 545 ! Albedo - sechiba 546 !- 547 snowa_ini(:) = zero 548 snowa_dec(:) = zero 549 alb_leaf_vis(:) = zero 550 alb_leaf_nir(:) = zero 551 !- 552 ! Soil - vegetation 553 !- 554 pref_soil_veg_sand(:) = zero_int 555 pref_soil_veg_loan(:) = zero_int 556 pref_soil_veg_clay(:) = zero_int 557 !- 558 ! Photosynthesis 559 !- 560 ! 561 ! 1 .CO2 562 ! 563 gsslope(:) = zero 564 gsoffset(:) = zero 565 vcmax_fix(:) = zero 566 vjmax_fix(:) = zero 567 co2_tmin_fix(:) = zero 568 co2_topt_fix(:) = zero 569 co2_tmax_fix(:) = zero 570 ext_coeff(:) = zero 571 ! 572 ! 2 .Stomate 573 ! 574 vcmax_opt(:) = zero 575 vjmax_opt(:) = zero 576 tphoto_min_a(:) = zero 577 tphoto_min_b(:) = zero 578 tphoto_min_c(:) = zero 579 tphoto_opt_a(:) = zero 580 tphoto_opt_b(:) = zero 581 tphoto_opt_c(:) = zero 582 tphoto_max_a(:) = zero 583 tphoto_max_b(:) = zero 584 tphoto_max_c(:) = zero 585 !- 586 ! Respiration - stomate 587 !- 588 maint_resp_slope_c(:) = zero 589 maint_resp_slope_b(:) = zero 590 maint_resp_slope_a(:) = zero 591 cm_zero_leaf(:) = zero 592 cm_zero_sapabove(:) = zero 593 cm_zero_sapbelow(:) = zero 594 cm_zero_heartabove(:) = zero 595 cm_zero_heartbelow(:) = zero 596 cm_zero_root(:) = zero 597 cm_zero_fruit(:) = zero 598 cm_zero_carbres(:) = zero 599 !- 600 ! Fire - stomate 601 !- 602 ! 603 flam(:) = zero 604 resist(:) = zero 605 !- 606 ! Flux - LUC 607 !- 608 coeff_lcchange_1(:) = zero 609 coeff_lcchange_10(:) = zero 610 coeff_lcchange_100(:) = zero 611 !- 612 ! Phenology 613 !- 614 ! 615 ! 1 .Stomate 616 ! 617 lai_max(:) = zero 618 pheno_type(:) = zero_int 619 ! 620 ! 2. Leaf Onset 621 ! 622 pheno_gdd_crit_c(:) = zero 623 pheno_gdd_crit_b(:) = zero 624 pheno_gdd_crit_a(:) = zero 625 ngd_crit(:) = zero 626 ncdgdd_temp(:) = zero 627 hum_frac(:) = zero 628 lowgpp_time(:) = zero 629 hum_min_time(:) = zero 630 tau_sap(:) = zero 631 tau_fruit(:) = zero 632 ecureuil(:) = zero 633 alloc_min(:) = zero 634 alloc_max(:) = zero 635 demi_alloc(:) = zero 636 !>> DS new for merge in the trunk 15/06/2011 637 leaflife_tab(:) = zero 638 ! 639 ! 3. Senescence 640 ! 641 leaffall(:) = zero 642 leafagecrit(:) = zero 643 senescence_hum(:) = zero 644 nosenescence_hum(:) = zero 645 max_turnover_time(:) = zero 646 min_turnover_time(:) = zero 647 min_leaf_age_for_senescence(:) = zero 648 senescence_temp_c(:) = zero 649 senescence_temp_b(:) = zero 650 senescence_temp_a(:) = zero 651 !- 652 ! DGVM 653 !- 654 residence_time(:) = zero 655 tmin_crit(:) = zero 656 tcm_crit(:) = zero 657 !- 658 ! Internal_parameters 659 !- 660 lai_initmin(:) = zero 661 bm_sapl(:,:) = zero 662 migrate(:) = zero 663 maxdia(:) = zero 664 cn_sapl(:) = zero 665 leaf_timecst(:) = zero 666 667 668 ! 669 ! 2. Correspondance between the PFTs values and thes MTCs values 514 ! 1. Correspondance between the PFTs values and thes MTCs values 670 515 ! 671 516 672 517 DO j= 1, nvm 673 674 518 675 519 PFT_name(j) = MTC_name(pft_to_mtc(j)) … … 1099 943 IF(first_call) THEN 1100 944 1101 ! No calling to getin for veget_ori_fixed_test_1, llaimax and height_presc1102 ! use of setvar in slowproc.f901103 1104 945 !- 1105 946 ! Vegetation structure 1106 947 !- 948 CALL getin_p('SECHIBA_LAI',llaimax) 1107 949 CALL getin_p('LLAIMIN',llaimin) 950 CALL getin_p('SLOWPROC_HEIGHT', height_presc) 1108 951 CALL getin('TYPE_OF_LAI',type_of_lai) 1109 952 CALL getin_p('IS_TREE',is_tree)
Note: See TracChangeset
for help on using the changeset viewer.