00001 include '../Include_file/include_modulefiles_plot_BNS_CF_3mpt.f90'
00002 include '../Include_file/include_PEOS_modulefile.f90'
00003 include '../Include_file/include_modulefiles_analysis_plot_BNS_CF_3mpt.f90'
00004 include '../Include_file/include_interface_modulefiles_plot_BNS_CF_3mpt.f90'
00005 include '../Include_file/include_interface_modulefiles_analysis_plot_BNS_CF_3mpt.f90'
00006 include '../Include_file/include_subroutines_plot_BNS_CF_3mpt.f90'
00007 include '../Include_file/include_subroutines_analysis_plot_BNS_CF_3mpt.f90'
00008 include '../Include_file/include_PEOS_subroutines.f90'
00009 include '../Include_file/include_functions.f90'
00010
00011
00012
00013
00014 PROGRAM coc2cac_ini
00015 implicit none
00016
00017 character(400) :: dir_path
00018 integer :: dir_path_len
00019 character(2) :: id_type
00020 integer :: ierr=0
00021
00022
00023
00024
00025 dir_path="."
00026 dir_path_len = len(trim(dir_path))
00027
00028
00029 ierr = read_id_type(dir_path(1:dir_path_len)//"/rnspar_mpt1.dat",id_type)
00030 if (ierr.ne.0) write(6,'(a50)') "COCAL_ID:: problem reading file rnspar_mpt1.dat."
00031
00032 select case (id_type)
00033 case ("CO")
00034 write(6,*) "COCAL_ID:: Reading corotating BNS ID"
00035 call coc2cac_co(dir_path(1:dir_path_len))
00036 case ("IR")
00037 write(6,*) "COCAL_ID:: Reading irrotational BNS ID"
00038 call coc2cac_ir(dir_path(1:dir_path_len))
00039 case ("SP")
00040 write(6,*) "COCAL_ID:: Reading spinning BNS ID"
00041 call coc2cac_sp(dir_path(1:dir_path_len))
00042 end select
00043
00044
00045
00046 contains
00047 integer function read_id_type(filename,id_type)
00048 implicit none
00049 integer :: nrg, nrf, nrf_deform, nrgin
00050 character(400) :: filename
00051 character(2) :: id_type, EQ_point
00052
00053 open(unit = 1,file = trim(filename), status='old')
00054 read(1,'(4i5)') nrg
00055 read(1,'(4i5)') nrf
00056 read(1,'(2i5,2(3x,a2))') nrf_deform, nrgin, id_type, EQ_point
00057 close(1)
00058 read_id_type = 0
00059 end function read_id_type
00060 END PROGRAM coc2cac_ini
00061
00062
00063
00064
00065
00066
00067
00068
00069 SUBROUTINE coc2cac_co(dir_path)
00070
00071 use grid_parameter_binary_excision
00072 use phys_constant
00073 use grid_parameter
00074 use coordinate_grav_r
00075 use coordinate_grav_extended
00076 use interface_modules_cartesian
00077 use interface_calc_gradvep_export
00078 use trigonometry_grav_phi
00079 use def_binary_parameter, only : dis
00080 use def_matter_parameter_mpt
00081 use interface_interpo_lag4th_2Dsurf
00082 use interface_IO_input_CF_grav_export
00083 use interface_IO_input_CF_flco_export
00084 use interface_IO_input_CF_surf_export
00085 use interface_excurve_CF_gridpoint_export
00086 use interface_interpo_gr2fl_metric_CF_export
00087 implicit none
00088 integer :: impt, impt_ex, ico, irr, isp
00089 character(30) :: char1
00090 character*400 :: dir_path
00091 character(len=1) :: np(5) = (/'1', '2','3', '4', '5'/)
00092 real(8) :: rr3, rrcm, xc,yc,zc, xc_p1, yc_p1, zc_p1, xc_p2, yc_p2, zc_p2, dis_cm
00093 real(8) :: xc_p3, yc_p3, zc_p3
00094 real(8) :: xcac, ycac, zcac
00095 real(8) :: xcoc, ycoc, zcoc
00096 real(8) :: emdca, psica, alphca, bvxdca, bvydca, bvzdca, psi4ca, psif4ca
00097 real(8) :: hca, preca, rhoca, eneca, epsca
00098 real(8) :: vxu, vyu, vzu, lam_p1, lam_p2
00099 real(8) :: bxcor, bycor, bzcor, bvxdfca, bvydfca, bvzdfca, psifca, alphfca
00100 real(8) :: gxx, gxy, gxz, gyy, gyz, gzz, kxx, kxy, kxz, kyy, kyz, kzz
00101 real(8) :: axx, axy, axz, ayy, ayz, azz
00102 real(8) :: ome_p1, ber_p1, radi_p1, r_surf_p1
00103 real(8) :: ome_p2, ber_p2, radi_p2, r_surf_p2
00104 integer :: nrg_p1, ntg_p1, npg_p1, nrf_p1, ntf_p1, npf_p1
00105 integer :: nrg_p2, ntg_p2, npg_p2, nrf_p2, ntf_p2, npf_p2
00106 integer :: nrg_p3, ntg_p3, npg_p3, nrf_p3, ntf_p3, npf_p3
00107
00108 real(long) :: rc_p1, thc_p1, phic_p1, varpic_p1, rcf_p1, rsca_p1
00109 real(long) :: rc_p2, thc_p2, phic_p2, varpic_p2, rcf_p2, rsca_p2
00110 real(long) :: rc_p3, thc_p3, phic_p3, varpic_p3
00111 real(long) :: r4(4), th4(4), phi4(4), fr4(4), ft4(4), fp4(4)
00112 real(long) :: fr4psi(4) , ft4psi(4) , fp4psi(4)
00113 real(long) :: fr4alph(4) , ft4alph(4) , fp4alph(4)
00114 real(long) :: fr4bvxd(4) , ft4bvxd(4) , fp4bvxd(4)
00115 real(long) :: fr4bvyd(4) , ft4bvyd(4) , fp4bvyd(4)
00116 real(long) :: fr4bvzd(4) , ft4bvzd(4) , fp4bvzd(4)
00117 real(long) :: fr4axx(4) , ft4axx(4) , fp4axx(4)
00118 real(long) :: fr4axy(4) , ft4axy(4) , fp4axy(4)
00119 real(long) :: fr4axz(4) , ft4axz(4) , fp4axz(4)
00120 real(long) :: fr4ayy(4) , ft4ayy(4) , fp4ayy(4)
00121 real(long) :: fr4ayz(4) , ft4ayz(4) , fp4ayz(4)
00122 real(long) :: fr4azz(4) , ft4azz(4) , fp4azz(4)
00123 real(long) :: fr4emd(4) , ft4emd(4) , fp4emd(4)
00124
00125 real(long) :: fr4psif(4) , ft4psif(4) , fp4psif(4)
00126 real(long) :: fr4alphf(4) , ft4alphf(4) , fp4alphf(4)
00127 real(long) :: fr4bvxdf(4) , ft4bvxdf(4) , fp4bvxdf(4)
00128 real(long) :: fr4bvydf(4) , ft4bvydf(4) , fp4bvydf(4)
00129 real(long) :: fr4bvzdf(4) , ft4bvzdf(4) , fp4bvzdf(4)
00130
00131 integer :: irg, itg, ipg, irgex, itgex, ipgex
00132 integer :: ir0, it0, ip0, irg0 , itg0 , ipg0, ii, jj, kk
00133 real(long), external :: lagint_4th
00134
00135 real(8), pointer :: rg_p1(:), rgex_p1(:), thgex_p1(:), phigex_p1(:)
00136 integer, pointer :: irgex_r_p1(:), itgex_th_p1(:), ipgex_phi_p1(:)
00137 integer, pointer :: itgex_r_p1(:,:), ipgex_r_p1(:,:), ipgex_th_p1(:,:)
00138 real(8), pointer :: emd_p1(:,:,:), rs_p1(:,:)
00139 real(8), pointer :: psif_p1(:,:,:), alphf_p1(:,:,:), bvxdf_p1(:,:,:), bvydf_p1(:,:,:), bvzdf_p1(:,:,:)
00140 real(8), pointer :: psi_p1(:,:,:), alph_p1(:,:,:), bvxd_p1(:,:,:), bvyd_p1(:,:,:), bvzd_p1(:,:,:)
00141 real(8), pointer :: axx_p1(:,:,:), axy_p1(:,:,:) , axz_p1(:,:,:) , ayy_p1(:,:,:) , ayz_p1(:,:,:), azz_p1(:,:,:)
00142
00143 real(8), pointer :: rg_p2(:), rgex_p2(:), thgex_p2(:), phigex_p2(:)
00144 integer, pointer :: irgex_r_p2(:), itgex_th_p2(:), ipgex_phi_p2(:)
00145 integer, pointer :: itgex_r_p2(:,:), ipgex_r_p2(:,:), ipgex_th_p2(:,:)
00146 real(8), pointer :: emd_p2(:,:,:), rs_p2(:,:)
00147 real(8), pointer :: psif_p2(:,:,:), alphf_p2(:,:,:), bvxdf_p2(:,:,:), bvydf_p2(:,:,:), bvzdf_p2(:,:,:)
00148 real(8), pointer :: psi_p2(:,:,:), alph_p2(:,:,:), bvxd_p2(:,:,:), bvyd_p2(:,:,:), bvzd_p2(:,:,:)
00149 real(8), pointer :: axx_p2(:,:,:), axy_p2(:,:,:) , axz_p2(:,:,:) , ayy_p2(:,:,:) , ayz_p2(:,:,:), azz_p2(:,:,:)
00150
00151 real(8), pointer :: rg_p3(:), rgex_p3(:), thgex_p3(:), phigex_p3(:)
00152 integer, pointer :: irgex_r_p3(:), itgex_th_p3(:), ipgex_phi_p3(:)
00153 integer, pointer :: itgex_r_p3(:,:), ipgex_r_p3(:,:), ipgex_th_p3(:,:)
00154 real(8), pointer :: psi_p3(:,:,:), alph_p3(:,:,:), bvxd_p3(:,:,:), bvyd_p3(:,:,:), bvzd_p3(:,:,:)
00155 real(8), pointer :: axx_p3(:,:,:), axy_p3(:,:,:) , axz_p3(:,:,:) , ayy_p3(:,:,:) , ayz_p3(:,:,:), azz_p3(:,:,:)
00156
00157 gxx=0.0d0; gxy=0.0d0; gxz=0.0d0; gyy=0.0d0; gyz=0.0d0; gzz=0.0d0
00158 kxx=0.0d0; kxy=0.0d0; kxz=0.0d0; kyy=0.0d0; kyz=0.0d0; kzz=0.0d0
00159 axx=0.0d0; axy=0.0d0; axz=0.0d0; ayy=0.0d0; ayz=0.0d0; azz=0.0d0
00160
00161
00162
00163
00164
00165
00166
00167 call allocate_grid_parameter_mpt
00168 call allocate_grid_parameter_binary_excision_mpt
00169 call allocate_def_matter_parameter_mpt
00170 do impt = 1, nmpt
00171 call read_parameter_mpt_cactus(impt,dir_path)
00172 if (impt .le. 2) call read_surf_parameter_mpt_cactus(impt,dir_path)
00173 call copy_grid_parameter_to_mpt(impt)
00174 call read_parameter_binary_excision_mpt_cactus(impt,dir_path)
00175 call copy_grid_parameter_binary_excision_to_mpt(impt)
00176 if (impt .le. 2) call peos_initialize_mpt_cactus(impt,dir_path)
00177 call copy_def_peos_parameter_to_mpt(impt)
00178 end do
00179
00180 call set_allocate_size_mpt
00181 call allocate_trig_grav_mphi
00182 call allocate_trigonometry_grav_phi_mpt
00183
00184 do impt = 1, nmpt
00185 call copy_grid_parameter_from_mpt(impt)
00186 call copy_grid_parameter_binary_excision_from_mpt(impt)
00187 call copy_def_peos_parameter_from_mpt(impt)
00188 call coordinate_patch_kit_grav_grid_coc2cac_mpt(3)
00189 call calc_parameter_binary_excision
00190 call copy_grid_parameter_to_mpt(impt)
00191 call copy_grid_parameter_binary_excision_to_mpt(impt)
00192 call copy_coordinate_grav_extended_to_mpt(impt)
00193 call copy_coordinate_grav_phi_to_mpt(impt)
00194 call copy_coordinate_grav_r_to_mpt(impt)
00195 call copy_coordinate_grav_theta_to_mpt(impt)
00196 call copy_def_binary_parameter_to_mpt(impt)
00197 call copy_trigonometry_grav_phi_to_mpt(impt)
00198 call copy_trigonometry_grav_theta_to_mpt(impt)
00199 end do
00200
00201 do impt = 1,nmpt
00202
00203 call copy_grid_parameter_from_mpt(impt)
00204 call copy_grid_parameter_binary_excision_from_mpt(impt)
00205 call copy_coordinate_grav_extended_from_mpt(impt)
00206 call copy_coordinate_grav_phi_from_mpt(impt)
00207 call copy_coordinate_grav_r_from_mpt(impt)
00208 call copy_coordinate_grav_theta_from_mpt(impt)
00209 call copy_def_binary_parameter_from_mpt(impt)
00210 call copy_trigonometry_grav_phi_from_mpt(impt)
00211 call copy_trigonometry_grav_theta_from_mpt(impt)
00212
00213
00214 if (impt==1) then
00215 nrg_p1=nrg; ntg_p1=ntg; npg_p1=npg; nrf_p1=nrf; ntf_p1=ntf; npf_p1=npf
00216 allocate ( rg_p1( 0:nnrg))
00217 allocate ( rgex_p1(-2:nnrg+2))
00218 allocate ( thgex_p1(-2:nntg+2))
00219 allocate ( phigex_p1(-2:nnpg+2))
00220 allocate ( irgex_r_p1(-2:nnrg+2))
00221 allocate ( itgex_th_p1(-2:nntg+2))
00222 allocate (ipgex_phi_p1(-2:nnpg+2))
00223
00224 allocate ( itgex_r_p1(0:nntg,-2:nnrg+2))
00225 allocate ( ipgex_r_p1(0:nnpg,-2:nnrg+2))
00226 allocate (ipgex_th_p1(0:nnpg,-2:nntg+2))
00227
00228 rg_p1=rg; rgex_p1=rgex; thgex_p1=thgex; phigex_p1=phigex
00229 irgex_r_p1=irgex_r; itgex_th_p1=itgex_th; ipgex_phi_p1=ipgex_phi
00230 itgex_r_p1=itgex_r; ipgex_r_p1=ipgex_r; ipgex_th_p1=ipgex_th
00231
00232 rr3 = 0.7d0*(rgout - rgmid)
00233 dis_cm = dis
00234 r_surf_p1 = r_surf
00235 write(6,'(a13,i1,a8)') "Reading COCP-", impt, " data..."
00236
00237 allocate ( emd_p1(0:nrf,0:ntf,0:npf))
00238 allocate ( psif_p1(0:nrf,0:ntf,0:npf))
00239 allocate (alphf_p1(0:nrf,0:ntf,0:npf))
00240 allocate (bvxdf_p1(0:nrf,0:ntf,0:npf))
00241 allocate (bvydf_p1(0:nrf,0:ntf,0:npf))
00242 allocate (bvzdf_p1(0:nrf,0:ntf,0:npf))
00243 allocate ( rs_p1(0:ntf,0:npf))
00244 allocate ( psi_p1(0:nrg,0:ntg,0:npg))
00245 allocate ( alph_p1(0:nrg,0:ntg,0:npg))
00246 allocate ( bvxd_p1(0:nrg,0:ntg,0:npg))
00247 allocate ( bvyd_p1(0:nrg,0:ntg,0:npg))
00248 allocate ( bvzd_p1(0:nrg,0:ntg,0:npg))
00249 allocate ( axx_p1(0:nrg,0:ntg,0:npg))
00250 allocate ( axy_p1(0:nrg,0:ntg,0:npg))
00251 allocate ( axz_p1(0:nrg,0:ntg,0:npg))
00252 allocate ( ayy_p1(0:nrg,0:ntg,0:npg))
00253 allocate ( ayz_p1(0:nrg,0:ntg,0:npg))
00254 allocate ( azz_p1(0:nrg,0:ntg,0:npg))
00255 emd_p1=0.0d0; rs_p1 =0.0d0
00256 psi_p1=0.0d0; alph_p1=0.0d0; bvxd_p1=0.0d0; bvyd_p1=0.0d0; bvzd_p1=0.0d0
00257 axx_p1=0.0d0; axy_p1 =0.0d0; axz_p1 =0.0d0; ayy_p1=0.0d0; ayz_p1=0.0d0; azz_p1=0.0d0
00258
00259 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt1.las",psi_p1,alph_p1,bvxd_p1,bvyd_p1,bvzd_p1)
00260
00261 call IO_input_CF_flco_export(trim(dir_path)//"/bnsflu_3D_mpt1.las",emd_p1,ome_p1,ber_p1,radi_p1)
00262
00263 call IO_input_CF_surf_export(trim(dir_path)//"/bnssur_3D_mpt1.las",rs_p1)
00264
00265 call excurve_CF_gridpoint_export(alph_p1,bvxd_p1,bvyd_p1,bvzd_p1, &
00266 & axx_p1, axy_p1, axz_p1, ayy_p1, ayz_p1, azz_p1)
00267
00268 call interpo_gr2fl_metric_CF_export(alph_p1, psi_p1, bvxd_p1, bvyd_p1, bvzd_p1, &
00269 & alphf_p1, psif_p1, bvxdf_p1, bvydf_p1, bvzdf_p1, rs_p1)
00270
00271 end if
00272 if (impt==2) then
00273 nrg_p2=nrg; ntg_p2=ntg; npg_p2=npg; nrf_p2=nrf; ntf_p2=ntf; npf_p2=npf
00274 allocate ( rg_p2( 0:nnrg))
00275 allocate ( rgex_p2(-2:nnrg+2))
00276 allocate ( thgex_p2(-2:nntg+2))
00277 allocate ( phigex_p2(-2:nnpg+2))
00278 allocate ( irgex_r_p2(-2:nnrg+2))
00279 allocate ( itgex_th_p2(-2:nntg+2))
00280 allocate (ipgex_phi_p2(-2:nnpg+2))
00281
00282 allocate ( itgex_r_p2(0:nntg,-2:nnrg+2))
00283 allocate ( ipgex_r_p2(0:nnpg,-2:nnrg+2))
00284 allocate (ipgex_th_p2(0:nnpg,-2:nntg+2))
00285
00286 rg_p2=rg; rgex_p2=rgex; thgex_p2=thgex; phigex_p2=phigex
00287 irgex_r_p2=irgex_r; itgex_th_p2=itgex_th; ipgex_phi_p2=ipgex_phi
00288 itgex_r_p2=itgex_r; ipgex_r_p2=ipgex_r; ipgex_th_p2=ipgex_th
00289
00290 r_surf_p2 = r_surf
00291 write(6,'(a13,i1,a8)') "Reading COCP-", impt, " data..."
00292
00293 allocate ( emd_p2(0:nrf,0:ntf,0:npf))
00294 allocate ( psif_p2(0:nrf,0:ntf,0:npf))
00295 allocate (alphf_p2(0:nrf,0:ntf,0:npf))
00296 allocate (bvxdf_p2(0:nrf,0:ntf,0:npf))
00297 allocate (bvydf_p2(0:nrf,0:ntf,0:npf))
00298 allocate (bvzdf_p2(0:nrf,0:ntf,0:npf))
00299 allocate ( rs_p2(0:ntf,0:npf))
00300 allocate ( psi_p2(0:nrg,0:ntg,0:npg))
00301 allocate ( alph_p2(0:nrg,0:ntg,0:npg))
00302 allocate ( bvxd_p2(0:nrg,0:ntg,0:npg))
00303 allocate ( bvyd_p2(0:nrg,0:ntg,0:npg))
00304 allocate ( bvzd_p2(0:nrg,0:ntg,0:npg))
00305 allocate ( axx_p2(0:nrg,0:ntg,0:npg))
00306 allocate ( axy_p2(0:nrg,0:ntg,0:npg))
00307 allocate ( axz_p2(0:nrg,0:ntg,0:npg))
00308 allocate ( ayy_p2(0:nrg,0:ntg,0:npg))
00309 allocate ( ayz_p2(0:nrg,0:ntg,0:npg))
00310 allocate ( azz_p2(0:nrg,0:ntg,0:npg))
00311 emd_p2=0.0d0; rs_p2=0.0d0
00312 psi_p2=0.0d0; alph_p2=0.0d0; bvxd_p2=0.0d0; bvyd_p2=0.0d0; bvzd_p2=0.0d0
00313 axx_p2=0.0d0; axy_p2=0.0d0; axz_p2=0.0d0; ayy_p2=0.0d0; ayz_p2=0.0d0; azz_p2=0.0d0
00314
00315 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt2.las",psi_p2,alph_p2,bvxd_p2,bvyd_p2,bvzd_p2)
00316
00317 call IO_input_CF_flco_export(trim(dir_path)//"/bnsflu_3D_mpt2.las",emd_p2,ome_p2,ber_p2,radi_p2)
00318
00319 call IO_input_CF_surf_export(trim(dir_path)//"/bnssur_3D_mpt2.las",rs_p2)
00320
00321 call excurve_CF_gridpoint_export(alph_p2,bvxd_p2,bvyd_p2,bvzd_p2, &
00322 & axx_p2, axy_p2, axz_p2, ayy_p2, ayz_p2, azz_p2)
00323
00324 call interpo_gr2fl_metric_CF_export(alph_p2, psi_p2, bvxd_p2, bvyd_p2, bvzd_p2, &
00325 & alphf_p2, psif_p2, bvxdf_p2, bvydf_p2, bvzdf_p2, rs_p2)
00326
00327 bvxdf_p2 = - bvxdf_p2
00328 bvydf_p2 = - bvydf_p2
00329 bvxd_p2 = - bvxd_p2
00330 bvyd_p2 = - bvyd_p2
00331 axz_p2 = - axz_p2
00332 ayz_p2 = - ayz_p2
00333 end if
00334 if (impt==3) then
00335 nrg_p3=nrg; ntg_p3=ntg; npg_p3=npg; nrf_p3=nrf; ntf_p3=ntf; npf_p3=npf
00336 allocate ( rg_p3( 0:nnrg))
00337 allocate ( rgex_p3(-2:nnrg+2))
00338 allocate ( thgex_p3(-2:nntg+2))
00339 allocate ( phigex_p3(-2:nnpg+2))
00340 allocate ( irgex_r_p3(-2:nnrg+2))
00341 allocate ( itgex_th_p3(-2:nntg+2))
00342 allocate (ipgex_phi_p3(-2:nnpg+2))
00343
00344 allocate ( itgex_r_p3(0:nntg,-2:nnrg+2))
00345 allocate ( ipgex_r_p3(0:nnpg,-2:nnrg+2))
00346 allocate (ipgex_th_p3(0:nnpg,-2:nntg+2))
00347
00348 rg_p3=rg; rgex_p3=rgex; thgex_p3=thgex; phigex_p3=phigex
00349 irgex_r_p3=irgex_r; itgex_th_p3=itgex_th; ipgex_phi_p3=ipgex_phi
00350 itgex_r_p3=itgex_r; ipgex_r_p3=ipgex_r; ipgex_th_p3=ipgex_th
00351
00352 write(6,'(a13,i1,a8)') "Reading ARCP-", impt, " data..."
00353 allocate ( psi_p3(0:nrg,0:ntg,0:npg))
00354 allocate (alph_p3(0:nrg,0:ntg,0:npg))
00355 allocate (bvxd_p3(0:nrg,0:ntg,0:npg))
00356 allocate (bvyd_p3(0:nrg,0:ntg,0:npg))
00357 allocate (bvzd_p3(0:nrg,0:ntg,0:npg))
00358 allocate ( axx_p3(0:nrg,0:ntg,0:npg))
00359 allocate ( axy_p3(0:nrg,0:ntg,0:npg))
00360 allocate ( axz_p3(0:nrg,0:ntg,0:npg))
00361 allocate ( ayy_p3(0:nrg,0:ntg,0:npg))
00362 allocate ( ayz_p3(0:nrg,0:ntg,0:npg))
00363 allocate ( azz_p3(0:nrg,0:ntg,0:npg))
00364 psi_p3=0.0d0; alph_p3=0.0d0; bvxd_p3=0.0d0; bvyd_p3=0.0d0; bvzd_p3=0.0d0
00365 axx_p3=0.0d0; axy_p3=0.0d0; axz_p3=0.0d0; ayy_p3=0.0d0; ayz_p3=0.0d0; azz_p3=0.0d0
00366
00367 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt3.las",psi_p3,alph_p3,bvxd_p3,bvyd_p3,bvzd_p3)
00368
00369 call excurve_CF_gridpoint_export(alph_p3,bvxd_p3,bvyd_p3,bvzd_p3, &
00370 & axx_p3, axy_p3, axz_p3, ayy_p3, ayz_p3, azz_p3)
00371
00372 end if
00373 end do
00374 write(6,'(2e20.12)') emd_p1(0,0,0), emd_p1(58,0,0)
00375 write(6,'(3e20.12)') ome_p1, ber_p1, radi_p1
00376 write(6,'(e20.12)') dis_cm
00377
00378 write(6,'(a56)', ADVANCE = "NO") "Give cartesian coordinates (x,y,z) separated by a space:"
00379 read(5,*) xcac,ycac,zcac
00380 write(6,'(a23,3e20.12)') "Point given wrt CACTUS:", xcac,ycac,zcac
00381 write(6,'(a38,2e20.12)') "Cocal radius scale in COCP-1, COCP-2 :", radi_p1, radi_p2
00382 write(6,'(a38,2e20.12)') "Cocal surface scale in COCP-1, COCP-2:", r_surf_p1, r_surf_p2
00383 xcoc = xcac/(radi_p1)
00384 ycoc = ycac/(radi_p1)
00385 zcoc = zcac/(radi_p1)
00386 write(6,'(a23,3e20.12)') "Point given wrt COCAL:", xcoc,ycoc,zcoc
00387
00388 rrcm = sqrt(xcoc**2 + ycoc**2 + zcoc**2)
00389 write(6,*) rrcm, rr3
00390 if (rrcm > rr3) then
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402 xc_p3 = xcoc
00403 yc_p3 = ycoc
00404 zc_p3 = zcoc
00405 write(6,'(a39,3e20.12)') "Point given wrt COCP-3 in Cocal scale :", xc_p3,yc_p3,zc_p3
00406
00407
00408 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
00409 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
00410
00411 rc_p3 = dsqrt(dabs(xc_p3**2 + yc_p3**2 + zc_p3**2))
00412 varpic_p3 = dsqrt(dabs(xc_p3**2 + yc_p3**2))
00413 thc_p3 = dmod(2.0d0*pi + datan2(varpic_p3,zc_p3),2.0d0*pi)
00414 phic_p3 = dmod(2.0d0*pi + datan2( yc_p3,xc_p3),2.0d0*pi)
00415
00416 do irg = 0, nrg_p3+1
00417 if (rc_p3.lt.rgex_p3(irg).and.rc_p3.ge.rgex_p3(irg-1)) ir0 = min0(irg-2,nrg_p3-3)
00418 end do
00419 do itg = 0, ntg_p3+1
00420 if (thc_p3.lt.thgex_p3(itg).and.thc_p3.ge.thgex_p3(itg-1)) it0 = itg-2
00421 end do
00422 do ipg = 0, npg_p3+1
00423 if (phic_p3.lt.phigex_p3(ipg).and.phic_p3.ge.phigex_p3(ipg-1)) ip0 = ipg-2
00424 end do
00425
00426 do ii = 1, 4
00427 irg0 = ir0 + ii - 1
00428 itg0 = it0 + ii - 1
00429 ipg0 = ip0 + ii - 1
00430 r4(ii) = rgex_p3(irg0)
00431 th4(ii) = thgex_p3(itg0)
00432 phi4(ii) = phigex_p3(ipg0)
00433 end do
00434
00435 do kk = 1, 4
00436 ipg0 = ip0 + kk - 1
00437 do jj = 1, 4
00438 itg0 = it0 + jj - 1
00439 do ii = 1, 4
00440 irg0 = ir0 + ii - 1
00441 irgex = irgex_r_p3(irg0)
00442 itgex = itgex_r_p3(itgex_th_p3(itg0),irg0)
00443 ipgex = ipgex_r_p3(ipgex_th_p3(ipgex_phi_p3(ipg0),itg0),irg0)
00444 fr4psi(ii) = psi_p3(irgex,itgex,ipgex)
00445 fr4alph(ii) = alph_p3(irgex,itgex,ipgex)
00446 fr4bvxd(ii) = bvxd_p3(irgex,itgex,ipgex)
00447 fr4bvyd(ii) = bvyd_p3(irgex,itgex,ipgex)
00448 fr4bvzd(ii) = bvzd_p3(irgex,itgex,ipgex)
00449 fr4axx(ii) = axx_p3(irgex,itgex,ipgex)
00450 fr4axy(ii) = axy_p3(irgex,itgex,ipgex)
00451 fr4axz(ii) = axz_p3(irgex,itgex,ipgex)
00452 fr4ayy(ii) = ayy_p3(irgex,itgex,ipgex)
00453 fr4ayz(ii) = ayz_p3(irgex,itgex,ipgex)
00454 fr4azz(ii) = azz_p3(irgex,itgex,ipgex)
00455 end do
00456 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p3)
00457 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p3)
00458 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p3)
00459 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p3)
00460 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p3)
00461 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p3)
00462 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p3)
00463 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p3)
00464 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p3)
00465 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p3)
00466 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p3)
00467 end do
00468 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p3)
00469 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p3)
00470 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p3)
00471 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p3)
00472 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p3)
00473 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p3)
00474 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p3)
00475 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p3)
00476 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p3)
00477 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p3)
00478 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p3)
00479 end do
00480 psica = lagint_4th(phi4,fp4psi ,phic_p3)
00481 alphca = lagint_4th(phi4,fp4alph,phic_p3)
00482 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p3)
00483 bvydca = lagint_4th(phi4,fp4bvyd,phic_p3)
00484 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p3)
00485 axx = lagint_4th(phi4,fp4axx ,phic_p3)
00486 axy = lagint_4th(phi4,fp4axy ,phic_p3)
00487 axz = lagint_4th(phi4,fp4axz ,phic_p3)
00488 ayy = lagint_4th(phi4,fp4ayy ,phic_p3)
00489 ayz = lagint_4th(phi4,fp4ayz ,phic_p3)
00490 azz = lagint_4th(phi4,fp4azz ,phic_p3)
00491
00492 psi4ca = psica**4
00493 vxu = 0.0d0
00494 vyu = 0.0d0
00495 vzu = 0.0d0
00496 emdca = 0.0d0
00497 else
00498 if (xcoc<=0.0d0) then
00499
00500
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510 xc_p1 = xcoc + dis_cm
00511 yc_p1 = ycoc
00512 zc_p1 = zcoc
00513 write(6,'(a39,3e20.12)') "Point given wrt COCP-1 in Cocal scale :", xc_p1,yc_p1,zc_p1
00514
00515 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
00516 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
00517
00518 rc_p1 = dsqrt(dabs(xc_p1**2 + yc_p1**2 + zc_p1**2))
00519 varpic_p1 = dsqrt(dabs(xc_p1**2 + yc_p1**2))
00520 thc_p1 = dmod(2.0d0*pi + datan2(varpic_p1,zc_p1),2.0d0*pi)
00521 phic_p1 = dmod(2.0d0*pi + datan2( yc_p1,xc_p1),2.0d0*pi)
00522
00523 do irg = 0, nrg_p1+1
00524 if (rc_p1.lt.rgex_p1(irg).and.rc_p1.ge.rgex_p1(irg-1)) ir0 = min0(irg-2,nrg_p1-3)
00525 end do
00526 do itg = 0, ntg_p1+1
00527 if (thc_p1.lt.thgex_p1(itg).and.thc_p1.ge.thgex_p1(itg-1)) it0 = itg-2
00528 end do
00529 do ipg = 0, npg_p1+1
00530 if (phic_p1.lt.phigex_p1(ipg).and.phic_p1.ge.phigex_p1(ipg-1)) ip0 = ipg-2
00531 end do
00532
00533
00534
00535 do ii = 1, 4
00536 irg0 = ir0 + ii - 1
00537 itg0 = it0 + ii - 1
00538 ipg0 = ip0 + ii - 1
00539 r4(ii) = rgex_p1(irg0)
00540 th4(ii) = thgex_p1(itg0)
00541 phi4(ii) = phigex_p1(ipg0)
00542 end do
00543
00544 do kk = 1, 4
00545 ipg0 = ip0 + kk - 1
00546 do jj = 1, 4
00547 itg0 = it0 + jj - 1
00548 do ii = 1, 4
00549 irg0 = ir0 + ii - 1
00550 irgex = irgex_r_p1(irg0)
00551 itgex = itgex_r_p1(itgex_th_p1(itg0),irg0)
00552 ipgex = ipgex_r_p1(ipgex_th_p1(ipgex_phi_p1(ipg0),itg0),irg0)
00553 fr4psi(ii) = psi_p1(irgex,itgex,ipgex)
00554 fr4alph(ii) = alph_p1(irgex,itgex,ipgex)
00555 fr4bvxd(ii) = bvxd_p1(irgex,itgex,ipgex)
00556 fr4bvyd(ii) = bvyd_p1(irgex,itgex,ipgex)
00557 fr4bvzd(ii) = bvzd_p1(irgex,itgex,ipgex)
00558 fr4axx(ii) = axx_p1(irgex,itgex,ipgex)
00559 fr4axy(ii) = axy_p1(irgex,itgex,ipgex)
00560 fr4axz(ii) = axz_p1(irgex,itgex,ipgex)
00561 fr4ayy(ii) = ayy_p1(irgex,itgex,ipgex)
00562 fr4ayz(ii) = ayz_p1(irgex,itgex,ipgex)
00563 fr4azz(ii) = azz_p1(irgex,itgex,ipgex)
00564 end do
00565 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p1)
00566 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p1)
00567 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p1)
00568 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p1)
00569 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p1)
00570 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p1)
00571 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p1)
00572 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p1)
00573 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p1)
00574 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p1)
00575 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p1)
00576 end do
00577 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p1)
00578 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p1)
00579 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p1)
00580 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p1)
00581 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p1)
00582 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p1)
00583 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p1)
00584 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p1)
00585 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p1)
00586 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p1)
00587 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p1)
00588 end do
00589 psica = lagint_4th(phi4,fp4psi ,phic_p1)
00590 alphca = lagint_4th(phi4,fp4alph,phic_p1)
00591 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p1)
00592 bvydca = lagint_4th(phi4,fp4bvyd,phic_p1)
00593 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p1)
00594 axx = lagint_4th(phi4,fp4axx ,phic_p1)
00595 axy = lagint_4th(phi4,fp4axy ,phic_p1)
00596 axz = lagint_4th(phi4,fp4axz ,phic_p1)
00597 ayy = lagint_4th(phi4,fp4ayy ,phic_p1)
00598 ayz = lagint_4th(phi4,fp4ayz ,phic_p1)
00599 azz = lagint_4th(phi4,fp4azz ,phic_p1)
00600
00601 psi4ca = psica**4
00602
00603
00604 call interpo_lag4th_2Dsurf(rsca_p1,rs_p1,thc_p1,phic_p1)
00605 rcf_p1 = rc_p1/rsca_p1
00606
00607 if (rcf_p1.le.rg_p1(nrf_p1)) then
00608 do irg = 0, nrf_p1+1
00609 if (rcf_p1.lt.rgex_p1(irg).and.rcf_p1.ge.rgex_p1(irg-1)) ir0 = min0(irg-2,nrf_p1-3)
00610 end do
00611
00612 do ii = 1, 4
00613 irg0 = ir0 + ii - 1
00614 r4(ii) = rgex_p1(irg0)
00615 end do
00616
00617 do kk = 1, 4
00618 ipg0 = ip0 + kk - 1
00619 do jj = 1, 4
00620 itg0 = it0 + jj - 1
00621 do ii = 1, 4
00622 irg0 = ir0 + ii - 1
00623 irgex = irgex_r_p1(irg0)
00624 itgex = itgex_r_p1(itgex_th_p1(itg0),irg0)
00625 ipgex = ipgex_r_p1(ipgex_th_p1(ipgex_phi_p1(ipg0),itg0),irg0)
00626 fr4emd(ii) = emd_p1(irgex,itgex,ipgex)
00627
00628 fr4psif(ii) = psif_p1(irgex,itgex,ipgex)
00629 fr4alphf(ii) = alphf_p1(irgex,itgex,ipgex)
00630 fr4bvxdf(ii) = bvxdf_p1(irgex,itgex,ipgex)
00631 fr4bvydf(ii) = bvydf_p1(irgex,itgex,ipgex)
00632 fr4bvzdf(ii) = bvzdf_p1(irgex,itgex,ipgex)
00633 end do
00634 ft4emd(jj) = lagint_4th(r4,fr4emd ,rcf_p1)
00635
00636 ft4psif(jj) = lagint_4th(r4,fr4psif ,rcf_p1)
00637 ft4alphf(jj) = lagint_4th(r4,fr4alphf,rcf_p1)
00638 ft4bvxdf(jj) = lagint_4th(r4,fr4bvxdf,rcf_p1)
00639 ft4bvydf(jj) = lagint_4th(r4,fr4bvydf,rcf_p1)
00640 ft4bvzdf(jj) = lagint_4th(r4,fr4bvzdf,rcf_p1)
00641 end do
00642 fp4emd(kk) = lagint_4th(th4,ft4emd ,thc_p1)
00643
00644 fp4psif(kk) = lagint_4th(th4,ft4psif ,thc_p1)
00645 fp4alphf(kk) = lagint_4th(th4,ft4alphf,thc_p1)
00646 fp4bvxdf(kk) = lagint_4th(th4,ft4bvxdf,thc_p1)
00647 fp4bvydf(kk) = lagint_4th(th4,ft4bvydf,thc_p1)
00648 fp4bvzdf(kk) = lagint_4th(th4,ft4bvzdf,thc_p1)
00649 end do
00650 emdca = lagint_4th(phi4,fp4emd ,phic_p1)
00651
00652 psifca = lagint_4th(phi4,fp4psif ,phic_p1)
00653 alphfca = lagint_4th(phi4,fp4alphf,phic_p1)
00654 bvxdfca = lagint_4th(phi4,fp4bvxdf,phic_p1)
00655 bvydfca = lagint_4th(phi4,fp4bvydf,phic_p1)
00656 bvzdfca = lagint_4th(phi4,fp4bvzdf,phic_p1)
00657
00658 psif4ca = psifca**4
00659 bxcor = bvxdfca + ome_p1*(-ycoc)
00660 bycor = bvydfca + ome_p1*(xcoc)
00661 bzcor = bvzdfca
00662
00663 vxu = bxcor/alphfca
00664 vyu = bycor/alphfca
00665 vzu = bzcor/alphfca
00666 else
00667 emdca=0.0d0
00668 vxu=0.0d0; vyu=0.0d0; vzu=0.0d0
00669 end if
00670 else
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682 xc_p2 = -(xcoc - dis_cm)
00683 yc_p2 = -ycoc
00684 zc_p2 = zcoc
00685 write(6,'(a39,3e20.12)') "Point given wrt COCP-2 in Cocal scale :", xc_p2,yc_p2,zc_p2
00686
00687 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
00688 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
00689
00690 rc_p2 = dsqrt(dabs(xc_p2**2 + yc_p2**2 + zc_p2**2))
00691 varpic_p2 = dsqrt(dabs(xc_p2**2 + yc_p2**2))
00692 thc_p2 = dmod(2.0d0*pi + datan2(varpic_p2,zc_p2),2.0d0*pi)
00693 phic_p2 = dmod(2.0d0*pi + datan2( yc_p2,xc_p2),2.0d0*pi)
00694
00695 do irg = 0, nrg_p2+1
00696 if (rc_p2.lt.rgex_p2(irg).and.rc_p2.ge.rgex_p2(irg-1)) ir0 = min0(irg-2,nrg_p2-3)
00697 end do
00698 do itg = 0, ntg_p2+1
00699 if (thc_p2.lt.thgex_p2(itg).and.thc_p2.ge.thgex_p2(itg-1)) it0 = itg-2
00700 end do
00701 do ipg = 0, npg_p2+1
00702 if (phic_p2.lt.phigex_p2(ipg).and.phic_p2.ge.phigex_p2(ipg-1)) ip0 = ipg-2
00703 end do
00704
00705 do ii = 1, 4
00706 irg0 = ir0 + ii - 1
00707 itg0 = it0 + ii - 1
00708 ipg0 = ip0 + ii - 1
00709 r4(ii) = rgex_p2(irg0)
00710 th4(ii) = thgex_p2(itg0)
00711 phi4(ii) = phigex_p2(ipg0)
00712 end do
00713
00714 do kk = 1, 4
00715 ipg0 = ip0 + kk - 1
00716 do jj = 1, 4
00717 itg0 = it0 + jj - 1
00718 do ii = 1, 4
00719 irg0 = ir0 + ii - 1
00720 irgex = irgex_r_p2(irg0)
00721 itgex = itgex_r_p2(itgex_th_p2(itg0),irg0)
00722 ipgex = ipgex_r_p2(ipgex_th_p2(ipgex_phi_p2(ipg0),itg0),irg0)
00723 fr4psi(ii) = psi_p2(irgex,itgex,ipgex)
00724 fr4alph(ii) = alph_p2(irgex,itgex,ipgex)
00725 fr4bvxd(ii) = bvxd_p2(irgex,itgex,ipgex)
00726 fr4bvyd(ii) = bvyd_p2(irgex,itgex,ipgex)
00727 fr4bvzd(ii) = bvzd_p2(irgex,itgex,ipgex)
00728 fr4axx(ii) = axx_p2(irgex,itgex,ipgex)
00729 fr4axy(ii) = axy_p2(irgex,itgex,ipgex)
00730 fr4axz(ii) = axz_p2(irgex,itgex,ipgex)
00731 fr4ayy(ii) = ayy_p2(irgex,itgex,ipgex)
00732 fr4ayz(ii) = ayz_p2(irgex,itgex,ipgex)
00733 fr4azz(ii) = azz_p2(irgex,itgex,ipgex)
00734 end do
00735 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p2)
00736 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p2)
00737 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p2)
00738 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p2)
00739 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p2)
00740 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p2)
00741 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p2)
00742 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p2)
00743 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p2)
00744 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p2)
00745 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p2)
00746 end do
00747 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p2)
00748 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p2)
00749 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p2)
00750 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p2)
00751 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p2)
00752 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p2)
00753 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p2)
00754 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p2)
00755 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p2)
00756 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p2)
00757 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p2)
00758 end do
00759 psica = lagint_4th(phi4,fp4psi ,phic_p2)
00760 alphca = lagint_4th(phi4,fp4alph,phic_p2)
00761 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p2)
00762 bvydca = lagint_4th(phi4,fp4bvyd,phic_p2)
00763 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p2)
00764 axx = lagint_4th(phi4,fp4axx ,phic_p2)
00765 axy = lagint_4th(phi4,fp4axy ,phic_p2)
00766 axz = lagint_4th(phi4,fp4axz ,phic_p2)
00767 ayy = lagint_4th(phi4,fp4ayy ,phic_p2)
00768 ayz = lagint_4th(phi4,fp4ayz ,phic_p2)
00769 azz = lagint_4th(phi4,fp4azz ,phic_p2)
00770
00771 psi4ca = psica**4
00772 call interpo_lag4th_2Dsurf(rsca_p2,rs_p2,thc_p2,phic_p2)
00773 rcf_p2 = rc_p2/rsca_p2
00774
00775 if (rcf_p2.le.rg_p2(nrf_p2)) then
00776 do irg = 0, nrf_p2+1
00777 if (rcf_p2.lt.rgex_p2(irg).and.rcf_p2.ge.rgex_p2(irg-1)) ir0 = min0(irg-2,nrf_p2-3)
00778 end do
00779
00780 do ii = 1, 4
00781 irg0 = ir0 + ii - 1
00782 r4(ii) = rgex_p2(irg0)
00783 end do
00784
00785 do kk = 1, 4
00786 ipg0 = ip0 + kk - 1
00787 do jj = 1, 4
00788 itg0 = it0 + jj - 1
00789 do ii = 1, 4
00790 irg0 = ir0 + ii - 1
00791 irgex = irgex_r_p2(irg0)
00792 itgex = itgex_r_p2(itgex_th_p2(itg0),irg0)
00793 ipgex = ipgex_r_p2(ipgex_th_p2(ipgex_phi_p2(ipg0),itg0),irg0)
00794 fr4emd(ii) = emd_p2(irgex,itgex,ipgex)
00795
00796 fr4psif(ii) = psif_p2(irgex,itgex,ipgex)
00797 fr4alphf(ii) = alphf_p2(irgex,itgex,ipgex)
00798 fr4bvxdf(ii) = bvxdf_p2(irgex,itgex,ipgex)
00799 fr4bvydf(ii) = bvydf_p2(irgex,itgex,ipgex)
00800 fr4bvzdf(ii) = bvzdf_p2(irgex,itgex,ipgex)
00801 end do
00802 ft4emd(jj) = lagint_4th(r4,fr4emd ,rcf_p2)
00803
00804 ft4psif(jj) = lagint_4th(r4,fr4psif ,rcf_p2)
00805 ft4alphf(jj) = lagint_4th(r4,fr4alphf,rcf_p2)
00806 ft4bvxdf(jj) = lagint_4th(r4,fr4bvxdf,rcf_p2)
00807 ft4bvydf(jj) = lagint_4th(r4,fr4bvydf,rcf_p2)
00808 ft4bvzdf(jj) = lagint_4th(r4,fr4bvzdf,rcf_p2)
00809 end do
00810 fp4emd(kk) = lagint_4th(th4,ft4emd ,thc_p2)
00811
00812 fp4psif(kk) = lagint_4th(th4,ft4psif ,thc_p2)
00813 fp4alphf(kk) = lagint_4th(th4,ft4alphf,thc_p2)
00814 fp4bvxdf(kk) = lagint_4th(th4,ft4bvxdf,thc_p2)
00815 fp4bvydf(kk) = lagint_4th(th4,ft4bvydf,thc_p2)
00816 fp4bvzdf(kk) = lagint_4th(th4,ft4bvzdf,thc_p2)
00817 end do
00818 emdca = lagint_4th(phi4,fp4emd ,phic_p2)
00819
00820 psifca = lagint_4th(phi4,fp4psif ,phic_p2)
00821 alphfca = lagint_4th(phi4,fp4alphf,phic_p2)
00822 bvxdfca = lagint_4th(phi4,fp4bvxdf,phic_p2)
00823 bvydfca = lagint_4th(phi4,fp4bvydf,phic_p2)
00824 bvzdfca = lagint_4th(phi4,fp4bvzdf,phic_p2)
00825
00826 psif4ca = psifca**4
00827 bxcor = bvxdfca + ome_p2*(-ycoc)
00828 bycor = bvydfca + ome_p2*(xcoc)
00829 bzcor = bvzdfca
00830
00831 vxu = bxcor/alphfca
00832 vyu = bycor/alphfca
00833 vzu = bzcor/alphfca
00834 else
00835 emdca=0.0d0
00836 vxu=0.0d0; vyu=0.0d0; vzu=0.0d0
00837 end if
00838
00839 end if
00840 end if
00841
00842 gxx = psi4ca
00843 gxy = 0.0d0
00844 gxz = 0.0d0
00845 gyy = psi4ca
00846 gyz = 0.0d0
00847 gzz = psi4ca
00848
00849 kxx = psi4ca*axx/(radi_p1)
00850 kxy = psi4ca*axy/(radi_p1)
00851 kxz = psi4ca*axz/(radi_p1)
00852 kyy = psi4ca*ayy/(radi_p1)
00853 kyz = psi4ca*ayz/(radi_p1)
00854 kzz = psi4ca*azz/(radi_p1)
00855
00856 call peos_q2hprho(emdca, hca, preca, rhoca, eneca)
00857
00858 epsca = eneca/rhoca - 1.0d0
00859
00860 write(6,'(a6,e20.12)') "psi =", psica
00861 write(6,'(a6,e20.12)') "alph =", alphca
00862 write(6,'(a6,e20.12)') "bvxd =", bvxdca
00863 write(6,'(a6,e20.12)') "bvyd =", bvydca
00864 write(6,'(a6,e20.12)') "bvzd =", bvzdca
00865 write(6,'(a6,e20.12)') "Radi =", r_surf_p1*radi_p1
00866 write(6,'(a6,e20.12)') "Omeg =", ome_p1/radi_p1
00867 write(6,'(a6,e20.12)') "emd =", emdca
00868 write(6,'(a6,e20.12)') "h =", hca
00869 write(6,'(a6,e20.12)') "pre =", preca
00870 write(6,'(a6,e20.12)') "rho =", rhoca
00871 write(6,'(a6,e20.12)') "ene =", eneca
00872 write(6,'(a6,e20.12)') "eps =", epsca
00873
00874 write(6,'(a18)') "Kij at gridpoints:"
00875 write(6,'(3e20.12)') kxx, kxy, kxz
00876 write(6,'(3e20.12)') kxy, kyy, kyz
00877 write(6,'(3e20.12)') kxz, kyz, kzz
00878
00879 write(6,'(a13)') "v^i eulerian:"
00880 write(6,'(a6,e20.12)') "vxu =", vxu
00881 write(6,'(a6,e20.12)') "vyu =", vyu
00882 write(6,'(a6,e20.12)') "vzu =", vzu
00883
00884 write(6,'(a16)') "Deallocating...."
00885 deallocate( rg_p1); deallocate( rg_p2); deallocate( rg_p3)
00886 deallocate( rgex_p1); deallocate( rgex_p2); deallocate( rgex_p3)
00887 deallocate( thgex_p1); deallocate( thgex_p2); deallocate( thgex_p3)
00888 deallocate( phigex_p1); deallocate( phigex_p2); deallocate( phigex_p3)
00889 deallocate( irgex_r_p1); deallocate( irgex_r_p2); deallocate( irgex_r_p3)
00890 deallocate( itgex_th_p1); deallocate( itgex_th_p2); deallocate( itgex_th_p3)
00891 deallocate(ipgex_phi_p1); deallocate(ipgex_phi_p2); deallocate(ipgex_phi_p3)
00892 deallocate( itgex_r_p1); deallocate( itgex_r_p2); deallocate( itgex_r_p3)
00893 deallocate( ipgex_r_p1); deallocate( ipgex_r_p2); deallocate( ipgex_r_p3)
00894 deallocate( ipgex_th_p1); deallocate( ipgex_th_p2); deallocate( ipgex_th_p3)
00895
00896 deallocate( emd_p1); deallocate( emd_p2);
00897 deallocate( psif_p1); deallocate( psif_p2);
00898 deallocate(alphf_p1); deallocate(alphf_p2);
00899 deallocate(bvxdf_p1); deallocate(bvxdf_p2);
00900 deallocate(bvydf_p1); deallocate(bvydf_p2);
00901 deallocate(bvzdf_p1); deallocate(bvzdf_p2);
00902 deallocate( rs_p1); deallocate( rs_p2);
00903 deallocate( psi_p1); deallocate( psi_p2); deallocate(psi_p3)
00904 deallocate( alph_p1); deallocate( alph_p2); deallocate(alph_p3)
00905 deallocate( bvxd_p1); deallocate( bvxd_p2); deallocate(bvxd_p3)
00906 deallocate( bvyd_p1); deallocate( bvyd_p2); deallocate(bvyd_p3)
00907 deallocate( bvzd_p1); deallocate( bvzd_p2); deallocate(bvzd_p3)
00908 deallocate( axx_p1); deallocate( axx_p2); deallocate(axx_p3)
00909 deallocate( axy_p1); deallocate( axy_p2); deallocate(axy_p3)
00910 deallocate( axz_p1); deallocate( axz_p2); deallocate(axz_p3)
00911 deallocate( ayy_p1); deallocate( ayy_p2); deallocate(ayy_p3)
00912 deallocate( ayz_p1); deallocate( ayz_p2); deallocate(ayz_p3)
00913 deallocate( azz_p1); deallocate( azz_p2); deallocate(azz_p3)
00914
00915 END SUBROUTINE coc2cac_co
00916
00917
00918
00919
00920
00921
00922
00923
00924 SUBROUTINE coc2cac_ir(dir_path)
00925
00926 use grid_parameter_binary_excision
00927 use phys_constant
00928 use grid_parameter
00929 use coordinate_grav_r
00930 use coordinate_grav_extended
00931 use interface_modules_cartesian
00932 use interface_calc_gradvep_export
00933 use trigonometry_grav_phi
00934 use def_binary_parameter, only : dis
00935 use def_matter_parameter_mpt
00936 use interface_interpo_lag4th_2Dsurf
00937 use interface_IO_input_CF_grav_export
00938 use interface_IO_input_CF_flir_export
00939 use interface_IO_input_CF_surf_export
00940 use interface_excurve_CF_gridpoint_export
00941 use interface_interpo_gr2fl_metric_CF_export
00942 implicit none
00943 integer :: impt, impt_ex, ico, irr, isp
00944 real(8) :: huta,alphfca2
00945 character(30) :: char1
00946 character*400 :: dir_path
00947 character(len=1) :: np(5) = (/'1', '2','3', '4', '5'/)
00948 real(8) :: rr3, rrcm, xc,yc,zc, xc_p1, yc_p1, zc_p1, xc_p2, yc_p2, zc_p2, dis_cm
00949 real(8) :: xc_p3, yc_p3, zc_p3
00950 real(8) :: xcac, ycac, zcac
00951 real(8) :: xcoc, ycoc, zcoc
00952 real(8) :: emdca, vepca, psica, alphca, bvxdca, bvydca, bvzdca, psi4ca, psif4ca
00953 real(8) :: hca, preca, rhoca, eneca, epsca
00954 real(8) :: vepxfca, vepyfca, vepzfca, vxu, vyu, vzu, lam_p1, lam_p2
00955 real(8) :: bxcor, bycor, bzcor, bvxdfca, bvydfca, bvzdfca, psifca, alphfca
00956 real(8) :: gxx, gxy, gxz, gyy, gyz, gzz, kxx, kxy, kxz, kyy, kyz, kzz
00957 real(8) :: axx, axy, axz, ayy, ayz, azz
00958 real(8) :: ome_p1, ber_p1, radi_p1, r_surf_p1
00959 real(8) :: ome_p2, ber_p2, radi_p2, r_surf_p2
00960 integer :: nrg_p1, ntg_p1, npg_p1, nrf_p1, ntf_p1, npf_p1
00961 integer :: nrg_p2, ntg_p2, npg_p2, nrf_p2, ntf_p2, npf_p2
00962 integer :: nrg_p3, ntg_p3, npg_p3, nrf_p3, ntf_p3, npf_p3
00963
00964 real(long) :: rc_p1, thc_p1, phic_p1, varpic_p1, rcf_p1, rsca_p1
00965 real(long) :: rc_p2, thc_p2, phic_p2, varpic_p2, rcf_p2, rsca_p2
00966 real(long) :: rc_p3, thc_p3, phic_p3, varpic_p3
00967 real(long) :: r4(4), th4(4), phi4(4), fr4(4), ft4(4), fp4(4)
00968 real(long) :: fr4psi(4) , ft4psi(4) , fp4psi(4)
00969 real(long) :: fr4alph(4) , ft4alph(4) , fp4alph(4)
00970 real(long) :: fr4bvxd(4) , ft4bvxd(4) , fp4bvxd(4)
00971 real(long) :: fr4bvyd(4) , ft4bvyd(4) , fp4bvyd(4)
00972 real(long) :: fr4bvzd(4) , ft4bvzd(4) , fp4bvzd(4)
00973 real(long) :: fr4axx(4) , ft4axx(4) , fp4axx(4)
00974 real(long) :: fr4axy(4) , ft4axy(4) , fp4axy(4)
00975 real(long) :: fr4axz(4) , ft4axz(4) , fp4axz(4)
00976 real(long) :: fr4ayy(4) , ft4ayy(4) , fp4ayy(4)
00977 real(long) :: fr4ayz(4) , ft4ayz(4) , fp4ayz(4)
00978 real(long) :: fr4azz(4) , ft4azz(4) , fp4azz(4)
00979 real(long) :: fr4emd(4) , ft4emd(4) , fp4emd(4)
00980 real(long) :: fr4vepxf(4) , ft4vepxf(4) , fp4vepxf(4)
00981 real(long) :: fr4vepyf(4) , ft4vepyf(4) , fp4vepyf(4)
00982 real(long) :: fr4vepzf(4) , ft4vepzf(4) , fp4vepzf(4)
00983
00984 real(long) :: fr4psif(4) , ft4psif(4) , fp4psif(4)
00985 real(long) :: fr4alphf(4) , ft4alphf(4) , fp4alphf(4)
00986 real(long) :: fr4bvxdf(4) , ft4bvxdf(4) , fp4bvxdf(4)
00987 real(long) :: fr4bvydf(4) , ft4bvydf(4) , fp4bvydf(4)
00988 real(long) :: fr4bvzdf(4) , ft4bvzdf(4) , fp4bvzdf(4)
00989
00990 integer :: irg, itg, ipg, irgex, itgex, ipgex
00991 integer :: ir0, it0, ip0, irg0 , itg0 , ipg0, ii, jj, kk
00992 real(long), external :: lagint_4th
00993
00994 real(8), pointer :: rg_p1(:), rgex_p1(:), thgex_p1(:), phigex_p1(:)
00995 integer, pointer :: irgex_r_p1(:), itgex_th_p1(:), ipgex_phi_p1(:)
00996 integer, pointer :: itgex_r_p1(:,:), ipgex_r_p1(:,:), ipgex_th_p1(:,:)
00997 real(8), pointer :: emd_p1(:,:,:), vep_p1(:,:,:), rs_p1(:,:)
00998 real(8), pointer :: vepxf_p1(:,:,:), vepyf_p1(:,:,:), vepzf_p1(:,:,:)
00999 real(8), pointer :: psif_p1(:,:,:), alphf_p1(:,:,:), bvxdf_p1(:,:,:), bvydf_p1(:,:,:), bvzdf_p1(:,:,:)
01000 real(8), pointer :: psi_p1(:,:,:), alph_p1(:,:,:), bvxd_p1(:,:,:), bvyd_p1(:,:,:), bvzd_p1(:,:,:)
01001 real(8), pointer :: axx_p1(:,:,:), axy_p1(:,:,:) , axz_p1(:,:,:) , ayy_p1(:,:,:) , ayz_p1(:,:,:), azz_p1(:,:,:)
01002
01003 real(8), pointer :: rg_p2(:), rgex_p2(:), thgex_p2(:), phigex_p2(:)
01004 integer, pointer :: irgex_r_p2(:), itgex_th_p2(:), ipgex_phi_p2(:)
01005 integer, pointer :: itgex_r_p2(:,:), ipgex_r_p2(:,:), ipgex_th_p2(:,:)
01006 real(8), pointer :: emd_p2(:,:,:), vep_p2(:,:,:), rs_p2(:,:)
01007 real(8), pointer :: vepxf_p2(:,:,:), vepyf_p2(:,:,:), vepzf_p2(:,:,:)
01008 real(8), pointer :: psif_p2(:,:,:), alphf_p2(:,:,:), bvxdf_p2(:,:,:), bvydf_p2(:,:,:), bvzdf_p2(:,:,:)
01009 real(8), pointer :: psi_p2(:,:,:), alph_p2(:,:,:), bvxd_p2(:,:,:), bvyd_p2(:,:,:), bvzd_p2(:,:,:)
01010 real(8), pointer :: axx_p2(:,:,:), axy_p2(:,:,:) , axz_p2(:,:,:) , ayy_p2(:,:,:) , ayz_p2(:,:,:), azz_p2(:,:,:)
01011
01012 real(8), pointer :: rg_p3(:), rgex_p3(:), thgex_p3(:), phigex_p3(:)
01013 integer, pointer :: irgex_r_p3(:), itgex_th_p3(:), ipgex_phi_p3(:)
01014 integer, pointer :: itgex_r_p3(:,:), ipgex_r_p3(:,:), ipgex_th_p3(:,:)
01015 real(8), pointer :: psi_p3(:,:,:), alph_p3(:,:,:), bvxd_p3(:,:,:), bvyd_p3(:,:,:), bvzd_p3(:,:,:)
01016 real(8), pointer :: axx_p3(:,:,:), axy_p3(:,:,:) , axz_p3(:,:,:) , ayy_p3(:,:,:) , ayz_p3(:,:,:), azz_p3(:,:,:)
01017
01018 gxx=0.0d0; gxy=0.0d0; gxz=0.0d0; gyy=0.0d0; gyz=0.0d0; gzz=0.0d0
01019 kxx=0.0d0; kxy=0.0d0; kxz=0.0d0; kyy=0.0d0; kyz=0.0d0; kzz=0.0d0
01020 axx=0.0d0; axy=0.0d0; axz=0.0d0; ayy=0.0d0; ayz=0.0d0; azz=0.0d0
01021
01022
01023
01024
01025
01026
01027
01028 call allocate_grid_parameter_mpt
01029 call allocate_grid_parameter_binary_excision_mpt
01030 call allocate_def_matter_parameter_mpt
01031 do impt = 1, nmpt
01032 call read_parameter_mpt_cactus(impt,dir_path)
01033 if (impt .le. 2) call read_surf_parameter_mpt_cactus(impt,dir_path)
01034 call copy_grid_parameter_to_mpt(impt)
01035 call read_parameter_binary_excision_mpt_cactus(impt,dir_path)
01036 call copy_grid_parameter_binary_excision_to_mpt(impt)
01037 if (impt .le. 2) call peos_initialize_mpt_cactus(impt,dir_path)
01038 call copy_def_peos_parameter_to_mpt(impt)
01039 end do
01040
01041 call set_allocate_size_mpt
01042 call allocate_trig_grav_mphi
01043 call allocate_trigonometry_grav_phi_mpt
01044
01045 do impt = 1, nmpt
01046 call copy_grid_parameter_from_mpt(impt)
01047 call copy_grid_parameter_binary_excision_from_mpt(impt)
01048 call copy_def_peos_parameter_from_mpt(impt)
01049 call coordinate_patch_kit_grav_grid_coc2cac_mpt(3)
01050 call calc_parameter_binary_excision
01051 call copy_grid_parameter_to_mpt(impt)
01052 call copy_grid_parameter_binary_excision_to_mpt(impt)
01053 call copy_coordinate_grav_extended_to_mpt(impt)
01054 call copy_coordinate_grav_phi_to_mpt(impt)
01055 call copy_coordinate_grav_r_to_mpt(impt)
01056 call copy_coordinate_grav_theta_to_mpt(impt)
01057 call copy_def_binary_parameter_to_mpt(impt)
01058 call copy_trigonometry_grav_phi_to_mpt(impt)
01059 call copy_trigonometry_grav_theta_to_mpt(impt)
01060 end do
01061
01062 do impt = 1,nmpt
01063
01064 call copy_grid_parameter_from_mpt(impt)
01065 call copy_grid_parameter_binary_excision_from_mpt(impt)
01066 call copy_coordinate_grav_extended_from_mpt(impt)
01067 call copy_coordinate_grav_phi_from_mpt(impt)
01068 call copy_coordinate_grav_r_from_mpt(impt)
01069 call copy_coordinate_grav_theta_from_mpt(impt)
01070 call copy_def_binary_parameter_from_mpt(impt)
01071 call copy_trigonometry_grav_phi_from_mpt(impt)
01072 call copy_trigonometry_grav_theta_from_mpt(impt)
01073
01074
01075 if (impt==1) then
01076 nrg_p1=nrg; ntg_p1=ntg; npg_p1=npg; nrf_p1=nrf; ntf_p1=ntf; npf_p1=npf
01077 allocate ( rg_p1( 0:nnrg))
01078 allocate ( rgex_p1(-2:nnrg+2))
01079 allocate ( thgex_p1(-2:nntg+2))
01080 allocate ( phigex_p1(-2:nnpg+2))
01081 allocate ( irgex_r_p1(-2:nnrg+2))
01082 allocate ( itgex_th_p1(-2:nntg+2))
01083 allocate (ipgex_phi_p1(-2:nnpg+2))
01084
01085 allocate ( itgex_r_p1(0:nntg,-2:nnrg+2))
01086 allocate ( ipgex_r_p1(0:nnpg,-2:nnrg+2))
01087 allocate (ipgex_th_p1(0:nnpg,-2:nntg+2))
01088
01089 rg_p1=rg; rgex_p1=rgex; thgex_p1=thgex; phigex_p1=phigex
01090 irgex_r_p1=irgex_r; itgex_th_p1=itgex_th; ipgex_phi_p1=ipgex_phi
01091 itgex_r_p1=itgex_r; ipgex_r_p1=ipgex_r; ipgex_th_p1=ipgex_th
01092
01093 rr3 = 0.7d0*(rgout - rgmid)
01094 dis_cm = dis
01095 r_surf_p1 = r_surf
01096 write(6,'(a13,i1,a8)') "Reading COCP-", impt, " data..."
01097
01098 allocate ( emd_p1(0:nrf,0:ntf,0:npf))
01099 allocate ( vep_p1(0:nrf,0:ntf,0:npf))
01100 allocate (vepxf_p1(0:nrf,0:ntf,0:npf))
01101 allocate (vepyf_p1(0:nrf,0:ntf,0:npf))
01102 allocate (vepzf_p1(0:nrf,0:ntf,0:npf))
01103 allocate ( psif_p1(0:nrf,0:ntf,0:npf))
01104 allocate (alphf_p1(0:nrf,0:ntf,0:npf))
01105 allocate (bvxdf_p1(0:nrf,0:ntf,0:npf))
01106 allocate (bvydf_p1(0:nrf,0:ntf,0:npf))
01107 allocate (bvzdf_p1(0:nrf,0:ntf,0:npf))
01108 allocate ( rs_p1(0:ntf,0:npf))
01109 allocate ( psi_p1(0:nrg,0:ntg,0:npg))
01110 allocate ( alph_p1(0:nrg,0:ntg,0:npg))
01111 allocate ( bvxd_p1(0:nrg,0:ntg,0:npg))
01112 allocate ( bvyd_p1(0:nrg,0:ntg,0:npg))
01113 allocate ( bvzd_p1(0:nrg,0:ntg,0:npg))
01114 allocate ( axx_p1(0:nrg,0:ntg,0:npg))
01115 allocate ( axy_p1(0:nrg,0:ntg,0:npg))
01116 allocate ( axz_p1(0:nrg,0:ntg,0:npg))
01117 allocate ( ayy_p1(0:nrg,0:ntg,0:npg))
01118 allocate ( ayz_p1(0:nrg,0:ntg,0:npg))
01119 allocate ( azz_p1(0:nrg,0:ntg,0:npg))
01120 emd_p1=0.0d0; vep_p1 =0.0d0; rs_p1 =0.0d0
01121 psi_p1=0.0d0; alph_p1=0.0d0; bvxd_p1=0.0d0; bvyd_p1=0.0d0; bvzd_p1=0.0d0
01122 axx_p1=0.0d0; axy_p1 =0.0d0; axz_p1 =0.0d0; ayy_p1=0.0d0; ayz_p1=0.0d0; azz_p1=0.0d0
01123
01124 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt1.las",psi_p1,alph_p1,bvxd_p1,bvyd_p1,bvzd_p1)
01125
01126 call IO_input_CF_flir_export(trim(dir_path)//"/bnsflu_3D_mpt1.las",emd_p1,vep_p1,ome_p1,ber_p1,radi_p1)
01127
01128 call IO_input_CF_surf_export(trim(dir_path)//"/bnssur_3D_mpt1.las",rs_p1)
01129
01130 call excurve_CF_gridpoint_export(alph_p1,bvxd_p1,bvyd_p1,bvzd_p1, &
01131 & axx_p1, axy_p1, axz_p1, ayy_p1, ayz_p1, azz_p1)
01132
01133 call interpo_gr2fl_metric_CF_export(alph_p1, psi_p1, bvxd_p1, bvyd_p1, bvzd_p1, &
01134 & alphf_p1, psif_p1, bvxdf_p1, bvydf_p1, bvzdf_p1, rs_p1)
01135
01136 call calc_gradvep_export(vep_p1,vepxf_p1,vepyf_p1,vepzf_p1,rs_p1)
01137 end if
01138 if (impt==2) then
01139 nrg_p2=nrg; ntg_p2=ntg; npg_p2=npg; nrf_p2=nrf; ntf_p2=ntf; npf_p2=npf
01140 allocate ( rg_p2( 0:nnrg))
01141 allocate ( rgex_p2(-2:nnrg+2))
01142 allocate ( thgex_p2(-2:nntg+2))
01143 allocate ( phigex_p2(-2:nnpg+2))
01144 allocate ( irgex_r_p2(-2:nnrg+2))
01145 allocate ( itgex_th_p2(-2:nntg+2))
01146 allocate (ipgex_phi_p2(-2:nnpg+2))
01147
01148 allocate ( itgex_r_p2(0:nntg,-2:nnrg+2))
01149 allocate ( ipgex_r_p2(0:nnpg,-2:nnrg+2))
01150 allocate (ipgex_th_p2(0:nnpg,-2:nntg+2))
01151
01152 rg_p2=rg; rgex_p2=rgex; thgex_p2=thgex; phigex_p2=phigex
01153 irgex_r_p2=irgex_r; itgex_th_p2=itgex_th; ipgex_phi_p2=ipgex_phi
01154 itgex_r_p2=itgex_r; ipgex_r_p2=ipgex_r; ipgex_th_p2=ipgex_th
01155
01156 r_surf_p2 = r_surf
01157 write(6,'(a13,i1,a8)') "Reading COCP-", impt, " data..."
01158
01159 allocate ( emd_p2(0:nrf,0:ntf,0:npf))
01160 allocate ( vep_p2(0:nrf,0:ntf,0:npf))
01161 allocate (vepxf_p2(0:nrf,0:ntf,0:npf))
01162 allocate (vepyf_p2(0:nrf,0:ntf,0:npf))
01163 allocate (vepzf_p2(0:nrf,0:ntf,0:npf))
01164 allocate ( psif_p2(0:nrf,0:ntf,0:npf))
01165 allocate (alphf_p2(0:nrf,0:ntf,0:npf))
01166 allocate (bvxdf_p2(0:nrf,0:ntf,0:npf))
01167 allocate (bvydf_p2(0:nrf,0:ntf,0:npf))
01168 allocate (bvzdf_p2(0:nrf,0:ntf,0:npf))
01169 allocate ( rs_p2(0:ntf,0:npf))
01170 allocate ( psi_p2(0:nrg,0:ntg,0:npg))
01171 allocate ( alph_p2(0:nrg,0:ntg,0:npg))
01172 allocate ( bvxd_p2(0:nrg,0:ntg,0:npg))
01173 allocate ( bvyd_p2(0:nrg,0:ntg,0:npg))
01174 allocate ( bvzd_p2(0:nrg,0:ntg,0:npg))
01175 allocate ( axx_p2(0:nrg,0:ntg,0:npg))
01176 allocate ( axy_p2(0:nrg,0:ntg,0:npg))
01177 allocate ( axz_p2(0:nrg,0:ntg,0:npg))
01178 allocate ( ayy_p2(0:nrg,0:ntg,0:npg))
01179 allocate ( ayz_p2(0:nrg,0:ntg,0:npg))
01180 allocate ( azz_p2(0:nrg,0:ntg,0:npg))
01181 emd_p2=0.0d0; vep_p2=0.0d0; rs_p2=0.0d0
01182 psi_p2=0.0d0; alph_p2=0.0d0; bvxd_p2=0.0d0; bvyd_p2=0.0d0; bvzd_p2=0.0d0
01183 axx_p2=0.0d0; axy_p2=0.0d0; axz_p2=0.0d0; ayy_p2=0.0d0; ayz_p2=0.0d0; azz_p2=0.0d0
01184
01185 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt2.las",psi_p2,alph_p2,bvxd_p2,bvyd_p2,bvzd_p2)
01186
01187 call IO_input_CF_flir_export(trim(dir_path)//"/bnsflu_3D_mpt2.las",emd_p2,vep_p2,ome_p2,ber_p2,radi_p2)
01188
01189 call IO_input_CF_surf_export(trim(dir_path)//"/bnssur_3D_mpt2.las",rs_p2)
01190
01191 call excurve_CF_gridpoint_export(alph_p2,bvxd_p2,bvyd_p2,bvzd_p2, &
01192 & axx_p2, axy_p2, axz_p2, ayy_p2, ayz_p2, azz_p2)
01193
01194 call interpo_gr2fl_metric_CF_export(alph_p2, psi_p2, bvxd_p2, bvyd_p2, bvzd_p2, &
01195 & alphf_p2, psif_p2, bvxdf_p2, bvydf_p2, bvzdf_p2, rs_p2)
01196
01197 call calc_gradvep_export(vep_p2,vepxf_p2,vepyf_p2,vepzf_p2,rs_p2)
01198
01199 vepxf_p2 = - vepxf_p2
01200 vepyf_p2 = - vepyf_p2
01201 bvxdf_p2 = - bvxdf_p2
01202 bvydf_p2 = - bvydf_p2
01203 bvxd_p2 = - bvxd_p2
01204 bvyd_p2 = - bvyd_p2
01205 axz_p2 = - axz_p2
01206 ayz_p2 = - ayz_p2
01207 end if
01208 if (impt==3) then
01209 nrg_p3=nrg; ntg_p3=ntg; npg_p3=npg; nrf_p3=nrf; ntf_p3=ntf; npf_p3=npf
01210 allocate ( rg_p3( 0:nnrg))
01211 allocate ( rgex_p3(-2:nnrg+2))
01212 allocate ( thgex_p3(-2:nntg+2))
01213 allocate ( phigex_p3(-2:nnpg+2))
01214 allocate ( irgex_r_p3(-2:nnrg+2))
01215 allocate ( itgex_th_p3(-2:nntg+2))
01216 allocate (ipgex_phi_p3(-2:nnpg+2))
01217
01218 allocate ( itgex_r_p3(0:nntg,-2:nnrg+2))
01219 allocate ( ipgex_r_p3(0:nnpg,-2:nnrg+2))
01220 allocate (ipgex_th_p3(0:nnpg,-2:nntg+2))
01221
01222 rg_p3=rg; rgex_p3=rgex; thgex_p3=thgex; phigex_p3=phigex
01223 irgex_r_p3=irgex_r; itgex_th_p3=itgex_th; ipgex_phi_p3=ipgex_phi
01224 itgex_r_p3=itgex_r; ipgex_r_p3=ipgex_r; ipgex_th_p3=ipgex_th
01225
01226 write(6,'(a13,i1,a8)') "Reading ARCP-", impt, " data..."
01227 allocate ( psi_p3(0:nrg,0:ntg,0:npg))
01228 allocate (alph_p3(0:nrg,0:ntg,0:npg))
01229 allocate (bvxd_p3(0:nrg,0:ntg,0:npg))
01230 allocate (bvyd_p3(0:nrg,0:ntg,0:npg))
01231 allocate (bvzd_p3(0:nrg,0:ntg,0:npg))
01232 allocate ( axx_p3(0:nrg,0:ntg,0:npg))
01233 allocate ( axy_p3(0:nrg,0:ntg,0:npg))
01234 allocate ( axz_p3(0:nrg,0:ntg,0:npg))
01235 allocate ( ayy_p3(0:nrg,0:ntg,0:npg))
01236 allocate ( ayz_p3(0:nrg,0:ntg,0:npg))
01237 allocate ( azz_p3(0:nrg,0:ntg,0:npg))
01238 psi_p3=0.0d0; alph_p3=0.0d0; bvxd_p3=0.0d0; bvyd_p3=0.0d0; bvzd_p3=0.0d0
01239 axx_p3=0.0d0; axy_p3=0.0d0; axz_p3=0.0d0; ayy_p3=0.0d0; ayz_p3=0.0d0; azz_p3=0.0d0
01240
01241 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt3.las",psi_p3,alph_p3,bvxd_p3,bvyd_p3,bvzd_p3)
01242
01243 call excurve_CF_gridpoint_export(alph_p3,bvxd_p3,bvyd_p3,bvzd_p3, &
01244 & axx_p3, axy_p3, axz_p3, ayy_p3, ayz_p3, azz_p3)
01245
01246 end if
01247 end do
01248 write(6,'(2e20.12)') emd_p1(0,0,0), emd_p1(58,0,0)
01249 write(6,'(3e20.12)') ome_p1, ber_p1, radi_p1
01250 write(6,'(e20.12)') dis_cm
01251
01252 write(6,'(a56)', ADVANCE = "NO") "Give cartesian coordinates (x,y,z) separated by a space:"
01253 read(5,*) xcac,ycac,zcac
01254 write(6,'(a23,3e20.12)') "Point given wrt CACTUS:", xcac,ycac,zcac
01255 write(6,'(a38,2e20.12)') "Cocal radius scale in COCP-1, COCP-2 :", radi_p1, radi_p2
01256 write(6,'(a38,2e20.12)') "Cocal surface scale in COCP-1, COCP-2:", r_surf_p1, r_surf_p2
01257 xcoc = xcac/(radi_p1)
01258 ycoc = ycac/(radi_p1)
01259 zcoc = zcac/(radi_p1)
01260 write(6,'(a23,3e20.12)') "Point given wrt COCAL:", xcoc,ycoc,zcoc
01261
01262 rrcm = sqrt(xcoc**2 + ycoc**2 + zcoc**2)
01263 write(6,*) rrcm, rr3
01264 if (rrcm > rr3) then
01265
01266
01267
01268
01269
01270
01271
01272
01273
01274
01275
01276 xc_p3 = xcoc
01277 yc_p3 = ycoc
01278 zc_p3 = zcoc
01279 write(6,'(a39,3e20.12)') "Point given wrt COCP-3 in Cocal scale :", xc_p3,yc_p3,zc_p3
01280
01281
01282 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
01283 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
01284
01285 rc_p3 = dsqrt(dabs(xc_p3**2 + yc_p3**2 + zc_p3**2))
01286 varpic_p3 = dsqrt(dabs(xc_p3**2 + yc_p3**2))
01287 thc_p3 = dmod(2.0d0*pi + datan2(varpic_p3,zc_p3),2.0d0*pi)
01288 phic_p3 = dmod(2.0d0*pi + datan2( yc_p3,xc_p3),2.0d0*pi)
01289
01290 do irg = 0, nrg_p3+1
01291 if (rc_p3.lt.rgex_p3(irg).and.rc_p3.ge.rgex_p3(irg-1)) ir0 = min0(irg-2,nrg_p3-3)
01292 end do
01293 do itg = 0, ntg_p3+1
01294 if (thc_p3.lt.thgex_p3(itg).and.thc_p3.ge.thgex_p3(itg-1)) it0 = itg-2
01295 end do
01296 do ipg = 0, npg_p3+1
01297 if (phic_p3.lt.phigex_p3(ipg).and.phic_p3.ge.phigex_p3(ipg-1)) ip0 = ipg-2
01298 end do
01299
01300 do ii = 1, 4
01301 irg0 = ir0 + ii - 1
01302 itg0 = it0 + ii - 1
01303 ipg0 = ip0 + ii - 1
01304 r4(ii) = rgex_p3(irg0)
01305 th4(ii) = thgex_p3(itg0)
01306 phi4(ii) = phigex_p3(ipg0)
01307 end do
01308
01309 do kk = 1, 4
01310 ipg0 = ip0 + kk - 1
01311 do jj = 1, 4
01312 itg0 = it0 + jj - 1
01313 do ii = 1, 4
01314 irg0 = ir0 + ii - 1
01315 irgex = irgex_r_p3(irg0)
01316 itgex = itgex_r_p3(itgex_th_p3(itg0),irg0)
01317 ipgex = ipgex_r_p3(ipgex_th_p3(ipgex_phi_p3(ipg0),itg0),irg0)
01318 fr4psi(ii) = psi_p3(irgex,itgex,ipgex)
01319 fr4alph(ii) = alph_p3(irgex,itgex,ipgex)
01320 fr4bvxd(ii) = bvxd_p3(irgex,itgex,ipgex)
01321 fr4bvyd(ii) = bvyd_p3(irgex,itgex,ipgex)
01322 fr4bvzd(ii) = bvzd_p3(irgex,itgex,ipgex)
01323 fr4axx(ii) = axx_p3(irgex,itgex,ipgex)
01324 fr4axy(ii) = axy_p3(irgex,itgex,ipgex)
01325 fr4axz(ii) = axz_p3(irgex,itgex,ipgex)
01326 fr4ayy(ii) = ayy_p3(irgex,itgex,ipgex)
01327 fr4ayz(ii) = ayz_p3(irgex,itgex,ipgex)
01328 fr4azz(ii) = azz_p3(irgex,itgex,ipgex)
01329 end do
01330 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p3)
01331 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p3)
01332 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p3)
01333 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p3)
01334 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p3)
01335 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p3)
01336 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p3)
01337 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p3)
01338 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p3)
01339 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p3)
01340 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p3)
01341 end do
01342 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p3)
01343 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p3)
01344 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p3)
01345 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p3)
01346 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p3)
01347 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p3)
01348 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p3)
01349 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p3)
01350 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p3)
01351 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p3)
01352 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p3)
01353 end do
01354 psica = lagint_4th(phi4,fp4psi ,phic_p3)
01355 alphca = lagint_4th(phi4,fp4alph,phic_p3)
01356 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p3)
01357 bvydca = lagint_4th(phi4,fp4bvyd,phic_p3)
01358 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p3)
01359 axx = lagint_4th(phi4,fp4axx ,phic_p3)
01360 axy = lagint_4th(phi4,fp4axy ,phic_p3)
01361 axz = lagint_4th(phi4,fp4axz ,phic_p3)
01362 ayy = lagint_4th(phi4,fp4ayy ,phic_p3)
01363 ayz = lagint_4th(phi4,fp4ayz ,phic_p3)
01364 azz = lagint_4th(phi4,fp4azz ,phic_p3)
01365
01366 psi4ca = psica**4
01367 vxu = 0.0d0
01368 vyu = 0.0d0
01369 vzu = 0.0d0
01370 emdca = 0.0d0
01371 else
01372 if (xcoc<=0.0d0) then
01373
01374
01375
01376
01377
01378
01379
01380
01381
01382
01383
01384 xc_p1 = xcoc + dis_cm
01385 yc_p1 = ycoc
01386 zc_p1 = zcoc
01387 write(6,'(a39,3e20.12)') "Point given wrt COCP-1 in Cocal scale :", xc_p1,yc_p1,zc_p1
01388
01389 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
01390 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
01391
01392 rc_p1 = dsqrt(dabs(xc_p1**2 + yc_p1**2 + zc_p1**2))
01393 varpic_p1 = dsqrt(dabs(xc_p1**2 + yc_p1**2))
01394 thc_p1 = dmod(2.0d0*pi + datan2(varpic_p1,zc_p1),2.0d0*pi)
01395 phic_p1 = dmod(2.0d0*pi + datan2( yc_p1,xc_p1),2.0d0*pi)
01396
01397 do irg = 0, nrg_p1+1
01398 if (rc_p1.lt.rgex_p1(irg).and.rc_p1.ge.rgex_p1(irg-1)) ir0 = min0(irg-2,nrg_p1-3)
01399 end do
01400 do itg = 0, ntg_p1+1
01401 if (thc_p1.lt.thgex_p1(itg).and.thc_p1.ge.thgex_p1(itg-1)) it0 = itg-2
01402 end do
01403 do ipg = 0, npg_p1+1
01404 if (phic_p1.lt.phigex_p1(ipg).and.phic_p1.ge.phigex_p1(ipg-1)) ip0 = ipg-2
01405 end do
01406
01407
01408
01409 do ii = 1, 4
01410 irg0 = ir0 + ii - 1
01411 itg0 = it0 + ii - 1
01412 ipg0 = ip0 + ii - 1
01413 r4(ii) = rgex_p1(irg0)
01414 th4(ii) = thgex_p1(itg0)
01415 phi4(ii) = phigex_p1(ipg0)
01416 end do
01417
01418 do kk = 1, 4
01419 ipg0 = ip0 + kk - 1
01420 do jj = 1, 4
01421 itg0 = it0 + jj - 1
01422 do ii = 1, 4
01423 irg0 = ir0 + ii - 1
01424 irgex = irgex_r_p1(irg0)
01425 itgex = itgex_r_p1(itgex_th_p1(itg0),irg0)
01426 ipgex = ipgex_r_p1(ipgex_th_p1(ipgex_phi_p1(ipg0),itg0),irg0)
01427 fr4psi(ii) = psi_p1(irgex,itgex,ipgex)
01428 fr4alph(ii) = alph_p1(irgex,itgex,ipgex)
01429 fr4bvxd(ii) = bvxd_p1(irgex,itgex,ipgex)
01430 fr4bvyd(ii) = bvyd_p1(irgex,itgex,ipgex)
01431 fr4bvzd(ii) = bvzd_p1(irgex,itgex,ipgex)
01432 fr4axx(ii) = axx_p1(irgex,itgex,ipgex)
01433 fr4axy(ii) = axy_p1(irgex,itgex,ipgex)
01434 fr4axz(ii) = axz_p1(irgex,itgex,ipgex)
01435 fr4ayy(ii) = ayy_p1(irgex,itgex,ipgex)
01436 fr4ayz(ii) = ayz_p1(irgex,itgex,ipgex)
01437 fr4azz(ii) = azz_p1(irgex,itgex,ipgex)
01438 end do
01439 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p1)
01440 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p1)
01441 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p1)
01442 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p1)
01443 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p1)
01444 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p1)
01445 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p1)
01446 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p1)
01447 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p1)
01448 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p1)
01449 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p1)
01450 end do
01451 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p1)
01452 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p1)
01453 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p1)
01454 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p1)
01455 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p1)
01456 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p1)
01457 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p1)
01458 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p1)
01459 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p1)
01460 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p1)
01461 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p1)
01462 end do
01463 psica = lagint_4th(phi4,fp4psi ,phic_p1)
01464 alphca = lagint_4th(phi4,fp4alph,phic_p1)
01465 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p1)
01466 bvydca = lagint_4th(phi4,fp4bvyd,phic_p1)
01467 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p1)
01468 axx = lagint_4th(phi4,fp4axx ,phic_p1)
01469 axy = lagint_4th(phi4,fp4axy ,phic_p1)
01470 axz = lagint_4th(phi4,fp4axz ,phic_p1)
01471 ayy = lagint_4th(phi4,fp4ayy ,phic_p1)
01472 ayz = lagint_4th(phi4,fp4ayz ,phic_p1)
01473 azz = lagint_4th(phi4,fp4azz ,phic_p1)
01474
01475 psi4ca = psica**4
01476
01477
01478 call interpo_lag4th_2Dsurf(rsca_p1,rs_p1,thc_p1,phic_p1)
01479 rcf_p1 = rc_p1/rsca_p1
01480
01481 if (rcf_p1.le.rg_p1(nrf_p1)) then
01482 do irg = 0, nrf_p1+1
01483 if (rcf_p1.lt.rgex_p1(irg).and.rcf_p1.ge.rgex_p1(irg-1)) ir0 = min0(irg-2,nrf_p1-3)
01484 end do
01485
01486 do ii = 1, 4
01487 irg0 = ir0 + ii - 1
01488 r4(ii) = rgex_p1(irg0)
01489 end do
01490
01491 do kk = 1, 4
01492 ipg0 = ip0 + kk - 1
01493 do jj = 1, 4
01494 itg0 = it0 + jj - 1
01495 do ii = 1, 4
01496 irg0 = ir0 + ii - 1
01497 irgex = irgex_r_p1(irg0)
01498 itgex = itgex_r_p1(itgex_th_p1(itg0),irg0)
01499 ipgex = ipgex_r_p1(ipgex_th_p1(ipgex_phi_p1(ipg0),itg0),irg0)
01500 fr4emd(ii) = emd_p1(irgex,itgex,ipgex)
01501 fr4vepxf(ii) = vepxf_p1(irgex,itgex,ipgex)
01502 fr4vepyf(ii) = vepyf_p1(irgex,itgex,ipgex)
01503 fr4vepzf(ii) = vepzf_p1(irgex,itgex,ipgex)
01504
01505 fr4psif(ii) = psif_p1(irgex,itgex,ipgex)
01506 fr4alphf(ii) = alphf_p1(irgex,itgex,ipgex)
01507 fr4bvxdf(ii) = bvxdf_p1(irgex,itgex,ipgex)
01508 fr4bvydf(ii) = bvydf_p1(irgex,itgex,ipgex)
01509 fr4bvzdf(ii) = bvzdf_p1(irgex,itgex,ipgex)
01510 end do
01511 ft4emd(jj) = lagint_4th(r4,fr4emd ,rcf_p1)
01512 ft4vepxf(jj) = lagint_4th(r4,fr4vepxf,rcf_p1)
01513 ft4vepyf(jj) = lagint_4th(r4,fr4vepyf,rcf_p1)
01514 ft4vepzf(jj) = lagint_4th(r4,fr4vepzf,rcf_p1)
01515
01516 ft4psif(jj) = lagint_4th(r4,fr4psif ,rcf_p1)
01517 ft4alphf(jj) = lagint_4th(r4,fr4alphf,rcf_p1)
01518 ft4bvxdf(jj) = lagint_4th(r4,fr4bvxdf,rcf_p1)
01519 ft4bvydf(jj) = lagint_4th(r4,fr4bvydf,rcf_p1)
01520 ft4bvzdf(jj) = lagint_4th(r4,fr4bvzdf,rcf_p1)
01521 end do
01522 fp4emd(kk) = lagint_4th(th4,ft4emd ,thc_p1)
01523 fp4vepxf(kk) = lagint_4th(th4,ft4vepxf,thc_p1)
01524 fp4vepyf(kk) = lagint_4th(th4,ft4vepyf,thc_p1)
01525 fp4vepzf(kk) = lagint_4th(th4,ft4vepzf,thc_p1)
01526
01527 fp4psif(kk) = lagint_4th(th4,ft4psif ,thc_p1)
01528 fp4alphf(kk) = lagint_4th(th4,ft4alphf,thc_p1)
01529 fp4bvxdf(kk) = lagint_4th(th4,ft4bvxdf,thc_p1)
01530 fp4bvydf(kk) = lagint_4th(th4,ft4bvydf,thc_p1)
01531 fp4bvzdf(kk) = lagint_4th(th4,ft4bvzdf,thc_p1)
01532 end do
01533 emdca = lagint_4th(phi4,fp4emd ,phic_p1)
01534 vepxfca = lagint_4th(phi4,fp4vepxf,phic_p1)
01535 vepyfca = lagint_4th(phi4,fp4vepyf,phic_p1)
01536 vepzfca = lagint_4th(phi4,fp4vepzf,phic_p1)
01537
01538 psifca = lagint_4th(phi4,fp4psif ,phic_p1)
01539 alphfca = lagint_4th(phi4,fp4alphf,phic_p1)
01540 bvxdfca = lagint_4th(phi4,fp4bvxdf,phic_p1)
01541 bvydfca = lagint_4th(phi4,fp4bvydf,phic_p1)
01542 bvzdfca = lagint_4th(phi4,fp4bvzdf,phic_p1)
01543
01544 psif4ca = psifca**4
01545 alphfca2 = alphfca**2
01546
01547 bxcor = bvxdfca + ome_p1*(-ycoc)
01548 bycor = bvydfca + ome_p1*(xcoc)
01549 bzcor = bvzdfca
01550 lam_p1 = ber_p1 + bxcor*vepxfca + bycor*vepyfca + bzcor*vepzfca
01551
01552 huta = lam_p1/alphfca
01553
01554 vxu = (vepxfca/psif4ca )/huta
01555 vyu = (vepyfca/psif4ca )/huta
01556 vzu = (vepzfca/psif4ca )/huta
01557 else
01558 emdca=0.0d0; vepxfca=0.0d0; vepyfca=0.0d0; vepzfca=0.0d0
01559 vxu=0.0d0; vyu=0.0d0; vzu=0.0d0
01560 end if
01561 else
01562
01563
01564
01565
01566
01567
01568
01569
01570
01571
01572
01573 xc_p2 = -(xcoc - dis_cm)
01574 yc_p2 = -ycoc
01575 zc_p2 = zcoc
01576 write(6,'(a39,3e20.12)') "Point given wrt COCP-2 in Cocal scale :", xc_p2,yc_p2,zc_p2
01577
01578 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
01579 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
01580
01581 rc_p2 = dsqrt(dabs(xc_p2**2 + yc_p2**2 + zc_p2**2))
01582 varpic_p2 = dsqrt(dabs(xc_p2**2 + yc_p2**2))
01583 thc_p2 = dmod(2.0d0*pi + datan2(varpic_p2,zc_p2),2.0d0*pi)
01584 phic_p2 = dmod(2.0d0*pi + datan2( yc_p2,xc_p2),2.0d0*pi)
01585
01586 do irg = 0, nrg_p2+1
01587 if (rc_p2.lt.rgex_p2(irg).and.rc_p2.ge.rgex_p2(irg-1)) ir0 = min0(irg-2,nrg_p2-3)
01588 end do
01589 do itg = 0, ntg_p2+1
01590 if (thc_p2.lt.thgex_p2(itg).and.thc_p2.ge.thgex_p2(itg-1)) it0 = itg-2
01591 end do
01592 do ipg = 0, npg_p2+1
01593 if (phic_p2.lt.phigex_p2(ipg).and.phic_p2.ge.phigex_p2(ipg-1)) ip0 = ipg-2
01594 end do
01595
01596 do ii = 1, 4
01597 irg0 = ir0 + ii - 1
01598 itg0 = it0 + ii - 1
01599 ipg0 = ip0 + ii - 1
01600 r4(ii) = rgex_p2(irg0)
01601 th4(ii) = thgex_p2(itg0)
01602 phi4(ii) = phigex_p2(ipg0)
01603 end do
01604
01605 do kk = 1, 4
01606 ipg0 = ip0 + kk - 1
01607 do jj = 1, 4
01608 itg0 = it0 + jj - 1
01609 do ii = 1, 4
01610 irg0 = ir0 + ii - 1
01611 irgex = irgex_r_p2(irg0)
01612 itgex = itgex_r_p2(itgex_th_p2(itg0),irg0)
01613 ipgex = ipgex_r_p2(ipgex_th_p2(ipgex_phi_p2(ipg0),itg0),irg0)
01614 fr4psi(ii) = psi_p2(irgex,itgex,ipgex)
01615 fr4alph(ii) = alph_p2(irgex,itgex,ipgex)
01616 fr4bvxd(ii) = bvxd_p2(irgex,itgex,ipgex)
01617 fr4bvyd(ii) = bvyd_p2(irgex,itgex,ipgex)
01618 fr4bvzd(ii) = bvzd_p2(irgex,itgex,ipgex)
01619 fr4axx(ii) = axx_p2(irgex,itgex,ipgex)
01620 fr4axy(ii) = axy_p2(irgex,itgex,ipgex)
01621 fr4axz(ii) = axz_p2(irgex,itgex,ipgex)
01622 fr4ayy(ii) = ayy_p2(irgex,itgex,ipgex)
01623 fr4ayz(ii) = ayz_p2(irgex,itgex,ipgex)
01624 fr4azz(ii) = azz_p2(irgex,itgex,ipgex)
01625 end do
01626 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p2)
01627 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p2)
01628 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p2)
01629 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p2)
01630 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p2)
01631 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p2)
01632 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p2)
01633 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p2)
01634 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p2)
01635 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p2)
01636 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p2)
01637 end do
01638 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p2)
01639 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p2)
01640 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p2)
01641 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p2)
01642 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p2)
01643 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p2)
01644 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p2)
01645 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p2)
01646 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p2)
01647 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p2)
01648 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p2)
01649 end do
01650 psica = lagint_4th(phi4,fp4psi ,phic_p2)
01651 alphca = lagint_4th(phi4,fp4alph,phic_p2)
01652 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p2)
01653 bvydca = lagint_4th(phi4,fp4bvyd,phic_p2)
01654 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p2)
01655 axx = lagint_4th(phi4,fp4axx ,phic_p2)
01656 axy = lagint_4th(phi4,fp4axy ,phic_p2)
01657 axz = lagint_4th(phi4,fp4axz ,phic_p2)
01658 ayy = lagint_4th(phi4,fp4ayy ,phic_p2)
01659 ayz = lagint_4th(phi4,fp4ayz ,phic_p2)
01660 azz = lagint_4th(phi4,fp4azz ,phic_p2)
01661
01662 psi4ca = psica**4
01663 call interpo_lag4th_2Dsurf(rsca_p2,rs_p2,thc_p2,phic_p2)
01664 rcf_p2 = rc_p2/rsca_p2
01665
01666 if (rcf_p2.le.rg_p2(nrf_p2)) then
01667 do irg = 0, nrf_p2+1
01668 if (rcf_p2.lt.rgex_p2(irg).and.rcf_p2.ge.rgex_p2(irg-1)) ir0 = min0(irg-2,nrf_p2-3)
01669 end do
01670
01671 do ii = 1, 4
01672 irg0 = ir0 + ii - 1
01673 r4(ii) = rgex_p2(irg0)
01674 end do
01675
01676 do kk = 1, 4
01677 ipg0 = ip0 + kk - 1
01678 do jj = 1, 4
01679 itg0 = it0 + jj - 1
01680 do ii = 1, 4
01681 irg0 = ir0 + ii - 1
01682 irgex = irgex_r_p2(irg0)
01683 itgex = itgex_r_p2(itgex_th_p2(itg0),irg0)
01684 ipgex = ipgex_r_p2(ipgex_th_p2(ipgex_phi_p2(ipg0),itg0),irg0)
01685 fr4emd(ii) = emd_p2(irgex,itgex,ipgex)
01686 fr4vepxf(ii) = vepxf_p2(irgex,itgex,ipgex)
01687 fr4vepyf(ii) = vepyf_p2(irgex,itgex,ipgex)
01688 fr4vepzf(ii) = vepzf_p2(irgex,itgex,ipgex)
01689
01690 fr4psif(ii) = psif_p2(irgex,itgex,ipgex)
01691 fr4alphf(ii) = alphf_p2(irgex,itgex,ipgex)
01692 fr4bvxdf(ii) = bvxdf_p2(irgex,itgex,ipgex)
01693 fr4bvydf(ii) = bvydf_p2(irgex,itgex,ipgex)
01694 fr4bvzdf(ii) = bvzdf_p2(irgex,itgex,ipgex)
01695 end do
01696 ft4emd(jj) = lagint_4th(r4,fr4emd ,rcf_p2)
01697 ft4vepxf(jj) = lagint_4th(r4,fr4vepxf,rcf_p2)
01698 ft4vepyf(jj) = lagint_4th(r4,fr4vepyf,rcf_p2)
01699 ft4vepzf(jj) = lagint_4th(r4,fr4vepzf,rcf_p2)
01700
01701 ft4psif(jj) = lagint_4th(r4,fr4psif ,rcf_p2)
01702 ft4alphf(jj) = lagint_4th(r4,fr4alphf,rcf_p2)
01703 ft4bvxdf(jj) = lagint_4th(r4,fr4bvxdf,rcf_p2)
01704 ft4bvydf(jj) = lagint_4th(r4,fr4bvydf,rcf_p2)
01705 ft4bvzdf(jj) = lagint_4th(r4,fr4bvzdf,rcf_p2)
01706 end do
01707 fp4emd(kk) = lagint_4th(th4,ft4emd ,thc_p2)
01708 fp4vepxf(kk) = lagint_4th(th4,ft4vepxf,thc_p2)
01709 fp4vepyf(kk) = lagint_4th(th4,ft4vepyf,thc_p2)
01710 fp4vepzf(kk) = lagint_4th(th4,ft4vepzf,thc_p2)
01711
01712 fp4psif(kk) = lagint_4th(th4,ft4psif ,thc_p2)
01713 fp4alphf(kk) = lagint_4th(th4,ft4alphf,thc_p2)
01714 fp4bvxdf(kk) = lagint_4th(th4,ft4bvxdf,thc_p2)
01715 fp4bvydf(kk) = lagint_4th(th4,ft4bvydf,thc_p2)
01716 fp4bvzdf(kk) = lagint_4th(th4,ft4bvzdf,thc_p2)
01717 end do
01718 emdca = lagint_4th(phi4,fp4emd ,phic_p2)
01719 vepxfca = lagint_4th(phi4,fp4vepxf,phic_p2)
01720 vepyfca = lagint_4th(phi4,fp4vepyf,phic_p2)
01721 vepzfca = lagint_4th(phi4,fp4vepzf,phic_p2)
01722
01723 psifca = lagint_4th(phi4,fp4psif ,phic_p2)
01724 alphfca = lagint_4th(phi4,fp4alphf,phic_p2)
01725 bvxdfca = lagint_4th(phi4,fp4bvxdf,phic_p2)
01726 bvydfca = lagint_4th(phi4,fp4bvydf,phic_p2)
01727 bvzdfca = lagint_4th(phi4,fp4bvzdf,phic_p2)
01728
01729 psif4ca = psifca**4
01730 alphfca2 = alphfca**2
01731
01732 bxcor = bvxdfca + ome_p2*(-ycoc)
01733 bycor = bvydfca + ome_p2*(xcoc)
01734 bzcor = bvzdfca
01735 lam_p2 = ber_p2 + bxcor*vepxfca + bycor*vepyfca + bzcor*vepzfca
01736
01737 huta = lam_p2/alphfca
01738
01739 vxu = (vepxfca/psif4ca )/huta
01740 vyu = (vepyfca/psif4ca )/huta
01741 vzu = (vepzfca/psif4ca )/huta
01742 else
01743 emdca=0.0d0; vepxfca=0.0d0; vepyfca=0.0d0; vepzfca=0.0d0
01744 vxu=0.0d0; vyu=0.0d0; vzu=0.0d0
01745 end if
01746
01747 end if
01748 end if
01749
01750 gxx = psi4ca
01751 gxy = 0.0d0
01752 gxz = 0.0d0
01753 gyy = psi4ca
01754 gyz = 0.0d0
01755 gzz = psi4ca
01756
01757 kxx = psi4ca*axx/(radi_p1)
01758 kxy = psi4ca*axy/(radi_p1)
01759 kxz = psi4ca*axz/(radi_p1)
01760 kyy = psi4ca*ayy/(radi_p1)
01761 kyz = psi4ca*ayz/(radi_p1)
01762 kzz = psi4ca*azz/(radi_p1)
01763
01764 call peos_q2hprho(emdca, hca, preca, rhoca, eneca)
01765
01766 epsca = eneca/rhoca - 1.0d0
01767
01768 write(6,'(a6,e20.12)') "psi =", psica
01769 write(6,'(a6,e20.12)') "alph =", alphca
01770 write(6,'(a6,e20.12)') "bvxd =", bvxdca
01771 write(6,'(a6,e20.12)') "bvyd =", bvydca
01772 write(6,'(a6,e20.12)') "bvzd =", bvzdca
01773 write(6,'(a6,e20.12)') "Radi =", r_surf_p1*radi_p1
01774 write(6,'(a6,e20.12)') "Omeg =", ome_p1/radi_p1
01775 write(6,'(a6,e20.12)') "emd =", emdca
01776 write(6,'(a6,e20.12)') "h =", hca
01777 write(6,'(a6,e20.12)') "pre =", preca
01778 write(6,'(a6,e20.12)') "rho =", rhoca
01779 write(6,'(a6,e20.12)') "ene =", eneca
01780 write(6,'(a6,e20.12)') "eps =", epsca
01781 write(6,'(a6,e20.12)') "vepx =", vepxfca
01782 write(6,'(a6,e20.12)') "vepy =", vepyfca
01783 write(6,'(a6,e20.12)') "vepz =", vepzfca
01784
01785 write(6,'(a18)') "Kij at gridpoints:"
01786 write(6,'(3e20.12)') kxx, kxy, kxz
01787 write(6,'(3e20.12)') kxy, kyy, kyz
01788 write(6,'(3e20.12)') kxz, kyz, kzz
01789
01790 write(6,'(a13)') "v^i eulerian:"
01791 write(6,'(a6,e20.12)') "vxu =", vxu
01792 write(6,'(a6,e20.12)') "vyu =", vyu
01793 write(6,'(a6,e20.12)') "vzu =", vzu
01794
01795 write(6,'(a16)') "Deallocating...."
01796 deallocate( rg_p1); deallocate( rg_p2); deallocate( rg_p3)
01797 deallocate( rgex_p1); deallocate( rgex_p2); deallocate( rgex_p3)
01798 deallocate( thgex_p1); deallocate( thgex_p2); deallocate( thgex_p3)
01799 deallocate( phigex_p1); deallocate( phigex_p2); deallocate( phigex_p3)
01800 deallocate( irgex_r_p1); deallocate( irgex_r_p2); deallocate( irgex_r_p3)
01801 deallocate( itgex_th_p1); deallocate( itgex_th_p2); deallocate( itgex_th_p3)
01802 deallocate(ipgex_phi_p1); deallocate(ipgex_phi_p2); deallocate(ipgex_phi_p3)
01803 deallocate( itgex_r_p1); deallocate( itgex_r_p2); deallocate( itgex_r_p3)
01804 deallocate( ipgex_r_p1); deallocate( ipgex_r_p2); deallocate( ipgex_r_p3)
01805 deallocate( ipgex_th_p1); deallocate( ipgex_th_p2); deallocate( ipgex_th_p3)
01806
01807 deallocate( emd_p1); deallocate( emd_p2);
01808 deallocate( vep_p1); deallocate( vep_p2);
01809 deallocate(vepxf_p1); deallocate(vepxf_p2);
01810 deallocate(vepyf_p1); deallocate(vepyf_p2);
01811 deallocate(vepzf_p1); deallocate(vepzf_p2);
01812 deallocate( psif_p1); deallocate( psif_p2);
01813 deallocate(alphf_p1); deallocate(alphf_p2);
01814 deallocate(bvxdf_p1); deallocate(bvxdf_p2);
01815 deallocate(bvydf_p1); deallocate(bvydf_p2);
01816 deallocate(bvzdf_p1); deallocate(bvzdf_p2);
01817 deallocate( rs_p1); deallocate( rs_p2);
01818 deallocate( psi_p1); deallocate( psi_p2); deallocate(psi_p3)
01819 deallocate( alph_p1); deallocate( alph_p2); deallocate(alph_p3)
01820 deallocate( bvxd_p1); deallocate( bvxd_p2); deallocate(bvxd_p3)
01821 deallocate( bvyd_p1); deallocate( bvyd_p2); deallocate(bvyd_p3)
01822 deallocate( bvzd_p1); deallocate( bvzd_p2); deallocate(bvzd_p3)
01823 deallocate( axx_p1); deallocate( axx_p2); deallocate(axx_p3)
01824 deallocate( axy_p1); deallocate( axy_p2); deallocate(axy_p3)
01825 deallocate( axz_p1); deallocate( axz_p2); deallocate(axz_p3)
01826 deallocate( ayy_p1); deallocate( ayy_p2); deallocate(ayy_p3)
01827 deallocate( ayz_p1); deallocate( ayz_p2); deallocate(ayz_p3)
01828 deallocate( azz_p1); deallocate( azz_p2); deallocate(azz_p3)
01829
01830 END SUBROUTINE coc2cac_ir
01831
01832
01833
01834
01835
01836
01837
01838
01839 SUBROUTINE coc2cac_sp(dir_path)
01840
01841 use grid_parameter_binary_excision
01842 use phys_constant
01843 use grid_parameter
01844 use coordinate_grav_r
01845 use coordinate_grav_extended
01846 use interface_modules_cartesian
01847 use interface_calc_gradvep_export
01848 use trigonometry_grav_phi
01849 use def_binary_parameter, only : dis
01850 use def_matter_parameter_mpt
01851 use interface_interpo_lag4th_2Dsurf
01852 use interface_IO_input_CF_grav_export
01853 use interface_IO_input_CF_flsp_export
01854 use interface_IO_input_CF_surf_export
01855 use interface_excurve_CF_gridpoint_export
01856 use interface_interpo_gr2fl_metric_CF_export
01857 implicit none
01858 integer :: impt, impt_ex, ico, irr, isp
01859 real(8) :: confpow,psifcacp,wxspfca,wyspfca,wzspfca, wdvep,w2,wterm,huta,alphfca2
01860 character(30) :: char1
01861 character*400 :: dir_path
01862 character(len=1) :: np(5) = (/'1', '2','3', '4', '5'/)
01863 real(8) :: rr3, rrcm, xc,yc,zc, xc_p1, yc_p1, zc_p1, xc_p2, yc_p2, zc_p2, dis_cm
01864 real(8) :: xc_p3, yc_p3, zc_p3
01865 real(8) :: xcac, ycac, zcac
01866 real(8) :: xcoc, ycoc, zcoc
01867 real(8) :: emdca, vepca, psica, alphca, bvxdca, bvydca, bvzdca, psi4ca, psif4ca
01868 real(8) :: hca, preca, rhoca, eneca, epsca
01869 real(8) :: vepxfca, vepyfca, vepzfca, vxu, vyu, vzu, lam_p1, lam_p2
01870 real(8) :: bxcor, bycor, bzcor, bvxdfca, bvydfca, bvzdfca, psifca, alphfca
01871 real(8) :: gxx, gxy, gxz, gyy, gyz, gzz, kxx, kxy, kxz, kyy, kyz, kzz
01872 real(8) :: axx, axy, axz, ayy, ayz, azz
01873 real(8) :: ome_p1, ber_p1, radi_p1, r_surf_p1
01874 real(8) :: ome_p2, ber_p2, radi_p2, r_surf_p2
01875 integer :: nrg_p1, ntg_p1, npg_p1, nrf_p1, ntf_p1, npf_p1
01876 integer :: nrg_p2, ntg_p2, npg_p2, nrf_p2, ntf_p2, npf_p2
01877 integer :: nrg_p3, ntg_p3, npg_p3, nrf_p3, ntf_p3, npf_p3
01878
01879 real(long) :: rc_p1, thc_p1, phic_p1, varpic_p1, rcf_p1, rsca_p1
01880 real(long) :: rc_p2, thc_p2, phic_p2, varpic_p2, rcf_p2, rsca_p2
01881 real(long) :: rc_p3, thc_p3, phic_p3, varpic_p3
01882 real(long) :: r4(4), th4(4), phi4(4), fr4(4), ft4(4), fp4(4)
01883 real(long) :: fr4psi(4) , ft4psi(4) , fp4psi(4)
01884 real(long) :: fr4alph(4) , ft4alph(4) , fp4alph(4)
01885 real(long) :: fr4bvxd(4) , ft4bvxd(4) , fp4bvxd(4)
01886 real(long) :: fr4bvyd(4) , ft4bvyd(4) , fp4bvyd(4)
01887 real(long) :: fr4bvzd(4) , ft4bvzd(4) , fp4bvzd(4)
01888 real(long) :: fr4axx(4) , ft4axx(4) , fp4axx(4)
01889 real(long) :: fr4axy(4) , ft4axy(4) , fp4axy(4)
01890 real(long) :: fr4axz(4) , ft4axz(4) , fp4axz(4)
01891 real(long) :: fr4ayy(4) , ft4ayy(4) , fp4ayy(4)
01892 real(long) :: fr4ayz(4) , ft4ayz(4) , fp4ayz(4)
01893 real(long) :: fr4azz(4) , ft4azz(4) , fp4azz(4)
01894 real(long) :: fr4emd(4) , ft4emd(4) , fp4emd(4)
01895 real(long) :: fr4vepxf(4) , ft4vepxf(4) , fp4vepxf(4)
01896 real(long) :: fr4vepyf(4) , ft4vepyf(4) , fp4vepyf(4)
01897 real(long) :: fr4vepzf(4) , ft4vepzf(4) , fp4vepzf(4)
01898
01899 real(long) :: fr4wxspf(4) , ft4wxspf(4) , fp4wxspf(4)
01900 real(long) :: fr4wyspf(4) , ft4wyspf(4) , fp4wyspf(4)
01901 real(long) :: fr4wzspf(4) , ft4wzspf(4) , fp4wzspf(4)
01902
01903 real(long) :: fr4psif(4) , ft4psif(4) , fp4psif(4)
01904 real(long) :: fr4alphf(4) , ft4alphf(4) , fp4alphf(4)
01905 real(long) :: fr4bvxdf(4) , ft4bvxdf(4) , fp4bvxdf(4)
01906 real(long) :: fr4bvydf(4) , ft4bvydf(4) , fp4bvydf(4)
01907 real(long) :: fr4bvzdf(4) , ft4bvzdf(4) , fp4bvzdf(4)
01908
01909 integer :: irg, itg, ipg, irgex, itgex, ipgex
01910 integer :: ir0, it0, ip0, irg0 , itg0 , ipg0, ii, jj, kk
01911 real(long), external :: lagint_4th
01912
01913 real(8), pointer :: rg_p1(:), rgex_p1(:), thgex_p1(:), phigex_p1(:)
01914 integer, pointer :: irgex_r_p1(:), itgex_th_p1(:), ipgex_phi_p1(:)
01915 integer, pointer :: itgex_r_p1(:,:), ipgex_r_p1(:,:), ipgex_th_p1(:,:)
01916 real(8), pointer :: emd_p1(:,:,:), vep_p1(:,:,:), rs_p1(:,:)
01917 real(8), pointer :: vepxf_p1(:,:,:), vepyf_p1(:,:,:), vepzf_p1(:,:,:)
01918 real(8), pointer :: wxspf_p1(:,:,:), wyspf_p1(:,:,:), wzspf_p1(:,:,:)
01919 real(8), pointer :: psif_p1(:,:,:), alphf_p1(:,:,:), bvxdf_p1(:,:,:), bvydf_p1(:,:,:), bvzdf_p1(:,:,:)
01920 real(8), pointer :: psi_p1(:,:,:), alph_p1(:,:,:), bvxd_p1(:,:,:), bvyd_p1(:,:,:), bvzd_p1(:,:,:)
01921 real(8), pointer :: axx_p1(:,:,:), axy_p1(:,:,:) , axz_p1(:,:,:) , ayy_p1(:,:,:) , ayz_p1(:,:,:), azz_p1(:,:,:)
01922
01923 real(8), pointer :: rg_p2(:), rgex_p2(:), thgex_p2(:), phigex_p2(:)
01924 integer, pointer :: irgex_r_p2(:), itgex_th_p2(:), ipgex_phi_p2(:)
01925 integer, pointer :: itgex_r_p2(:,:), ipgex_r_p2(:,:), ipgex_th_p2(:,:)
01926 real(8), pointer :: emd_p2(:,:,:), vep_p2(:,:,:), rs_p2(:,:)
01927 real(8), pointer :: vepxf_p2(:,:,:), vepyf_p2(:,:,:), vepzf_p2(:,:,:)
01928 real(8), pointer :: wxspf_p2(:,:,:), wyspf_p2(:,:,:), wzspf_p2(:,:,:)
01929 real(8), pointer :: psif_p2(:,:,:), alphf_p2(:,:,:), bvxdf_p2(:,:,:), bvydf_p2(:,:,:), bvzdf_p2(:,:,:)
01930 real(8), pointer :: psi_p2(:,:,:), alph_p2(:,:,:), bvxd_p2(:,:,:), bvyd_p2(:,:,:), bvzd_p2(:,:,:)
01931 real(8), pointer :: axx_p2(:,:,:), axy_p2(:,:,:) , axz_p2(:,:,:) , ayy_p2(:,:,:) , ayz_p2(:,:,:), azz_p2(:,:,:)
01932
01933 real(8), pointer :: rg_p3(:), rgex_p3(:), thgex_p3(:), phigex_p3(:)
01934 integer, pointer :: irgex_r_p3(:), itgex_th_p3(:), ipgex_phi_p3(:)
01935 integer, pointer :: itgex_r_p3(:,:), ipgex_r_p3(:,:), ipgex_th_p3(:,:)
01936 real(8), pointer :: psi_p3(:,:,:), alph_p3(:,:,:), bvxd_p3(:,:,:), bvyd_p3(:,:,:), bvzd_p3(:,:,:)
01937 real(8), pointer :: axx_p3(:,:,:), axy_p3(:,:,:) , axz_p3(:,:,:) , ayy_p3(:,:,:) , ayz_p3(:,:,:), azz_p3(:,:,:)
01938
01939 confpow = 0.0d0
01940
01941 gxx=0.0d0; gxy=0.0d0; gxz=0.0d0; gyy=0.0d0; gyz=0.0d0; gzz=0.0d0
01942 kxx=0.0d0; kxy=0.0d0; kxz=0.0d0; kyy=0.0d0; kyz=0.0d0; kzz=0.0d0
01943 axx=0.0d0; axy=0.0d0; axz=0.0d0; ayy=0.0d0; ayz=0.0d0; azz=0.0d0
01944
01945
01946
01947
01948
01949
01950
01951 call allocate_grid_parameter_mpt
01952 call allocate_grid_parameter_binary_excision_mpt
01953 call allocate_def_matter_parameter_mpt
01954 do impt = 1, nmpt
01955 call read_parameter_mpt_cactus(impt,dir_path)
01956 if (impt .le. 2) call read_surf_parameter_mpt_cactus(impt,dir_path)
01957 call copy_grid_parameter_to_mpt(impt)
01958 call read_parameter_binary_excision_mpt_cactus(impt,dir_path)
01959 call copy_grid_parameter_binary_excision_to_mpt(impt)
01960 if (impt .le. 2) call peos_initialize_mpt_cactus(impt,dir_path)
01961 call copy_def_peos_parameter_to_mpt(impt)
01962 end do
01963
01964 call set_allocate_size_mpt
01965 call allocate_trig_grav_mphi
01966 call allocate_trigonometry_grav_phi_mpt
01967
01968 do impt = 1, nmpt
01969 call copy_grid_parameter_from_mpt(impt)
01970 call copy_grid_parameter_binary_excision_from_mpt(impt)
01971 call copy_def_peos_parameter_from_mpt(impt)
01972 call coordinate_patch_kit_grav_grid_coc2cac_mpt(3)
01973 call calc_parameter_binary_excision
01974 call copy_grid_parameter_to_mpt(impt)
01975 call copy_grid_parameter_binary_excision_to_mpt(impt)
01976 call copy_coordinate_grav_extended_to_mpt(impt)
01977 call copy_coordinate_grav_phi_to_mpt(impt)
01978 call copy_coordinate_grav_r_to_mpt(impt)
01979 call copy_coordinate_grav_theta_to_mpt(impt)
01980 call copy_def_binary_parameter_to_mpt(impt)
01981 call copy_trigonometry_grav_phi_to_mpt(impt)
01982 call copy_trigonometry_grav_theta_to_mpt(impt)
01983 end do
01984
01985 do impt = 1,nmpt
01986
01987 call copy_grid_parameter_from_mpt(impt)
01988 call copy_grid_parameter_binary_excision_from_mpt(impt)
01989 call copy_coordinate_grav_extended_from_mpt(impt)
01990 call copy_coordinate_grav_phi_from_mpt(impt)
01991 call copy_coordinate_grav_r_from_mpt(impt)
01992 call copy_coordinate_grav_theta_from_mpt(impt)
01993 call copy_def_binary_parameter_from_mpt(impt)
01994 call copy_trigonometry_grav_phi_from_mpt(impt)
01995 call copy_trigonometry_grav_theta_from_mpt(impt)
01996
01997
01998 if (impt==1) then
01999 nrg_p1=nrg; ntg_p1=ntg; npg_p1=npg; nrf_p1=nrf; ntf_p1=ntf; npf_p1=npf
02000 allocate ( rg_p1( 0:nnrg))
02001 allocate ( rgex_p1(-2:nnrg+2))
02002 allocate ( thgex_p1(-2:nntg+2))
02003 allocate ( phigex_p1(-2:nnpg+2))
02004 allocate ( irgex_r_p1(-2:nnrg+2))
02005 allocate ( itgex_th_p1(-2:nntg+2))
02006 allocate (ipgex_phi_p1(-2:nnpg+2))
02007
02008 allocate ( itgex_r_p1(0:nntg,-2:nnrg+2))
02009 allocate ( ipgex_r_p1(0:nnpg,-2:nnrg+2))
02010 allocate (ipgex_th_p1(0:nnpg,-2:nntg+2))
02011
02012 rg_p1=rg; rgex_p1=rgex; thgex_p1=thgex; phigex_p1=phigex
02013 irgex_r_p1=irgex_r; itgex_th_p1=itgex_th; ipgex_phi_p1=ipgex_phi
02014 itgex_r_p1=itgex_r; ipgex_r_p1=ipgex_r; ipgex_th_p1=ipgex_th
02015
02016 rr3 = 0.7d0*(rgout - rgmid)
02017 dis_cm = dis
02018 r_surf_p1 = r_surf
02019 write(6,'(a13,i1,a8)') "Reading COCP-", impt, " data..."
02020
02021 allocate ( emd_p1(0:nrf,0:ntf,0:npf))
02022 allocate ( vep_p1(0:nrf,0:ntf,0:npf))
02023 allocate (wxspf_p1(0:nrf,0:ntf,0:npf))
02024 allocate (wyspf_p1(0:nrf,0:ntf,0:npf))
02025 allocate (wzspf_p1(0:nrf,0:ntf,0:npf))
02026 allocate (vepxf_p1(0:nrf,0:ntf,0:npf))
02027 allocate (vepyf_p1(0:nrf,0:ntf,0:npf))
02028 allocate (vepzf_p1(0:nrf,0:ntf,0:npf))
02029 allocate ( psif_p1(0:nrf,0:ntf,0:npf))
02030 allocate (alphf_p1(0:nrf,0:ntf,0:npf))
02031 allocate (bvxdf_p1(0:nrf,0:ntf,0:npf))
02032 allocate (bvydf_p1(0:nrf,0:ntf,0:npf))
02033 allocate (bvzdf_p1(0:nrf,0:ntf,0:npf))
02034 allocate ( rs_p1(0:ntf,0:npf))
02035 allocate ( psi_p1(0:nrg,0:ntg,0:npg))
02036 allocate ( alph_p1(0:nrg,0:ntg,0:npg))
02037 allocate ( bvxd_p1(0:nrg,0:ntg,0:npg))
02038 allocate ( bvyd_p1(0:nrg,0:ntg,0:npg))
02039 allocate ( bvzd_p1(0:nrg,0:ntg,0:npg))
02040 allocate ( axx_p1(0:nrg,0:ntg,0:npg))
02041 allocate ( axy_p1(0:nrg,0:ntg,0:npg))
02042 allocate ( axz_p1(0:nrg,0:ntg,0:npg))
02043 allocate ( ayy_p1(0:nrg,0:ntg,0:npg))
02044 allocate ( ayz_p1(0:nrg,0:ntg,0:npg))
02045 allocate ( azz_p1(0:nrg,0:ntg,0:npg))
02046 emd_p1=0.0d0; vep_p1 =0.0d0; rs_p1 =0.0d0; wxspf_p1=0.0d0; wyspf_p1=0.0d0; wzspf_p1=0.0d0
02047 psi_p1=0.0d0; alph_p1=0.0d0; bvxd_p1=0.0d0; bvyd_p1=0.0d0; bvzd_p1=0.0d0
02048 axx_p1=0.0d0; axy_p1 =0.0d0; axz_p1 =0.0d0; ayy_p1=0.0d0; ayz_p1=0.0d0; azz_p1=0.0d0
02049
02050 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt1.las",psi_p1,alph_p1,bvxd_p1,bvyd_p1,bvzd_p1)
02051
02052 call IO_input_CF_flsp_export(trim(dir_path)//"/bnsflu_3D_mpt1.las",emd_p1,vep_p1,wxspf_p1,wyspf_p1, &
02053 & wzspf_p1,ome_p1,ber_p1,radi_p1)
02054
02055 call IO_input_CF_surf_export(trim(dir_path)//"/bnssur_3D_mpt1.las",rs_p1)
02056
02057 call excurve_CF_gridpoint_export(alph_p1,bvxd_p1,bvyd_p1,bvzd_p1, &
02058 & axx_p1, axy_p1, axz_p1, ayy_p1, ayz_p1, azz_p1)
02059
02060 call interpo_gr2fl_metric_CF_export(alph_p1, psi_p1, bvxd_p1, bvyd_p1, bvzd_p1, &
02061 & alphf_p1, psif_p1, bvxdf_p1, bvydf_p1, bvzdf_p1, rs_p1)
02062
02063 call calc_gradvep_export(vep_p1,vepxf_p1,vepyf_p1,vepzf_p1,rs_p1)
02064 end if
02065 if (impt==2) then
02066 nrg_p2=nrg; ntg_p2=ntg; npg_p2=npg; nrf_p2=nrf; ntf_p2=ntf; npf_p2=npf
02067 allocate ( rg_p2( 0:nnrg))
02068 allocate ( rgex_p2(-2:nnrg+2))
02069 allocate ( thgex_p2(-2:nntg+2))
02070 allocate ( phigex_p2(-2:nnpg+2))
02071 allocate ( irgex_r_p2(-2:nnrg+2))
02072 allocate ( itgex_th_p2(-2:nntg+2))
02073 allocate (ipgex_phi_p2(-2:nnpg+2))
02074
02075 allocate ( itgex_r_p2(0:nntg,-2:nnrg+2))
02076 allocate ( ipgex_r_p2(0:nnpg,-2:nnrg+2))
02077 allocate (ipgex_th_p2(0:nnpg,-2:nntg+2))
02078
02079 rg_p2=rg; rgex_p2=rgex; thgex_p2=thgex; phigex_p2=phigex
02080 irgex_r_p2=irgex_r; itgex_th_p2=itgex_th; ipgex_phi_p2=ipgex_phi
02081 itgex_r_p2=itgex_r; ipgex_r_p2=ipgex_r; ipgex_th_p2=ipgex_th
02082
02083 r_surf_p2 = r_surf
02084 write(6,'(a13,i1,a8)') "Reading COCP-", impt, " data..."
02085
02086 allocate ( emd_p2(0:nrf,0:ntf,0:npf))
02087 allocate ( vep_p2(0:nrf,0:ntf,0:npf))
02088 allocate (wxspf_p2(0:nrf,0:ntf,0:npf))
02089 allocate (wyspf_p2(0:nrf,0:ntf,0:npf))
02090 allocate (wzspf_p2(0:nrf,0:ntf,0:npf))
02091 allocate (vepxf_p2(0:nrf,0:ntf,0:npf))
02092 allocate (vepyf_p2(0:nrf,0:ntf,0:npf))
02093 allocate (vepzf_p2(0:nrf,0:ntf,0:npf))
02094 allocate ( psif_p2(0:nrf,0:ntf,0:npf))
02095 allocate (alphf_p2(0:nrf,0:ntf,0:npf))
02096 allocate (bvxdf_p2(0:nrf,0:ntf,0:npf))
02097 allocate (bvydf_p2(0:nrf,0:ntf,0:npf))
02098 allocate (bvzdf_p2(0:nrf,0:ntf,0:npf))
02099 allocate ( rs_p2(0:ntf,0:npf))
02100 allocate ( psi_p2(0:nrg,0:ntg,0:npg))
02101 allocate ( alph_p2(0:nrg,0:ntg,0:npg))
02102 allocate ( bvxd_p2(0:nrg,0:ntg,0:npg))
02103 allocate ( bvyd_p2(0:nrg,0:ntg,0:npg))
02104 allocate ( bvzd_p2(0:nrg,0:ntg,0:npg))
02105 allocate ( axx_p2(0:nrg,0:ntg,0:npg))
02106 allocate ( axy_p2(0:nrg,0:ntg,0:npg))
02107 allocate ( axz_p2(0:nrg,0:ntg,0:npg))
02108 allocate ( ayy_p2(0:nrg,0:ntg,0:npg))
02109 allocate ( ayz_p2(0:nrg,0:ntg,0:npg))
02110 allocate ( azz_p2(0:nrg,0:ntg,0:npg))
02111 emd_p2=0.0d0; vep_p2=0.0d0; rs_p2=0.0d0; wxspf_p2=0.0d0; wyspf_p2=0.0d0; wzspf_p2=0.0d0
02112 psi_p2=0.0d0; alph_p2=0.0d0; bvxd_p2=0.0d0; bvyd_p2=0.0d0; bvzd_p2=0.0d0
02113 axx_p2=0.0d0; axy_p2=0.0d0; axz_p2=0.0d0; ayy_p2=0.0d0; ayz_p2=0.0d0; azz_p2=0.0d0
02114
02115 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt2.las",psi_p2,alph_p2,bvxd_p2,bvyd_p2,bvzd_p2)
02116
02117 call IO_input_CF_flsp_export(trim(dir_path)//"/bnsflu_3D_mpt2.las",emd_p2,vep_p2,wxspf_p2,wyspf_p2, &
02118 & wzspf_p2,ome_p2,ber_p2,radi_p2)
02119
02120 call IO_input_CF_surf_export(trim(dir_path)//"/bnssur_3D_mpt2.las",rs_p2)
02121
02122 call excurve_CF_gridpoint_export(alph_p2,bvxd_p2,bvyd_p2,bvzd_p2, &
02123 & axx_p2, axy_p2, axz_p2, ayy_p2, ayz_p2, azz_p2)
02124
02125 call interpo_gr2fl_metric_CF_export(alph_p2, psi_p2, bvxd_p2, bvyd_p2, bvzd_p2, &
02126 & alphf_p2, psif_p2, bvxdf_p2, bvydf_p2, bvzdf_p2, rs_p2)
02127
02128 call calc_gradvep_export(vep_p2,vepxf_p2,vepyf_p2,vepzf_p2,rs_p2)
02129
02130 vepxf_p2 = - vepxf_p2
02131 vepyf_p2 = - vepyf_p2
02132 bvxdf_p2 = - bvxdf_p2
02133 bvydf_p2 = - bvydf_p2
02134 bvxd_p2 = - bvxd_p2
02135 bvyd_p2 = - bvyd_p2
02136 axz_p2 = - axz_p2
02137 ayz_p2 = - ayz_p2
02138 wxspf_p2 = - wxspf_p2
02139 wyspf_p2 = - wyspf_p2
02140 end if
02141 if (impt==3) then
02142 nrg_p3=nrg; ntg_p3=ntg; npg_p3=npg; nrf_p3=nrf; ntf_p3=ntf; npf_p3=npf
02143 allocate ( rg_p3( 0:nnrg))
02144 allocate ( rgex_p3(-2:nnrg+2))
02145 allocate ( thgex_p3(-2:nntg+2))
02146 allocate ( phigex_p3(-2:nnpg+2))
02147 allocate ( irgex_r_p3(-2:nnrg+2))
02148 allocate ( itgex_th_p3(-2:nntg+2))
02149 allocate (ipgex_phi_p3(-2:nnpg+2))
02150
02151 allocate ( itgex_r_p3(0:nntg,-2:nnrg+2))
02152 allocate ( ipgex_r_p3(0:nnpg,-2:nnrg+2))
02153 allocate (ipgex_th_p3(0:nnpg,-2:nntg+2))
02154
02155 rg_p3=rg; rgex_p3=rgex; thgex_p3=thgex; phigex_p3=phigex
02156 irgex_r_p3=irgex_r; itgex_th_p3=itgex_th; ipgex_phi_p3=ipgex_phi
02157 itgex_r_p3=itgex_r; ipgex_r_p3=ipgex_r; ipgex_th_p3=ipgex_th
02158
02159 write(6,'(a13,i1,a8)') "Reading ARCP-", impt, " data..."
02160 allocate ( psi_p3(0:nrg,0:ntg,0:npg))
02161 allocate (alph_p3(0:nrg,0:ntg,0:npg))
02162 allocate (bvxd_p3(0:nrg,0:ntg,0:npg))
02163 allocate (bvyd_p3(0:nrg,0:ntg,0:npg))
02164 allocate (bvzd_p3(0:nrg,0:ntg,0:npg))
02165 allocate ( axx_p3(0:nrg,0:ntg,0:npg))
02166 allocate ( axy_p3(0:nrg,0:ntg,0:npg))
02167 allocate ( axz_p3(0:nrg,0:ntg,0:npg))
02168 allocate ( ayy_p3(0:nrg,0:ntg,0:npg))
02169 allocate ( ayz_p3(0:nrg,0:ntg,0:npg))
02170 allocate ( azz_p3(0:nrg,0:ntg,0:npg))
02171 psi_p3=0.0d0; alph_p3=0.0d0; bvxd_p3=0.0d0; bvyd_p3=0.0d0; bvzd_p3=0.0d0
02172 axx_p3=0.0d0; axy_p3=0.0d0; axz_p3=0.0d0; ayy_p3=0.0d0; ayz_p3=0.0d0; azz_p3=0.0d0
02173
02174 call IO_input_CF_grav_export(trim(dir_path)//"/bnsgra_3D_mpt3.las",psi_p3,alph_p3,bvxd_p3,bvyd_p3,bvzd_p3)
02175
02176 call excurve_CF_gridpoint_export(alph_p3,bvxd_p3,bvyd_p3,bvzd_p3, &
02177 & axx_p3, axy_p3, axz_p3, ayy_p3, ayz_p3, azz_p3)
02178
02179 end if
02180 end do
02181 write(6,'(2e20.12)') emd_p1(0,0,0), emd_p1(58,0,0)
02182 write(6,'(3e20.12)') ome_p1, ber_p1, radi_p1
02183 write(6,'(e20.12)') dis_cm
02184
02185 write(6,'(a56)', ADVANCE = "NO") "Give cartesian coordinates (x,y,z) separated by a space:"
02186 read(5,*) xcac,ycac,zcac
02187 write(6,'(a23,3e20.12)') "Point given wrt CACTUS:", xcac,ycac,zcac
02188 write(6,'(a38,2e20.12)') "Cocal radius scale in COCP-1, COCP-2 :", radi_p1, radi_p2
02189 write(6,'(a38,2e20.12)') "Cocal surface scale in COCP-1, COCP-2:", r_surf_p1, r_surf_p2
02190 xcoc = xcac/(radi_p1)
02191 ycoc = ycac/(radi_p1)
02192 zcoc = zcac/(radi_p1)
02193 write(6,'(a23,3e20.12)') "Point given wrt COCAL:", xcoc,ycoc,zcoc
02194
02195 rrcm = sqrt(xcoc**2 + ycoc**2 + zcoc**2)
02196 write(6,*) rrcm, rr3
02197 if (rrcm > rr3) then
02198
02199
02200
02201
02202
02203
02204
02205
02206
02207
02208
02209 xc_p3 = xcoc
02210 yc_p3 = ycoc
02211 zc_p3 = zcoc
02212 write(6,'(a39,3e20.12)') "Point given wrt COCP-3 in Cocal scale :", xc_p3,yc_p3,zc_p3
02213
02214
02215 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
02216 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
02217
02218 rc_p3 = dsqrt(dabs(xc_p3**2 + yc_p3**2 + zc_p3**2))
02219 varpic_p3 = dsqrt(dabs(xc_p3**2 + yc_p3**2))
02220 thc_p3 = dmod(2.0d0*pi + datan2(varpic_p3,zc_p3),2.0d0*pi)
02221 phic_p3 = dmod(2.0d0*pi + datan2( yc_p3,xc_p3),2.0d0*pi)
02222
02223 do irg = 0, nrg_p3+1
02224 if (rc_p3.lt.rgex_p3(irg).and.rc_p3.ge.rgex_p3(irg-1)) ir0 = min0(irg-2,nrg_p3-3)
02225 end do
02226 do itg = 0, ntg_p3+1
02227 if (thc_p3.lt.thgex_p3(itg).and.thc_p3.ge.thgex_p3(itg-1)) it0 = itg-2
02228 end do
02229 do ipg = 0, npg_p3+1
02230 if (phic_p3.lt.phigex_p3(ipg).and.phic_p3.ge.phigex_p3(ipg-1)) ip0 = ipg-2
02231 end do
02232
02233 do ii = 1, 4
02234 irg0 = ir0 + ii - 1
02235 itg0 = it0 + ii - 1
02236 ipg0 = ip0 + ii - 1
02237 r4(ii) = rgex_p3(irg0)
02238 th4(ii) = thgex_p3(itg0)
02239 phi4(ii) = phigex_p3(ipg0)
02240 end do
02241
02242 do kk = 1, 4
02243 ipg0 = ip0 + kk - 1
02244 do jj = 1, 4
02245 itg0 = it0 + jj - 1
02246 do ii = 1, 4
02247 irg0 = ir0 + ii - 1
02248 irgex = irgex_r_p3(irg0)
02249 itgex = itgex_r_p3(itgex_th_p3(itg0),irg0)
02250 ipgex = ipgex_r_p3(ipgex_th_p3(ipgex_phi_p3(ipg0),itg0),irg0)
02251 fr4psi(ii) = psi_p3(irgex,itgex,ipgex)
02252 fr4alph(ii) = alph_p3(irgex,itgex,ipgex)
02253 fr4bvxd(ii) = bvxd_p3(irgex,itgex,ipgex)
02254 fr4bvyd(ii) = bvyd_p3(irgex,itgex,ipgex)
02255 fr4bvzd(ii) = bvzd_p3(irgex,itgex,ipgex)
02256 fr4axx(ii) = axx_p3(irgex,itgex,ipgex)
02257 fr4axy(ii) = axy_p3(irgex,itgex,ipgex)
02258 fr4axz(ii) = axz_p3(irgex,itgex,ipgex)
02259 fr4ayy(ii) = ayy_p3(irgex,itgex,ipgex)
02260 fr4ayz(ii) = ayz_p3(irgex,itgex,ipgex)
02261 fr4azz(ii) = azz_p3(irgex,itgex,ipgex)
02262 end do
02263 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p3)
02264 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p3)
02265 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p3)
02266 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p3)
02267 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p3)
02268 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p3)
02269 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p3)
02270 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p3)
02271 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p3)
02272 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p3)
02273 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p3)
02274 end do
02275 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p3)
02276 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p3)
02277 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p3)
02278 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p3)
02279 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p3)
02280 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p3)
02281 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p3)
02282 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p3)
02283 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p3)
02284 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p3)
02285 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p3)
02286 end do
02287 psica = lagint_4th(phi4,fp4psi ,phic_p3)
02288 alphca = lagint_4th(phi4,fp4alph,phic_p3)
02289 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p3)
02290 bvydca = lagint_4th(phi4,fp4bvyd,phic_p3)
02291 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p3)
02292 axx = lagint_4th(phi4,fp4axx ,phic_p3)
02293 axy = lagint_4th(phi4,fp4axy ,phic_p3)
02294 axz = lagint_4th(phi4,fp4axz ,phic_p3)
02295 ayy = lagint_4th(phi4,fp4ayy ,phic_p3)
02296 ayz = lagint_4th(phi4,fp4ayz ,phic_p3)
02297 azz = lagint_4th(phi4,fp4azz ,phic_p3)
02298
02299 psi4ca = psica**4
02300 vxu = 0.0d0
02301 vyu = 0.0d0
02302 vzu = 0.0d0
02303 emdca = 0.0d0
02304 else
02305 if (xcoc<=0.0d0) then
02306
02307
02308
02309
02310
02311
02312
02313
02314
02315
02316
02317 xc_p1 = xcoc + dis_cm
02318 yc_p1 = ycoc
02319 zc_p1 = zcoc
02320 write(6,'(a39,3e20.12)') "Point given wrt COCP-1 in Cocal scale :", xc_p1,yc_p1,zc_p1
02321
02322 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
02323 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
02324
02325 rc_p1 = dsqrt(dabs(xc_p1**2 + yc_p1**2 + zc_p1**2))
02326 varpic_p1 = dsqrt(dabs(xc_p1**2 + yc_p1**2))
02327 thc_p1 = dmod(2.0d0*pi + datan2(varpic_p1,zc_p1),2.0d0*pi)
02328 phic_p1 = dmod(2.0d0*pi + datan2( yc_p1,xc_p1),2.0d0*pi)
02329
02330 do irg = 0, nrg_p1+1
02331 if (rc_p1.lt.rgex_p1(irg).and.rc_p1.ge.rgex_p1(irg-1)) ir0 = min0(irg-2,nrg_p1-3)
02332 end do
02333 do itg = 0, ntg_p1+1
02334 if (thc_p1.lt.thgex_p1(itg).and.thc_p1.ge.thgex_p1(itg-1)) it0 = itg-2
02335 end do
02336 do ipg = 0, npg_p1+1
02337 if (phic_p1.lt.phigex_p1(ipg).and.phic_p1.ge.phigex_p1(ipg-1)) ip0 = ipg-2
02338 end do
02339
02340
02341
02342 do ii = 1, 4
02343 irg0 = ir0 + ii - 1
02344 itg0 = it0 + ii - 1
02345 ipg0 = ip0 + ii - 1
02346 r4(ii) = rgex_p1(irg0)
02347 th4(ii) = thgex_p1(itg0)
02348 phi4(ii) = phigex_p1(ipg0)
02349 end do
02350
02351 do kk = 1, 4
02352 ipg0 = ip0 + kk - 1
02353 do jj = 1, 4
02354 itg0 = it0 + jj - 1
02355 do ii = 1, 4
02356 irg0 = ir0 + ii - 1
02357 irgex = irgex_r_p1(irg0)
02358 itgex = itgex_r_p1(itgex_th_p1(itg0),irg0)
02359 ipgex = ipgex_r_p1(ipgex_th_p1(ipgex_phi_p1(ipg0),itg0),irg0)
02360 fr4psi(ii) = psi_p1(irgex,itgex,ipgex)
02361 fr4alph(ii) = alph_p1(irgex,itgex,ipgex)
02362 fr4bvxd(ii) = bvxd_p1(irgex,itgex,ipgex)
02363 fr4bvyd(ii) = bvyd_p1(irgex,itgex,ipgex)
02364 fr4bvzd(ii) = bvzd_p1(irgex,itgex,ipgex)
02365 fr4axx(ii) = axx_p1(irgex,itgex,ipgex)
02366 fr4axy(ii) = axy_p1(irgex,itgex,ipgex)
02367 fr4axz(ii) = axz_p1(irgex,itgex,ipgex)
02368 fr4ayy(ii) = ayy_p1(irgex,itgex,ipgex)
02369 fr4ayz(ii) = ayz_p1(irgex,itgex,ipgex)
02370 fr4azz(ii) = azz_p1(irgex,itgex,ipgex)
02371 end do
02372 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p1)
02373 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p1)
02374 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p1)
02375 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p1)
02376 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p1)
02377 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p1)
02378 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p1)
02379 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p1)
02380 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p1)
02381 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p1)
02382 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p1)
02383 end do
02384 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p1)
02385 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p1)
02386 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p1)
02387 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p1)
02388 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p1)
02389 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p1)
02390 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p1)
02391 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p1)
02392 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p1)
02393 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p1)
02394 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p1)
02395 end do
02396 psica = lagint_4th(phi4,fp4psi ,phic_p1)
02397 alphca = lagint_4th(phi4,fp4alph,phic_p1)
02398 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p1)
02399 bvydca = lagint_4th(phi4,fp4bvyd,phic_p1)
02400 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p1)
02401 axx = lagint_4th(phi4,fp4axx ,phic_p1)
02402 axy = lagint_4th(phi4,fp4axy ,phic_p1)
02403 axz = lagint_4th(phi4,fp4axz ,phic_p1)
02404 ayy = lagint_4th(phi4,fp4ayy ,phic_p1)
02405 ayz = lagint_4th(phi4,fp4ayz ,phic_p1)
02406 azz = lagint_4th(phi4,fp4azz ,phic_p1)
02407
02408 psi4ca = psica**4
02409
02410
02411 call interpo_lag4th_2Dsurf(rsca_p1,rs_p1,thc_p1,phic_p1)
02412 rcf_p1 = rc_p1/rsca_p1
02413
02414 if (rcf_p1.le.rg_p1(nrf_p1)) then
02415 do irg = 0, nrf_p1+1
02416 if (rcf_p1.lt.rgex_p1(irg).and.rcf_p1.ge.rgex_p1(irg-1)) ir0 = min0(irg-2,nrf_p1-3)
02417 end do
02418
02419 do ii = 1, 4
02420 irg0 = ir0 + ii - 1
02421 r4(ii) = rgex_p1(irg0)
02422 end do
02423
02424 do kk = 1, 4
02425 ipg0 = ip0 + kk - 1
02426 do jj = 1, 4
02427 itg0 = it0 + jj - 1
02428 do ii = 1, 4
02429 irg0 = ir0 + ii - 1
02430 irgex = irgex_r_p1(irg0)
02431 itgex = itgex_r_p1(itgex_th_p1(itg0),irg0)
02432 ipgex = ipgex_r_p1(ipgex_th_p1(ipgex_phi_p1(ipg0),itg0),irg0)
02433 fr4emd(ii) = emd_p1(irgex,itgex,ipgex)
02434 fr4vepxf(ii) = vepxf_p1(irgex,itgex,ipgex)
02435 fr4vepyf(ii) = vepyf_p1(irgex,itgex,ipgex)
02436 fr4vepzf(ii) = vepzf_p1(irgex,itgex,ipgex)
02437
02438 fr4wxspf(ii) = wxspf_p1(irgex,itgex,ipgex)
02439 fr4wyspf(ii) = wyspf_p1(irgex,itgex,ipgex)
02440 fr4wzspf(ii) = wzspf_p1(irgex,itgex,ipgex)
02441
02442 fr4psif(ii) = psif_p1(irgex,itgex,ipgex)
02443 fr4alphf(ii) = alphf_p1(irgex,itgex,ipgex)
02444 fr4bvxdf(ii) = bvxdf_p1(irgex,itgex,ipgex)
02445 fr4bvydf(ii) = bvydf_p1(irgex,itgex,ipgex)
02446 fr4bvzdf(ii) = bvzdf_p1(irgex,itgex,ipgex)
02447 end do
02448 ft4emd(jj) = lagint_4th(r4,fr4emd ,rcf_p1)
02449 ft4vepxf(jj) = lagint_4th(r4,fr4vepxf,rcf_p1)
02450 ft4vepyf(jj) = lagint_4th(r4,fr4vepyf,rcf_p1)
02451 ft4vepzf(jj) = lagint_4th(r4,fr4vepzf,rcf_p1)
02452
02453 ft4wxspf(jj) = lagint_4th(r4,fr4wxspf,rcf_p1)
02454 ft4wyspf(jj) = lagint_4th(r4,fr4wyspf,rcf_p1)
02455 ft4wzspf(jj) = lagint_4th(r4,fr4wzspf,rcf_p1)
02456
02457 ft4psif(jj) = lagint_4th(r4,fr4psif ,rcf_p1)
02458 ft4alphf(jj) = lagint_4th(r4,fr4alphf,rcf_p1)
02459 ft4bvxdf(jj) = lagint_4th(r4,fr4bvxdf,rcf_p1)
02460 ft4bvydf(jj) = lagint_4th(r4,fr4bvydf,rcf_p1)
02461 ft4bvzdf(jj) = lagint_4th(r4,fr4bvzdf,rcf_p1)
02462 end do
02463 fp4emd(kk) = lagint_4th(th4,ft4emd ,thc_p1)
02464 fp4vepxf(kk) = lagint_4th(th4,ft4vepxf,thc_p1)
02465 fp4vepyf(kk) = lagint_4th(th4,ft4vepyf,thc_p1)
02466 fp4vepzf(kk) = lagint_4th(th4,ft4vepzf,thc_p1)
02467
02468 fp4wxspf(kk) = lagint_4th(th4,ft4wxspf,thc_p1)
02469 fp4wyspf(kk) = lagint_4th(th4,ft4wyspf,thc_p1)
02470 fp4wzspf(kk) = lagint_4th(th4,ft4wzspf,thc_p1)
02471
02472 fp4psif(kk) = lagint_4th(th4,ft4psif ,thc_p1)
02473 fp4alphf(kk) = lagint_4th(th4,ft4alphf,thc_p1)
02474 fp4bvxdf(kk) = lagint_4th(th4,ft4bvxdf,thc_p1)
02475 fp4bvydf(kk) = lagint_4th(th4,ft4bvydf,thc_p1)
02476 fp4bvzdf(kk) = lagint_4th(th4,ft4bvzdf,thc_p1)
02477 end do
02478 emdca = lagint_4th(phi4,fp4emd ,phic_p1)
02479 vepxfca = lagint_4th(phi4,fp4vepxf,phic_p1)
02480 vepyfca = lagint_4th(phi4,fp4vepyf,phic_p1)
02481 vepzfca = lagint_4th(phi4,fp4vepzf,phic_p1)
02482
02483 wxspfca = lagint_4th(phi4,fp4wxspf,phic_p1)
02484 wyspfca = lagint_4th(phi4,fp4wyspf,phic_p1)
02485 wzspfca = lagint_4th(phi4,fp4wzspf,phic_p1)
02486
02487 psifca = lagint_4th(phi4,fp4psif ,phic_p1)
02488 alphfca = lagint_4th(phi4,fp4alphf,phic_p1)
02489 bvxdfca = lagint_4th(phi4,fp4bvxdf,phic_p1)
02490 bvydfca = lagint_4th(phi4,fp4bvydf,phic_p1)
02491 bvzdfca = lagint_4th(phi4,fp4bvzdf,phic_p1)
02492
02493 psif4ca = psifca**4
02494 psifcacp = psifca**confpow
02495 alphfca2 = alphfca**2
02496
02497 bxcor = bvxdfca + ome_p1*(-ycoc)
02498 bycor = bvydfca + ome_p1*(xcoc)
02499 bzcor = bvzdfca
02500 lam_p1 = ber_p1 + bxcor*vepxfca + bycor*vepyfca + bzcor*vepzfca
02501
02502 wdvep = (wxspfca*vepxfca + wyspfca*vepyfca + wzspfca*vepzfca)*psifcacp
02503 w2 = psif4ca*(wxspfca*wxspfca + wyspfca*wyspfca + wzspfca*wzspfca)*psifcacp**2.0d0
02504 wterm = wdvep + w2
02505
02506 huta = (lam_p1 + sqrt(lam_p1*lam_p1 + 4.0d0*alphfca2*wterm))/(2.0d0*alphfca)
02507
02508 vxu = (vepxfca/psif4ca + psifcacp*wxspfca)/huta
02509 vyu = (vepyfca/psif4ca + psifcacp*wyspfca)/huta
02510 vzu = (vepzfca/psif4ca + psifcacp*wzspfca)/huta
02511 else
02512 emdca=0.0d0; vepxfca=0.0d0; vepyfca=0.0d0; vepzfca=0.0d0
02513 vxu=0.0d0; vyu=0.0d0; vzu=0.0d0
02514 end if
02515 else
02516
02517
02518
02519
02520
02521
02522
02523
02524
02525
02526
02527 xc_p2 = -(xcoc - dis_cm)
02528 yc_p2 = -ycoc
02529 zc_p2 = zcoc
02530 write(6,'(a39,3e20.12)') "Point given wrt COCP-2 in Cocal scale :", xc_p2,yc_p2,zc_p2
02531
02532 psica=0.0d0; alphca=0.0d0; bvxdca=0.0d0; bvydca=0.0d0; bvzdca=0.0d0
02533 axx=0.0d0 ; axy=0.0d0 ; axz=0.0d0 ; ayy=0.0d0 ; ayz=0.0d0 ; azz=0.0d0
02534
02535 rc_p2 = dsqrt(dabs(xc_p2**2 + yc_p2**2 + zc_p2**2))
02536 varpic_p2 = dsqrt(dabs(xc_p2**2 + yc_p2**2))
02537 thc_p2 = dmod(2.0d0*pi + datan2(varpic_p2,zc_p2),2.0d0*pi)
02538 phic_p2 = dmod(2.0d0*pi + datan2( yc_p2,xc_p2),2.0d0*pi)
02539
02540 do irg = 0, nrg_p2+1
02541 if (rc_p2.lt.rgex_p2(irg).and.rc_p2.ge.rgex_p2(irg-1)) ir0 = min0(irg-2,nrg_p2-3)
02542 end do
02543 do itg = 0, ntg_p2+1
02544 if (thc_p2.lt.thgex_p2(itg).and.thc_p2.ge.thgex_p2(itg-1)) it0 = itg-2
02545 end do
02546 do ipg = 0, npg_p2+1
02547 if (phic_p2.lt.phigex_p2(ipg).and.phic_p2.ge.phigex_p2(ipg-1)) ip0 = ipg-2
02548 end do
02549
02550 do ii = 1, 4
02551 irg0 = ir0 + ii - 1
02552 itg0 = it0 + ii - 1
02553 ipg0 = ip0 + ii - 1
02554 r4(ii) = rgex_p2(irg0)
02555 th4(ii) = thgex_p2(itg0)
02556 phi4(ii) = phigex_p2(ipg0)
02557 end do
02558
02559 do kk = 1, 4
02560 ipg0 = ip0 + kk - 1
02561 do jj = 1, 4
02562 itg0 = it0 + jj - 1
02563 do ii = 1, 4
02564 irg0 = ir0 + ii - 1
02565 irgex = irgex_r_p2(irg0)
02566 itgex = itgex_r_p2(itgex_th_p2(itg0),irg0)
02567 ipgex = ipgex_r_p2(ipgex_th_p2(ipgex_phi_p2(ipg0),itg0),irg0)
02568 fr4psi(ii) = psi_p2(irgex,itgex,ipgex)
02569 fr4alph(ii) = alph_p2(irgex,itgex,ipgex)
02570 fr4bvxd(ii) = bvxd_p2(irgex,itgex,ipgex)
02571 fr4bvyd(ii) = bvyd_p2(irgex,itgex,ipgex)
02572 fr4bvzd(ii) = bvzd_p2(irgex,itgex,ipgex)
02573 fr4axx(ii) = axx_p2(irgex,itgex,ipgex)
02574 fr4axy(ii) = axy_p2(irgex,itgex,ipgex)
02575 fr4axz(ii) = axz_p2(irgex,itgex,ipgex)
02576 fr4ayy(ii) = ayy_p2(irgex,itgex,ipgex)
02577 fr4ayz(ii) = ayz_p2(irgex,itgex,ipgex)
02578 fr4azz(ii) = azz_p2(irgex,itgex,ipgex)
02579 end do
02580 ft4psi(jj) = lagint_4th(r4,fr4psi ,rc_p2)
02581 ft4alph(jj) = lagint_4th(r4,fr4alph,rc_p2)
02582 ft4bvxd(jj) = lagint_4th(r4,fr4bvxd,rc_p2)
02583 ft4bvyd(jj) = lagint_4th(r4,fr4bvyd,rc_p2)
02584 ft4bvzd(jj) = lagint_4th(r4,fr4bvzd,rc_p2)
02585 ft4axx(jj) = lagint_4th(r4,fr4axx ,rc_p2)
02586 ft4axy(jj) = lagint_4th(r4,fr4axy ,rc_p2)
02587 ft4axz(jj) = lagint_4th(r4,fr4axz ,rc_p2)
02588 ft4ayy(jj) = lagint_4th(r4,fr4ayy ,rc_p2)
02589 ft4ayz(jj) = lagint_4th(r4,fr4ayz ,rc_p2)
02590 ft4azz(jj) = lagint_4th(r4,fr4azz ,rc_p2)
02591 end do
02592 fp4psi(kk) = lagint_4th(th4,ft4psi ,thc_p2)
02593 fp4alph(kk) = lagint_4th(th4,ft4alph,thc_p2)
02594 fp4bvxd(kk) = lagint_4th(th4,ft4bvxd,thc_p2)
02595 fp4bvyd(kk) = lagint_4th(th4,ft4bvyd,thc_p2)
02596 fp4bvzd(kk) = lagint_4th(th4,ft4bvzd,thc_p2)
02597 fp4axx(kk) = lagint_4th(th4,ft4axx ,thc_p2)
02598 fp4axy(kk) = lagint_4th(th4,ft4axy ,thc_p2)
02599 fp4axz(kk) = lagint_4th(th4,ft4axz ,thc_p2)
02600 fp4ayy(kk) = lagint_4th(th4,ft4ayy ,thc_p2)
02601 fp4ayz(kk) = lagint_4th(th4,ft4ayz ,thc_p2)
02602 fp4azz(kk) = lagint_4th(th4,ft4azz ,thc_p2)
02603 end do
02604 psica = lagint_4th(phi4,fp4psi ,phic_p2)
02605 alphca = lagint_4th(phi4,fp4alph,phic_p2)
02606 bvxdca = lagint_4th(phi4,fp4bvxd,phic_p2)
02607 bvydca = lagint_4th(phi4,fp4bvyd,phic_p2)
02608 bvzdca = lagint_4th(phi4,fp4bvzd,phic_p2)
02609 axx = lagint_4th(phi4,fp4axx ,phic_p2)
02610 axy = lagint_4th(phi4,fp4axy ,phic_p2)
02611 axz = lagint_4th(phi4,fp4axz ,phic_p2)
02612 ayy = lagint_4th(phi4,fp4ayy ,phic_p2)
02613 ayz = lagint_4th(phi4,fp4ayz ,phic_p2)
02614 azz = lagint_4th(phi4,fp4azz ,phic_p2)
02615
02616 psi4ca = psica**4
02617 call interpo_lag4th_2Dsurf(rsca_p2,rs_p2,thc_p2,phic_p2)
02618 rcf_p2 = rc_p2/rsca_p2
02619
02620 if (rcf_p2.le.rg_p2(nrf_p2)) then
02621 do irg = 0, nrf_p2+1
02622 if (rcf_p2.lt.rgex_p2(irg).and.rcf_p2.ge.rgex_p2(irg-1)) ir0 = min0(irg-2,nrf_p2-3)
02623 end do
02624
02625 do ii = 1, 4
02626 irg0 = ir0 + ii - 1
02627 r4(ii) = rgex_p2(irg0)
02628 end do
02629
02630 do kk = 1, 4
02631 ipg0 = ip0 + kk - 1
02632 do jj = 1, 4
02633 itg0 = it0 + jj - 1
02634 do ii = 1, 4
02635 irg0 = ir0 + ii - 1
02636 irgex = irgex_r_p2(irg0)
02637 itgex = itgex_r_p2(itgex_th_p2(itg0),irg0)
02638 ipgex = ipgex_r_p2(ipgex_th_p2(ipgex_phi_p2(ipg0),itg0),irg0)
02639 fr4emd(ii) = emd_p2(irgex,itgex,ipgex)
02640 fr4vepxf(ii) = vepxf_p2(irgex,itgex,ipgex)
02641 fr4vepyf(ii) = vepyf_p2(irgex,itgex,ipgex)
02642 fr4vepzf(ii) = vepzf_p2(irgex,itgex,ipgex)
02643
02644 fr4wxspf(ii) = wxspf_p2(irgex,itgex,ipgex)
02645 fr4wyspf(ii) = wyspf_p2(irgex,itgex,ipgex)
02646 fr4wzspf(ii) = wzspf_p2(irgex,itgex,ipgex)
02647
02648 fr4psif(ii) = psif_p2(irgex,itgex,ipgex)
02649 fr4alphf(ii) = alphf_p2(irgex,itgex,ipgex)
02650 fr4bvxdf(ii) = bvxdf_p2(irgex,itgex,ipgex)
02651 fr4bvydf(ii) = bvydf_p2(irgex,itgex,ipgex)
02652 fr4bvzdf(ii) = bvzdf_p2(irgex,itgex,ipgex)
02653 end do
02654 ft4emd(jj) = lagint_4th(r4,fr4emd ,rcf_p2)
02655 ft4vepxf(jj) = lagint_4th(r4,fr4vepxf,rcf_p2)
02656 ft4vepyf(jj) = lagint_4th(r4,fr4vepyf,rcf_p2)
02657 ft4vepzf(jj) = lagint_4th(r4,fr4vepzf,rcf_p2)
02658
02659 ft4wxspf(jj) = lagint_4th(r4,fr4wxspf,rcf_p2)
02660 ft4wyspf(jj) = lagint_4th(r4,fr4wyspf,rcf_p2)
02661 ft4wzspf(jj) = lagint_4th(r4,fr4wzspf,rcf_p2)
02662
02663 ft4psif(jj) = lagint_4th(r4,fr4psif ,rcf_p2)
02664 ft4alphf(jj) = lagint_4th(r4,fr4alphf,rcf_p2)
02665 ft4bvxdf(jj) = lagint_4th(r4,fr4bvxdf,rcf_p2)
02666 ft4bvydf(jj) = lagint_4th(r4,fr4bvydf,rcf_p2)
02667 ft4bvzdf(jj) = lagint_4th(r4,fr4bvzdf,rcf_p2)
02668 end do
02669 fp4emd(kk) = lagint_4th(th4,ft4emd ,thc_p2)
02670 fp4vepxf(kk) = lagint_4th(th4,ft4vepxf,thc_p2)
02671 fp4vepyf(kk) = lagint_4th(th4,ft4vepyf,thc_p2)
02672 fp4vepzf(kk) = lagint_4th(th4,ft4vepzf,thc_p2)
02673
02674 fp4wxspf(kk) = lagint_4th(th4,ft4wxspf,thc_p2)
02675 fp4wyspf(kk) = lagint_4th(th4,ft4wyspf,thc_p2)
02676 fp4wzspf(kk) = lagint_4th(th4,ft4wzspf,thc_p2)
02677
02678 fp4psif(kk) = lagint_4th(th4,ft4psif ,thc_p2)
02679 fp4alphf(kk) = lagint_4th(th4,ft4alphf,thc_p2)
02680 fp4bvxdf(kk) = lagint_4th(th4,ft4bvxdf,thc_p2)
02681 fp4bvydf(kk) = lagint_4th(th4,ft4bvydf,thc_p2)
02682 fp4bvzdf(kk) = lagint_4th(th4,ft4bvzdf,thc_p2)
02683 end do
02684 emdca = lagint_4th(phi4,fp4emd ,phic_p2)
02685 vepxfca = lagint_4th(phi4,fp4vepxf,phic_p2)
02686 vepyfca = lagint_4th(phi4,fp4vepyf,phic_p2)
02687 vepzfca = lagint_4th(phi4,fp4vepzf,phic_p2)
02688
02689 wxspfca = lagint_4th(phi4,fp4wxspf,phic_p2)
02690 wyspfca = lagint_4th(phi4,fp4wyspf,phic_p2)
02691 wzspfca = lagint_4th(phi4,fp4wzspf,phic_p2)
02692
02693 psifca = lagint_4th(phi4,fp4psif ,phic_p2)
02694 alphfca = lagint_4th(phi4,fp4alphf,phic_p2)
02695 bvxdfca = lagint_4th(phi4,fp4bvxdf,phic_p2)
02696 bvydfca = lagint_4th(phi4,fp4bvydf,phic_p2)
02697 bvzdfca = lagint_4th(phi4,fp4bvzdf,phic_p2)
02698
02699 psif4ca = psifca**4
02700 psifcacp= psifca**confpow
02701 alphfca2 = alphfca**2
02702
02703 bxcor = bvxdfca + ome_p2*(-ycoc)
02704 bycor = bvydfca + ome_p2*(xcoc)
02705 bzcor = bvzdfca
02706 lam_p2 = ber_p2 + bxcor*vepxfca + bycor*vepyfca + bzcor*vepzfca
02707
02708 wdvep = (wxspfca*vepxfca + wyspfca*vepyfca + wzspfca*vepzfca)*psifcacp
02709 w2 = psif4ca*(wxspfca*wxspfca + wyspfca*wyspfca + wzspfca*wzspfca)*psifcacp**2.0d0
02710 wterm = wdvep + w2
02711
02712 huta = (lam_p2 + sqrt(lam_p2*lam_p2 + 4.0d0*alphfca2*wterm))/(2.0d0*alphfca)
02713
02714 vxu = (vepxfca/psif4ca + psifcacp*wxspfca)/huta
02715 vyu = (vepyfca/psif4ca + psifcacp*wyspfca)/huta
02716 vzu = (vepzfca/psif4ca + psifcacp*wzspfca)/huta
02717 else
02718 emdca=0.0d0; vepxfca=0.0d0; vepyfca=0.0d0; vepzfca=0.0d0
02719 vxu=0.0d0; vyu=0.0d0; vzu=0.0d0
02720 end if
02721
02722 end if
02723 end if
02724
02725 gxx = psi4ca
02726 gxy = 0.0d0
02727 gxz = 0.0d0
02728 gyy = psi4ca
02729 gyz = 0.0d0
02730 gzz = psi4ca
02731
02732 kxx = psi4ca*axx/(radi_p1)
02733 kxy = psi4ca*axy/(radi_p1)
02734 kxz = psi4ca*axz/(radi_p1)
02735 kyy = psi4ca*ayy/(radi_p1)
02736 kyz = psi4ca*ayz/(radi_p1)
02737 kzz = psi4ca*azz/(radi_p1)
02738
02739 call peos_q2hprho(emdca, hca, preca, rhoca, eneca)
02740
02741 epsca = eneca/rhoca - 1.0d0
02742
02743 write(6,'(a6,e20.12)') "psi =", psica
02744 write(6,'(a6,e20.12)') "alph =", alphca
02745 write(6,'(a6,e20.12)') "bvxd =", bvxdca
02746 write(6,'(a6,e20.12)') "bvyd =", bvydca
02747 write(6,'(a6,e20.12)') "bvzd =", bvzdca
02748 write(6,'(a6,e20.12)') "Radi =", r_surf_p1*radi_p1
02749 write(6,'(a6,e20.12)') "Omeg =", ome_p1/radi_p1
02750 write(6,'(a6,e20.12)') "emd =", emdca
02751 write(6,'(a6,e20.12)') "h =", hca
02752 write(6,'(a6,e20.12)') "pre =", preca
02753 write(6,'(a6,e20.12)') "rho =", rhoca
02754 write(6,'(a6,e20.12)') "ene =", eneca
02755 write(6,'(a6,e20.12)') "eps =", epsca
02756 write(6,'(a6,e20.12)') "vepx =", vepxfca
02757 write(6,'(a6,e20.12)') "vepy =", vepyfca
02758 write(6,'(a6,e20.12)') "vepz =", vepzfca
02759
02760 write(6,'(a18)') "Kij at gridpoints:"
02761 write(6,'(3e20.12)') kxx, kxy, kxz
02762 write(6,'(3e20.12)') kxy, kyy, kyz
02763 write(6,'(3e20.12)') kxz, kyz, kzz
02764
02765 write(6,'(a13)') "v^i eulerian:"
02766 write(6,'(a6,e20.12)') "vxu =", vxu
02767 write(6,'(a6,e20.12)') "vyu =", vyu
02768 write(6,'(a6,e20.12)') "vzu =", vzu
02769
02770 write(6,'(a16)') "Deallocating...."
02771 deallocate( rg_p1); deallocate( rg_p2); deallocate( rg_p3)
02772 deallocate( rgex_p1); deallocate( rgex_p2); deallocate( rgex_p3)
02773 deallocate( thgex_p1); deallocate( thgex_p2); deallocate( thgex_p3)
02774 deallocate( phigex_p1); deallocate( phigex_p2); deallocate( phigex_p3)
02775 deallocate( irgex_r_p1); deallocate( irgex_r_p2); deallocate( irgex_r_p3)
02776 deallocate( itgex_th_p1); deallocate( itgex_th_p2); deallocate( itgex_th_p3)
02777 deallocate(ipgex_phi_p1); deallocate(ipgex_phi_p2); deallocate(ipgex_phi_p3)
02778 deallocate( itgex_r_p1); deallocate( itgex_r_p2); deallocate( itgex_r_p3)
02779 deallocate( ipgex_r_p1); deallocate( ipgex_r_p2); deallocate( ipgex_r_p3)
02780 deallocate( ipgex_th_p1); deallocate( ipgex_th_p2); deallocate( ipgex_th_p3)
02781
02782 deallocate( emd_p1); deallocate( emd_p2);
02783 deallocate( vep_p1); deallocate( vep_p2);
02784 deallocate(wxspf_p1); deallocate(wxspf_p2);
02785 deallocate(wyspf_p1); deallocate(wyspf_p2);
02786 deallocate(wzspf_p1); deallocate(wzspf_p2);
02787 deallocate(vepxf_p1); deallocate(vepxf_p2);
02788 deallocate(vepyf_p1); deallocate(vepyf_p2);
02789 deallocate(vepzf_p1); deallocate(vepzf_p2);
02790 deallocate( psif_p1); deallocate( psif_p2);
02791 deallocate(alphf_p1); deallocate(alphf_p2);
02792 deallocate(bvxdf_p1); deallocate(bvxdf_p2);
02793 deallocate(bvydf_p1); deallocate(bvydf_p2);
02794 deallocate(bvzdf_p1); deallocate(bvzdf_p2);
02795 deallocate( rs_p1); deallocate( rs_p2);
02796 deallocate( psi_p1); deallocate( psi_p2); deallocate(psi_p3)
02797 deallocate( alph_p1); deallocate( alph_p2); deallocate(alph_p3)
02798 deallocate( bvxd_p1); deallocate( bvxd_p2); deallocate(bvxd_p3)
02799 deallocate( bvyd_p1); deallocate( bvyd_p2); deallocate(bvyd_p3)
02800 deallocate( bvzd_p1); deallocate( bvzd_p2); deallocate(bvzd_p3)
02801 deallocate( axx_p1); deallocate( axx_p2); deallocate(axx_p3)
02802 deallocate( axy_p1); deallocate( axy_p2); deallocate(axy_p3)
02803 deallocate( axz_p1); deallocate( axz_p2); deallocate(axz_p3)
02804 deallocate( ayy_p1); deallocate( ayy_p2); deallocate(ayy_p3)
02805 deallocate( ayz_p1); deallocate( ayz_p2); deallocate(ayz_p3)
02806 deallocate( azz_p1); deallocate( azz_p2); deallocate(azz_p3)
02807
02808 END SUBROUTINE coc2cac_sp