Skip to content

Commit

Permalink
Incorporating spring wheat dynamics with dynamic planting date into N…
Browse files Browse the repository at this point in the history
…oahMP LSM
  • Loading branch information
CharlesZheZhang committed Jan 20, 2023
1 parent 5bc08ad commit 0c3a9a7
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 67 deletions.
33 changes: 20 additions & 13 deletions drivers/wrf/module_sf_noahmpdrv.F
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
QSNOWXY, QRAINXY, WSLAKEXY, ZWTXY, WAXY, WTXY, TSNOXY, & ! IN/OUT Noah MP only
ZSNSOXY, SNICEXY, SNLIQXY, LFMASSXY, RTMASSXY, STMASSXY, & ! IN/OUT Noah MP only
WOODXY, STBLCPXY, FASTCPXY, XLAIXY, XSAIXY, TAUSSXY, & ! IN/OUT Noah MP only
SMOISEQ, SMCWTDXY,DEEPRECHXY, RECHXY, GRAINXY, GDDXY,PGSXY, & ! IN/OUT Noah MP only
SMOISEQ, SMCWTDXY,DEEPRECHXY, RECHXY, GRAINXY, GDDXY, TAVEXY, PGSXY, & ! IN/OUT Noah MP only
GECROS_STATE, & ! IN/OUT gecros model
QTDRAIN, TD_FRACTION, & ! IN/OUT tile drainage
T2MVXY, T2MBXY, Q2MVXY, Q2MBXY, & ! OUT Noah MP only
Expand Down Expand Up @@ -161,6 +161,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN ) :: SEASON_GDD! growing season GDD
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: GRAINXY ! mass of grain XING [g/m2]
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: GDDXY ! growing degree days XING (based on 10C)
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: TAVEXY
INTEGER, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: PGSXY
! gecros model
Expand Down Expand Up @@ -483,6 +484,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
REAL :: WOOD ! mass of wood (incl. woody roots) [g/m2]
REAL :: GRAIN ! mass of grain XING [g/m2]
REAL :: GDD ! mass of grain XING[g/m2]
REAL :: TAVE !
INTEGER :: PGS !stem respiration [g/m2/s]
REAL :: STBLCP ! stable carbon in deep soil [g/m2]
REAL :: FASTCP ! short-lived carbon, shallow soil [g/m2]
Expand Down Expand Up @@ -973,7 +975,6 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
CALL TRANSFER_MP_PARAMETERS(NSOIL,VEGTYP,SOILTYP,SLOPETYP,SOILCOLOR,CROPTYPE,parameters)
if(iopt_soil == 3 .and. .not. parameters%urban_flag) then
sand = 0.01 * soilcomp(i,1:nsoil,j)
Expand All @@ -986,17 +987,18 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
GRAIN = GRAINXY (I,J) ! mass of grain XING [g/m2]
GDD = GDDXY (I,J) ! growing degree days XING
TAVE = TAVEXY(I,J)
PGS = PGSXY (I,J) ! growing degree days XING
if(iopt_crop == 1 .and. croptype > 0) then
parameters%PLTDAY = PLANTING(I,J)
parameters%HSDAY = HARVEST (I,J)
parameters%GDDS1 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS1
parameters%GDDS2 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS2
parameters%GDDS3 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS3
parameters%GDDS4 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS4
parameters%GDDS5 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS5
end if
! if(iopt_crop == 1 .and. croptype > 0) then
! parameters%PLTDAY = PLANTING(I,J)
! parameters%HSDAY = HARVEST (I,J)
! parameters%GDDS1 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS1
! parameters%GDDS2 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS2
! parameters%GDDS3 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS3
! parameters%GDDS4 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS4
! parameters%GDDS5 = SEASON_GDD(I,J) / 1770.0 * parameters%GDDS5
! end if
if(iopt_irr == 2) then
parameters%PLTDAY = PLANTING(I,J)
Expand Down Expand Up @@ -1081,6 +1083,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
QTLDRN = undefined_value
GRAIN = undefined_value
GDD = undefined_value
TAVE = undefined_value
STBLCP = undefined_value
FASTCP = undefined_value
PLAI = undefined_value
Expand Down Expand Up @@ -1173,7 +1176,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
ZWT , WA , WT , WSLAKE , LFMASS , RTMASS , & ! IN/OUT :
STMASS , WOOD , STBLCP , FASTCP , PLAI , PSAI , & ! IN/OUT :
CM , CH , TAUSS , & ! IN/OUT :
GRAIN , GDD , PGS , & ! IN/OUT
GRAIN , GDD , TAVE , PGS , & ! IN/OUT
SMCWTD ,DEEPRECH , RECH , & ! IN/OUT :
GECROS1D, & ! IN/OUT :
QTLDRN , TDFRACMP, & ! IN/OUT : tile drainage
Expand Down Expand Up @@ -1394,6 +1397,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN
GRAINXY (I,J) = GRAIN !GRAIN XING
GDDXY (I,J) = GDD !XING
TAVEXY (I,J) = TAVE
PGSXY (I,J) = PGS
! irrigation
Expand Down Expand Up @@ -1831,7 +1835,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT
fwetxy ,sneqvoxy ,alboldxy ,qsnowxy, qrainxy, wslakexy, zwtxy, waxy, &
wtxy ,tsnoxy ,zsnsoxy ,snicexy ,snliqxy ,lfmassxy ,rtmassxy , &
stmassxy ,woodxy ,stblcpxy ,fastcpxy ,xsaixy ,lai , &
grainxy ,gddxy , &
grainxy ,gddxy ,tavexy , &
croptype ,cropcat , &
irnumsi ,irnummi ,irnumfi ,irwatsi, &
irwatmi ,irwatfi ,ireloss ,irsivol, &
Expand Down Expand Up @@ -1922,6 +1926,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT
REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: woodxy !mass of wood (incl. woody roots) [g/m2]
REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: grainxy !mass of grain [g/m2] !XING
REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: gddxy !growing degree days !XING
REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: tavexy !running average temperature !ZHE
REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: stblcpxy !stable carbon in deep soil [g/m2]
REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: fastcpxy !short-lived carbon, shallow soil [g/m2]
REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: xsaixy !stem area index
Expand Down Expand Up @@ -2164,6 +2169,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT
fastcpxy (I,J) = 0.0
grainxy (I,J) = 1E-10
gddxy (I,J) = 0
tavexy (I,J) = 0.0
cropcat (I,J) = 0

