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 dfinition 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 rsultat"
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 mpfope(fid, name, access, com, info, cret)
Ouverture d'un fichier MED pour une utilisation parallèle.
subroutine mficlo(fid, cret)
Fermeture d'un fichier MED.
subroutine mfrblc(fid, nent, nvent, ncent, cs, swm, stm, pname, start, stride, count, bsize, lbsize, flt, cret)
Crée un filtre en selectionnant par blocs les entités pour lesquelles on veut lire/écrire des valeurs...
subroutine mfdrar(fid, fname, numdt, numit, etype, gtype, flt, val, cret)
subroutine mfrall(nflt, flt, cret)
subroutine mfrdea(nflt, flt, cret)