00001 subroutine IO_input_initial_3D_WL
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrg, ntg, npg
00004 use def_metric_hij, only : hxxd, hxyd, hxzd, hyyd, hyzd, hzzd, &
00005 & gaugex, gaugey, gaugez
00006 use grid_temporary, only : nrgtmp, ntgtmp, npgtmp, rgtmp, thgtmp, phigtmp
00007 use interface_interpo_3D_initial_4th
00008 use make_array_3d
00009 implicit none
00010 real(long), pointer :: hxxd_tmp(:,:,:), hxyd_tmp(:,:,:), hxzd_tmp(:,:,:),
00011 hyyd_tmp(:,:,:), hyzd_tmp(:,:,:), hzzd_tmp(:,:,:)
00012 integer :: irg, itg, ipg, nrgmax, ntgmax, npgmax
00013
00014 nrgmax = max0(nrg,nrgtmp)
00015 ntgmax = max0(ntg,ntgtmp)
00016 npgmax = max0(npg,npgtmp)
00017 call alloc_array3d(hxxd_tmp,0,nrgmax,0,ntgmax,0,npgmax)
00018 call alloc_array3d(hxyd_tmp,0,nrgmax,0,ntgmax,0,npgmax)
00019 call alloc_array3d(hxzd_tmp,0,nrgmax,0,ntgmax,0,npgmax)
00020 call alloc_array3d(hyyd_tmp,0,nrgmax,0,ntgmax,0,npgmax)
00021 call alloc_array3d(hyzd_tmp,0,nrgmax,0,ntgmax,0,npgmax)
00022 call alloc_array3d(hzzd_tmp,0,nrgmax,0,ntgmax,0,npgmax)
00023
00024
00025 open(13,file='rnsgra_hij_3D.ini',status='unknown')
00026 read(13,'(5i5)') nrgtmp, ntgtmp, npgtmp
00027 do ipg = 0, npgtmp
00028 do itg = 0, ntgtmp
00029 do irg = 0, nrgtmp
00030 read(13,'(1p,6e20.12)') hxxd_tmp(irg,itg,ipg), &
00031 & hxyd_tmp(irg,itg,ipg), &
00032 & hxzd_tmp(irg,itg,ipg), &
00033 & hyyd_tmp(irg,itg,ipg), &
00034 & hyzd_tmp(irg,itg,ipg), &
00035 & hzzd_tmp(irg,itg,ipg)
00036 end do
00037 end do
00038 end do
00039 close(13)
00040
00041 if (nrg.ne.nrgtmp.or.ntg.ne.ntgtmp.or.npg.ne.npgtmp) then
00042 call interpo_3D_initial_4th(hxxd_tmp,'grco')
00043 call interpo_3D_initial_4th(hxyd_tmp,'grco')
00044 call interpo_3D_initial_4th(hxzd_tmp,'grco')
00045 call interpo_3D_initial_4th(hyyd_tmp,'grco')
00046 call interpo_3D_initial_4th(hyzd_tmp,'grco')
00047 call interpo_3D_initial_4th(hzzd_tmp,'grco')
00048 end if
00049
00050 hxxd(0:nrg,0:ntg,0:npg) = hxxd_tmp(0:nrg,0:ntg,0:npg)
00051 hxyd(0:nrg,0:ntg,0:npg) = hxyd_tmp(0:nrg,0:ntg,0:npg)
00052 hxzd(0:nrg,0:ntg,0:npg) = hxzd_tmp(0:nrg,0:ntg,0:npg)
00053 hyyd(0:nrg,0:ntg,0:npg) = hyyd_tmp(0:nrg,0:ntg,0:npg)
00054 hyzd(0:nrg,0:ntg,0:npg) = hyzd_tmp(0:nrg,0:ntg,0:npg)
00055 hzzd(0:nrg,0:ntg,0:npg) = hzzd_tmp(0:nrg,0:ntg,0:npg)
00056
00057 gaugex(0:nrg,0:ntg,0:npg) = 0.0d0
00058 gaugey(0:nrg,0:ntg,0:npg) = 0.0d0
00059 gaugez(0:nrg,0:ntg,0:npg) = 0.0d0
00060
00061 deallocate(hxxd_tmp)
00062 deallocate(hxyd_tmp)
00063 deallocate(hxzd_tmp)
00064 deallocate(hyyd_tmp)
00065 deallocate(hyzd_tmp)
00066 deallocate(hzzd_tmp)
00067
00068 end subroutine IO_input_initial_3D_WL