NGEET / fates

repository for the Functionally Assembled Terrestrial Ecosystem Simulator (FATES)
Other
95 stars 91 forks source link

Hydro grass problem #643

Open JunyanDing opened 4 years ago

JunyanDing commented 4 years ago

I ran FATEShydro with grass using default C4 grass allometry, the model always crushed on April of first year. @rgknox and I thought this is caused by the relative small volume of stem in relation to leaf and fine roots. I noticed that there is a sudden increasing of LAI at that time (please see figure below, the history file is also attached). @xuchongang pointed that the water of new leaves is draw from stem, so with small stem volume, this can also be the cause of the problem. Seems, there are two ways we can deal with this issue: adjust the allometry of grass to have larger volume of sapwood, or change the code so that water of new leaves is not just draw from stem.

By the way, I tried to change the allometry of the grass so that the volume of the stem (sapwood) is high enough, the model did not crush on 1D solver, but crushed on mass balance error (I think this can be fixed by carefully set the allometry coefficients of leaf biomass to dbh and TLAI-sapwood ratio).

Land log error message Could not find a stable solution for hydro 1D solve

error code: 3 error diag: 0.330287198176065 0.394107646788918
0.400862460418698 -0.192539174013666 0.297170014566640
0.297691373299083 0.298020268630089 0.298152006134629
0.298152072271320
layer: 13 wb_step_err = 1.322429655608320E-006 leaf water: 1.773328788727830E-004 kg/plant stem_water: 4.833107374516085E-005 kg/plant troot_water: 1.529427657845674E-007 aroot_water: 6.440347550056255E-005 LWP: -0.367311954387096
dbh: 1.025172376069459E-002 pft: 1 z nodes: 7.500000000000000E-002 1.250000000000000E-002 -0.132445165945683 -3.26000000000000 -3.26000000000000
-3.26000000000000 -3.26000000000000 -3.26000000000000
-3.26000000000000
psi_z: 7.350000000005963E-004 1.224999999998033E-004 -1.297962626267690E-003 -3.194800000000009E-002 -3.194800000000000E-002 -3.194800000000000E-002 -3.194800000000000E-002 -3.194800000000000E-002 -3.194800000000000E-002 vol, theta, H, kmax- flux: 1.344843717326088E-006 l: 5.509788557559552E-007 0.321850606461982 -8.08326879570170
-8.08400379570170
2.188119144852050E-006 s: 1.119435793901843E-007 0.431744938016505 -3.41150694083209
-3.41162944083209
2.248163983042961E-007 t: 3.534684385271399E-010 0.432691434691769 -3.38298023691940
5.096748922706539E-007 a: 2.377833132944527E-010 0.627316245837991 -1.26632062051941
in: 1.008454340992166E-006 out: 4.736877903821467E-010 r1: 1.040892507408107E-008 0.297741530007507 -5.047103766294370E-002 1.463087162326015E-002 r2: 4.676525909856940E-007 0.297883542313134 -5.040892425070980E-002 1.463087162326016E-002 r3: 2.101071381522456E-005 0.298024698078597 -5.034742106915847E-002 1.463087162326015E-002 r4: 9.439701683140546E-004 0.298152072272058 -5.029212344507290E-002 1.463087162326016E-002 r5: 4.241072847421192E-002 0.298152072272058 -5.029212344507290E-002 kmax_aroot_radial_out: 4.739080244307959E-010 surf area of root: 4.739080244307959E-006 aroot_frac_plant: 8.032627343483570E-006 7.542480465907090E-003 938.980503312642
kmax_upper_shell: 5.023681901477059E-002 5.023681901477059E-002 5.023681901477059E-002 5.023681901477059E-002 5.023681901477060E-002 kmax_lower_shell: 2.064285614097469E-002 2.064285614097469E-002 2.064285614097470E-002 2.064285614097469E-002 2.064285614097470E-002

tree lai: 2.10208067542341 m2/m2 crown area and area to volume ratios

a: 2.377833132944527E-010 4.739080244307959E-006 r1: 1.040892507408107E-008 3.176528774028621E-005 r2: 4.676525909856940E-007

r3: 2.101071381522456E-005

r4: 9.439701683140546E-004

r5: 4.241072847421192E-002 inner shell kmaxs: 11.4698539957275 9.69919698424848
6.61394900222178 4.63288431894881 3.38703497482429
2.39619117458212 1.96677516769209 1.33607369415542
0.823533986650616 0.461231841141018 0.235494370179939
0.109915840528847 5.023681901477059E-002 1.818024970390756E-002 5.268631273998885E-003 1.231587508248488E-003 2.333666477122682E-004 3.596726176838287E-005 4.519753163247298E-006 ENDRUN: ERROR in FatesPlantHydraulicsMod.F90 at line 3224

