ascrv.f90 Source File


Source Code

      subroutine ascrv(x1,x2,x3,x4,x5,x6)

!!    ~ ~ ~ PURPOSE ~ ~ ~
!!    this subroutine computes shape parameters x5 and x6 for the S curve 
!!    equation x = y/(y + exp(x5 + x6*y)) given 2 (x,y) points along the curve.
!!    x5 is determined by solving the equation with x and y values measured 
!!    around the midpoint of the curve (approx. 50% of the maximum value for x)
!!    and x6 is determined by solving the equation with x and y values measured
!!    close to one of the endpoints of the curve (100% of the maximum value for
!!    x) This subroutine is called from readbsn.f and readcrop.f


      implicit none
      
      real :: xx = 0.             !none          |temp variable, used to hold calculated
                                  !              |value needed in later equations

      real, intent (in) :: x1     !none          |value for x in the above equation for first
                                  !              |datapoint, x1 should be close to 0.5 (the 
                                  !              |midpoint of the curve)
      real, intent (in) :: x2     !none          |value for x in the above equation for second
                                  !              |datapoint, x2 should be close to 0.0 or 1.0   
      real, intent (in) :: x3     !none          |value for y in the above equation corresponding to x1
      real, intent (in) :: x4     !none          |value for y in the above equation corresponding to x2
          
      real, intent (out) :: x5    !none          |1st shape parameter for S curve equation
                                  !              |characterizing the midpoint of the curve
      real, intent (out) :: x6     !none          |2nd shape parameter for S curve equation
                                  !              |characterizing the regions close to the
                                  !              |endpoints of the curve

      xx = Log(x3/x1 - x3)
      x6 = (xx - Log(x4/x2 - x4)) / (x4 - x3)
      x5 = xx + (x3 * x6)

      return
      end