00001 subroutine init_forcing(N_kick)
00002 include 'comments.f90'
00003 implicit none
00004 include 'param.f90'
00005 include 'terms3d.f90'
00006 include 'functionlist.f90'
00007
00008 integer n,blocksize
00009 integer readwrite,group,fpixel,nelements,status,unit,junk
00010 logical er
00011
00012 character*80 fn
00013 integer N_kick
00014 real rfull(nx,ny,nz_ghostglobal)
00015
00016
00017
00018 readwrite=0
00019 blocksize=1
00020 group=1
00021 fpixel=1
00022 status=0
00023 nelements=nx*ny*nz_ghostglobal
00024
00025 N_kick=(10+dt/10.)/(2*dt)
00026 write(*,*) "reading source amplitude file"
00027 fn="source_amplitude.fits"
00028
00029 if(my_rank .eq. 0) then
00030 call ftgiou(unit,status)
00031 call ftopen(unit,fn,readwrite,blocksize,status)
00032 endif
00033 write(*,*) "s0",status
00034 if(my_rank .eq. 0) then
00035
00036 call ftgpve(unit,group,fpixel,nelements,0.,rfull,er,status)
00037 endif
00038 write(*,*) "M",maxval((rfull))
00039 write(*,*) "s1",status
00040 call rdistributeall(rfull,rsrc_amp)
00041 if(my_rank .eq. 0) then
00042 call ftclos(unit, status)
00043 call ftfiou(unit, status)
00044 endif
00045
00046
00047 write(*,*) "taking Fourier transform of source amplitude"
00048 call sfftw_execute(plan_r2fsrc_amp)
00049 write(*,*) "M",maxval((rfull))
00050 end subroutine init_forcing