ELSE
Expand All @@ -2180,6 +2186,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT
fastcpxy (I,J) = 1000.0 !
grainxy (I,J) = 1E-10
gddxy (I,J) = 0
tavexy (I,J) = 0.0

! Initialize crop for Liu crop model

Expand Down
80 changes: 40 additions & 40 deletions parameters/MPTABLE.TBL
Original file line number Diff line number Diff line change
Expand Up @@ -389,34 +389,34 @@ IR_RAIN = 1.00 ! maximum precipitation to stop irrigation trigger
! 2: Soybean
! 3: Sorghum
! 4: Rice
! 5: Winter wheat
! 5: Spring wheat

DEFAULT_CROP = 0 ! The default crop type(1-5); if zero, use generic dynamic vegetation
DEFAULT_CROP = 1 ! The default crop type(1-5); if zero, use generic dynamic vegetation

!----------------------------------------------------------
! 1 2 3 4 5
!----------------------------------------------------------

PLTDAY = 111, 131, 111, 111, 111, ! Planting date
HSDAY = 300, 280, 300, 300, 300, ! Harvest date
PLTDAY = 111, 131, 111, 111, 145, ! Planting date
HSDAY = 300, 280, 300, 300, 273, ! Harvest date
PLANTPOP = 78.0, 78.0, 78.0, 78.0, 78.0, ! Plant density [per ha] - used?
IRRI = 0.0, 0.0, 0.0, 0.0, 0.0, ! Irrigation strategy 0= non-irrigation 1=irrigation (no water-stress)

