aboutsummaryrefslogtreecommitdiff
path: root/src/EHFinder_ReadData.F90
diff options
context:
space:
mode:
authordiener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c>2002-07-03 11:07:13 +0000
committerdiener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c>2002-07-03 11:07:13 +0000
commitfea5dd43a562586d6442f4fd83f356f171b6f87f (patch)
tree0f9a4707a2e7633e50558f2bce0b05432a32ab46 /src/EHFinder_ReadData.F90
parenteb93b608dab362d37a8f91345a6561d23630b5f7 (diff)
Added a routine to read in 3D data. Added some parameters to support
that. Scheduled the routine at CCTK_PRESTEP. This is only the first pass of this. I Also need to schedule someting at CCTK_INITIAL to avoid having to set some arbitrary initial data, that then gets overwritten. I need to add some error checking as well. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/EHFinder/trunk@29 2a26948c-0e4f-0410-aee8-f1d3e353619c
Diffstat (limited to 'src/EHFinder_ReadData.F90')
-rw-r--r--src/EHFinder_ReadData.F9055
1 files changed, 55 insertions, 0 deletions
diff --git a/src/EHFinder_ReadData.F90 b/src/EHFinder_ReadData.F90
new file mode 100644
index 0000000..40a9bec
--- /dev/null
+++ b/src/EHFinder_ReadData.F90
@@ -0,0 +1,55 @@
+! Read metric, lapse and shift from files.
+! $Header$
+
+#include "cctk.h"
+#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
+
+subroutine EHFinder_ReadData(CCTK_ARGUMENTS)
+
+ use EHFinder_mod
+
+ implicit none
+
+ DECLARE_CCTK_PARAMETERS
+ DECLARE_CCTK_ARGUMENTS
+ DECLARE_CCTK_FUNCTIONS
+
+ character(len=1024) :: in_files, in_vars
+ character(len=64), dimension(11) :: var_names
+ character(len=10) :: iteration_string
+ CCTK_INT :: i, nc, ntot, res
+
+ write(iteration_string,'(i10)') current_iteration
+ iteration_string = adjustl(iteration_string)
+ nc = len_trim(iteration_string)
+
+ in_files = 'alp betax betay betaz gxx gxy gxz gyy gyz gzz psi'
+ var_names(1) = 'admbase::alp[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(2) = 'admbase::betax[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(3) = 'admbase::betay[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(4) = 'admbase::betaz[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(5) = 'admbase::gxx[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(6) = 'admbase::gxy[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(7) = 'admbase::gxz[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(8) = 'admbase::gyy[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(9) = 'admbase::gyz[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(10) = 'admbase::gzz[cctk_iteration='//iteration_string(1:nc)//']'
+ var_names(11) = 'staticconformal::psi[cctk_iteration='//iteration_string(1:nc)//']'
+
+ in_vars = ' '
+ ntot = 0
+ do i = 1, 11
+ nc = len_trim(var_names(i))
+ in_vars(ntot+1:ntot+1+nc+1) = var_names(i)(1:nc+1)
+ ntot = ntot + nc + 1
+ end do
+
+ print*,in_vars(1:len_trim(in_vars)),len_trim(in_vars)
+
+ call IOUtil_RecoverVarsFromDatafiles ( res, cctkGH, in_files, in_vars )
+ print*,res
+ current_iteration = current_iteration - 1
+
+ return
+end subroutine EHFinder_ReadData