1 : C KRA003 SOURCE CHAT 05/01/13 01:05:48 5004 2 : C*********************************************************************C 3 : C C 4 : C --- KRA003 REPRESENTE LA PARTIE NUMERIQUEMENT INTENSE DU CALCUL C 5 : C EFFECTUE DANS CAMDF (3D). ON UTILISE UN PROGRAMME C 6 : C FORTRAN PLUTOT QU'ESOPE POUR UNE PLUS GRANDE EFFICACITE. C 7 : C C 8 : C LA BOUCLE SUR LE NOMBRE D'ELEMENTS EST VECTORISABLE C 9 : C ET PARALLELISABLE DIRECTEMENT. C 10 : C C 11 : C POUR OPTIMISER LES ACCES MEMOIRE, ON BOUCLE SUR C 12 : C LE NOMBRE D'ELEMENTS A L'INTERIEUR DE LA BOUCLE SUR LES C 13 : C SOMMETS. ON NE GAGNE RIEN A TRAITER PAR PAQUETS C 14 : C D'ELEMENTS VU QUE L'ON ACCUMULE SUR LES ELEMENTS C 15 : C WET QU'IL Y A UNE DIVISION A FAIRE. 16 : C C 17 : C*********************************************************************C 18 : SUBROUTINE KRA003(AM,GX,D,B,NUM,IPADL,NP,NEL,NPT) 19 : IMPLICIT INTEGER(I-N) 20 : IMPLICIT REAL*8 (A-H,O-Z) 21 : DIMENSION AM(NEL,NP,3), 22 : ; GX(NPT,3), 23 : ; D (NPT,3), 24 : ; NUM(NP,1), 25 : ; IPADL(1), 26 : ; B (1) 27 : C 28 : C --- L'AFFECTATION Z=0. N'EST LA QUE POUR EVITER QU'ESOPE N'INTERCALE 29 : C LA CARTE INTEGEROOA,... ENTRE LA DIRECTIVE DE VECTORISATION ET 30 : C LA BOUCLE DO 11. ||| 31 : Z=0. 32 : DO 22 I=1,NP 33 : DO 21 K=1,NEL 34 : IU=IPADL(NUM(I,K)) 35 : B(K)=B(K)+AM(K,I,1)*GX(IU,1)/D(IU,1) 36 : & +AM(K,I,2)*GX(IU,2)/D(IU,2) 37 : & +AM(K,I,3)*GX(IU,3)/D(IU,3) 38 : 21 CONTINUE 39 : 22 CONTINUE 40 : RETURN 41 : END 42 : 43 :
© Cast3M 2003 - All rights reserved.
Disclaimer