GDDTBASE = 10.0, 10.0, 10.0, 10.0, 10.0, ! Base temperature for GDD accumulation [C]
GDDTBASE = 10.0, 10.0, 10.0, 10.0, 5.0, ! Base temperature for GDD accumulation [C]
GDDTCUT = 30.0, 30.0, 30.0, 30.0, 30.0, ! Upper temperature for GDD accumulation [C]
GDDS1 = 50.0, 60.0, 50.0, 50.0, 50.0, ! GDD from seeding to emergence
GDDS2 = 625.0, 675.0, 718.0, 718.0, 718.0, ! GDD from seeding to initial vegetative
GDDS3 = 933.0, 1183.0, 933.0, 933.0, 933.0, ! GDD from seeding to post vegetative
GDDS4 = 1103.0, 1253.0, 1103.0, 1103.0, 1103.0, ! GDD from seeding to intial reproductive
GDDS5 = 1555.0, 1605.0, 1555.0, 1555.0, 1555.0, ! GDD from seeding to pysical maturity
GDDS1 = 50.0, 60.0, 50.0, 50.0, 150.0, ! GDD from seeding to emergence
GDDS2 = 625.0, 675.0, 718.0, 718.0, 450.0, ! GDD from seeding to initial vegetative
GDDS3 = 933.0, 1183.0, 933.0, 933.0, 770.0, ! GDD from seeding to post vegetative
GDDS4 = 1103.0, 1253.0, 1103.0, 1103.0, 950.0, ! GDD from seeding to intial reproductive
GDDS5 = 1555.0, 1605.0, 1555.0, 1555.0, 1120.0, ! GDD from seeding to pysical maturity
C3PSN = 0.0, 1.0, 1.0, 1.0, 1.0, ! transfer crop-specific photosynthetic parameters
KC25 = 30.0, 30.0, 30.0, 30.0, 30.0, ! Zhe Zhang
AKC = 2.1, 2.1, 2.1, 2.1, 2.1, ! 2020-02-05
KO25 = 3.E4, 3.E4, 3.E4, 3.E4, 3.E4, !
AKO = 1.2, 1.2, 1.2, 1.2, 1.2, !
AVCMX = 2.4, 2.4, 2.4, 2.4, 2.4, !
VCMX25 = 60.0, 80.0, 60.0, 60.0, 55.0, !
BP = 4.E4, 1.E4, 2.E3, 2.E3, 2.E3, !
VCMX25 = 60.0, 80.0, 60.0, 60.0, 60.0, !
BP = 4.E4, 1.E4, 2.E3, 2.E3, 1.E4, !
MP = 4., 9., 6., 9., 9., !
FOLNMX = 1.5, 1.5, 1.5, 1.5, 1.5, !
QE25 = 0.05, 0.06, 0.06, 0.06, 0.06, !
Expand Down Expand Up @@ -458,8 +458,8 @@ LF_OVRC_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! fraction of leaf turnove
LF_OVRC_S2 = 0.0, 0.0, 0.0, 0.0, 0.0, ! One row for each of 8 stages
LF_OVRC_S3 = 0.0, 0.0, 0.0, 0.0, 0.0,
LF_OVRC_S4 = 0.0, 0.0, 0.0, 0.0, 0.0,
LF_OVRC_S5 = 0.2, 0.2, 0.48, 0.48, 0.48,
LF_OVRC_S6 = 0.3, 0.3, 0.48, 0.48, 0.48,
LF_OVRC_S5 = 0.2, 0.2, 0.48, 0.48, 0.05,
LF_OVRC_S6 = 0.3, 0.3, 0.48, 0.48, 0.05,
LF_OVRC_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
LF_OVRC_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

Expand All @@ -481,75 +481,75 @@ RT_OVRC_S6 = 0.06, 0.06, 0.06, 0.06, 0.06,
RT_OVRC_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
RT_OVRC_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

LFMR25 = 0.8, 1.0, 1.0, 1.0, 1.0, ! leaf maintenance respiration at 25C [umol CO2/m**2 /s]
LFMR25 = 0.8, 1.0, 1.0, 1.0, 0.8, ! leaf maintenance respiration at 25C [umol CO2/m**2 /s]
STMR25 = 0.05, 0.05, 0.1, 0.1, 0.1, ! stem maintenance respiration at 25C [umol CO2/kg bio/s]
RTMR25 = 0.05, 0.05, 0.0, 0.0, 0.0, ! root maintenance respiration at 25C [umol CO2/kg bio/s]
GRAINMR25 = 0.0, 0.0, 0.1, 0.1, 0.1, ! grain maintenance respiration at 25C [umol CO2/kg bio/s]

LFPT_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! fraction of carbohydrate flux to leaf
LFPT_S2 = 0.0, 0.0, 0.0, 0.0, 0.0, ! One row for each of 8 stages
LFPT_S3 = 0.36, 0.4, 0.4, 0.4, 0.4,
LFPT_S4 = 0.1, 0.2, 0.2, 0.2, 0.2,
LFPT_S5 = 0.0, 0.0, 0.0, 0.0, 0.0,
LFPT_S4 = 0.1, 0.2, 0.2, 0.2, 0.3,
LFPT_S5 = 0.0, 0.0, 0.0, 0.0, 0.1,
LFPT_S6 = 0.0, 0.0, 0.0, 0.0, 0.0,
LFPT_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
LFPT_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

STPT_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! fraction of carbohydrate flux to stem
STPT_S2 = 0.0, 0.0, 0.0, 0.0, 0.0, ! One row for each of 8 stages
STPT_S3 = 0.24, 0.2, 0.2, 0.2, 0.2,
STPT_S4 = 0.6, 0.5, 0.5, 0.5, 0.5,
STPT_S5 = 0.0, 0.0, 0.15, 0.15, 0.15,
STPT_S6 = 0.0, 0.0, 0.05, 0.05, 0.05,
STPT_S3 = 0.24, 0.2, 0.2, 0.2, 0.5,
STPT_S4 = 0.6, 0.5, 0.5, 0.5, 0.6,
STPT_S5 = 0.0, 0.0, 0.15, 0.15, 0.2,
STPT_S6 = 0.0, 0.0, 0.05, 0.05, 0.0,
STPT_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
STPT_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

