C+ C NAME: C IPSFuncQ C CALLING SEQUENCE: real function IPSFuncQ(q) C COMMON BLOCKS: common /FQIPS/ hachodz,thetadz !$omp threadprivate(/FQIPS/) C INCLUDE: include 'math.h' C MODIFICATION HISTORY: C- real q if (q .eq. 0.0) then IPSFuncQ = 0.0 else pi2 = 2.0*MATH__PI a = q*q*hachodz/(2.0*pi2) ! Effect of fresnel filtering do while (a .ge. 0.7) a = a-pi2*1000.0 !1.e+3 end do a = sin(a) fresnel = a*a a = q*thetadz ! Effect of source size a = a*a*0.5 sizeq = 0.0 if (a .lt. 10.0) sizeq = exp(-a) a = 3.0 ! JGR paper says: a=3.3 spectr = 1.0/(q**a) ! Effect of spectrum fluctuation IPSFuncQ = q*fresnel*sizeq*spectr end if return end