Program s30cafe ! S30CAF Example Program Text ! Mark 24 Release. NAG Copyright 2012. ! .. Use Statements .. Use nag_library, Only: nag_wp, s30caf ! .. Implicit None Statement .. Implicit None ! .. Parameters .. Integer, Parameter :: nin = 5, nout = 6 ! .. Local Scalars .. Real (Kind=nag_wp) :: k, q, r, s, sigma Integer :: i, ifail, j, ldp, m, n Character (1) :: calput ! .. Local Arrays .. Real (Kind=nag_wp), Allocatable :: p(:,:), t(:), x(:) ! .. Executable Statements .. Write (nout,*) 'S30CAF Example Program Results' ! Skip heading in data file Read (nin,*) Read (nin,*) calput Read (nin,*) s, k, sigma, r, q Read (nin,*) m, n ldp = m Allocate (p(ldp,n),t(n),x(m)) Read (nin,*)(x(i),i=1,m) Read (nin,*)(t(i),i=1,n) ifail = 0 Call s30caf(calput,m,n,x,s,k,t,sigma,r,q,p,ldp,ifail) Write (nout,*) Write (nout,*) 'Binary (Digital): Cash-or-Nothing' Select Case (calput) Case ('C','c') Write (nout,*) 'European Call :' Case ('P','p') Write (nout,*) 'European Put :' End Select Write (nout,99998) ' Spot = ', s Write (nout,99998) ' Payout = ', k Write (nout,99998) ' Volatility = ', sigma Write (nout,99998) ' Rate = ', r Write (nout,99998) ' Dividend = ', q Write (nout,*) Write (nout,*) ' Strike Expiry Option Price' Do i = 1, m Do j = 1, n Write (nout,99999) x(i), t(j), p(i,j) End Do End Do 99999 Format (1X,2(F9.4,1X),6X,F9.4) 99998 Format (A,1X,F8.4) End Program s30cafe