59 CHARACTER(10) :: keys(3)
61 INTEGER :: errorflag, ncols, nrows
62 REAL(RFREAL) :: valsdump(3)
63 REAL(RFREAL),
POINTER :: valsloc(:,:)
68 'ReadProbeSection.F90' )
80 IF ( global%nProbes == 0 )
THEN
91 CALL
readlistsection( global,if_input,keys(1),ncols,nrows,valsloc,defined(1) )
93 IF (defined(1).eqv..true.)
THEN
94 global%nProbes = nrows
95 ALLOCATE( global%probePos(nrows,ncols),stat=errorflag )
96 errorflag = global%error
97 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
102 ALLOCATE( global%probeXYZ(nrows,ncols),stat=errorflag )
103 errorflag = global%error
104 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
105 DO ival=1,global%nProbes
106 IF (valsloc(ival,1) /= 0.)
THEN
108 global%probePos(ival,
n) = int(abs(valsloc(ival,
n))+0.5_rfreal)
114 global%probePos(ival,
n) = 0
115 global%probeXYZ(ival,
n) = valsloc(ival,
n)
121 IF (defined(1).eqv..true.)
THEN
122 DEALLOCATE( valsloc,stat=errorflag )
123 global%error = errorflag
124 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,__line__ )
133 keys(3) =
'OPENCLOSE'
135 CALL
readsection( global,if_input,3,keys,valsdump,defined )
137 IF (defined(1).eqv..true.) global%probeSaveTime = abs(valsdump(1))
138 IF (defined(2).eqv..true.)
THEN
139 global%probeSaveIter = int(abs(valsdump(2))+0.5_rfreal)
140 global%probeSaveIter =
max(1,global%probeSaveIter)
142 IF (defined(3).eqv..true.)
THEN
143 IF (valsdump(3) < 0.5_rfreal)
THEN
144 global%probeOpenClose = .false.
146 global%probeOpenClose = .true.
149 IF ((.NOT.(defined(1).eqv..true.)).AND. &
150 (.NOT.(defined(2).eqv..true.)).AND. &
151 (.NOT.(defined(3).eqv..true.)))
THEN
152 backspace(if_input, iostat=errorflag)
153 global%error = errorflag
154 IF (global%error /= err_none) &
155 CALL
errorstop( global,err_file_read,__line__, &
156 'while backspacing after reading probe section' )
167 CALL
readlistsection(global,if_input,keys(1),ncols,nrows,valsloc,defined(1))
169 IF ( defined(1) .EQV. .true. )
THEN
170 global%nProbes = nrows
172 ALLOCATE(global%probePos(nrows,probe_region:probe_cell),stat=errorflag)
173 global%error = errorflag
174 IF (global%error /= 0)
THEN
175 CALL
errorstop(global,err_allocate,__line__)
178 DO ival = 1,global%nProbes
179 DO n = probe_region,probe_cell
180 global%probePos(ival,
n) = crazy_value_int
184 ALLOCATE(global%probeXYZ(nrows,ncols),stat=errorflag)
185 global%error = errorflag
186 IF (global%error /= 0)
THEN
187 CALL
errorstop(global,err_allocate,__line__)
190 DO ival = 1,global%nProbes
192 global%probeXYZ(ival,
n) = valsloc(ival,
n)
197 IF ( defined(1) .EQV. .true. )
THEN
198 DEALLOCATE(valsloc,stat=errorflag)
199 global%error = errorflag
200 IF (global%error /= 0)
THEN
201 CALL
errorstop(global,err_deallocate,__line__)
211 keys(3) =
'OPENCLOSE'
213 CALL
readsection(global,if_input,3,keys,valsdump,defined)
215 IF ( defined(1) .EQV. .true. )
THEN
216 global%probeSaveTime = abs(valsdump(1))
218 IF ( defined(2) .EQV. .true. )
THEN
219 global%probeSaveIter = int(abs(valsdump(2))+0.5_rfreal)
220 global%probeSaveIter =
max(1,global%probeSaveIter)
222 IF ( defined(3) .EQV. .true. )
THEN
223 IF ( valsdump(3) < 0.5_rfreal )
THEN
224 global%probeOpenClose = .false.
226 global%probeOpenClose = .true.
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
subroutine registerfunction(global, funName, fileName)
subroutine readlistsection(global, fileID, key, nCols, nRows, vals, defined)
subroutine readprobesection(global)
subroutine readsection(global, fileID, nvals, keys, vals, defined)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)