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