aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallen <allen@5301f0c2-dbc4-4cee-b2f5-8d7afba4d129>2000-10-04 21:46:34 +0000
committerallen <allen@5301f0c2-dbc4-4cee-b2f5-8d7afba4d129>2000-10-04 21:46:34 +0000
commit901a20d098d0cd3f3cf13cc221fc24a22c3573a2 (patch)
tree16490089908d121ee784e940b49b2d48cf1b2012
parente893719de4427bb0e9cc944dea20da404f49b1dd (diff)
Files from extract are now available on the web server (HTTPDExtra)
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Extract/trunk@24 5301f0c2-dbc4-4cee-b2f5-8d7afba4d129
-rw-r--r--interface.ccl2
-rw-r--r--src/Advertise.c21
-rw-r--r--src/Extract.F61
-rw-r--r--src/make.code.defn3
4 files changed, 57 insertions, 30 deletions
diff --git a/interface.ccl b/interface.ccl
index 6b24006..ea270ac 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -2,7 +2,7 @@
# $Header$
implements: extract
-inherits: grid einstein
+inherits: grid einstein io
private:
REAL temps TYPE=GF DIM=3
diff --git a/src/Advertise.c b/src/Advertise.c
new file mode 100644
index 0000000..228f923
--- /dev/null
+++ b/src/Advertise.c
@@ -0,0 +1,21 @@
+#include "cctk.h"
+#include "cctk_FortranString.h"
+#include "CactusBase/IOUtil/src/ioutil_AdvertisedFiles.h"
+
+void CCTK_FCALL CCTK_FNAME(Extract_Advertise)
+ (cGH *GH, ONE_FORTSTRING_ARG)
+{
+ ONE_FORTSTRING_CREATE(file)
+ /* advertise new files for downloading */
+ ioAdvertisedFileDesc advertisedFile;
+
+ advertisedFile.slice = "";
+ advertisedFile.thorn = CCTK_THORNSTRING;
+ advertisedFile.varname = "Waveform";
+ advertisedFile.description = "Extract files";
+ advertisedFile.mimetype = "application/x-graph";
+
+ IOUtil_AdvertiseFile (GH, file, &advertisedFile);
+ free(file);
+}
+
diff --git a/src/Extract.F b/src/Extract.F
index bc527b1..eddd0dc 100644
--- a/src/Extract.F
+++ b/src/Extract.F
@@ -26,13 +26,13 @@ c @endhistory
c@@*/
- SUBROUTINE Extract(CCTK_FARGUMENTS)
+ SUBROUTINE Extract(CCTK_ARGUMENTS)
USE D3_extract_int
IMPLICIT NONE
- DECLARE_CCTK_FARGUMENTS
+ DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
@@ -304,35 +304,35 @@ c Open output files
test_myproc1: IF (CCTK_MyProc(cctkGH) == 0 ) THEN
out1 = filestr(1:nchar)//"/rsch_ini.rl"
- call Extract_open(0,out1,77)
+ call Extract_open(cctkGH,0,out1,77)
out1 = filestr(1:nchar)//"/mass_ini.rl"
- call Extract_open(0,out1,78)
+ call Extract_open(cctkGH,0,out1,78)
IF (do_ADMmass(1) == 1) THEN
out1 = filestr(1:nchar)//"/ADMmass_ini.rl"
- call Extract_open(0,out1,79)
+ call Extract_open(cctkGH,0,out1,79)
ENDIF
IF (do_ADMmass(2) == 1) THEN
out1 = filestr(1:nchar)//"/ADMmassc_ini.rl"
- call Extract_open(0,out1,80)
+ call Extract_open(cctkGH,0,out1,80)
ENDIF
IF (do_momentum == 1) THEN
out1 = filestr(1:nchar)//"/momentum_x_ini.rl"
- call Extract_open(0,out1,781)
+ call Extract_open(cctkGH,0,out1,781)
out1 = filestr(1:nchar)//"/momentum_y_ini.rl"
- call Extract_open(0,out1,782)
+ call Extract_open(cctkGH,0,out1,782)
out1 = filestr(1:nchar)//"/momentum_z_ini.rl"
- call Extract_open(0,out1,783)
+ call Extract_open(cctkGH,0,out1,783)
ENDIF
IF (do_spin == 1) THEN
out1 = filestr(1:nchar)//"/spin_x_ini.rl"
- call Extract_open(0,out1,784)
+ call Extract_open(cctkGH,0,out1,784)
out1 = filestr(1:nchar)//"/spin_y_ini.rl"
- call Extract_open(0,out1,785)
+ call Extract_open(cctkGH,0,out1,785)
out1 = filestr(1:nchar)//"/spin_z_ini.rl"
- call Extract_open(0,out1,786)
+ call Extract_open(cctkGH,0,out1,786)
ENDIF
loop_l1: DO il = lmin,lmax,lstep
@@ -348,14 +348,14 @@ c Open output files
fn1 = il*10+im
out1 = filestr(1:nchar)//"/Qeven_ini_"//
& CHAR(il+48)//CHAR(im+48)//".rl"
- call Extract_open(0,out1,fn1)
+ call Extract_open(cctkGH,0,out1,fn1)
c Only print odd-parity if full grid
IF (igrid == 0) THEN
fn2 = 100+il*10+im
out2 = filestr(1:nchar)//"/Qodd_ini_"//
& CHAR(il+48)//CHAR(im+48)//".rl"
- call Extract_open(0,out2,fn2)
+ call Extract_open(cctkGH,0,out2,fn2)
END IF
END DO loop_m1
@@ -610,23 +610,23 @@ c Output extracted radius and mass
spinfile3 = filestr(1:nchar)//"/spin_z_"//"R"//
& CHAR(idet+48)//timestring
- call Extract_write(openfile,rschfile,time,rsch)
- call Extract_write(openfile,massfile,time,mass)
+ call Extract_write(cctkGH,openfile,rschfile,time,rsch)
+ call Extract_write(cctkGH,openfile,massfile,time,mass)
IF (do_ADMmass(1) == 1) THEN
- call Extract_write(openfile,ADMmassfile1,time,ADMmass(1))
+ call Extract_write(cctkGH,openfile,ADMmassfile1,time,ADMmass(1))
END IF
IF (do_ADMmass(2) == 1) THEN
- call Extract_write(openfile,ADMmassfile2,time,ADMmass(2))
+ call Extract_write(cctkGH,openfile,ADMmassfile2,time,ADMmass(2))
END IF
IF (do_momentum == 1) THEN
- call Extract_write(openfile,momentumfile1,time,momentum(1))
- call Extract_write(openfile,momentumfile2,time,momentum(2))
- call Extract_write(openfile,momentumfile3,time,momentum(3))
+ call Extract_write(cctkGH,openfile,momentumfile1,time,momentum(1))
+ call Extract_write(cctkGH,openfile,momentumfile2,time,momentum(2))
+ call Extract_write(cctkGH,openfile,momentumfile3,time,momentum(3))
END IF
IF (do_spin == 1) THEN
- call Extract_write(openfile,spinfile1,cctk_time,spin(1))
- call Extract_write(openfile,spinfile2,cctk_time,spin(2))
- call Extract_write(openfile,spinfile3,cctk_time,spin(3))
+ call Extract_write(cctkGH,openfile,spinfile1,cctk_time,spin(1))
+ call Extract_write(cctkGH,openfile,spinfile2,cctk_time,spin(2))
+ call Extract_write(cctkGH,openfile,spinfile3,cctk_time,spin(3))
END IF
@@ -650,11 +650,11 @@ c Output gauge invariant variables
& CHAR(im+48)//timestring
c Write even parity waveforms
- call Extract_write(openfile,out1,time,Qeven(:,il,im))
+ call Extract_write(cctkGH,openfile,out1,time,Qeven(:,il,im))
c Only write odd parity waveforms if full grid
IF (igrid == 0) THEN
- call Extract_write(openfile,out2,time,Qodd(:,il,im))
+ call Extract_write(cctkGH,openfile,out2,time,Qodd(:,il,im))
END IF
END DO loop_m5
@@ -679,7 +679,7 @@ c Only write odd parity waveforms if full grid
END SUBROUTINE Extract
- SUBROUTINE Extract_open(openfile,filename,filehandle)
+ SUBROUTINE Extract_open(cctkGH,openfile,filename,filehandle)
implicit none
@@ -687,28 +687,33 @@ c Only write odd parity waveforms if full grid
integer filehandle,openfile
character*(*) filename
+ CCTK_POINTER cctkGH
if (openfile==1) then
OPEN(UNIT= filehandle,FILE=filename,STATUS="unknown")
+ call Extract_Advertise(cctkGH,filename)
else
OPEN(UNIT=filehandle,FILE=filename,STATUS="old",POSITION="append")
end if
+
END SUBROUTINE Extract_open
- SUBROUTINE Extract_write(openfile,filename,value1,value2)
+ SUBROUTINE Extract_write(cctkGH, openfile,filename,value1,value2)
implicit none
DECLARE_CCTK_PARAMETERS
+ CCTK_POINTER cctkGH
CCTK_REAL value1,value2
integer openfile
character*(*) filename
if (openfile==1) then
OPEN(UNIT= 444,FILE=filename,STATUS="unknown")
+ call Extract_Advertise(cctkGH,filename)
else
OPEN(UNIT=444,FILE=filename,STATUS="old",POSITION="append")
end if
diff --git a/src/make.code.defn b/src/make.code.defn
index a0b7189..75fc0c8 100644
--- a/src/make.code.defn
+++ b/src/make.code.defn
@@ -20,7 +20,8 @@ SRCS = D2_extract_int.F \
D3_to_D2.F \
ADMmass_integrand3D.F \
momentum_integrand3D.F \
- spin_integrand3D.F
+ spin_integrand3D.F \
+ Advertise.c
# Subdirectories containing source files
SUBDIRS =