00001 subroutine calc_radial_green_fn_hret_mi_hadv_homosol(omega,char_dn)
00002 use coordinate_grav_r, only : rg, hrg
00003 use phys_constant, only : long, pi
00004 use grid_parameter, only : nrg, npg, ntg, nlg
00005 use radial_green_fn_hret_mi_hadv_homosol
00006 implicit none
00007 integer :: il, im, ir, irr
00008 real(8) :: omega, omegam, omegam_rg, omegam_rgin, l2p1, l2p1dlp1, W, Wp
00009 real(8) :: rtpi2 = 1.253314154753822d0
00010 real(8) :: sbj, sbj_in, sbjp_in, sj, sjp
00011 real(8) :: sby, sby_in, sbyp_in, sy, syp
00012 character(len=2) :: char_dn
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 sbsjy_hrmiha_ho = 0.0d0
00032 sbsjyp_hrmiha_ho = 0.0d0
00033 do il = 0, nlg
00034 do im = 0, il
00035 do ir = 0, nrg
00036 if(im.eq.0)then
00037 l2p1 = dble(2*il+1)
00038 l2p1dlp1 = l2p1/dble(il+1)
00039 if (char_dn.eq.'nh') then
00040
00041 sbsjy_hrmiha_ho(il,im,ir) = 0.0d0
00042 end if
00043 if (char_dn.eq.'dh') then
00044
00045 sbsjyp_hrmiha_ho(il,im,ir) = 0.0d0
00046 end if
00047 else
00048 omegam = dble(im)*omega
00049 omegam_rgin = omegam*rg(0)
00050 l2p1 = dble(2*il+1)
00051 call sphbess_and_dx(omegam_rgin,il,sj,sy,sjp,syp)
00052 sby_in = sy
00053 sbj_in = sj
00054 sbyp_in = omegam*syp
00055 sbjp_in = omegam*sjp
00056 omegam_rg = omegam*rg(ir)
00057 W = sqrt(sbj_in**2 + sby_in**2)
00058 Wp = sqrt(sbjp_in**2 + sbyp_in**2)
00059 call sphbess(omegam_rg,il,sj,sy)
00060 sby = sj
00061 if (char_dn.eq.'nh') then
00062 sbsjy_hrmiha_ho(il,im,ir) = l2p1*sby/Wp
00063 end if
00064 if (char_dn.eq.'dh') then
00065
00066 sbsjyp_hrmiha_ho(il,im,ir) = l2p1*sby/W
00067 end if
00068 endif
00069 enddo
00070 enddo
00071 enddo
00072
00073 end subroutine calc_radial_green_fn_hret_mi_hadv_homosol