00001 subroutine calc_enthalpy_xyzaxis_qeos
00002 use grid_parameter, only : nrf, ntf, npf, ntfeq, ntfpolp, npfxzp, npfyzp
00003 use def_matter, only : rhof
00004 use def_quantities, only : dhdr_x, dhdr_y, dhdr_z, chi_cusp
00005 use make_array_3d
00006 use interface_flgrad_2nd_gridpoint
00007 implicit none
00008 real(8), pointer :: hh(:,:,:)
00009 real(8) :: hhtmp, pre_c, rho_c, epsi_c, dummy
00010 real(8) :: dfdx, dfdy, dfdz, dlnh_x, dlnh_z
00011 integer :: irf, itf, ipf
00012
00013 call alloc_array3d(hh, 0, nrf, 0, ntf, 0, npf)
00014
00015 do ipf = 0, npf
00016 do itf = 0, ntf
00017 do irf = 0, nrf
00018 rho_c = rhof(irf,itf,ipf)
00019 call quark_rho2phenedpdrho(rho_c, pre_c, hhtmp, epsi_c, dummy)
00020 hh(irf,itf,ipf) = hhtmp
00021 end do
00022 end do
00023 end do
00024
00025 call flgrad_2nd_gridpoint(hh,dfdx,dfdy,dfdz,nrf,ntfeq,npfxzp)
00026 dhdr_x = dfdx
00027 call flgrad_2nd_gridpoint(hh,dfdx,dfdy,dfdz,nrf,ntfeq,npfyzp)
00028 dhdr_y = dfdy
00029 call flgrad_2nd_gridpoint(hh,dfdx,dfdy,dfdz,nrf,ntfpolp,0)
00030 dhdr_z = dfdz
00031
00032 dlnh_x = dhdr_x/hh(nrf,ntfeq,npfxzp)
00033 dlnh_z = dhdr_z/hh(nrf,ntfpolp,0)
00034 chi_cusp = dlnh_x/dlnh_z
00035
00036 deallocate(hh)
00037
00038 end subroutine calc_enthalpy_xyzaxis_qeos