RTPT_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! fraction of carbohydrate flux to root
RTPT_S2 = 0.0, 0.0, 0.0, 0.0, 0.0, ! One row for each of 8 stages
RTPT_S3 = 0.4, 0.4, 0.4, 0.4, 0.4,
RTPT_S4 = 0.3, 0.3, 0.3, 0.3, 0.3,
RTPT_S5 = 0.05, 0.05, 0.05, 0.05, 0.05,
RTPT_S6 = 0.0, 0.0, 0.05, 0.05, 0.05,
RTPT_S3 = 0.4, 0.4, 0.4, 0.4, 0.1,
RTPT_S4 = 0.3, 0.3, 0.3, 0.3, 0.1,
RTPT_S5 = 0.05, 0.05, 0.05, 0.05, 0.0,
RTPT_S6 = 0.0, 0.0, 0.05, 0.05, 0.0,
RTPT_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
RTPT_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

GRAINPT_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! fraction of carbohydrate flux to grain
GRAINPT_S2 = 0.0, 0.0, 0.0, 0.0, 0.0, ! One row for each of 8 stages
GRAINPT_S3 = 0.0, 0.0, 0.0, 0.0, 0.0,
GRAINPT_S4 = 0.0, 0.0, 0.0, 0.0, 0.0,
GRAINPT_S5 = 0.95, 0.95, 0.8, 0.8, 0.8,
GRAINPT_S6 = 1.0, 1.0, 0.9, 0.9, 0.9,
GRAINPT_S5 = 0.95, 0.95, 0.8, 0.8, 0.7,
GRAINPT_S6 = 1.0, 1.0, 0.9, 0.9, 0.8,
GRAINPT_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
GRAINPT_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

LFCT_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! carbohydrate translocation
LFCT_S2 = 0.0, 0.0, 0.0, 0.0, 0.0,
LFCT_S3 = 0.0, 0.0, 0.4, 0.4, 0.4,
LFCT_S4 = 0.0, 0.0, 0.3, 0.3, 0.3,
LFCT_S5 = 0.0, 0.0, 0.05, 0.05, 0.05,
LFCT_S6 = 0.0, 0.0, 0.05, 0.05, 0.05,
LFCT_S3 = 0.0, 0.0, 0.4, 0.4, 0.0,
LFCT_S4 = 0.0, 0.0, 0.3, 0.3, 0.0,
LFCT_S5 = 0.0, 0.0, 0.05, 0.05, 0.0,
LFCT_S6 = 0.0, 0.0, 0.05, 0.05, 0.0,
LFCT_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
LFCT_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

STCT_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! carbohydrate translocation
STCT_S2 = 0.0, 0.0, 0.0, 0.0, 0.0,
STCT_S3 = 0.0, 0.0, 0.4, 0.4, 0.4,
STCT_S4 = 0.0, 0.0, 0.3, 0.3, 0.3,
STCT_S5 = 0.0, 0.0, 0.05, 0.05, 0.05,
STCT_S6 = 0.0, 0.0, 0.05, 0.05, 0.05,
STCT_S3 = 0.0, 0.0, 0.4, 0.4, 0.0,
STCT_S4 = 0.0, 0.0, 0.3, 0.3, 0.0,
STCT_S5 = 0.0, 0.0, 0.05, 0.05, 0.0,
STCT_S6 = 0.0, 0.0, 0.05, 0.05, 0.0,
STCT_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
STCT_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

RTCT_S1 = 0.0, 0.0, 0.0, 0.0, 0.0, ! carbohydrate translocation
RTCT_S2 = 0.0, 0.0, 0.0, 0.0, 0.0,
RTCT_S3 = 0.0, 0.0, 0.4, 0.4, 0.4,
RTCT_S4 = 0.0, 0.0, 0.3, 0.3, 0.3,
RTCT_S5 = 0.0, 0.0, 0.05, 0.05, 0.05,
RTCT_S6 = 0.0, 0.0, 0.05, 0.05, 0.05,
RTCT_S3 = 0.0, 0.0, 0.4, 0.4, 0.0,
RTCT_S4 = 0.0, 0.0, 0.3, 0.3, 0.0,
RTCT_S5 = 0.0, 0.0, 0.05, 0.05, 0.0,
RTCT_S6 = 0.0, 0.0, 0.05, 0.05, 0.0,
RTCT_S7 = 0.0, 0.0, 0.0, 0.0, 0.0,
RTCT_S8 = 0.0, 0.0, 0.0, 0.0, 0.0,

BIO2LAI = 0.015, 0.030, 0.015, 0.015, 0.015, ! leaf are per living leaf biomass [m^2/kg]
BIO2LAI = 0.015, 0.030, 0.015, 0.015, 0.025, ! leaf are per living leaf biomass [m^2/kg]

/

Expand Down
Loading

0 comments on commit 0c3a9a7

Please sign in to comment.