34 integer USER_INTERLACE,USER_MODE
35 integer*4 com,ioe,rank,nprocs
40 integer start, stride, count, bsize, lbsize, resd
41 character*64 :: pflname
43 real*8,
allocatable,
dimension(:) :: val
50 call mpi_comm_size(mpi_comm_world,nprocs,ioe)
51 call mpi_comm_rank(mpi_comm_world,rank,ioe)
54 call mpfope(fid,
'NENT-942_NVAL-008_NCST-007.med', med_acc_rdonly,com4_8, info, ret)
57 print *,
"Erreur à l'ouverture du fichier" 58 print *,
"Process n° ",rank,
"/",nprocs,
" ret :",ret
69 start = rank*(bsize)+1
73 if (rank.eq.(nprocs-1) )
then 74 resd = nent-(nprocs*bsize)
77 print *,
"myrank :",rank,
" resd", resd,
" bsize ",bsize,
" lbsize",lbsize
81 print *,
"Erreur à l'allocation du filtre" 82 print *,
"Process n° ",rank,
"/",nprocs,
" ret :",ret
86 call mfrblc (fid, nent, nvent, ncent, &
87 & med_all_constituent, med_full_interlace,med_compact_stmode ,med_allentities_profile, &
88 & start, stride, count, bsize, lbsize, flt, ret)
91 print *,
"Erreur à la définition du filtre" 92 print *,
"Process n° ",rank,
"/",nprocs,
" ret :",ret
96 allocate(val(bsize*nvent*ncent),stat=ret)
99 call mfdrar ( fid,
"NENT-942_NVAL-008_NCST-007_NBL-001",&
100 & med_no_dt, med_no_it, med_cell, med_tria6,&
103 print *,
"Erreur à la lecture du champ résultat" 104 print *,
"Process n° ",rank,
"/",nprocs,
" ret :",ret
112 write(40+rank,
'(1X,F10.3,1X)',advance=
'NO') val(i*(ncent*nvent)+j*ncent+k+1)
114 write(40+rank,
'(A)')
"/" 116 write(40+rank,
'(A)')
"//" 124 print *,
"Erreur à la desallocation du filtre" 125 print *,
"Process n° ",rank,
"/",nprocs,
" ret :",ret
129 print *,
"Process n° ",rank,
"/",nprocs,
" ret :",ret
135 call mpi_finalize(ioe)
subroutine mfrdea(nflt, flt, cret)
subroutine mficlo(fid, cret)
subroutine mpfope(fid, name, access, com, info, cret)
subroutine mfrblc(fid, nent, nvent, ncent, cs, swm, stm, pname, start, stride, count, bsize, lbsize, flt, cret)
subroutine mfdrar(fid, fname, numdt, numit, etype, gtype, flt, val, cret)
subroutine mfrall(nflt, flt, cret)