00001 subroutine hydrostatic_eq_peos_lecc(emd)
00002 use phys_constant, only : long
00003 use grid_parameter
00004 use def_matter, only : utf, omef, jomef, jomef_int
00005 use def_matter_parameter, only : ome, ber, velx
00006 use def_metric_on_SFC_CF, only : alphf, psif, bvxdf, bvydf, bvzdf
00007 use coordinate_grav_r, only : rg
00008 use def_vector_phi, only : vec_phif
00009 use make_array_3d
00010 use interface_interpo_gr2fl
00011 implicit none
00012 real(long), pointer :: emd(:,:,:)
00013 real(long) :: vphif(3)
00014 real(long) :: ovufc(3), ovufc2
00015 real(long) :: omefc, jomef_intfc
00016 real(long) :: hh, ut, pre, rho, ene, qq
00017 integer :: irf, itf, ipf
00018
00019 do ipf = 0, npf
00020 do itf = 0, ntf
00021 do irf = 0, nrf
00022 vphif(1) = vec_phif(irf,itf,ipf,1)
00023 vphif(2) = vec_phif(irf,itf,ipf,2)
00024 vphif(3) = vec_phif(irf,itf,ipf,3)
00025 omefc = omef(irf,itf,ipf)
00026 ovufc(1) = bvxdf(irf,itf,ipf) + omefc*vphif(1) + velx
00027 ovufc(2) = bvydf(irf,itf,ipf) + omefc*vphif(2)
00028 ovufc(3) = bvzdf(irf,itf,ipf) + omefc*vphif(3)
00029 ovufc2 = ovufc(1)**2 + ovufc(2)**2 + ovufc(3)**2
00030 ut = 1.0d0/sqrt(alphf(irf,itf,ipf)**2 &
00031 & - psif(irf,itf,ipf)**4*ovufc2)
00032 jomef_intfc = jomef_int(irf,itf,ipf)
00033 hh = ber*ut*dexp(-jomef_intfc)
00034 call peos_h2qprho(hh, qq, pre, rho, ene)
00035 emd(irf,itf,ipf) = qq
00036 utf(irf,itf,ipf) = ut
00037 end do
00038 end do
00039 end do
00040
00041 end subroutine hydrostatic_eq_peos_lecc