Changeset 7337 for branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba
- Timestamp:
- 2021-11-06T08:24:04+01:00 (3 years ago)
- Location:
- branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90
r7255 r7337 1449 1449 IF (ier /= 0) CALL ipslerr_p(3,'hydrol_init','Problem in allocate of variable mc_adry','','') 1450 1450 1451 !! 2.2 Soil texture choose 1452 1453 SELECTCASE (nscm) 1454 CASE (3) 1455 pcent(:) = pcent_fao(:) 1456 mc_awet(:) = mc_awet_fao(:) 1457 mc_adry(:) = mc_adry_fao(:) 1458 CASE (13) 1459 pcent(:) = pcent_usda(:) 1460 mc_awet(:) = mc_awet_usda(:) 1461 mc_adry(:) = mc_adry_usda(:) 1462 CASE DEFAULT 1463 WRITE (numout,*) 'Unsupported soil type classification. Choose between zobler and usda according to the map' 1464 CALL ipslerr_p(3,'hydrol_init','Unsupported soil type classification. ',& 1465 'Choose between zobler and usda according to the map','') 1466 ENDSELECT 1467 1451 !! 2.2 Soil texture parameters 1452 1453 pcent(:) = pcent_usda(:) 1454 mc_awet(:) = mc_awet_usda(:) 1455 mc_adry(:) = mc_adry_usda(:) 1468 1456 1469 1457 !! 2.3 Read in the run.def the parameters values defined by the user -
branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/slowproc.f90
r7326 r7337 3032 3032 IF (ALLOC_ERR/=0) CALL ipslerr_p(3,'slowproc_soilt','Error in allocation for textfrac_table','','') 3033 3033 DO ib=1, nbpt 3034 soilclass(ib,:) = soilclass_default_ fao3034 soilclass(ib,:) = soilclass_default_usda 3035 3035 clayfraction(ib) = clayfraction_default 3036 3036 ENDDO … … 3038 3038 CASE('zobler') 3039 3039 ! 3040 soilclass_default=soilclass_default_ fao ! FAO means here 3 final texture classes3040 soilclass_default=soilclass_default_usda ! USDA means here 13 final texture classes, owing to fao2usda 3041 3041 ! 3042 3042 IF (printlev_loc>=2) WRITE(numout,*) "Using a soilclass map with Zobler classification, to be read using XIOS" … … 3057 3057 ! ! 3058 3058 DO ib =1, nbpt 3059 soilclass(ib,1)=textrefrac(ib,1) 3060 soilclass(ib,2)=textrefrac(ib,2)+textrefrac(ib,3)+textrefrac(ib,4)+textrefrac(ib,7) 3061 soilclass(ib,3)=textrefrac(ib,5) 3059 soilclass(ib,:)=0. 3060 soilclass(ib,fao2usda(1))=textrefrac(ib,1) 3061 soilclass(ib,fao2usda(2))=textrefrac(ib,2)+textrefrac(ib,3)+textrefrac(ib,4)+textrefrac(ib,7) 3062 soilclass(ib,fao2usda(3))=textrefrac(ib,5) 3062 3063 3063 3064 ! clayfraction is the sum of the % of clay (as a mineral of small granulometry, and not as a texture) … … 3075 3076 textfrac_table(5,1) * textrefrac(ib,5)+textfrac_table(7,1) * textrefrac(ib,7) 3076 3077 3077 sgn=SUM(soilclass(ib,1:3)) 3078 3079 IF (sgn < min_sechiba) THEN 3078 sgn=SUM(soilclass(ib,1:3)) ! grid-cell fraction with texture info 3079 3080 IF (sgn < min_sechiba) THEN ! if no texture info in this grid-point, we assume 28%/52%, 20% of texture classes 3/6/9 3080 3081 soilclass(ib,:) = soilclass_default(:) 3081 3082 clayfraction(ib) = clayfraction_default … … 3135 3136 ENDDO 3136 3137 3137 sgn=SUM(soilclass(ib,:)) 3138 3139 IF (sgn < min_sechiba) THEN 3138 sgn=SUM(soilclass(ib,:)) ! grid-cell fraction with texture info 3139 3140 IF (sgn < min_sechiba) THEN ! if no texture info in this grid-point, we assume 28%/52%, 20% of texture classes 3/6/9 3140 3141 soilclass(ib,:) = soilclass_default(:) 3141 3142 clayfraction(ib) = clayfraction_default … … 3234 3235 IF (ALLOC_ERR/=0) CALL ipslerr_p(3,'slowproc_soilt','Error in allocation for textfrac_table','','') 3235 3236 DO ib=1, nbpt 3236 soilclass(ib,:) = soilclass_default_ fao3237 soilclass(ib,:) = soilclass_default_usda 3237 3238 clayfraction(ib) = clayfraction_default 3238 3239 sandfraction(ib) = sandfraction_default … … 3241 3242 CASE('zobler') 3242 3243 ! 3243 soilclass _default=soilclass_default_fao ! FAO means here 3 final texture classes3244 soilclass(ib,:) = soilclass_default_usda ! USDA means here 13 final texture classes, owing to fao2usda 3244 3245 ! 3245 3246 IF (printlev_loc>=2) WRITE(numout,*) "Using a soilclass map with Zobler classification" … … 3294 3295 SELECT CASE(solt(ilf)) 3295 3296 CASE(1) 3296 soilclass(ib, 1) = soilclass(ib,1) + textrefrac(ib,solt(ilf))3297 soilclass(ib,fao2usda(1)) = soilclass(ib,fao2usda(1)) + textrefrac(ib,solt(ilf)) 3297 3298 CASE(2) 3298 soilclass(ib, 2) = soilclass(ib,2) + textrefrac(ib,solt(ilf))3299 soilclass(ib,fao2usda(2)) = soilclass(ib,fao2usda(2)) + textrefrac(ib,solt(ilf)) 3299 3300 CASE(3) 3300 soilclass(ib, 2) = soilclass(ib,2) + textrefrac(ib,solt(ilf))3301 soilclass(ib,fao2usda(2)) = soilclass(ib,fao2usda(2)) + textrefrac(ib,solt(ilf)) 3301 3302 CASE(4) 3302 soilclass(ib, 2) = soilclass(ib,2) + textrefrac(ib,solt(ilf))3303 soilclass(ib,fao2usda(2)) = soilclass(ib,fao2usda(2)) + textrefrac(ib,solt(ilf)) 3303 3304 CASE(5) 3304 soilclass(ib, 3) = soilclass(ib,3) + textrefrac(ib,solt(ilf))3305 soilclass(ib,fao2usda(3)) = soilclass(ib,fao2usda(3)) + textrefrac(ib,solt(ilf)) 3305 3306 CASE(7) 3306 soilclass(ib, 2) = soilclass(ib,2) + textrefrac(ib,solt(ilf))3307 soilclass(ib,fao2usda(2)) = soilclass(ib,fao2usda(2)) + textrefrac(ib,solt(ilf)) 3307 3308 CASE DEFAULT 3308 3309 WRITE(numout,*) 'We should not be here, an impossible case appeared' … … 3451 3452 njsc(:) = 0 3452 3453 DO ib = 1, nbpt 3453 njsc(ib) = MAXLOC(soilclass(ib,:),1) 3454 njsc(ib) = MAXLOC(soilclass(ib,:),1) ! Here we get 3/6/9 for the Zobler classes Coarse/Medium/Fine 3454 3455 ENDDO 3455 3456 … … 3545 3546 3546 3547 ELSE ! spmipexp is not maps nor unif, then it must be texture 3547 IF (spmipexp == 'texture') THEN 3548 IF (soil_classif == 'usda') THEN 3549 ! Texture map from SP-MIP, thus Soilgrids modified 3550 nvan(:) = nvan_usda(njsc(:)) 3551 avan(:) = avan_usda(njsc(:)) 3552 mcr(:) = mcr_usda(njsc(:)) 3553 mcs(:) = mcs_usda(njsc(:)) 3554 ks(:) = ks_usda(njsc(:)) 3555 mcfc(:) = mcf_usda(njsc(:)) 3556 mcw(:) = mcw_usda(njsc(:)) 3557 ! on aura pcent(:) = pcent(njsc(:)) dans hydrol 3558 ELSE ! soil_classif == 'zobler' or 'none' 3559 ! salma: here we are in exp3 -- Zobler map 3560 nvan(:) = nvan_fao(njsc(:)) 3561 avan(:) = avan_fao(njsc(:)) 3562 mcr(:) = mcr_fao(njsc(:)) 3563 mcs(:) = mcs_fao(njsc(:)) 3564 ks(:) = ks_fao(njsc(:)) 3565 mcfc(:) = mcf_fao(njsc(:)) 3566 mcw(:) = mcw_fao(njsc(:)) 3567 ENDIF !if spmipexp is texture 3548 IF (spmipexp == 'texture') THEN 3549 ! Whichever the soil texture map, we can use the USDA parameter vectors with 13 values 3550 nvan(:) = nvan_usda(njsc(:)) 3551 avan(:) = avan_usda(njsc(:)) 3552 mcr(:) = mcr_usda(njsc(:)) 3553 mcs(:) = mcs_usda(njsc(:)) 3554 ks(:) = ks_usda(njsc(:)) 3555 mcfc(:) = mcf_usda(njsc(:)) 3556 mcw(:) = mcw_usda(njsc(:)) 3568 3557 ELSE ! if spmipexp is not among texture or maps or unif 3569 3558 WRITE(numout,*) "Unsupported spmipexp=",spmipexp -
branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/thermosoil.f90
r7207 r7337 379 379 380 380 381 !! Soil texture choose 382 SELECTCASE (nscm) 383 CASE (3) 384 QZ(:) = QZ_fao(:) 385 so_capa_dry_ns(:) = so_capa_dry_ns_fao(:) 386 CASE (13) !Salma changed from 12 to 13 for the new class Oxisols 387 QZ(:) = QZ_usda(:) 388 so_capa_dry_ns(:) = so_capa_dry_ns_usda(:) 389 CASE DEFAULT 390 WRITE (numout,*) 'Unsupported soil type classification. Choose between zobler, fao and usda according to the map' 391 STOP 'thermosoil_initialize' 392 ENDSELECT 393 381 !! Soil texture choose : Now useless since njsc defines the dominant texture within 13 classes whichever the soil map 382 QZ(:) = QZ_usda(:) 383 so_capa_dry_ns(:) = so_capa_dry_ns_usda(:) 394 384 395 385 !! 2. Initialize variable from restart file or with default values … … 1330 1320 ! Eq 11 in Peters-Lidard et al., 1998 1331 1321 IF ( satratio(ji,jg) > 0.1 ) THEN 1332 IF ( (jst < 4 .AND. soil_classif == 'usda') .OR. (jst == 1 .AND. soil_classif == 'zobler')) THEN1322 IF (jst < 4 ) THEN 1333 1323 ! Coarse 1334 1324 ake(ji,jg) = 0.7 * LOG10 (SATRATIO(ji,jg)) + 1.0 … … 1338 1328 ENDIF 1339 1329 ELSEIF ( satratio(ji,jg) > 0.05 .AND. satratio(ji,jg) <= 0.1 ) THEN 1340 IF ( (jst < 4 .AND. soil_classif == 'usda') .OR. (jst == 1 .AND. soil_classif == 'zobler')) THEN1330 IF (jst < 4 ) THEN 1341 1331 ! Coarse 1342 1332 ake(ji,jg) = 0.7 * LOG10 (satratio(ji,jg)) + 1.0
Note: See TracChangeset
for help on using the changeset viewer.