1 : C KMP2 SOURCE CHAT 05/01/13 00:58:01 5004 2 : SUBROUTINE KMP2(AM,B,GX,IPADL,NUM,NP,NEL,NPT) 3 : C 4 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 5 : C C 6 : C PARTIE NUMERIQUE INTENSE DE CAMTP2, CAS BIDIMENSIONNEL C 7 : C CAMTP C 8 : C C 9 : C POUR OPTIMISER LES ACCES MEMOIRE ON BOUCLE SUR LES C 10 : C ELEMENTS A L'INTERIEUR DE LA BOUCLE SUR LES SOMMETS. C 11 : C C 12 : C ON AMELIORE ENCORE LA RESIDENCE DES DONNEES EN TRAITANT C 13 : C PAR PAQUETS D'ELEMENTS. LES PAQUETS NE DOIVENT PAS ETRE C 14 : C TROP GROS. C 15 : C C 16 : C C'EST LA TECHNIQUE UTILISEE DANS XCV**. C 17 : C C 18 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 19 : C 20 : IMPLICIT INTEGER(I-N) 21 : IMPLICIT REAL*8 (A-H,O-Z) 22 : C 23 : DIMENSION AM(NEL,NP,2),GX(NPT,2),B(1) 24 : DIMENSION NUM(NP,1),IPADL(1) 25 : C 26 : LPACK=48 27 : NNN=MOD(NEL,LPACK) 28 : IF(NNN.EQ.0) NPACK=NEL/LPACK 29 : IF(NNN.NE.0) NPACK=1+(NEL-NNN)/LPACK 30 : 31 : DO 8 IPACK=1,NPACK 32 : KDEB=(IPACK-1)*LPACK+1 33 : KFIN=KDEB+LPACK-1 34 : IF(KFIN.GT.NEL) KFIN=NEL 35 : DO 7 I=1,NP 36 : DO 6 K=KDEB,KFIN 37 : IU=IPADL(NUM(I,K)) 38 : GX(IU,1)=GX(IU,1)+AM(K,I,1)*B(K) 39 : GX(IU,2)=GX(IU,2)+AM(K,I,2)*B(K) 40 : 6 CONTINUE 41 : 7 CONTINUE 42 : 43 : 8 CONTINUE 44 : C 45 : RETURN 46 : END 47 : 48 :
© Cast3M 2003 - All rights reserved.
Disclaimer