00001 subroutine hydrostatic_eq_WL_peos(emd)
00002 use phys_constant, only : long
00003 use grid_parameter
00004
00005 use def_matter_parameter, only : ome, ber
00006 use def_matter, only : utf
00007 use def_metric_on_SFC_WL
00008 use coordinate_grav_r, only : rg
00009 use trigonometry_grav_theta, only : sinthg, costhg
00010 use trigonometry_grav_phi, only : sinphig, cosphig
00011 use def_vector_phi, only : vec_phif
00012 use make_array_3d
00013 use interface_interpo_gr2fl
00014 implicit none
00015 real(long), pointer :: emd(:,:,:)
00016 real(long) :: vphif(3)
00017 real(long) :: ovufc(3), ovdfc(3)
00018 real(long) :: ovocf
00019 real(long) :: hh, ut, pre, rho, ene, qq
00020 real(long) :: gmxxdf, gmxydf, gmxzdf, gmyxdf, gmyydf, gmyzdf,
00021 gmzxdf, gmzydf, gmzzdf, ovovf
00022 integer :: irf, itf, ipf
00023
00024 do ipf = 0, npf
00025 do itf = 0, ntf
00026 do irf = 0, nrf
00027 vphif(1) = vec_phif(irf,itf,ipf,1)
00028 vphif(2) = vec_phif(irf,itf,ipf,2)
00029 vphif(3) = vec_phif(irf,itf,ipf,3)
00030 gmxxdf = 1.0d0 + hxxdf(irf,itf,ipf)
00031 gmxydf = hxydf(irf,itf,ipf)
00032 gmxzdf = hxzdf(irf,itf,ipf)
00033 gmyydf = 1.0d0 + hyydf(irf,itf,ipf)
00034 gmyzdf = hyzdf(irf,itf,ipf)
00035 gmzzdf = 1.0d0 + hzzdf(irf,itf,ipf)
00036 gmyxdf = gmxydf
00037 gmzxdf = gmxzdf
00038 gmzydf = gmyzdf
00039 ovufc(1) = bvxuf(irf,itf,ipf) + ome*vphif(1)
00040 ovufc(2) = bvyuf(irf,itf,ipf) + ome*vphif(2)
00041 ovufc(3) = bvzuf(irf,itf,ipf) + ome*vphif(3)
00042 ovdfc(1) = bvxdf(irf,itf,ipf) &
00043 & + gmxxdf*ome*vphif(1) + gmxydf*ome*vphif(2) &
00044 & + gmxzdf*ome*vphif(3)
00045 ovdfc(2) = bvydf(irf,itf,ipf) &
00046 & + gmyxdf*ome*vphif(1) + gmyydf*ome*vphif(2) &
00047 & + gmyzdf*ome*vphif(3)
00048 ovdfc(3) = bvzdf(irf,itf,ipf) &
00049 & + gmzxdf*ome*vphif(1) + gmzydf*ome*vphif(2) &
00050 & + gmzzdf*ome*vphif(3)
00051 ovovf = ovdfc(1)*ovufc(1) + ovdfc(2)*ovufc(2) + ovdfc(3)*ovufc(3)
00052 ut = 1.0d0/sqrt(alphf(irf,itf,ipf)**2 &
00053 & - psif(irf,itf,ipf)**4*ovovf)
00054 hh = ber*ut
00055 call peos_h2qprho(hh, qq, pre, rho, ene)
00056 emd(irf,itf,ipf) = qq
00057 utf(irf,itf,ipf) = ut
00058 end do
00059 end do
00060 end do
00061
00062 end subroutine hydrostatic_eq_WL_peos