00001 subroutine calc_soundspeed_peos(c_s)
00002 use phys_constant, only : long
00003 use def_peos_parameter
00004 use grid_parameter, only : nrf, ntf, npf, ntfeq, ntfpolp, npfxzp, npfyzp
00005 use def_matter, only : emd
00006 use make_array_3d
00007 implicit none
00008 real(long), pointer :: c_s(:,:,:)
00009 real(long) :: qq, hh, pre, rho, epsi, abin
00010 integer :: irf, itf, ipf, iphase
00011
00012 do ipf = 0, npf
00013 do itf = 0, ntf
00014 do irf = 0, nrf
00015 qq = emd(irf,itf,ipf)
00016 call peos_q2hprho(qq, hh, pre, rho, epsi)
00017 call peos_lookup(qq, qi, iphase)
00018 abin = abi(iphase)
00019 c_s(irf,itf,ipf) = sqrt(abin*pre/rho/hh)
00020 end do
00021 end do
00022 end do
00023
00024
00025 end subroutine calc_soundspeed_peos