Path: blob/devel/elmerice/examples/Inverse_Methods/src/MacAyeal_USFs.F90
3206 views
MODULE MacAyealContants1USE DefUtils2REAL(kind=dp),PARAMETER :: Lx=200.0d033REAL(kind=dp),PARAMETER :: Ly=50.0d034REAL(kind=dp),PARAMETER :: yearinsec = 31557600.0_dp !365.25*24*60*605REAL(kind=dp),PARAMETER :: MPa=1.0d066END MODULE MacAyealContants78FUNCTION Zs(Model,nodenumber,tx) RESULT(VarOut)9USE MacAyealContants10implicit none11!-----------------12TYPE(Model_t) :: Model13INTEGER :: nodenumber14REAL(kind=dp) :: tx(2) !x,y15REAL(kind=dp) :: VarOut1617VarOut=500.0-1.0e-03*tx(1)+20.0*(sin(3.0*pi*tx(1)/Lx)*sin(2.0*pi*tx(2)/Ly))1819END FUNCTION Zs2021FUNCTION H(Model,nodenumber,tx) RESULT(VarOut)22USE MacAyealContants23implicit none24!-----------------25TYPE(Model_t) :: Model26INTEGER :: nodenumber27REAL(kind=dp) :: tx(2) !x,y28REAL(kind=dp) :: VarOut2930VarOut=1500.0-2.0e-3*tx(1)31END FUNCTION H3233FUNCTION Zb(Model,nodenumber,tx) RESULT(VarOut)34USE MacAyealContants35implicit none36!-----------------37TYPE(Model_t) :: Model38INTEGER :: nodenumber39REAL(kind=dp) :: tx(2) !x,y40REAL(kind=dp) :: VarOut41REAL (KIND=dp) :: Zs,H4243VarOut=Zs(Model,nodenumber,tx)-H(Model,nodenumber,tx)4445END FUNCTION Zb4647FUNCTION betaSquare(Model,nodenumber,tx) RESULT(VarOut)48USE MacAyealContants49implicit none50!-----------------51TYPE(Model_t) :: Model52INTEGER :: nodenumber53REAL(kind=dp) :: tx(2) !x,y54REAL(kind=dp) :: VarOut5556REAL(kind=dp) :: F1,F2,beta5758F1=sin(3.0*pi*tx(1)/Lx)*sin(pi*tx(2)/Ly)59F2=sin(pi*tx(1)/(2.0*Lx))*cos(4.0*pi*tx(2)/Ly)60beta=5.0e3*F1+5.0e03*F261VarOut=beta*beta/(MPa*yearinsec)6263END FUNCTION betaSquare6465FUNCTION beta(Model,nodenumber,tx) RESULT(VarOut)66USE MacAyealContants67implicit none68!-----------------69TYPE(Model_t) :: Model70INTEGER :: nodenumber71REAL(kind=dp) :: tx(2) !x,y72REAL(kind=dp) :: VarOut73REAL(kind=dp) :: betaSquare7475VarOut=sqrt(betaSquare(Model,nodenumber,tx))7677END FUNCTION beta7879FUNCTION INFLOW(Model,nodenumber,tx) RESULT(VarOut)80USE MacAyealContants81implicit none82!-----------------83TYPE(Model_t) :: Model84INTEGER :: nodenumber85REAL(kind=dp) :: tx !y86REAL(kind=dp) :: VarOut8788VarOut=4.753e-6*yearinsec*(sin(2.0*pi*(Ly-tx)/Ly)+2.5*sin(pi*(Ly-tx)/Ly))89END FUNCTION INFLOW90FUNCTION OUTFLOW(Model,nodenumber,tx) RESULT(VarOut)91USE MacAyealContants92implicit none93!-----------------94TYPE(Model_t) :: Model95INTEGER :: nodenumber96REAL(kind=dp) :: tx !y97REAL(kind=dp) :: VarOut9899VarOut=1.584e-5*yearinsec*(sin(2.0*pi*(Ly-tx)/Ly)+2.5*sin(pi*(Ly-tx)/Ly)+0.5*sin(3.0*pi*(Ly-tx)/Ly))100END FUNCTION OUTFLOW101102FUNCTION Density(Model,nodenumber,tx) RESULT(VarOut)103USE MacAyealContants104implicit none105!-----------------106TYPE(Model_t) :: Model107INTEGER :: nodenumber108REAL(kind=dp) :: tx !dumy109REAL(kind=dp) :: VarOut110111VarOut=917.0/(MPa*yearinsec**2)112113END FUNCTION Density114FUNCTION Gravity(Model,nodenumber,tx) RESULT(VarOut)115USE MacAyealContants116implicit none117!-----------------118TYPE(Model_t) :: Model119INTEGER :: nodenumber120REAL(kind=dp) :: tx !dumy121REAL(kind=dp) :: VarOut122123VarOut=-9.81*yearinsec**2124125END FUNCTION Gravity126127FUNCTION Viscosity(Model,nodenumber,tx) RESULT(VarOut)128USE MacAyealContants129implicit none130!-----------------131TYPE(Model_t) :: Model132INTEGER :: nodenumber133REAL(kind=dp) :: tx !dumy134REAL(kind=dp) :: VarOut135136VarOut=1.8e8*1.0e-6*(2.0*yearinsec)**(-1.0/3.0)137138END FUNCTION Viscosity139140141