1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
/*@@
@file AHFinder_dat.F
@date April 1998
@author Miguel Alcubierre
@desc
F90 module containing data to be shared by
the different subroutines.
For the meaning of the spectral components of
the different flows see:
C. Gundlach, Phys. Rev. D 57, 863 (1998).
@enddesc
@@*/
#include "cctk.h"
module AHFinder_dat
implicit none
logical firstfun,firstleg,firstint
logical nonaxi,refx,refy,refz,cartoon
logical offset,wander
logical minarea,flow,find_trapped_surface
logical logfile,verbose,veryver,guessverbose
logical interror,guessold
logical find3,sloppy,inner,guess_absmin,manual_guess
logical status_old,status_old_0,status_old_1,status_old_2
integer lmax,stepx,stepy,stepz
integer ntheta,nphi
integer mfind,ahf_ncall
integer nx,ny,nz
integer nprocs,myproc,ierr
CCTK_INT nfile
CCTK_INT interror1,interror2,interror3
CCTK_INT inside_min_count,inside_min_neg_count
CCTK_REAL xc,yc,zc
CCTK_REAL xmn,ymn,zmn,xmx,ymx,zmx
CCTK_REAL xc_old,yc_old,zc_old
CCTK_REAL intexp,intexp2,intexpdel2,intarea
CCTK_REAL rhmax,rhmin
CCTK_REAL circ_eq,meri_p1,meri_p2
CCTK_REAL hw,cw,nw
CCTK_REAL dx,dy,dz
CCTK_REAL avgx,avgy,avgz
CCTK_REAL, allocatable, dimension (:) :: c0,c0_0,c0_1,c0_2,c0_old
CCTK_REAL, allocatable, dimension (:,:) :: cc,cc_0,cc_1,cc_2,cc_old
CCTK_REAL, allocatable, dimension (:,:) :: cs,cs_0,cs_1,cs_2,cs_old
CCTK_REAL, allocatable, dimension (:) :: hflow0,cflow0,nflow0
CCTK_REAL, allocatable, dimension (:,:) :: hflowc,cflowc,nflowc
CCTK_REAL, allocatable, dimension (:,:) :: hflows,cflows,nflows
character(len=200) :: filestr
data ahf_ncall / 0 /
data status_old / .false. /
data status_old_0 / .false. /
data status_old_1 / .false. /
data status_old_2 / .false. /
save ahf_ncall
save c0,c0_0,c0_1,c0_2
save cc,cc_0,cc_1,cc_2
save cs,cs_0,cs_1,cs_2
save status_old,status_old_0,status_old_1,status_old_2
! Description of variables:
!
! firstfun First call to function FUNC?
! firstleg First call to function LEGEN?
! firstint First call to subroutine AHFinder_int?
!
! nonaxi Is the data non-axisymmetric?
!
! refx Reflection symmetry x->-x?
!
! refy Reflection symmetry y->-y?
!
! refz Reflection symmetry z->-z?
!
! cartoon Are we using cartoon_2d?
!
! inner Look for inner horizon?
!
! sloppy Sloppy initial guess?
!
! offset Is the center offset from the origin?
! wander Do we allow the center to wander?
!
! minarea Do we want to minimize area?
!
! flow Use fast flow algorithm instead of minimization?
!
! logfile Write log file?
!
! verbose Write messages to screen?
!
! veryver Write lots of messages to screen?
!
! guessverbose Write info on initial guess points?
!
! lmax Maximum number of terms in theta expansion.
!
! stepx 1 if (refx=1), 0 otherwise.
! stepy 1 if (refy=1), 0 otherwise.
! stepz 1 if (refz=1), 0 otherwise.
!
! ntheta Number of subdivisions in theta.
! nphi Number of subdivisions in phi.
!
! xc Coordinate x of centre of surface.
! yc Coordinate y of centre of surface.
! zc Coordinate z of centre of surface.
!
! xmn Minimum value of x over the grid.
! xmx Maximum value of x over the grid.
!
! ymn Minimum value of y over the grid.
! ymx Maximum value of y over the grid.
!
! zmn Minimum value of z over the grid.
! zmx Maximum value of z over the grid.
!
! intexp Integral of expansion over the surface.
! intexp2 Integral of expansion squared over the surface.
! intarea Area of the surface.
!
! rhmax Maximum radius of horizon.
! rhmin Minimum radius of horizon.
!
! circ_eq Equatorial circumference.
! meri_p1 Length of meridian at phi=0.
! meri_p2 Length of meridian at phi=pi/2.
!
! c0(l) Coefficients of LEGEN(l,0,cos(theta))
! cc(l,m) Coefficients of LEGEN(l,m,cos(theta))*cos(m*phi)
! cs(l,m) Coefficients of LEGEN(l,m,cos(theta))*sin(m*phi)
!
! hflow* Spectral components for "H" flow.
! cflow* Spectral components for "C" flow.
! nflow* Spectral components for "N" flow.
!
! interror1 Different from zero if radius is negative.
! interror2 Different from zero if outside computational domain.
! interror3 Different from zero if inside mask
!
! interror True if any of the 3 errors above are non-zero.
!
! find3 Look for 3 horizons?
! mfind Counter to see for which horizon we are looking.
!
! inside_min_count Number of elements in integral (should always
! be ntheta*nphi)
!
! inside_min_neg_count Number of elements in integral that have
! negative expansion.
!
! avgx X-position of centroid of apparent horizon
! avgy Y-position of centroid of apparent horizon
! avgz Z-position of centroid of apparent horizon
! ***************
! *** END ***
! ***************
end module AHFinder_dat
|