compute actual soil retention capacity S of the SCS-CN method
given soil saturation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | cn2 |
curve number for mean soil moisture |
||
real(kind=float), | intent(in) | :: | s0 |
storativity (mm) |
||
real(kind=float), | intent(in) | :: | soilsat |
soil saturation |
||
real(kind=float), | intent(out) | :: | scn |
soil retention capacity [mm] |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public | :: | cn1 | ||||
real(kind=float), | public | :: | cn3 | ||||
real(kind=float), | public | :: | s1 | ||||
real(kind=float), | public | :: | s2 | ||||
real(kind=float), | public | :: | s3 |
SUBROUTINE Sat2scn & ! (cn2, s0, soilsat, scn) IMPLICIT NONE !arguments with intent in: REAL (KIND = float), INTENT(IN) :: cn2 !!curve number for mean soil moisture REAL (KIND = float), INTENT(IN) :: s0 !!storativity (mm) REAL (KIND = float), INTENT(IN) :: soilsat !!soil saturation !arguments with intent out: REAL (KIND = float), INTENT(OUT) :: scn !!soil retention capacity [mm] !local declarations: REAL (KIND = float) :: cn1, cn3, s1, s2, s3 !-------------------------end of declarations---------------------------------- !compute cn1 and cn3 from cn2 cn1 = cn2 - (20. * (100. - cn2) ) / & (100. - cn2 + EXP(2.533 - .0636 * (100. - cn2) ) ) IF (cn1 < 0.4 * CN2) cn1 = .4 * cn2 cn3 = cn2 * EXP( .00673 * (100. - cn2) ) !compute s1, s2, and s3 s1 = s0 * (100. / cn1 - 1.) s2 = s0 * (100. / cn2 - 1.) s3 = s0 * (100. / cn3 - 1.) !compute actual S scn = s1 - soilsat * (s1 - s3) RETURN END SUBROUTINE sat2scn