aboutsummaryrefslogtreecommitdiff
path: root/src/EHFinder_ReadData.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/EHFinder_ReadData.F90')
-rw-r--r--src/EHFinder_ReadData.F90138
1 files changed, 72 insertions, 66 deletions
diff --git a/src/EHFinder_ReadData.F90 b/src/EHFinder_ReadData.F90
index 08e3ce8..0185f5b 100644
--- a/src/EHFinder_ReadData.F90
+++ b/src/EHFinder_ReadData.F90
@@ -21,25 +21,24 @@ subroutine EHFinder_Read_Metric(CCTK_ARGUMENTS)
character(len=10) :: iteration_string
CCTK_INT :: i, nc, ntot, res
- ! Figure out which iteration number to read, based on the parameters
- ! last_iteration_number (the last iteration in the numerical evolution
- ! producing the metric) and saved_iteration_every (how often was the metric
- ! saved) and the current iteration and save it in a string variable.
-
+! Figure out which iteration number to read, based on the parameters
+! last_iteration_number (the last iteration in the numerical evolution
+! producing the metric) and saved_iteration_every (how often was the metric
+! saved) and the current iteration and save it in a string variable.
write(iteration_string,'(i10)') last_iteration_number - &
saved_iteration_every * cctk_iteration
- ! Trim the string variable.
+! Trim the string variable.
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
- ! Generate a string with the filenames. Note at present the requirement
- ! therefore is that all iterations of one variable is written in the
- ! same file.
+! Generate a string with the filenames. Note at present the requirement
+! therefore is that all iterations of one variable is written in the
+! same file.
in_files = 'gxx gxy gxz gyy gyz gzz'
- ! Fill in the string array, used to requesting the metric components at
- ! the specified iteration number.
+! Fill in the string array, used to requesting the metric components at
+! the specified iteration number.
var_names(1) = 'admbase::gxx[cctk_iteration='//iteration_string(1:nc)//']'
var_names(2) = 'admbase::gxy[cctk_iteration='//iteration_string(1:nc)//']'
var_names(3) = 'admbase::gxz[cctk_iteration='//iteration_string(1:nc)//']'
@@ -47,7 +46,7 @@ subroutine EHFinder_Read_Metric(CCTK_ARGUMENTS)
var_names(5) = 'admbase::gyz[cctk_iteration='//iteration_string(1:nc)//']'
var_names(6) = 'admbase::gzz[cctk_iteration='//iteration_string(1:nc)//']'
- ! merge all the varible names into a single string.
+! merge all the variable names into a single string.
in_vars = ' '
ntot = 0
do i = 1, 6
@@ -56,8 +55,8 @@ subroutine EHFinder_Read_Metric(CCTK_ARGUMENTS)
ntot = ntot + nc + 1
end do
- ! Call the routine that actualle does the file access. Note failures are
- ! just silently ignored.
+! Call the routine that actualle does the file access. Note failures are
+! just silently ignored.
call IOUtil_RecoverVarsFromDatafiles ( res, cctkGH, in_files, in_vars )
end subroutine EHFinder_Read_Metric
@@ -78,14 +77,28 @@ subroutine EHFinder_Read_Lapse(CCTK_ARGUMENTS)
character(len=10) :: iteration_string
CCTK_INT :: nc, res
+! Figure out which iteration number to read, based on the parameters
+! last_iteration_number (the last iteration in the numerical evolution
+! producing the metric) and saved_iteration_every (how often was the lapse
+! saved) and the current iteration and save it in a string variable.
write(iteration_string,'(i10)') last_iteration_number - &
saved_iteration_every * cctk_iteration
+
+! Trim the string variable.
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
+! Generate a string with the filename. Note at present the requirement
+! therefore is that all iterations of one variable is written in the
+! same file.
in_files = 'alp'
+
+! Fill in the string used to requesting the lapse at the specified
+! iteration number.
in_vars = 'admbase::alp[cctk_iteration='//iteration_string(1:nc)//']'
+! Call the routine that actualle does the file access. Note failures are
+! just silently ignored.
call IOUtil_RecoverVarsFromDatafiles ( res, cctkGH, in_files, in_vars )
end subroutine EHFinder_Read_Lapse
@@ -107,15 +120,28 @@ subroutine EHFinder_Read_Shift(CCTK_ARGUMENTS)
character(len=10) :: iteration_string
CCTK_INT :: i, nc, ntot, res
+! Figure out which iteration number to read, based on the parameters
+! last_iteration_number (the last iteration in the numerical evolution
+! producing the metric) and saved_iteration_every (how often was the metric
+! saved) and the current iteration and save it in a string variable.
write(iteration_string,'(i10)') last_iteration_number - &
saved_iteration_every * cctk_iteration
+! Trim the string variable.
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
+! Generate a string with the filenames. Note at present the requirement
+! therefore is that all iterations of one variable is written in the
+! same file.
in_files = 'betax betay betaz'
+
+! Fill in the string array, used to requesting the shift components at
+! the specified iteration number.
var_names(1) = 'admbase::betax[cctk_iteration='//iteration_string(1:nc)//']'
var_names(2) = 'admbase::betay[cctk_iteration='//iteration_string(1:nc)//']'
var_names(3) = 'admbase::betaz[cctk_iteration='//iteration_string(1:nc)//']'
+
+! merge all the variable names into a single string.
in_vars = ' '
ntot = 0
do i = 1, 3
@@ -124,6 +150,8 @@ subroutine EHFinder_Read_Shift(CCTK_ARGUMENTS)
ntot = ntot + nc + 1
end do
+! Call the routine that actualle does the file access. Note failures are
+! just silently ignored.
call IOUtil_RecoverVarsFromDatafiles ( res, cctkGH, in_files, in_vars )
end subroutine EHFinder_Read_Shift
@@ -144,18 +172,34 @@ subroutine EHFinder_Read_Conformal(CCTK_ARGUMENTS)
character(len=10) :: iteration_string
CCTK_INT :: nc, res
+! Figure out which iteration number to read, based on the parameters
+! last_iteration_number (the last iteration in the numerical evolution
+! producing the metric) and saved_iteration_every (how often was the metric
+! saved) and the current iteration and save it in a string variable. Note
+! that for this variable the default option is to only to read it in once at
+! the first timestep.
if ( read_conformal_factor_once .gt. 0 ) then
write(iteration_string,'(i10)') 0
else
write(iteration_string,'(i10)') last_iteration_number - &
saved_iteration_every * cctk_iteration
end if
+
+! Trim the string variable.
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
+! Generate a string with the filenames. Note at present the requirement
+! therefore is that all iterations of one variable is written in the
+! same file.
in_files = 'psi'
+
+! Fill in the string array, used to requesting the conformal factor at
+! the specified iteration number.
in_vars = 'staticconformal::psi[cctk_iteration='//iteration_string(1:nc)//']'
+! Call the routine that actualle does the file access. Note failures are
+! just silently ignored.
call IOUtil_RecoverVarsFromDatafiles ( res, cctkGH, in_files, in_vars )
end subroutine EHFinder_Read_Conformal
@@ -176,66 +220,28 @@ subroutine EHFinder_Read_Mask(CCTK_ARGUMENTS)
character(len=10) :: iteration_string
CCTK_INT :: nc, res
+! Figure out which iteration number to read, based on the parameters
+! last_iteration_number (the last iteration in the numerical evolution
+! producing the metric) and saved_iteration_every (how often was the metric
+! saved) and the current iteration and save it in a string variable.
write(iteration_string,'(i10)') last_iteration_number - &
saved_iteration_every * cctk_iteration
+
+! Trim the string variable.
iteration_string = adjustl(iteration_string)
nc = len_trim(iteration_string)
+! Generate a string with the filename. Note at present the requirement
+! therefore is that all iterations of one variable is written in the
+! same file.
in_files = 'emask'
+
+! Fill in the string array, used to requesting the old style mask at
+! the specified iteration number.
in_vars = 'spacemask::emask[cctk_iteration='//iteration_string(1:nc)//']'
+! Call the routine that actualle does the file access. Note failures are
+! just silently ignored.
call IOUtil_RecoverVarsFromDatafiles ( res, cctkGH, in_files, in_vars )
end subroutine EHFinder_Read_Mask
-
-
-! This routine reads in everything.
-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)') last_iteration_number - &
- saved_iteration_every * cctk_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