00001 subroutine hydrostatic_eq_CF_peos_lecc_irrot(emd,utf,vepxf,vepyf,vepzf)
00002 use phys_constant, only : long
00003 use grid_parameter
00004 use def_matter, only : rs, omef, jomef, jomef_int, &
00005 & omeg, jomeg, jomeg_int, vep
00006 use def_velocity_potential
00007 use def_matter_parameter, only : ome, ber, ROT_LAW, velx
00008 use def_metric_on_SFC_CF
00009 use coordinate_grav_r, only : rg
00010 use def_vector_phi, only : vec_phif
00011 use make_array_3d
00012 use interface_flgrad_4th_gridpoint
00013 use interface_flgrad_2nd_gridpoint
00014 implicit none
00015 real(long), pointer :: emd(:,:,:), utf(:,:,:), vepxf(:,:,:), vepyf(:,:,:), vepzf(:,:,:)
00016 real(long) :: vphif(3)
00017 real(long) :: ovdfc(3), ovdfc2
00018 real(long) :: dxvep, dyvep, dzvep, lam, wx, wy, wz, wterm
00019 real(long) :: psifc, psifc4, alpfc, alpfc2, hut, psifcp
00020 real(long) :: dvep2, wdvep, w2, uih2
00021 real(long) :: omefc, jomef_intfc
00022 real(long) :: hh, ut, pre, rho, ene, qq
00023 integer :: irf, itf, ipf
00024
00025 do ipf = 0, npf
00026 do itf = 0, ntf
00027 do irf = 0, nrf
00028 vphif(1) = vec_phif(irf,itf,ipf,1)
00029 vphif(2) = vec_phif(irf,itf,ipf,2)
00030 vphif(3) = vec_phif(irf,itf,ipf,3)
00031 omefc = omef(irf,itf,ipf)
00032
00033 ovdfc(1) = bvxdf(irf,itf,ipf) + omefc*vphif(1) + velx
00034 ovdfc(2) = bvydf(irf,itf,ipf) + omefc*vphif(2)
00035 ovdfc(3) = bvzdf(irf,itf,ipf) + omefc*vphif(3)
00036
00037 call flgrad_2nd_gridpoint(vep,dxvep,dyvep,dzvep,irf,itf,ipf)
00038
00039 psifc = psif(irf,itf,ipf)
00040 psifc4 = psifc**4
00041 alpfc = alphf(irf,itf,ipf)
00042 alpfc2 = alpfc**2
00043 lam = ber + ovdfc(1)*dxvep + ovdfc(2)*dyvep + ovdfc(3)*dzvep
00044
00045 dvep2 = (dxvep**2 + dyvep**2 + dzvep**2)/psifc4
00046 uih2 = dvep2
00047
00048 hut = lam/alpfc2
00049
00050 if ( (hut*hut*alpfc2 - uih2)<0.0d0 ) then
00051 write(6,*) "hh imaginary....exiting"
00052 stop
00053 end if
00054 hh = sqrt(hut*hut*alpfc2 - uih2)
00055
00056
00057
00058
00059
00060
00061
00062 call peos_h2qprho(hh, qq, pre, rho, ene)
00063 emd(irf,itf,ipf) = qq
00064 end do
00065 end do
00066 end do
00067
00068 end subroutine hydrostatic_eq_CF_peos_lecc_irrot