49 INTEGER NELEM,ECKEN,NDUM,I,J,NBV1,NBV2,PARAM(10)
50 INTEGER NPLAN,NPOIN2,NPOIN2LOC,NPLANLOC
51 INTEGER NPROC,NRESU,NPOINMAX
52 INTEGER I_S, I_SP, I_LEN
55 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: NPOIN,VERIF
56 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: KNOLG
59 REAL ,
DIMENSION(:) ,
ALLOCATABLE :: GLOBAL_VALUE
60 REAL ,
DIMENSION(:) ,
ALLOCATABLE :: LOCAL_VALUE
65 CHARACTER(LEN=50) RESPAR
66 CHARACTER(LEN=11) EXTENS
78 WRITE(
lu,*)
'I AM GREDELPTS, COUSIN OF GRETEL FROM BAW HAMBURG' 83 WRITE (
lu, advance=
'NO',
84 & fmt=
'(/,'' GLOBAL GEOMETRY FILE: '')')
89 WRITE (
lu, advance=
'NO', fmt=
'(/,'' RESULT FILE: '')')
93 WRITE (
lu,advance=
'NO',fmt=
'(/,'' NUMBER OF PROCESSORS: '')')
97 INQUIRE (file=geo,exist=is)
99 WRITE (
lu,*)
'FILE DOES NOT EXIST: ', geo
107 IF(res(i_sp-i:i_sp-i) .NE.
' ')
EXIT 113 OPEN(2,file=geo,form=
'UNFORMATTED',status=
'OLD',err=990)
115 READ(2,err=990) nbv1,nbv2
120 990
WRITE(
lu,*)
'ERROR WHEN OPENING OR READING FILE: ',geo
125 READ(2) (param(i),i=1,10)
126 IF(param(10).EQ.1)
READ(2) (param(i),i=1,6)
130 OPEN(3,file=res,form=
'UNFORMATTED',err=991)
132 991
WRITE(
lu,*)
'ERROR WHEN OPENING FILE: ',res
141 respar=res(1:i_len) // extens(nproc-1,0)
143 INQUIRE (file=respar,exist=is)
145 WRITE (
lu,*)
'FILE DOES NOT EXIST: ', respar
146 WRITE (
lu,*)
'CHECK THE NUMBER OF PROCESSORS' 147 WRITE (
lu,*)
'AND THE RESULT FILE CORE NAME' 152 OPEN(4,file=respar,form=
'UNFORMATTED',err=994)
154 994
WRITE(
lu,*)
'ERROR WHEN OPENING FILE: ',respar
161 IF(nplan.EQ.1) nplan = 0
167 READ(2) nelem,npoin2,ecken,ndum
168 WRITE(
lu,*)
'4 PARAMETERS IN GEOMETRY FILE' 169 WRITE(
lu,*)
'NELEM=', nelem
170 WRITE(
lu,*)
'NPOIN2=', npoin2
171 WRITE(
lu,*)
'ECKEN=', ecken
172 WRITE(
lu,*)
'NDUM=', ndum
176 ALLOCATE(npoin(nproc),stat=err)
177 CALL check_allocate(err,
'NPOIN')
179 ALLOCATE(verif(npoin2) ,stat=err)
181 ALLOCATE(verif(npoin2*nplan) ,stat=err)
183 CALL check_allocate(err,
'VERIF')
186 ALLOCATE(global_value(npoin2) ,stat=err)
188 ALLOCATE(global_value(npoin2*nplan) ,stat=err)
190 CALL check_allocate(err,
'GLOBAL_VALUE')
200 respar=res(1:i_len) // extens(nproc-1,ipid)
201 OPEN (fu,file=respar,form=
'UNFORMATTED',err=998)
203 998
WRITE(
lu,*)
'ERROR WHEN OPENING FILE: ',respar,
204 &
' USING FILE UNIT: ', fu
208 READ(fu) npoin(ipid+1)
212 npoinmax = maxval(npoin)
215 ALLOCATE (knolg(npoinmax,nproc),stat=err)
217 ALLOCATE (knolg(npoinmax/nplan,nproc),stat=err)
219 CALL check_allocate(err,
'KNOLG')
221 ALLOCATE(local_value(npoinmax),stat=err)
222 CALL check_allocate(err,
'LOCAL_VALUE')
229 READ(fu) (knolg(i,ipid+1),i=1,npoin(ipid+1))
231 READ(fu) (knolg(i,ipid+1),i=1,npoin(ipid+1)/nplan)
239 2000 nresu = nresu + 1
251 WRITE(
lu,*)
'TRY TO READ DATASET NO.',nresu
256 & (local_value,npoinmax,npoin(ipid+1),it,fu,ende)
261 global_value(knolg(i,ipid+1)) = local_value(i)
262 verif(knolg(i,ipid+1)) = 1
265 npoin2loc = npoin(ipid+1)/nplan
268 global_value(knolg(i,ipid+1) + npoin2 *(j-1)) =
269 & local_value( i + npoin2loc*(j-1))
270 verif(knolg(i,ipid+1) + npoin2 *(j-1)) = 1
276 WRITE(
lu,*)
'WRITING DATASET NO.',nresu,
' TIME =',it
279 WRITE(3) it, (global_value(i),i=1,npoin2)
281 WRITE(3) it, (global_value(i),i=1,npoin2*nplan)
286 IF(verif(i).EQ.0)
THEN 287 WRITE(
lu,*)
'ERROR, POINT I=',i,
' FALSE FOR NRESU=',nresu
292 IF(verif(i).EQ.0)
THEN 293 WRITE(
lu,*)
'ERROR, POINT I=',i,
' FALSE FOR NRESU=',nresu
300 3000
WRITE(
lu,*)
'END OF PROGRAM, ',nresu-1,
' DATASETS FOUND'
subroutine gredelpts_read_dataset(LOCAL_VALUE, NPOINMAX, NPOIN, IT, FU, ENDE)