51 use element_mod ,
only : nixs
55#include "implicit_f.inc"
63 INTEGER,
INTENT(IN) :: NUMELS
64 INTEGER,
DIMENSION(NIXS,*),
INTENT(IN) :: IXS
65 INTEGER,
DIMENSION(NSPMD) :: SIZE_ALE_ELM
73! SIZE_ALE_ELM :
integer ; dimension=nspmd ;
size of ale_elm%SOL_ID array
80 LOGICAL,
DIMENSION(NSPMD) :: BOOL
81 INTEGER :: I,J,K,L,N,NS,IAD1,LGTH
82 INTEGER :: SOLV,ISPMD,NBR_PROC,NEW_SIZE_II,MIN_SIZE
83 INTEGER,
DIMENSION(NSPMD) :: ID_SPMD,II
84 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TMP
89 size_ale_elm(1:nspmd) = numels/nspmd+1
91 ALLOCATE( ale_elm(ispmd)%SOL_ID(size_ale_elm(ispmd)) )
99 iad1 = ale_connectivity%ee_connect%iad_connect(i)
100 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-ale_connectivity%ee_connect%iad_connect(i)
104 solv = ale_connectivity%ee_connect%connected(iad1 + k - 1)
110 bool(id_spmd(ispmd)) = .true.
119 IF( bool(ispmd) )
THEN
120 ii(ispmd) = ii(ispmd) + 1
121 IF( ii(ispmd)>size_ale_elm(ispmd) )
THEN
123 min_size=
max(1,5* numels/ ( 4*nspmd ))
124 new_size_ii = size_ale_elm(ispmd) + min_size
125 ALLOCATE( tmp( new_size_ii ) )
126 tmp(1:size_ale_elm(ispmd)) = ale_elm(ispmd)%SOL_ID( 1:size_ale_elm(ispmd
127 CALL move_alloc(from=tmp,to=ale_elm(ispmd)%SOL_ID)
128 size_ale_elm(ispmd) = new_size_ii
130 ale_elm(ispmd)%SOL_ID(ii(ispmd)) = i
137 size_ale_elm(1:nspmd) = ii(1:nspmd)