Changeset 311
- Timestamp:
- 2011-07-08T14:24:28+02:00 (13 years ago)
- Location:
- branches/ORCHIDEE_EXT/ORCHIDEE
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_EXT/ORCHIDEE/src_parameters/constantes.f90
r257 r311 45 45 46 46 ! undef integer for integer arrays 47 INTEGER(i_std), PARAMETER :: undef_integer = 999999999 48 47 INTEGER(i_std), PARAMETER :: undef_int = 999999999 49 48 ! Specific value if no restart value 50 49 REAL(r_std),SAVE :: val_exp = 999999. … … 82 81 ! DIMENSIONING AND INDICES PARAMETERS 83 82 !--------------------------------------- 83 84 !------------- 85 ! condveg 86 !------------- 87 ! index for visible albedo 88 INTEGER(i_std), PARAMETER :: ivis = 1 89 ! index for near infrared albedo 90 INTEGER(i_std), PARAMETER :: inir = 2 84 91 85 92 !---------------- … … 389 396 REAL(r_std),SAVE :: qsintcst = 0.1 390 397 ! Total depth of soil reservoir (for hydrolc) 391 REAL(r_std),SAVE :: dpu_cste = deux398 REAL(r_std),SAVE :: dpu_cste = 2.0_r_std 392 399 ! Total depth of soil reservoir (m) 393 400 REAL(r_std),SAVE,DIMENSION(nstm) :: dpu = (/ 2.0_r_std, 2.0_r_std, 2.0_r_std /) 394 401 395 ! FLAGS 396 397 ! allow agricultural PFTs 398 LOGICAL,SAVE :: agriculture = .TRUE. !(read in slowproc) 402 ! 403 ! FLAGS ACTIVATING SUB-MODELS 404 ! 405 LOGICAL, SAVE :: doirrigation = .FALSE. 406 LOGICAL, SAVE :: dofloodplains = .FALSE. 399 407 ! Do we treat PFT expansion across a grid point after introduction? 400 408 ! default = .FALSE. 401 LOGICAL,SAVE :: treat_expansion = .FALSE.409 LOGICAL,SAVE :: treat_expansion = .FALSE. 402 410 ! herbivores? 403 LOGICAL,SAVE :: ok_herbivores = .FALSE.411 LOGICAL,SAVE :: ok_herbivores = .FALSE. 404 412 ! harvesting ? 405 LOGICAL,SAVE :: harvest_agri = .TRUE.413 LOGICAL,SAVE :: harvest_agri = .TRUE. 406 414 ! constant moratlity 407 LOGICAL,SAVE :: lpj_gap_const_mort=.TRUE. 408 415 LOGICAL,SAVE :: lpj_gap_const_mort=.TRUE. 416 ! flag that disable fire 417 LOGICAL, SAVE :: disable_fire 418 419 ! 420 ! Configuration vegetation 421 ! 422 ! allow agricultural PFTs 423 LOGICAL,SAVE :: agriculture = .TRUE. 424 LOGICAL, SAVE :: impveg = .FALSE. 425 LOGICAL, SAVE :: impsoilt = .FALSE. 426 ! Land cover change flag 427 LOGICAL,SAVE :: lcchange=.FALSE. 428 ! Lai Map 429 LOGICAL, SAVE :: read_lai = .FALSE. 430 ! Old Lai Map interpolation 431 LOGICAL, SAVE :: old_lai = .FALSE. 432 ! Old veget Map interpolation 433 LOGICAL, SAVE :: old_veget = .FALSE. 434 ! Land Use 435 LOGICAL, SAVE :: land_use = .FALSE. 436 ! To change LAND USE file in a run. 437 LOGICAL, SAVE :: veget_reinit=.FALSE. 438 439 ! 409 440 ! Parameters used by both hydrology models 410 441 ! 411 442 ! Maximum period of snow aging 412 443 REAL(r_std),SAVE :: max_snow_age = 50._r_std … … 451 482 ! Critical value for computation of snow albedo [Kg/m^2] 452 483 REAL(r_std),SAVE :: snowcri_alb=10. 484 ! In case we wish a fxed snow albedo 485 REAL(r_std), SAVE :: fixed_snow_albedo = undef_sechiba 486 ! Switch to old (albedo bare depend on soil wetness) or new one (mean of soilalb) 487 LOGICAL, SAVE :: alb_bare_model = .FALSE. 488 ! Choice on the surface parameters 489 LOGICAL, SAVE :: impaze = .FALSE. 490 ! Chooses the method for the z0 average 491 LOGICAL, SAVE :: z0cdrag_ave=.FALSE. 492 ! Roughness used to initialize the scheme 493 REAL(r_std), SAVE :: z0_scal = 0.15_r_std 494 ! Height to displace the surface from the zero wind height. 495 REAL(r_std), SAVE :: roughheight_scal = zero 496 ! Surface emissivity used to initialize the scheme 497 REAL(r_std), SAVE :: emis_scal = un 453 498 454 499 ! 2. Arrays … … 458 503 ! albedo of ice, VIS+NIR 459 504 REAL(r_std),DIMENSION(2),SAVE :: alb_ice = (/ .60, .20/) 505 ! albedo values need for initialisation 506 REAL(r_std),DIMENSION(2),SAVE :: albedo_scal = (/ 0.25_r_std, 0.25_r_std /) 460 507 ! The correspondance table for the soil color numbers and their albedo 461 508 ! … … 540 587 !SZ changed this according to SP from 0.03 to 0.08, 080806 541 588 REAL(r_std),SAVE :: hcrit_litter=0.08_r_std 542 543 589 ! do horizontal diffusion? 590 LOGICAL, SAVE :: ok_hdiff = .FALSE. 544 591 545 592 … … 613 660 ! Minimal fraction of mesh a vegetation type can occupy 614 661 REAL(r_std),SAVE :: min_vegfrac=0.001 615 ! Value for frac_nobio for tests in 0-dim simulations662 ! Value for frac_nobio for tests in 0-dim simulations 616 663 ! laisser ca tant qu'il n'y a que de la glace (pas de lacs) 617 664 !DS : used in slowproc 618 665 REAL(r_std),SAVE :: frac_nobio_fixed_test_1 = 0.0 666 ! first year for landuse 667 INTEGER(i_std) , SAVE :: veget_year_orig = 0 668 ! DS which is the default value? I found also :: veget_year_orig=282 669 ! only needed for an initial LAI if there is no restart file 670 REAL(r_std), SAVE :: stempdiag_bid = 280. 619 671 620 672 ! 2. Arrays … … 1095 1147 CONTAINS 1096 1148 1149 SUBROUTINE activate_sub_models(active_sechiba,active_routing, active_stomate) 1150 1151 IMPLICIT NONE 1152 ! first call 1153 LOGICAL, SAVE :: first_call = .TRUE. 1154 ! input 1155 LOGICAL, INTENT(in) :: active_sechiba 1156 LOGICAL, INTENT(in) :: active_routing 1157 LOGICAL, INTENT(in) :: active_stomate 1158 1159 IF (first_call) THEN 1160 1161 IF(active_sechiba .AND. active_routing) THEN 1162 1163 !Config Key = DO_IRRIGATION 1164 !Config Desc = Should we compute an irrigation flux 1165 !Config Def = FALSE 1166 !Config Help = This parameters allows the user to ask the model 1167 !Config to compute an irigation flux. This performed for the 1168 !Config on very simple hypothesis. The idea is to have a good 1169 !Config map of irrigated areas and a simple function which estimates 1170 !Config the need to irrigate. 1171 CALL getin_p('DO_IRRIGATION', doirrigation) 1172 ! 1173 !Config Key = DO_FLOODPLAINS 1174 !Config Desc = Should we include floodplains 1175 !Config Def = FALSE 1176 !Config Help = This parameters allows the user to ask the model 1177 !Config to take into account the flood plains and return 1178 !Config the water into the soil moisture. It then can go 1179 !Config back to the atmopshere. This tried to simulate 1180 !Config internal deltas of rivers. 1181 CALL getin_p('DO_FLOODPLAINS', dofloodplains) 1182 1183 ENDIF 1184 1185 1186 IF(active_stomate) THEN 1187 1188 !Config Key = HERBIVORES 1189 !Config Desc = herbivores allowed? 1190 !Config Def = n 1191 !Config Help = With this variable, you can determine 1192 !Config if herbivores are activated 1193 CALL getin_p('HERBIVORES', ok_herbivores) 1194 ! 1195 !Config Key = TREAT_EXPANSION 1196 !Config Desc = treat expansion of PFTs across a grid cell? 1197 !Config Def = n 1198 !Config Help = With this variable, you can determine 1199 !Config whether we treat expansion of PFTs across a 1200 !Config grid cell. 1201 CALL getin_p('TREAT_EXPANSION', treat_expansion) 1202 ! 1203 !Config Key = LPJ_GAP_CONST_MORT 1204 !Config Desc = prescribe mortality if not using DGVM? 1205 !Config Def = y 1206 !Config Help = set to TRUE if constant mortality is to be activated 1207 ! ignored if DGVM=true! 1208 CALL getin('LPJ_GAP_CONST_MORT', lpj_gap_const_mort) 1209 ! 1210 !Config Key = HARVEST_AGRI 1211 !Config Desc = Harvert model for agricol PFTs. 1212 !Config Def = y 1213 !Config Help = Compute harvest above ground biomass for agriculture. 1214 !Config Change daily turnover. 1215 CALL getin_p('HARVEST_AGRI', harvest_agri) 1216 ! 1217 !Config Key = FIRE_DISABLE 1218 !Config Desc = no fire allowed 1219 !Config Def = n 1220 !Config Help = With this variable, you can allow or not 1221 !Config the estimation of CO2 lost by fire 1222 CALL getin_p('FIRE_DISABLE', disable_fire) 1223 1224 ENDIF 1225 1226 ! 1227 ! Check consistency (see later) 1228 ! 1229 !!$ IF(.NOT.(active_routing) .AND. (doirrigation .OR. dofloodplains)) THEN 1230 !!$ CALL ipslerr (2,'activate_sub_models', & 1231 !!$ & 'Problem :you tried to activate the irrigation and floodplains without activating the routing',& 1232 !!$ & 'Are you sure ?', & 1233 !!$ & '(check your parameters).') 1234 !!$ ENDIF 1235 1236 !!$ IF(.NOT.(active_stomate) .AND. (ok_herbivores .OR. treat_expansion .OR. lpj_gap_const_mort & 1237 !!$ & .OR. harvest_agri .OR. disable_fire)) THEN 1238 !!$ CALL ipslerr (2,'activate_sub_models', & 1239 !!$ & 'Problem : try to activate the following options : herbivory, treat_expansion, fire,',& 1240 !!$ & 'harvest_agri and constant mortality without stomate activated.',& 1241 !!$ & '(check your parameters).') 1242 !!$ ENDIF 1243 1244 first_call =.FALSE. 1245 1246 ENDIF 1247 1248 END SUBROUTINE activate_sub_models 1249 ! 1250 != 1251 ! 1252 SUBROUTINE veget_config 1253 1254 ! DS : this subroutine reads the flags previously in slowproc.f90 . As these parameters 1255 ! let the user to configure the vegetation, it is called veget_config. 1256 1257 IMPLICIT NONE 1258 1259 !Config Key = AGRICULTURE 1260 !Config Desc = agriculture allowed? 1261 !Config Def = y 1262 !Config Help = With this variable, you can determine 1263 !Config whether agriculture is allowed 1264 ! 1265 CALL getin_p('AGRICULTURE', agriculture) 1266 ! 1267 !Config Key = IMPOSE_VEG 1268 !Config Desc = Should the vegetation be prescribed 1269 !Config Def = n 1270 !Config Help = This flag allows the user to impose a vegetation distribution 1271 !Config and its characterisitcs. It is espacially interesting for 0D 1272 !Config simulations. On the globe it does not make too much sense as 1273 !Config it imposes the same vegetation everywhere 1274 ! 1275 CALL getin_p('IMPOSE_VEG', impveg) 1276 ! 1277 !Config Key = IMPOSE_SOILT 1278 !Config Desc = Should the soil typ be prescribed 1279 !Config Def = n 1280 !Config If = IMPOSE_VEG 1281 !Config Help = This flag allows the user to impose a soil type distribution. 1282 !Config It is espacially interesting for 0D 1283 !Config simulations. On the globe it does not make too much sense as 1284 !Config it imposes the same soil everywhere 1285 CALL getin_p('IMPOSE_SOILT', impsoilt) 1286 ! 1287 !Config Key = LAND_COVER_CHANGE 1288 !Config Desc = treat land use modifications 1289 !Config If = LAND_USE 1290 !Config Def = y 1291 !Config Help = With this variable, you can use a Land Use map 1292 !Config to simulate anthropic modifications such as 1293 !Config deforestation. 1294 CALL getin_p('LAND_COVER_CHANGE', lcchange) 1295 ! 1296 !Config Key = LAI_MAP 1297 !Config Desc = Read the LAI map 1298 !Config Def = n 1299 !Config Help = It is possible to read a 12 month LAI map which will 1300 !Config then be interpolated to daily values as needed. 1301 CALL getin_p('LAI_MAP',read_lai) 1302 ! 1303 !Config Key = SLOWPROC_LAI_OLD_INTERPOL 1304 !Config Desc = Flag to use old "interpolation" of LAI 1305 !Config If = LAI_MAP 1306 !Config Def = FALSE 1307 !Config Help = If you want to recover the old (ie orchidee_1_2 branch) 1308 !Config "interpolation" of LAI map. 1309 CALL getin_p('SLOWPROC_LAI_OLD_INTERPOL',old_lai) 1310 1311 !Config Key = SLOWPROC_VEGET_OLD_INTERPOL 1312 !Config Desc = Flag to use old "interpolation" of vegetation map. 1313 !Config If = NOT IMPOSE_VEG and NOT LAND_USE 1314 !Config Def = FALSE 1315 !Config Help = If you want to recover the old (ie orchidee_1_2 branch) 1316 !Config "interpolation" of vegetation map. 1317 CALL getin_p('SLOWPROC_VEGET_OLD_INTERPOL',old_veget) 1318 ! 1319 !Config Key = LAND_USE 1320 !Config Desc = Read a land_use vegetation map 1321 !Config Def = n 1322 !Config Help = pft values are needed, max time axis is 293 1323 CALL getin_p('LAND_USE',land_use) 1324 ! 1325 !Config Key = VEGET_REINIT 1326 !Config Desc = booleen to indicate that a new LAND USE file will be used. 1327 !Config If = LAND_USE 1328 !Config Def = n 1329 !Config Help = The parameter is used to bypass veget_year count 1330 !Config Help and reinitialize it with VEGET_YEAR parameter. 1331 !Config Help Then it is possible to change LAND USE file. 1332 CALL getin_p('VEGET_REINIT', veget_reinit) 1333 1334 1335 ! Check consistency 1336 1337 ! 1. You have to activate agriculture and land_use 1338 IF ( .NOT. agriculture .AND. land_use ) THEN 1339 CALL ipslerr (2,'veget_config', & 1340 & 'Problem with agriculture desactivated and Land Use activated.',& 1341 & 'Are you sure ?', & 1342 & '(check your parameters).') 1343 ENDIF 1344 1345 !!$ ! DS : Add warning in case of a wrong configuration (need to be discussed) 1346 !!$ ! 2. 1347 !!$ IF (.NOT.(read_lai) .AND. old_lai) THEN 1348 !!$ CALL ipslerr (2,'veget_config', & 1349 !!$ & 'Problem with lai_map desactivated and old_lai activated.',& 1350 !!$ & 'Are you sure ?', & 1351 !!$ & '(check your parameters).') 1352 !!$ ENDIF 1353 !!$ 1354 !!$ ! 3. 1355 !!$ IF ((impveg .OR. land_use) .AND. old_veget) THEN 1356 !!$ CALL ipslerr (2,'veget_config', & 1357 !!$ & 'Problem : try to use the old interpolation with a land use map or in impose_veg.',& 1358 !!$ & 'Are you sure ?', & 1359 !!$ & '(check your parameters).') 1360 !!$ ENDIF 1361 !!$ 1362 !!$ ! 4. 1363 !!$ IF ( .NOT.(impveg) .AND. impsoilt) THEN 1364 !!$ CALL ipslerr (2,'veget_config', & 1365 !!$ & 'Problem : try to activate impose_soilt without activating impose_veg.',& 1366 !!$ & 'Are you sure ?', & 1367 !!$ & '(check your parameters).') 1368 !!$ ENDIF 1369 !!$ 1370 !!$ ! 5. 1371 !!$ IF (.NOT.(land_use) .AND. (veget_reinit)) THEN 1372 !!$ CALL ipslerr (2,'veget_config', & 1373 !!$ & 'Problem : try to use a land_use map without activating land_use.',& 1374 !!$ & 'Are you sure ?', & 1375 !!$ & '(check your parameters).') 1376 !!$ ENDIF 1377 !!$ 1378 !!$ ! 6. 1379 !!$ IF (.NOT.(land_use) .AND. lcchange) THEN 1380 !!$ CALL ipslerr (2,'veget_config', & 1381 !!$ & 'Problem : lcchange is activated without activating land_use.',& 1382 !!$ & 'Are you sure ?', & 1383 !!$ & '(check your parameters).') 1384 !!$ ENDIF 1385 1386 END SUBROUTINE veget_config 1387 ! 1388 != 1389 ! 1097 1390 SUBROUTINE getin_sechiba_parameters 1098 1391 … … 1108 1401 CALL getin_p('MAXMASS_GLACIER',maxmass_glacier) 1109 1402 CALL getin_p('SNOWCRI',snowcri) 1403 ! 1404 !Interception reservoir coefficient 1405 !Config Key = 'SECHIBA_QSINT' 1406 !Config Desc = Interception reservoir coefficient 1407 !Config Def = 0.1 1408 !Config Help = Transforms leaf area index into size of interception reservoir 1409 !Config for slowproc_derivvar or stomate 1110 1410 CALL getin_p('SECHIBA_QSINT', qsintcst) 1111 WRITE(numout, *)' SECHIBA_QSINT, qsintcst = ', qsintcst 1411 ! 1412 !Config Key = HYDROL_SOIL_DEPTH 1413 !Config Desc = Total depth of soil reservoir 1414 !Config Def = 2. 1112 1415 CALL getin_p("HYDROL_SOIL_DEPTH", dpu_cste) 1113 1416 ! … … 1134 1437 CALL getin_p('ALB_DEADLEAF',alb_deadleaf) 1135 1438 CALL getin_p('ALB_ICE',alb_ice) 1439 ! 1440 ! Get the fixed snow albedo if needed 1441 ! 1442 !Config Key = CONDVEG_SNOWA 1443 !Config Desc = The snow albedo used by SECHIBA 1444 !Config Def = DEF 1445 !Config Help = This option allows the user to impose a snow albedo. 1446 !Config Default behaviour is to use the model of snow albedo 1447 !Config developed by Chalita (1993). 1448 CALL getin_p('CONDVEG_SNOWA', fixed_snow_albedo) 1449 ! 1450 !Config Key = ALB_BARE_MODEL 1451 !Config Desc = Switch bare soil albedo dependent (if TRUE) on soil wetness 1452 !Config Def = FALSE 1453 !Config Help = If TRUE, the model for bare soil albedo is the old formulation. 1454 !Config Then it depend on the soil dry or wetness. If FALSE, it is the 1455 !Config new computation that is taken, it is the mean of soil albedo. 1456 CALL getin_p('ALB_BARE_MODEL', alb_bare_model) 1457 ! 1458 !Config Key = IMPOSE_AZE 1459 !Config Desc = Should the surface parameters be prescribed 1460 !Config Def = n 1461 !Config Help = This flag allows the user to impose the surface parameters 1462 !Config (Albedo Roughness and Emissivity). It is espacially interesting for 0D 1463 !Config simulations. On the globe it does not make too much sense as 1464 !Config it imposes the same vegetation everywhere 1465 CALL getin_p('IMPOSE_AZE', impaze) 1466 ! 1467 !Config Key = Z0CDRAG_AVE 1468 !Config Desc = Average method for z0 1469 !Config Def = y 1470 !Config Help = If this flag is set to true (y) then the neutral Cdrag 1471 !Config is averaged instead of the log(z0). This should be 1472 !Config the prefered option. We still wish to keep the other 1473 !Config option so we can come back if needed. If this is 1474 !Config desired then one should set Z0CDRAG_AVE=n 1475 CALL getin_p('Z0CDRAG_AVE', z0cdrag_ave) 1476 ! 1477 !Config Key = CONDVEG_Z0 1478 !Config Desc = Surface roughness (m) 1479 !Config Def = 0.15 1480 !Config If = IMPOSE_AZE 1481 !Config Help = Surface rougness to be used on the point if a 0-dim version 1482 !Config of SECHIBA is used. Look at the description of the forcing 1483 !Config data for the correct value. 1484 CALL getin_p('CONDVEG_Z0', z0_scal) 1485 ! 1486 !Config Key = ROUGHHEIGHT 1487 !Config Desc = Height to be added to the height of the first level (m) 1488 !Config Def = 0.0 1489 !Config If = IMPOSE_AZE 1490 !Config Help = ORCHIDEE assumes that the atmospheric level height is counted 1491 !Config from the zero wind level. Thus to take into account the roughness 1492 !Config of tall vegetation we need to correct this by a certain fraction 1493 !Config of the vegetation height. This is called the roughness height in 1494 !Config ORCHIDEE talk. 1495 CALL getin_p('ROUGHHEIGHT', roughheight_scal) 1496 ! 1497 !Config Key = CONDVEG_ALBVIS 1498 !Config Desc = SW visible albedo for the surface 1499 !Config Def = 0.25 1500 !Config If = IMPOSE_AZE 1501 !Config Help = Surface albedo in visible wavelengths to be used 1502 !Config on the point if a 0-dim version of SECHIBA is used. 1503 !Config Look at the description of the forcing data for 1504 !Config the correct value. 1505 CALL getin_p('CONDVEG_ALBVIS', albedo_scal(ivis)) 1506 ! 1507 !Config Key = CONDVEG_ALBNIR 1508 !Config Desc = SW near infrared albedo for the surface 1509 !Config Def = 0.25 1510 !Config If = IMPOSE_AZE 1511 !Config Help = Surface albedo in near infrared wavelengths to be used 1512 !Config on the point if a 0-dim version of SECHIBA is used. 1513 !Config Look at the description of the forcing data for 1514 !Config the correct value. 1515 CALL getin_p('CONDVEG_ALBNIR', albedo_scal(inir)) 1516 ! 1517 !Config Key = CONDVEG_EMIS 1518 !Config Desc = Emissivity of the surface for LW radiation 1519 !Config Def = 1.0 1520 !Config If = IMPOSE_AZE 1521 !Config Help = The surface emissivity used for compution the LE emission 1522 !Config of the surface in a 0-dim version. Values range between 1523 !Config 0.97 and 1.. The GCM uses 0.98. 1524 CALL getin_p('CONDVEG_EMIS', emis_scal) 1136 1525 !- 1137 1526 ! diffuco … … 1147 1536 CALL getin_p('MIN_VEGFRAC',min_vegfrac) 1148 1537 CALL getin_p('SOILTYPE_DEFAULT',soiltype_default) 1149 1150 1538 ! 1539 !Config Key = VEGET_YEAR 1540 !Config Desc = Year of the land_use vegetation map to be read (0 == NO TIME AXIS) 1541 !Config If = LAND_USE 1542 !Config Def = 282 1543 !Config Help = First year for landuse vegetation (2D map by pft). 1544 !Config Help If VEGET_YEAR == 0, this means there is no time axis. 1545 CALL getin_p('VEGET_YEAR', veget_year_orig) 1546 ! 1151 1547 first_call =.FALSE. 1152 1548 … … 1204 1600 CALL getin_p('RSOL_CSTE',rsol_cste) 1205 1601 CALL getin_p('HCRIT_LITTER',hcrit_litter) 1206 1602 ! 1603 !Config Key = HYDROL_OK_HDIFF 1604 !Config Desc = do horizontal diffusion? 1605 !Config Def = n 1606 !Config Help = If TRUE, then water can diffuse horizontally between 1607 !Config the PFTs' water reservoirs. 1608 CALL getin_p('HYDROL_OK_HDIFF',ok_hdiff) 1609 1207 1610 first_call =.FALSE. 1208 1611 … … 1222 1625 LOGICAL, SAVE :: first_call = .TRUE. 1223 1626 1224 IF (first_call) THEN1627 IF (first_call) THEN 1225 1628 1226 1629 CALL getin_p('W_TIME',w_time) … … 1235 1638 CALL getin_p('MCW',mcw) 1236 1639 CALL getin_p('MC_AWET',mc_awet) 1237 1640 1238 1641 first_call =.FALSE. 1239 1642 -
branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/condveg.f90
r257 r311 36 36 ! 37 37 LOGICAL, SAVE :: l_first_condveg=.TRUE. !! To keep first call's trace 38 LOGICAL, SAVE :: z0cdrag_ave=.FALSE. !! Chooses the method for the z0 average39 !40 REAL(r_std), SAVE :: fixed_snow_albedo !! In case we wish a fxed snow albedo41 INTEGER(i_std), PARAMETER :: ivis = 1 !! index for visible albedo42 INTEGER(i_std), PARAMETER :: inir = 2 !! index for near infrared albedo43 LOGICAL, SAVE :: impaze !! Choice on the surface parameters44 !45 REAL(r_std), SAVE :: z0_scal !! Roughness used to initialize the scheme46 REAL(r_std), SAVE :: roughheight_scal !! Height to displace the surface47 !! from the zero wind height.48 REAL(r_std), SAVE :: albedo_scal(2) !! Two albedos used to initialize the scheme49 REAL(r_std), SAVE :: emis_scal !! Surface emissivity used to initialize the scheme50 38 ! 51 39 REAL(r_std), ALLOCATABLE, SAVE :: soilalb_dry(:,:) !! albedo for the dry bare soil … … 60 48 REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:) :: albedo_glob !! Mean albedo 61 49 ! 62 LOGICAL, SAVE :: alb_bare_model !! Switch to old (albedo bare depend on soil wetness)63 !! or new one (mean of soilalb)64 50 65 51 CONTAINS … … 227 213 ! initialisation 228 214 IF (l_first_condveg) THEN 229 !230 ! Get the fixed snow albedo if needed231 !232 !233 !Config Key = CONDVEG_SNOWA234 !Config Desc = The snow albedo used by SECHIBA235 !Config Def = DEF236 !Config Help = This option allows the user to impose a snow albedo.237 !Config Default behaviour is to use the model of snow albedo238 !Config developed by Chalita (1993).239 !240 fixed_snow_albedo = undef_sechiba241 CALL getin_p('CONDVEG_SNOWA', fixed_snow_albedo)242 !243 !244 !Config Key = ALB_BARE_MODEL245 !Config Desc = Switch bare soil albedo dependent (if TRUE) on soil wetness246 !Config Def = FALSE247 !Config Help = If TRUE, the model for bare soil albedo is the old formulation.248 !Config Then it depend on the soil dry or wetness. If FALSE, it is the249 !Config new computation that is taken, it is the mean of soil albedo.250 !251 alb_bare_model=.FALSE.252 CALL getin_p('ALB_BARE_MODEL', alb_bare_model)253 215 ! 254 216 l_first_condveg=.FALSE. … … 392 354 INTEGER(i_std) :: jv 393 355 ! initialisation of variables 394 !395 396 !397 !Config Key = IMPOSE_AZE398 !Config Desc = Should the surface parameters be prescribed399 !Config Def = n400 !Config Help = This flag allows the user to impose the surface parameters401 !Config (Albedo Roughness and Emissivity). It is espacially interesting for 0D402 !Config simulations. On the globe it does not make too much sense as403 !Config it imposes the same vegetation everywhere404 !405 impaze = .FALSE.406 CALL getin_p('IMPOSE_AZE', impaze)407 356 408 357 !! … … 412 361 IF ( impaze ) THEN 413 362 ! 414 !Config Key = CONDVEG_EMIS415 !Config Desc = Emissivity of the surface for LW radiation416 !Config Def = 1.0417 !Config If = IMPOSE_AZE418 !Config Help = The surface emissivity used for compution the LE emission419 !Config of the surface in a 0-dim version. Values range between420 !Config 0.97 and 1.. The GCM uses 0.98.421 !422 emis_scal = un423 CALL getin_p('CONDVEG_EMIS', emis_scal)424 363 emis(:) = emis_scal 425 364 ! 426 365 ELSE 427 366 ! Some day it will be moisture dependent … … 436 375 ! 437 376 IF ( impaze ) THEN 438 ! 439 !Config Key = CONDVEG_ALBVIS 440 !Config Desc = SW visible albedo for the surface 441 !Config Def = 0.25 442 !Config If = IMPOSE_AZE 443 !Config Help = Surface albedo in visible wavelengths to be used 444 !Config on the point if a 0-dim version of SECHIBA is used. 445 !Config Look at the description of the forcing data for 446 !Config the correct value. 447 ! 448 albedo_scal(ivis) = 0.25_r_std 449 CALL getin_p('CONDVEG_ALBVIS', albedo_scal(ivis)) 377 ! 450 378 albedo(:,ivis) = albedo_scal(ivis) 451 !452 !Config Key = CONDVEG_ALBNIR453 !Config Desc = SW near infrared albedo for the surface454 !Config Def = 0.25455 !Config If = IMPOSE_AZE456 !Config Help = Surface albedo in near infrared wavelengths to be used457 !Config on the point if a 0-dim version of SECHIBA is used.458 !Config Look at the description of the forcing data for459 !Config the correct value.460 !461 albedo_scal(inir) = 0.25_r_std462 CALL getin_p('CONDVEG_ALBNIR', albedo_scal(inir))463 379 albedo(:,inir) = albedo_scal(inir) 380 ! 464 381 ELSE 465 382 ! … … 470 387 !! calculs de z0 471 388 !! 472 !473 !Config Key = Z0CDRAG_AVE474 !Config Desc = Average method for z0475 !Config Def = y476 !Config Help = If this flag is set to true (y) then the neutral Cdrag477 !Config is averaged instead of the log(z0). This should be478 !Config the prefered option. We still wish to keep the other479 !Config option so we can come back if needed. If this is480 !Config desired then one should set Z0CDRAG_AVE=n481 z0cdrag_ave = .TRUE.482 CALL getin_p('Z0CDRAG_AVE', z0cdrag_ave)483 389 !! 484 390 IF ( impaze ) THEN 485 391 ! 486 !Config Key = CONDVEG_Z0487 !Config Desc = Surface roughness (m)488 !Config Def = 0.15489 !Config If = IMPOSE_AZE490 !Config Help = Surface rougness to be used on the point if a 0-dim version491 !Config of SECHIBA is used. Look at the description of the forcing492 !Config data for the correct value.493 !494 z0_scal = 0.15_r_std495 CALL getin_p('CONDVEG_Z0', z0_scal)496 392 z0(:) = z0_scal 497 !498 !Config Key = ROUGHHEIGHT499 !Config Desc = Height to be added to the height of the first level (m)500 !Config Def = 0.0501 !Config If = IMPOSE_AZE502 !Config Help = ORCHIDEE assumes that the atmospheric level height is counted503 !Config from the zero wind level. Thus to take into account the roughness504 !Config of tall vegetation we need to correct this by a certain fraction505 !Config of the vegetation height. This is called the roughness height in506 !Config ORCHIDEE talk.507 !508 roughheight_scal = zero509 CALL getin_p('ROUGHHEIGHT', roughheight_scal)510 393 roughheight(:) = roughheight_scal 511 394 ! -
branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/hydrol.f90
r282 r311 249 249 IF (l_first_hydrol) THEN 250 250 251 sneige = snowcri/mille252 253 251 IF (long_print) WRITE (numout,*) ' l_first_hydrol : call hydrol_init ' 254 252 255 253 CALL hydrol_init (kjit, ldrestart_read, kjpindex, index, rest_id, veget, soiltype, humrel,& 256 254 & vegstress, snow, snow_age, snow_nobio, snow_nobio_age, qsintveg) 255 257 256 CALL hydrol_var_init (kjpindex, veget, soiltype, mx_eau_var, shumdiag, litterhumdiag, & 258 257 & drysoil_frac, evap_bare_lim) … … 498 497 STOP 'hydrol_init' 499 498 ENDIF 499 500 ! >> july 2011 DS : add initialisation of sneige and throughfall_by_pft 501 sneige = snowcri/mille 502 throughfall_by_pft = throughfall_by_pft / 100. 500 503 501 504 ! make dynamic allocation with good dimension … … 1892 1895 INTEGER(i_std) :: ji, jv 1893 1896 REAL(r_std), DIMENSION (kjpindex,nvm) :: zqsintvegnew 1894 LOGICAL, SAVE :: firstcall=.TRUE.1895 1896 IF ( firstcall ) THEN1897 1898 throughfall_by_pft = throughfall_by_pft / 100.1899 1900 firstcall=.FALSE.1901 ENDIF1897 !!$ LOGICAL, SAVE :: firstcall=.TRUE. 1898 !!$ 1899 !!$ IF ( firstcall ) THEN 1900 !!$ 1901 !!$ throughfall_by_pft = throughfall_by_pft / 100. 1902 !!$ 1903 !!$ firstcall=.FALSE. 1904 !!$ ENDIF 1902 1905 1903 1906 -
branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/hydrolc.f90
r282 r311 40 40 ! 41 41 LOGICAL, SAVE :: check_waterbal=.FALSE. !! The check the water balance 42 LOGICAL, SAVE :: ok_hdiff !! do horizontal diffusion?43 42 44 43 CHARACTER(LEN=80) , SAVE :: var_name !! To store variables names for I/O … … 175 174 IF (l_first_hydrol) THEN 176 175 177 sneige = snowcri/mille178 179 176 IF (long_print) WRITE (numout,*) ' l_first_hydrol : call hydrolc_init ' 180 177 … … 450 447 ENDIF 451 448 452 !Config Key = HYDROL_OK_HDIFF 453 !Config Desc = do horizontal diffusion? 454 !Config Def = n 455 !Config Help = If TRUE, then water can diffuse horizontally between 456 !Config the PFTs' water reservoirs. 457 458 ok_hdiff = .FALSE. 459 CALL getin_p('HYDROL_OK_HDIFF',ok_hdiff) 449 ! >> july 2011 add initialisation of sneige and throughfall_by_pft 450 sneige = snowcri/mille 451 throughfall_by_pft = throughfall_by_pft / 100. 460 452 461 453 ! make dynamic allocation with good dimension … … 854 846 zdsp(:,:) = dpu_cste - bqsb(:,:) / mx_eau_eau 855 847 dsp(1,1) = val_exp 856 callgetin_p('HYDROL_DSP', dsp(1,1))848 CALL getin_p('HYDROL_DSP', dsp(1,1)) 857 849 IF (dsp(1,1) == val_exp) THEN 858 850 dsp(:,:) = zdsp(:,:) … … 1458 1450 INTEGER(i_std) :: ji, jv 1459 1451 REAL(r_std), DIMENSION (kjpindex,nvm) :: zqsintvegnew 1460 LOGICAL, SAVE :: firstcall=.TRUE.1461 1462 IF ( firstcall ) THEN1463 1464 throughfall_by_pft = throughfall_by_pft / 100.1465 1466 firstcall=.FALSE.1467 ENDIF1452 !!$ LOGICAL, SAVE :: firstcall=.TRUE. 1453 !!$ 1454 !!$ IF ( firstcall ) THEN 1455 !!$ 1456 !!$ throughfall_by_pft = throughfall_by_pft / 100. 1457 !!$ 1458 !!$ firstcall=.FALSE. 1459 !!$ ENDIF 1468 1460 1469 1461 ! calcul de qsintmax a prevoir a chaque pas de temps -
branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/intersurf.f90
r281 r311 2961 2961 control_flags%ok_pheno = .TRUE. 2962 2962 ! 2963 !>> july 2011 2964 ! DS: activation of sub-models of ORCHIDEE 2965 CALL activate_sub_models(control_flags%ok_sechiba, control_flags%river_routing,control_flags%ok_stomate) 2966 ! Vegetation configuration(impose_veg, land_use, lcchnage...previously in slowproc) 2967 CALL veget_config 2963 2968 ! 2964 2969 RETURN -
branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/routing.f90
r277 r311 67 67 REAL(r_std), PARAMETER :: maxevap_lake = 7.5/86400. 68 68 ! 69 INTEGER(i_std), PARAMETER :: undef_int = 99999999970 !71 69 REAL(r_std),SAVE :: dt_routing 72 !73 ! Logicals to control model configuration74 !75 LOGICAL, SAVE :: doirrigation = .FALSE.76 LOGICAL, SAVE :: dofloodplains = .FALSE.77 !78 70 ! 79 71 ! The variables describing the basins and their routing, need to be in the restart file. … … 519 511 num_largest = 50 520 512 CALL getin_p('ROUTING_RIVERS', num_largest) 521 !522 !Config Key = DO_IRRIGATION523 !Config Desc = Should we compute an irrigation flux524 !Config Def = FALSE525 !Config Help = This parameters allows the user to ask the model526 !Config to compute an irigation flux. This performed for the527 !Config on very simple hypothesis. The idea is to have a good528 !Config map of irrigated areas and a simple function which estimates529 !Config the need to irrigate.530 !531 doirrigation = .FALSE.532 CALL getin_p('DO_IRRIGATION', doirrigation)533 !534 !Config Key = DO_FLOODPLAINS535 !Config Desc = Should we include floodplains536 !Config Def = FALSE537 !Config Help = This parameters allows the user to ask the model538 !Config to take into account the flood plains and return539 !Config the water into the soil moisture. It then can go540 !Config back to the atmopshere. This tried to simulate541 !Config internal deltas of rivers.542 !543 dofloodplains = .FALSE.544 CALL getin_p('DO_FLOODPLAINS', dofloodplains)545 !546 513 ! 547 514 ! In order to simplify the time cascade check that dt_routing -
branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/slowproc.f90
r277 r311 50 50 ! 51 51 INTEGER(i_std) , SAVE :: veget_update=0 !! update frequency in years for landuse 52 INTEGER(i_std) , SAVE :: veget_year_orig=0 !! first year for landuse53 LOGICAL, SAVE :: land_use = .FALSE. ! Land Use54 LOGICAL, SAVE :: veget_reinit=.FALSE. !! To change LAND USE file in a run.55 !56 LOGICAL, SAVE :: read_lai = .FALSE. ! Lai Map57 LOGICAL, SAVE :: old_lai = .FALSE. ! Old Lai Map interpolation58 LOGICAL, SAVE :: impveg = .FALSE.59 LOGICAL, SAVE :: impsoilt = .FALSE.60 LOGICAL, SAVE :: old_veget = .FALSE. ! Old veget Map interpolation61 52 ! 62 53 REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:) :: clayfraction … … 502 493 CHARACTER(LEN=80) :: var_name !! To store variables names for I/O 503 494 INTEGER(i_std) :: ji, jv, ier 504 LOGICAL, INTENT(out) :: read_lai 495 ! DS 08072011 change in intent(in) 496 LOGICAL, INTENT(in) :: read_lai 505 497 REAL(r_std) :: frac_nobio1 !! temporary 506 REAL(r_std) :: stempdiag_bid !! only needed for an initial LAI507 !! if there is no restart file508 498 REAL(r_std), DIMENSION(kjpindex,nbdl) :: stempdiag2_bid !! matrix to store stempdiag_bid 509 499 CHARACTER(LEN=4) :: vegsoil_dist !! Flag to choose the soil/vegetation distribution … … 587 577 CALL setvar_p (day_counter, val_exp, 'SECHIBA_DAY', zero) 588 578 ! 589 !Config Key = LAI_MAP590 !Config Desc = Read the LAI map591 !Config Def = n592 !Config Help = It is possible to read a 12 month LAI map which will593 !Config then be interpolated to daily values as needed.594 !595 read_lai = .FALSE.596 CALL getin_p('LAI_MAP',read_lai)597 !598 579 var_name= 'veget' 599 580 CALL ioconf_setatt('UNITS', '-') … … 613 594 CALL restget_p (rest_id, var_name, nbp_glo, nnobio, 1, kjit, .TRUE., frac_nobio, "gather", nbp_glo, index_g) 614 595 ! 615 !Config Key = LAND_USE616 !Config Desc = Read a land_use vegetation map617 !Config Def = n618 !Config Help = pft values are needed, max time axis is 293619 !620 land_use = .FALSE.621 596 veget_update=0 622 CALL getin_p('LAND_USE',land_use) 597 623 598 IF (land_use) THEN 624 !625 !Config Key = VEGET_YEAR626 !Config Desc = Year of the land_use vegetation map to be read (0 == NO TIME AXIS)627 !Config If = LAND_USE628 !Config Def = 282629 !Config Help = First year for landuse vegetation (2D map by pft).630 !Config Help If VEGET_YEAR == 0, this means there is no time axis.631 !632 veget_year_orig=282633 CALL getin_p('VEGET_YEAR', veget_year_orig)634 !635 !Config Key = VEGET_REINIT636 !Config Desc = booleen to indicate that a new LAND USE file will be used.637 !Config If = LAND_USE638 !Config Def = n639 !Config Help = The parameter is used to bypass veget_year count640 !Config Help and reinitialize it with VEGET_YEAR parameter.641 !Config Help Then it is possible to change LAND USE file.642 !643 veget_reinit = .FALSE.644 CALL getin_p('VEGET_REINIT', veget_reinit)645 !646 599 ! 647 600 var_name= 'veget_year' … … 678 631 WRITE(numout,*) "Update frequency for land use in years :",veget_update 679 632 ! 680 !Config Key = LAND_COVER_CHANGE681 !Config Desc = treat land use modifications682 !Config If = LAND_USE683 !Config Def = y684 !Config Help = With this variable, you can use a Land Use map685 !Config to simulate anthropic modifications such as686 !Config deforestation.687 !688 lcchange = .TRUE.689 CALL getin_p('LAND_COVER_CHANGE', lcchange)690 633 IF ( veget_update == 0 .AND. lcchange ) THEN 691 634 CALL ipslerr (2,'slowproc_init', & … … 750 693 CALL setvar_p (zcanop, val_exp, 'SECHIBA_ZCANOP', 0.5_r_std) 751 694 ! 752 !Config Key = HYDROL_SOIL_DEPTH 753 !Config Desc = Total depth of soil reservoir 754 !Config Def = 2. 755 ! 756 dpu_cste=2. 757 CALL getin_p ("HYDROL_SOIL_DEPTH", dpu_cste) 695 ! Initialisation of dpu 758 696 dpu(:)=dpu_cste 759 697 !MM, T. d'O. : before in constantes_soil : … … 783 721 784 722 ! 785 ! Interception reservoir coefficient 786 ! 787 !Config Key = 'SECHIBA_QSINT' 788 !Config Desc = Interception reservoir coefficient 789 !Config Def = 0.1 790 !Config Help = Transforms leaf area index into size of interception reservoir 791 !Config for slowproc_derivvar or stomate 792 793 !!$ qsintcst = 0.1 794 CALL getin_p('SECHIBA_QSINT', qsintcst) 795 WRITE(numout, *)' SECHIBA_QSINT, qsintcst = ', qsintcst 796 723 !!$ WRITE(numout, *)' SECHIBA_QSINT, qsintcst = ', qsintcst 797 724 ! 798 725 ! Time step of STOMATE and LAI update … … 807 734 dt_slow = one_day 808 735 CALL getin_p('DT_SLOW', dt_slow) 809 ! 810 811 !Config Key = SLOWPROC_LAI_TEMPDIAG 812 !Config Desc = Temperature used for the initial guess of LAI 813 !Config Def = 280. 814 !Config Help = If there is no LAI in the restart file, we may need 815 !Config a temperature that is used to guess the initial LAI. 816 ! 817 stempdiag_bid = 280. 818 CALL getin_p('SLOWPROC_LAI_TEMPDIAG',stempdiag_bid) 819 ! 736 820 737 ! 821 738 ! get restart value if none were found in the restart file 822 739 ! 823 !Config Key = AGRICULTURE 824 !Config Desc = agriculture allowed? 825 !Config Def = y 826 !Config Help = With this variable, you can determine 827 !Config whether agriculture is allowed 828 ! 829 agriculture = .TRUE. 830 CALL getin_p('AGRICULTURE', agriculture) 831 IF ( .NOT. agriculture .AND. land_use ) THEN 832 CALL ipslerr (2,'slowproc_init', & 833 & 'Problem with agriculture desactivated and Land Use activated.',& 834 & 'Are you sure ?', & 835 & '(check your parameters).') 836 ENDIF 837 838 ! 839 !Config Key = IMPOSE_VEG 840 !Config Desc = Should the vegetation be prescribed 841 !Config Def = n 842 !Config Help = This flag allows the user to impose a vegetation distribution 843 !Config and its characterisitcs. It is espacially interesting for 0D 844 !Config simulations. On the globe it does not make too much sense as 845 !Config it imposes the same vegetation everywhere 846 ! 847 impveg = .FALSE. 848 CALL getin_p('IMPOSE_VEG', impveg) 740 !!$ IF ( .NOT. agriculture .AND. land_use ) THEN 741 !!$ CALL ipslerr (2,'slowproc_init', & 742 !!$ & 'Problem with agriculture desactivated and Land Use activated.',& 743 !!$ & 'Are you sure ?', & 744 !!$ & '(check your parameters).') 745 !!$ ENDIF 849 746 ! 850 747 IF ( impveg ) THEN … … 899 796 CALL setvar_p (lai, val_exp, 'SECHIBA_LAI', llaimax) 900 797 901 !902 !Config Key = IMPOSE_SOILT903 !Config Desc = Should the soil typ be prescribed904 !Config Def = n905 !Config If = IMPOSE_VEG906 !Config Help = This flag allows the user to impose a soil type distribution.907 !Config It is espacially interesting for 0D908 !Config simulations. On the globe it does not make too much sense as909 !Config it imposes the same soil everywhere910 !911 impsoilt = .FALSE.912 CALL getin_p('IMPOSE_SOILT', impsoilt)913 798 IF (impsoilt) THEN 914 799 !Config Key = SOIL_FRACTIONS … … 958 843 959 844 IF ( .NOT. land_use ) THEN 960 961 !Config Key = SLOWPROC_VEGET_OLD_INTERPOL962 !Config Desc = Flag to use old "interpolation" of vegetation map.963 !Config If = NOT IMPOSE_VEG and NOT LAND_USE964 !Config Def = FALSE965 !Config Help = If you want to recover the old (ie orchidee_1_2 branch)966 !Config "interpolation" of vegetation map.967 !968 old_veget = .FALSE.969 CALL getin_p('SLOWPROC_VEGET_OLD_INTERPOL',old_veget)970 845 971 846 ! The interpolation of vegetation has changed. … … 1092 967 ! 1093 968 IF (read_lai) THEN 1094 1095 !Config Key = SLOWPROC_LAI_OLD_INTERPOL1096 !Config Desc = Flag to use old "interpolation" of LAI1097 !Config If = LAI_MAP1098 !Config Def = FALSE1099 !Config Help = If you want to recover the old (ie orchidee_1_2 branch)1100 !Config "interpolation" of LAI map.1101 !1102 old_lai = .FALSE.1103 CALL getin_p('SLOWPROC_LAI_OLD_INTERPOL',old_lai)1104 969 1105 970 ! … … 4670 4535 ! 79 warm C4 woody savanna 4671 4536 vegcorr(79,:) = & 4672 & (/0.0, 0.0, 0.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0. 6, 0.0, 0.0, 0.0/)4537 & (/0.0, 0.0, 0.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0/) 4673 4538 ! 80 cool woody savanna 4674 4539 vegcorr(80,:) = & -
branches/ORCHIDEE_EXT/ORCHIDEE/src_stomate/lpj_fire.f90
r257 r311 29 29 ! first call 30 30 LOGICAL, SAVE :: firstcall = .TRUE. 31 ! flag that disable fire32 LOGICAL, SAVE :: disable_fire33 31 34 32 CONTAINS … … 157 155 158 156 firstcall = .FALSE. 159 !160 ! 1.3 read the flag that disable fire161 !162 !Config Key = FIRE_DISABLE163 !Config Desc = no fire allowed164 !Config Def = n165 !Config Help = With this variable, you can allow or not166 !Config the estimation of CO2 lost by fire167 !168 disable_fire=.FALSE.169 CALL getin_p('FIRE_DISABLE', disable_fire)170 157 ENDIF 171 158 -
branches/ORCHIDEE_EXT/ORCHIDEE/src_stomate/stomate.f90
r304 r311 245 245 ! This variable must be .TRUE. once a year 246 246 LOGICAL, SAVE :: EndOfYear=.FALSE. 247 ! Land cover change flag248 LOGICAL,SAVE :: lcchange=.FALSE.247 !!$ ! Land cover change flag 248 !!$ LOGICAL,SAVE :: lcchange=.FALSE. 249 249 ! Do update of monthly variables ? 250 250 ! This variable must be .TRUE. once a month 251 251 LOGICAL, SAVE :: EndOfMonth=.FALSE. 252 PUBLIC dt_days, day_counter, date, do_slow, EndOfYear , lcchange252 PUBLIC dt_days, day_counter, date, do_slow, EndOfYear !, lcchange 253 253 254 254 … … 2047 2047 ENDDO 2048 2048 ENDDO 2049 ! 2050 ! 6 some flags 2051 ! 2052 ! 2053 !Config Key = HERBIVORES 2054 !Config Desc = herbivores allowed? 2055 !Config Def = n 2056 !Config Help = With this variable, you can determine 2057 !Config if herbivores are activated 2058 ! 2059 ok_herbivores = .FALSE. 2060 CALL getin_p('HERBIVORES', ok_herbivores) 2061 ! 2062 WRITE(numout,*) 'herbivores activated: ',ok_herbivores 2063 ! 2064 !Config Key = TREAT_EXPANSION 2065 !Config Desc = treat expansion of PFTs across a grid cell? 2066 !Config Def = n 2067 !Config Help = With this variable, you can determine 2068 !Config whether we treat expansion of PFTs across a 2069 !Config grid cell. 2070 ! 2071 treat_expansion = .FALSE. 2072 CALL getin_p('TREAT_EXPANSION', treat_expansion) 2073 ! 2074 WRITE(numout,*) & 2075 & 'expansion across a grid cell is treated: ',treat_expansion 2076 2077 !Config Key = LPJ_GAP_CONST_MORT 2078 !Config Desc = prescribe mortality if not using DGVM? 2079 !Config Def = y 2080 !Config Help = set to TRUE if constant mortality is to be activated 2081 ! ignored if DGVM=true! 2082 ! 2083 lpj_gap_const_mort=.TRUE. 2084 CALL getin('LPJ_GAP_CONST_MORT', lpj_gap_const_mort) 2085 WRITE(numout,*) 'LPJ GAP: constant mortality:', lpj_gap_const_mort 2086 2087 !Config Key = HARVEST_AGRI 2088 !Config Desc = Harvert model for agricol PFTs. 2089 !Config Def = y 2090 !Config Help = Compute harvest above ground biomass for agriculture. 2091 !Config Change daily turnover. 2092 harvest_agri = .TRUE. 2093 CALL getin_p('HARVEST_AGRI', harvest_agri) 2094 2095 ! 2096 ! 7 some global initializations 2049 2050 ! 2051 ! 6 some global initializations 2097 2052 ! 2098 2053 ! edit shilong
Note: See TracChangeset
for help on using the changeset viewer.