diff --git a/InputModule/COMIBS.blk b/InputModule/COMIBS.blk index 178945ea0..c2aaec46a 100644 --- a/InputModule/COMIBS.blk +++ b/InputModule/COMIBS.blk @@ -39,6 +39,7 @@ REAL ICWD,ICRES,ICREN,ICREP,ICRIP,ICRID REAL HPC(3),HBPC(3) REAL CHAMT(NAPPL),CHDEP(NAPPL),TDEP(NAPPL) + REAL PMALB !Albedo of plastic bed cover COMMON /IBS01/ PLME,PLDS,DFDRN,FLST, & FLDNAM,ISIMI,TITSIM,IOFF,IAME, @@ -66,4 +67,4 @@ & CHAMT,CHDEP,TDEP,SPRLAP COMMON /IBS04/ TOTNAP,RESAMT,TOTAPW,WTHADJ,SLDP, - & ICWD,ICRES,ICREN,ICREP,ICRIP,ICRID + & ICWD,ICRES,ICREN,ICREP,ICRIP,ICRID,PMALB diff --git a/InputModule/OPTEMPXY2K.for b/InputModule/OPTEMPXY2K.for index f1dfdc60b..986c12fb5 100644 --- a/InputModule/OPTEMPXY2K.for +++ b/InputModule/OPTEMPXY2K.for @@ -42,7 +42,7 @@ C======================================================================= & FILEIO,FROP,ECONO,ATLINE, & LNSIM,LNCU,LNHAR,LNENV,LNTIL,LNCHE, & LNFLD,LNSA,LNIC,LNPLT,LNIR,LNFER,LNRES, - & NFORC,PLTFOR,PMTYPE,NDOF,CHEXTR, MODEL, PATHEX) + & NFORC,PLTFOR,PMTYPE,NDOF,CHEXTR, MODEL, PATHEX, PMWD) USE ModuleDefs IMPLICIT NONE @@ -69,7 +69,7 @@ C======================================================================= INTEGER LN REAL SWINIT(NL),WRESR,WRESND,EFINOC,EFNFIX,INO3(NL),INH4(NL) - REAL PLTFOR + REAL PLTFOR, PMWD INTEGER LNSIMTMP,TVILENT PARAMETER (LUNIO = 21) @@ -385,11 +385,11 @@ C C----------------------------------------------------------------------- WRITE (LUNIO,'(/,"*FIELDS")') WRITE(LUNIO,'("@L ID_FIELD WSTA.... FLSA FLOB FLDT FLDD", - & 2X,"FLDS FLST SLTX SLDP ID_SOIL")') + & 2X,"FLDS FLST SLTX SLDP ID_SOIL PMWD PMALB")') WRITE(LUNIO,57,IOSTAT=ERRNUM) LNFLD,FLDNAM,FILEW(1:8),SLOPE, - & FLOB, DFDRN,FLDD,SFDRN,FLST,SLTX,SLDP,SLNO + & FLOB, DFDRN,FLDD,SFDRN,FLST,SLTX,SLDP,SLNO,PMWD,PMALB 57 FORMAT(I3,1X,A8,1X,A8,1X,F5.1,1X,F5.0,1X,A5,2(1X,F5.0), - & 2(1X,A5),1X,F5.0,1X,A10) + & 2(1X,A5),1X,F5.0,1X,A10,1X,F5.1,F6.2) WRITE(LUNIO,'("@L XCRD YCRD ", & "ELEV AREA SLEN FLWR SLAS PRMGT")') diff --git a/InputModule/input_sub.for b/InputModule/input_sub.for index c0240d794..87037733e 100644 --- a/InputModule/input_sub.for +++ b/InputModule/input_sub.for @@ -125,7 +125,7 @@ C-SUN INTEGER LNBLNK REAL INO3(NL),INH4(NL),EFINOC,EFNFIX REAL AINO3,AINH4,TNMIN,ANO3,ANH4,TSWINI REAL ESW(NL),SW(NL),TLL,TSW,TDUL,TSAT,TPESW,CUMDEP,PESW - REAL PLTFOR + REAL PLTFOR, PMBD TYPE (ControlType) CONTROL TYPE (SwitchType) ISWITCH @@ -184,7 +184,7 @@ C----------------------------------------------------------------------- & IIRV,FTYPEN,CHEXTR,NFORC,PLTFOR,NDOF,PMTYPE, & LNSIM,LNCU,LNHAR,LNENV,LNTIL,LNCHE, & LNFLD,LNSA,LNIC,LNPLT,LNIR,LNFER,LNRES, - & CONTROL, ISWITCH, UseSimCtr, MODELARG) + & CONTROL, ISWITCH, UseSimCtr, MODELARG, PMBD) C----------------------------------------------------------------------- C Call IPSOIL @@ -320,14 +320,14 @@ C----------------------------------------------------------------------- & YRIC,PRCROP,WRESR,WRESND,EFINOC,EFNFIX, & SWINIT,INH4,INO3,NYRS,VARNO,VRNAME,CROP,MODEL, & RUN,FILEIO,EXPN,ECONO,FROP,TRTALL,TRTN, - & CHEXTR,NFORC,PLTFOR,NDOF,PMTYPE,ISENS) + & CHEXTR,NFORC,PLTFOR,NDOF,PMTYPE,ISENS,PMBD) CALL OPTEMPXY2K (YRIC,PRCROP,WRESR,WRESND,EFINOC,EFNFIX, & SWINIT,INH4,INO3,NYRS,VARNO,VRNAME,CROP, & FILEIO,FROP,ECONO,ATLINE, & LNSIM,LNCU,LNHAR,LNENV,LNTIL,LNCHE, & LNFLD,LNSA,LNIC,LNPLT,LNIR,LNFER,LNRES, - & NFORC,PLTFOR,PMTYPE,NDOF,CHEXTR, MODEL, PATHEX) + & NFORC,PLTFOR,PMTYPE,NDOF,CHEXTR, MODEL, PATHEX,PMBD) C----------------------------------------------------------------------- C Write DSSAT Format Version 4 Output files diff --git a/InputModule/ipexp.for b/InputModule/ipexp.for index 970eff897..06274e5f1 100644 --- a/InputModule/ipexp.for +++ b/InputModule/ipexp.for @@ -64,7 +64,7 @@ C======================================================================= & NFORC,PLTFOR,NDOF,PMTYPE, & LNSIM,LNCU,LNHAR,LNENV,LNTIL,LNCHE, & LNFLD,LNSA,LNIC,LNPLT,LNIR,LNFER,LNRES, - & CONTROL, ISWITCH, UseSimCtr, MODELARG) + & CONTROL, ISWITCH, UseSimCtr, MODELARG,PMWD) USE ModuleDefs USE ModuleData @@ -101,6 +101,7 @@ C======================================================================= INTEGER TRTNUM, ROTNUM!,FREQ(3),CUHT(3) !NEW FORAGE VARIABLES (DIEGO-2/14/2017) REAL FLAG,EXP,TRT,PLTFOR,FREQ,CUHT !NEW FORAGE VARIABLES (DIEGO-2/14/2017) + REAL PMWD LOGICAL FEXIST, UseSimCtr, SimLevel @@ -567,8 +568,8 @@ C----------------------------------------------------------------------- IF (INDEX('FQ',RNMODE) .LE. 0 .OR. RUN == 1) THEN CALL IPFLD (LUNEXP,FILEX,LNFLD,FLDNAM,WSTA,WSTA1,SLNO, - & SLTX,FLST,SLOPE,DFDRN,FLDD,SFDRN,FLOB,SLDP, - & XCRD,YCRD,ELEV,AREA,SLEN,FLWR,SLAS,FldHist, FHDur) + & SLTX,FLST,SLOPE,DFDRN,FLDD,SFDRN,FLOB,SLDP,PMWD, + & XCRD,YCRD,ELEV,AREA,SLEN,FLWR,SLAS,FldHist, FHDur,PMALB) C----------------------------------------------------------------------- C Select soil profile input file @@ -1087,8 +1088,8 @@ C HDLAY : C======================================================================= SUBROUTINE IPFLD (LUNEXP,FILEX,LNFLD,FLDNAM,WSTA,WSTA1,SLNO, - & SLTX,FLST,SLOPE,DFDRN,FLDD,SFDRN,FLOB,SLDP, - & XCRD,YCRD,ELEV,AREA,SLEN,FLWR,SLAS,FldHist, FHDUR) + & SLTX,FLST,SLOPE,DFDRN,FLDD,SFDRN,FLOB,SLDP,PMWD, + & XCRD,YCRD,ELEV,AREA,SLEN,FLWR,SLAS,FldHist, FHDUR,PMALB) USE ModuleData IMPLICIT NONE @@ -1101,12 +1102,13 @@ C======================================================================= CHARACTER*9 CELEV CHARACTER*10 SLNO CHARACTER*12 FILEX + CHARACTER*78 MSG(2) CHARACTER*15 CXCRD, CYCRD CHARACTER*92 CHARTEST INTEGER LUNEXP,LNFLD,LN,LINEXP,ISECT,IFIND,ERRNUM,I, FHDUR - REAL FLDD,SFDRN,FLOB,SLDP,SLOPE + REAL FLDD,SFDRN,FLOB,SLDP,SLOPE,PMWD,PMALB REAL XCRD,YCRD,ELEV,AREA,SLEN,FLWR,SLAS ! Arrays which contain data for printing in SUMMARY.OUT file @@ -1150,7 +1152,8 @@ C======================================================================= IF (SFDRN .LE. 0.0) THEN SFDRN = 100. ENDIF - + Write(msg(1),'("Plastic mulch cover albedo =",F7.2)') PMALB + call info(1,errkey,msg) C C New section C @@ -1211,6 +1214,30 @@ C Send labels and values to OPSUM C C End New section +C +C New section (3rd) +C +C Find header and read second line of field information +C + HFNDCH='PMALB' + CALL HFIND(LUNEXP,HFNDCH,LINEXP,IFIND) + IF (IFIND .EQ. 1) THEN + 71 CALL IGNORE (LUNEXP,LINEXP,ISECT,CHARTEST) + IF (ISECT .EQ. 1) THEN + READ (CHARTEST,90,IOSTAT=ERRNUM) LN, + & PMWD,PMALB + IF (ERRNUM .NE. 0) CALL ERROR (ERRKEY,ERRNUM,FILEX,LINEXP) + ELSE + CALL ERROR (ERRKEY,2,FILEX,LINEXP) + ENDIF + IF (LN .NE. LNFLD) GO TO 71 + ENDIF + IF (PMWD .LE. 0.0) PMWD = -99 + IF (PMALB .LE. 0.0) PMALB = -99 + +C +C End New section (3rd) + REWIND(LUNEXP) RETURN @@ -1224,6 +1251,7 @@ C----------------------------------------------------------------------- ! chp 7/26/2006 ! 80 FORMAT (I3,2(F15.0,1X),F9.0,1X,F17.0,3(1X,F5.0)) 80 FORMAT (I3,2(A15,1X),A9,1X,F17.0,3(1X,F5.0),1X,A5,I6) + 90 FORMAT (I3, F6.0, F6.2) END SUBROUTINE IPFLD diff --git a/InputModule/optempy2k.for b/InputModule/optempy2k.for index 029f2d92c..9833a4149 100644 --- a/InputModule/optempy2k.for +++ b/InputModule/optempy2k.for @@ -59,7 +59,7 @@ C======================================================================= SUBROUTINE OPTEMPY2K (RNMODE, FILEX,PATHEX, & YRIC,PRCROP,WRESR,WRESND,EFINOC,EFNFIX,SWINIT,INH4,INO3, & NYRS,VARNO,VRNAME,CROP,MODEL,RUN,FILEIO,EXPN,ECONO,FROP,TRTALL, - & TRTN,CHEXTR,NFORC,PLTFOR,NDOF,PMTYPE,ISENS) + & TRTN,CHEXTR,NFORC,PLTFOR,NDOF,PMTYPE,ISENS,PMWD) USE ModuleDefs IMPLICIT NONE @@ -84,7 +84,7 @@ C======================================================================= INTEGER NYRS,RUN,I,EXPN,LUNIO,LINIO,ERRNUM,FROP,YRIC,TRTALL INTEGER TRTN,NFORC,NDOF,PMTYPE,ISENS - REAL PLTFOR + REAL PLTFOR, PMWD REAL SWINIT(NL),WRESR,WRESND,EFINOC,EFNFIX,INO3(NL),INH4(NL) PARAMETER (LUNIO = 21) @@ -285,7 +285,7 @@ C----------------------------------------------------------------------- WRITE (LUNIO,40)'*FIELDS ' LINIO = LINIO + 1 WRITE (LUNIO,59,IOSTAT=ERRNUM) FLDNAM,FILEW(1:8),SLOPE,FLOB,DFDRN, - & FLDD,SFDRN,FLST,SLTX,SLDP,SLNO + & FLDD,SFDRN,FLST,SLTX,SLDP,SLNO,PMWD,PMALB IF (ERRNUM .NE. 0) CALL ERROR (ERRKEY,ERRNUM,FILEIO,LINIO) WRITE (LUNIO,60,IOSTAT=ERRNUM) XCRD,YCRD,ELEV,AREA,SLEN,FLWR,SLAS & , FldHist, FHDur @@ -752,7 +752,7 @@ C----------------------------------------------------------------------- 56 FORMAT (3X,A2,1X,A6,1X,A16) !chp 59 FORMAT (3X,A8,1X,A8,1X,F5.1,1X,F5.0,1X,A5,2(1X,F5.0), 59 FORMAT (3X,A8,1X,A8,1X,F5.1,1X,F5.0,1X,A5,1X,F5.0,1X,F5.1, - & 2(1X,A5),1X,F5.0,1X,A10) + & 2(1X,A5),1X,F5.0,1X,A10,1X,F5.1,F6.2) !chp 60 FORMAT (3X,2(F15.5,1X),F9.2,1X,F17.1,1X,F5.0,2(1X,F5.1)) 60 FORMAT (3X,2(F15.10,1X),F9.3,1X,F17.1,1X,F5.0,2(1X,F5.1),1X,A5,I6) C 61 FORMAT (3X,A2,4X,I5,2(1X,F5.0),2(1X,F5.2),1X,F5.1,1X,F5.0, diff --git a/SPAM/ESR_SoilEvap.for b/SPAM/ESR_SoilEvap.for index c45e464ac..bf32f1a95 100644 --- a/SPAM/ESR_SoilEvap.for +++ b/SPAM/ESR_SoilEvap.for @@ -59,6 +59,8 @@ REAL A, B, RedFac, SW_threshold REAL, DIMENSION(NL) :: DLAYR, DS, DUL, LL, MEANDEP REAL, DIMENSION(NL) :: SWAD, SWTEMP, SW_AVAIL, ES_Coef + LOGICAL PMcover + REAL PMFRACTION !----------------------------------------------------------------------- ! ProfileType: @@ -73,9 +75,11 @@ DUL = SOILPROP % DUL LL = SOILPROP % LL NLAYR = SOILPROP % NLAYR + PMcover = SOILPROP % PMcover + PMFRACTION = SOILPROP % PMFRACTION ES = 0.0 - + !********************************************************************** ! NEW 4/18/2008 ProfileType = 3 !assume dry profile until proven wet @@ -150,6 +154,9 @@ ! Limit to negative values (decrease SW) SWDELTU(L) = AMIN1(0.0, SWDELTU(L)) + +! Apply the fraction of plastic mulch coverage + SWDELTU(L) = SWDELTU(L) * (1 - PMFRACTION) ! Aggregate soil evaporation from each layer ES_LYR(L) = -SWDELTU(L) * DLAYR(L) * 10. !mm @@ -170,6 +177,18 @@ DO L = NLAYR-1, 1, -1 UPFLOW(L) = UPFLOW(L+1) + ES_LYR(L) / 10. !cm/d ENDDO + + IF (PMCover) THEN + ES = ES * (1 - PMFRACTION) + ES_LYR = ES_LYR * (1 - PMFRACTION) + SWDELTU = SWDELTU * (1 - PMFRACTION) + UPFLOW = UPFLOW * (1 - PMFRACTION) +! DO L = 1, NLAYR +! ES_LYR(L) = ES_LYR(L) * (1 - PMFRACTION) +! SWDELTU(L) = SWDELTU(L) * (1 - PMFRACTION) +! UPFLOW(L) = UPFLOW(L) * (1 - PMFRACTION) +! ENDDO + ENDIF !----------------------------------------------------------------------- RETURN diff --git a/SPAM/SOILEV.for b/SPAM/SOILEV.for index 985b966b3..4ce3a6a33 100644 --- a/SPAM/SOILEV.for +++ b/SPAM/SOILEV.for @@ -28,7 +28,8 @@ C 03/30/2000 CHP Keep original value of WINF for export to soil N module ! Calls: ESUP C======================================================================= SUBROUTINE SOILEV(DYNAMIC, - & DLAYR, DUL, EOS, LL, SW, SW_AVAIL, U, WINF, !Input + & DLAYR, DUL, EOS, LL, SW, !Input + & SW_AVAIL,U, WINF, SOILPROP, !Input & ES) !Output !----------------------------------------------------------------------- @@ -48,6 +49,9 @@ C======================================================================= REAL ES, T REAL AWEV1, ESX, SWR, USOIL REAL DLAYR(NL), DUL(NL), LL(NL), SW(NL) + TYPE (SoilType), INTENT(IN) :: SOILPROP !Soil properties + LOGICAL PMcover + REAL PMFRACTION !*********************************************************************** !*********************************************************************** @@ -75,6 +79,9 @@ C----------------------------------------------------------------------- T= (SUMES2/3.5)**2 ENDIF + PMcover = SOILPROP % PMcover + PMFRACTION = SOILPROP % PMFRACTION + !----------------------------------------------------------------------- ! Set air dry water content for top soil layer SWEF = 0.9-0.00038*(DLAYR(1)-30.)**2 @@ -162,6 +169,12 @@ C----------------------------------------------------------------------- ES = SWMIN * DLAYR(1) * 10. ENDIF ES = MAX(ES, 0.0) + + +! Apply the fraction of plastic mulch coverage + IF (PMCover) THEN + ES = ES * (1 - PMFRACTION) + ENDIF !*********************************************************************** !*********************************************************************** diff --git a/SPAM/SPAM.for b/SPAM/SPAM.for index 4425f2530..0d25cbe4a 100644 --- a/SPAM/SPAM.for +++ b/SPAM/SPAM.for @@ -190,7 +190,7 @@ C======================================================================= CASE ('R') !Original soil evaporation routine CALL SOILEV(SEASINIT, & DLAYR, DUL, EOS, LL, SW, SW_AVAIL(1), !Input - & U, WINF, !Input + & U, WINF,SOILPROP, !Input & ES) !Output ! ---------------------------- ! CASE ('S') !SALUS soil evaporation routine @@ -359,7 +359,7 @@ C and total potential water uptake rate. ENDDO CALL SOILEV(RATE, & DLAYR, DUL, EOS_SOIL, LL, SW, !Input - & SW_AVAIL(1), U, WINF, !Input + & SW_AVAIL(1), U, WINF, SOILPROP, !Input & ES) !Output ! ------------------------ diff --git a/Soil/SoilUtilities/SOILDYN.for b/Soil/SoilUtilities/SOILDYN.for index bad972c5e..863e743ed 100644 --- a/Soil/SoilUtilities/SOILDYN.for +++ b/Soil/SoilUtilities/SOILDYN.for @@ -970,6 +970,8 @@ C Initialize curve number (according to J.T. Ritchie) 1-JUL-97 BDB SOILPROP % COARSE = COARSE + CALL SETPM(SOILPROP) + CALL PUT(SOILPROP) IF (ISWWAT == 'N') RETURN @@ -2168,3 +2170,102 @@ c** wdb orig SUMKEL = SUMKE * EXP(-0.15*MCUMDEP) RETURN END SUBROUTINE SoilLayerText C======================================================================= + +!============================================================================== +! Subroutine SETPM +! Initialization for cell structure and initial conditions + SUBROUTINE SETPM(SOILPROP) !input/output +! --------------------------------------------------------- + USE ModuleData + Implicit NONE + + Type (SoilType) SOILPROP + + CHARACTER*6 SECTION + CHARACTER*8, PARAMETER :: ERRKEY = 'SETPM' + CHARACTER*125 MSG(50) + CHARACTER*180 CHAR + INTEGER ERR, FOUND, LNUM, LUNIO + REAL PMWD, ROWSPC_CM + REAL PMALB, PMFRACTION, MSALB + LOGICAL PMCover + + TYPE (ControlType) CONTROL + CALL GET(CONTROL) + +! --------------------------------------------------------- +! Get bed dimensions and row spacing + CALL GETLUN('FILEIO', LUNIO) + OPEN (LUNIO, FILE = CONTROL%FILEIO,STATUS = 'OLD',IOSTAT=ERR) + IF (ERR .NE. 0) CALL ERROR(ERRKEY,ERR,CONTROL%FILEIO,0) + LNUM = 0 + +!----------------------------------------------------------------------- + PMALB = -99. + +! Read plastic mulch albedo from FIELDS section + SECTION = '*FIELD' + CALL FIND(LUNIO, SECTION, LNUM, FOUND) + IF (FOUND /= 0) THEN + READ(LUNIO,'(79X,1x,F5.1, F6.2)',IOSTAT=ERR)PMWD, PMALB + IF (ERR .NE. 0) CALL ERROR(ERRKEY,ERR,CONTROL%FILEIO,LNUM) + IF ((ERR == 0) .AND. (PMALB .eq. 0.)) THEN + PMALB = -99. + ENDIF + ENDIF + +! Read Planting Details Section + SECTION = '*PLANT' + CALL FIND(LUNIO, SECTION, LNUM, FOUND) + IF (FOUND == 0) CALL ERROR(SECTION, 42, CONTROL%FILEIO, LNUM) + READ(LUNIO,'(42X,F6.0,42X,2F6.0)',IOSTAT=ERR) ROWSPC_CM !, BEDWD, BEDHT + LNUM = LNUM + 1 + IF (ERR .NE. 0) CALL ERROR(ERRKEY,ERR,CONTROL%FILEIO,LNUM) + + CLOSE(LUNIO) + + IF (PMALB .GT. 0) THEN + IF (PMWD .GT. 0 .AND. PMWD .GE. ROWSPC_CM) THEN + PMWD = ROWSPC_CM + PMCover = .TRUE. + MSG(1)= "Flat surface with full plastic mulch covered." + call warning(2,errkey,msg) + ELSEIF (PMWD .GT. 0 .AND. PMWD .GT. 0) THEN + PMCover = .TRUE. + MSG(1)= "Flat surface with partial plastic mulch covered." + call warning(2,errkey,msg) + ELSE + PMWD = ROWSPC_CM + PMCover = .TRUE. + MSG(1)= "Missing PMWD, set PMWD = ROWSPC_CM" + MSG(2)= "Flat surface with full plastic mulch covered by default." + call warning(2,errkey,msg) + ENDIF + ELSE + IF (PMWD .GT. 0) THEN + PMCover = .FALSE. + MSG(1)= "Missing PMALB, disabled plastic mulch" + MSG(2)= "Flat surface with no plastic mulch covered." + call warning(2,errkey,msg) + ELSE + PMCover = .FALSE. + MSG(1)= "Flat surface with no plastic mulch covered." + call warning(2,errkey,msg) + ENDIF + ENDIF + + SOILPROP % PMCover = PMCover + SOILPROP % PMFRACTION = 0 + IF (PMCover) THEN + if (PMWD .GE. ROWSPC_CM) THEN + SOILPROP % SALB = PMALB + ENDIF + PMFRACTION = PMWD / ROWSPC_CM + MSALB = PMALB * PMFRACTION + SOILPROP % SALB * (1. - PMFRACTION) + SOILPROP % PMFRACTION = PMFRACTION + SOILPROP % MSALB = MSALB + SOILPROP % CMSALB = MSALB + ENDIF + + RETURN + END SUBROUTINE SETPM \ No newline at end of file diff --git a/Soil/SoilWater/RNOFF.for b/Soil/SoilWater/RNOFF.for index 65a503bba..454cc523c 100644 --- a/Soil/SoilWater/RNOFF.for +++ b/Soil/SoilWater/RNOFF.for @@ -19,7 +19,7 @@ C 09/01/1999 GH Incorporated into CROPGRO ! Calls: None C======================================================================= SUBROUTINE RNOFF( - & CN, LL, MEINF, MULCH, SAT, SW, WATAVL, !Input + & CN, LL, MEINF, MULCH, SAT, SW, WATAVL,SOILPROP, !Input & RUNOFF) !Output C----------------------------------------------------------------------- @@ -27,6 +27,7 @@ C----------------------------------------------------------------------- IMPLICIT NONE SAVE + TYPE (SoilType), INTENT(IN) :: SOILPROP !Soil properties CHARACTER*1 MEINF CHARACTER*6 ERRKEY PARAMETER (ERRKEY = 'RNOFF') @@ -92,9 +93,9 @@ C----------------------------------------------------------------------- ! No mulch effects on runoff IABS = SWABI ENDIF - + PB = WATAVL - IABS * SMX - + IF (WATAVL .GT. 0.001) THEN IF (PB .GT. 0) THEN RUNOFF = PB**2/(WATAVL + (1.0-IABS) * SMX) @@ -104,6 +105,10 @@ C----------------------------------------------------------------------- ELSE RUNOFF = 0.0 ENDIF + + IF (SOILPROP % PMcover) THEN + RUNOFF = WATAVL * SOILPROP % PMFRACTION + RUNOFF * (1 - SOILPROP % PMFRACTION) + ENDIF !! Temporary ! CUMRO = CUMRO + RUNOFF diff --git a/Soil/SoilWater/WATBAL.for b/Soil/SoilWater/WATBAL.for index aeda522a0..fb77a9712 100644 --- a/Soil/SoilWater/WATBAL.for +++ b/Soil/SoilWater/WATBAL.for @@ -322,8 +322,8 @@ C Conflict with CERES-Wheat ENDIF CALL RNOFF( - & CN, LL, MEINF, MULCH, SAT, SW, WATAVL, !Input - & RUNOFF) !Output + & CN, LL, MEINF, MULCH, SAT, SW, WATAVL, SOILPROP, !Input + & RUNOFF) !Output WINF = WATAVL - RUNOFF + IRRAMT !(mm) ENDIF diff --git a/Utilities/ModuleDefs.for b/Utilities/ModuleDefs.for index 54fa781a9..008562e17 100644 --- a/Utilities/ModuleDefs.for +++ b/Utilities/ModuleDefs.for @@ -206,6 +206,10 @@ C CHP Added TRTNUM to CONTROL variable. ! REAL, DIMENSION(NL) :: EXTAL, EXTFE, EXTMN, ! REAL, DIMENSION(NL) :: EXMG, EXTS, SLEC + ! Flag for plastic mulch + LOGICAL PMCover + REAL PMFRACTION + END TYPE SoilType !=======================================================================