Corresponding FatesPlantHydraulicsMod.F90 code

    ! Outer iteration loop
    ! This cuts timestep in half and resolve the solution with smaller substeps
    ! This loop is cleared when the model has found a solution

    solution_found = .false.
    iter = 0
    do while( .not.solution_found ) 

        ! Gracefully quit if too many iterations have been used
        if(iter>max_iter)then
            call Report1DError(cohort,site_hydr,ilayer,z_node,v_node, & 
                  th_node_init,q_top_eff,dt_step,w_tot_beg,w_tot_end,& 
                  rootfr_scaler,aroot_frac_plant,error_code,error_arr)

            **call endrun(msg=errMsg(sourcefile, __LINE__))**
        end if
glemieux commented 4 years ago

@JunyanDing I didn't see the figure attached. Do you have that available?

JunyanDing commented 4 years ago

sorry @glemieux . Here are the figures of TLAI and GPP. Please let me know if you still can't see them.

GPP TLAI
JunyanDing commented 4 years ago

Oh, so sorry. This is the gpp, Hopefull :)

GPP
rgknox commented 4 years ago

@JunyanDing , is this still an issue for you? I recalling my notes, and there were a few different approaches we talked about as a group, including potentially removing the sapwood compartment (which I think we all thought wouldn't be ideal), or perhaps making sure it is suitably large or balanced above/below. Should we have another round of strategizing?

JunyanDing commented 4 years ago

@rgknox I got the hydro work for grass by adjusting the parameters. It is no longer the issue. I increased sap to TLAI ratio, saturated water content of sap, and also reduced the P50 of stem and P50gs to limit the flux. The model ran successfully for 10 years, and the outcome seems fine. So, I closed this issue yesterday. The adjusted parameter file of C4 grass is attached. I think we don't have to make any adjustment of the model. What do you think? fates_params_grassV1.txt

rgknox commented 4 years ago

thanks @JunyanDing , closing

jennykowalcz commented 1 year ago

Hi all, I recently tried running a basin-wide simulation for the Amazon including C4 grass with FATES-Hydro, and the model fails after a few years with errors like:

24: error code: 1 24: error diag: 0.000000000000000E+000 0.000000000000000E+000 24: 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 24: lat: -21.7894736842106 longitidue: 295.000000000000
24: is recruitment: T 24: layer: 1 24: wb_step_err = 3.554345039669810E-005 24: q_top_eff*dt_step = 0.000000000000000E+000 24: w_tot_beg = 3.518865767549004E-002 24: w_tot_end = 3.522420112588674E-002 24: leaf water: 1.961746321483127E-009 kg/plant 24: stem_water: 1.335221400928602E-004 kg/plant 24: troot_water: 2.094234212593317E-004 24: aroot_water: 2.417359259241299E-004 24: LWP: 209534728982831.
24: dbh: 2.685054172567843E-002 24: pft: 3 24: z nodes: 0.181488783920268 6.574439196013394E-002 24: -0.132445165945683 -2.254589358796573E-002 -2.254589358796573E-002 24: psi_z: 0.000000000000000E+000 6.442950412093099E-004 -1.297962626267690E-003 24: -2.209497571620637E-004 -2.209497571620672E-004 24: vol, theta, H, Psi, kmax- 24: flux: 0.000000000000000E+000 24: l: 2.573089798062070E-025 7624088063155.13 209534728982831.
24: 209534728982831.
24: 1.421129371902437E-004 24: s: 2.062257586582022E-007 0.647456171147656 -4.420609242994741E-002 24: -4.485038747115672E-002 24: 1.020948476009534E-004 24: t: 3.226764144904198E-007 0.649019921676207 -1.844570387461699E-002 24: 1.485312873720548E-004 24: a: 7.702283164897106E-008 0.749246565133003 -1.162076765447368E-002 24: in: 2.956133412213760E-004 24: out: 3.048162844683144E-007 24: r1: 1.363921246634315E-004 0.255058722387282 -4.072378873669048E-002 24: 0.000000000000000E+000 24: r2: 0.000000000000000E+000 0.000000000000000E+000 2.546394949701799E-313 24: 0.000000000000000E+000 24: r3: 209534728982831. 0.000000000000000E+000 2.970794107993667E-313 24: 0.958627145887220
24: r4: -4.485038747115672E-002 0.000000000000000E+000 1.00009084240403
24: 9.059156245940300E-010 24: r5: -1.714774124834930E-002 0.679687500000000 8.289046058458095E-317 24: kmax_aroot_radial_out: 3.051293889697685E-007 24: surf area of root: 3.051293889697685E-003 24: aroot_frac_plant: 3.028149867406444E-007 4.85628505371451
24: 16037135.7639370
24: kmax_upper_shell: 35.5534138361627
24: kmax_lower_shell: 8.57324303411599
24:
24: tree lai: 0.000000000000000E+000 m2/m2 crown 24: area and area to volume ratios 24:
24: a: 7.702283164897106E-008 24: 3.051293889697685E-003 24: r1: 1.363921246634315E-004 24: 9.128394999215128E-002 24: r2: 0.000000000000000E+000 24:
24: r3: 209534728982831.
24:
24: r4: -4.485038747115672E-002 24:
24: r5: -1.714774124834930E-002 24: inner shell kmaxs: 35.5534138361627 24.3991221407715
24: 25.8309821769010 23.4940446583653 17.5045337137969
24: 12.7067772032092 8.87509281028275 4.18627117844413
24: 1.01982362857222
24: ENDRUN: 24: ERROR in FatesPlantHydraulicsMod.F90 at line 3456

Here PFT 3 is the C4 grass, with parameter values from PFT 12 in fates_params_api25.5.0_12pft_c230710.nc .

I also tried modifying the values for fates_hydro_p50_node, fates_hydro_resid_node, and fates_hydro_thetas_node for the C4 grass to match the values in Junyan's "fates_params_grassV1.txt" posted above, but the model still failed with a similar error related to the grass PFT:

227: error code: 1 227: error diag: 0.000000000000000E+000 0.000000000000000E+000 227: 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 227: lat: 0.947368421052549 longitidue: 302.500000000000
227: is recruitment: T 227: layer: 1 227: wb_step_err = -1.013540004501934E-005 227: q_top_eff*dt_step = 0.000000000000000E+000 227: w_tot_beg = 1.08275963374886
227: w_tot_end = 1.08274949834881
227: leaf water: 1.551662159135737E-003 kg/plant 227: stem_water: 4.186283226312781E-002 kg/plant 227: troot_water: 7.614600511840795E-003 227: aroot_water: 6.011526551129682E-003 227: LWP: 4552389374647.38
227: dbh: 0.285116756680407
227: pft: 3 227: z nodes: 1.00006106327653 0.475030531638267
227: -0.132445165945683 -2.254589358796573E-002 -2.254589358796573E-002 227: psi_z: 9.765625000000000E-003 4.655299210055031E-003 -1.297962626267690E-003 227: -2.209497571620642E-004 -2.209497571620637E-004 227: vol, theta, H, Psi, kmax- 227: flux: 0.000000000000000E+000 227: l: 1.147524501782648E-017 135218215970.576 4552389374647.39
227: 4552389374647.38
227: 1.101906409828341E-003 227: s: 3.328835226450526E-005 1.25758198935444 3.72445512250521
227: 3.71979982329515
227: 2.939114882206116E-003 227: t: 8.015369803555554E-006 0.949999900000000 -1.147568116475709E-003 227: 2.003595931429476E-003 227: a: 1.913268064412049E-006 0.749999900000000 -9.001813259710461E-005 227: in: 3.995605902336123E-003 227: out: 6.973927167848815E-006 227: r1: 3.011975613885163E-003 0.342066377698453 -1.711303946610491E-002 227: 0.000000000000000E+000 227: r2: 0.000000000000000E+000 0.000000000000000E+000 7.214785690764123E-313 227: 0.000000000000000E+000 227: r3: 4552389374647.38 0.000000000000000E+000 7.426985269910057E-313 227: 12.2081257587682
227: r4: 3.71979982329515 0.000000000000000E+000 3.395501693039584E-313 227: 1.964865465079034E-008 227: r5: 1.503945097919811E-004 0.744857788085938 0.000000000000000E+000 227: kmax_aroot_radial_out: 6.986085806480208E-006 227: surf area of root: 6.986085806480208E-002 227: aroot_frac_plant: 6.687401067123732E-006 111.187008896538
227: 16626340.7533833
227: kmax_upper_shell: 521.433495721898
227: kmax_lower_shell: 126.430627271067
227:
227: tree lai: 0.000000000000000E+000 m2/m2 crown 227: area and area to volume ratios 227:
227: a: 1.913268064412049E-006 227: 6.986085806480208E-002 227: r1: 3.011975613885163E-003 227: 2.05262382248065
227: r2: 0.000000000000000E+000 227:
227: r3: 4552389374647.38
227:
227: r4: 3.71979982329515
227:
227: r5: 1.503945097919811E-004 227: inner shell kmaxs: 521.433495721898 330.068391508346
227: 331.315058630158 275.220124068422 210.380265881971
227: 136.702838749809 96.8167571865368 51.1335443847300
227: 13.3539707069962
227: ENDRUN: 227: ERROR in FatesPlantHydraulicsMod.F90 at line 3456

I see this is a different error code from what Junyan reported above, so let me know if I should post this as a new issue!

glemieux commented 12 months ago

During the fates meeting @mpaiao suggested that this could be an initialization issue.