1 : C ASNS3 SOURCE CHAT 05/01/12 21:26:01 5004 2 : SUBROUTINE ASNS3(MDNO,MIMI,MINCP,idno1,midu,iipo1) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : 6 : -INC CCOPTIO 7 : -INC SMLMOTS 8 : -INC SMLREEL 9 : -INC SMMATRI 10 : 11 : * write(6,fmt='('' entree dans assem3 '')') 12 : * write(6,fmt='('' norinc norval'',2i6)')norinc,norval 13 : 14 : MLMOTS=NORINC 15 : SEGACT MLMOTS 16 : * write(6,fmt='('' fini pour norinc'')') 17 : 18 : *inutile LIN=MOTS(/2) 19 : MLREEL=NORVAL 20 : SEGACT MLREEL 21 : * write(6,fmt='('' fini pour norval'')') 22 : 23 : MIMIK=MIMI 24 : SEGACT MIMIK 25 : 26 : MINCPO=MINCP 27 : SEGACT MINCPO 28 : 29 : MDNOR=MDNO 30 : SEGACT MDNOR*MOD 31 : 32 : mlmot1 = norind 33 : segact mlmot1 34 : 35 : mlree1 = norvad 36 : segact mlree1 37 : 38 : midua = midu 39 : segact midua 40 : 41 : mipo1 = iipo1 42 : segact mipo1 43 : 44 : mdno1 = idno1 45 : segact mdno1*mod 46 : 47 : C ... On commence par les colonnes ... 48 : ID1=INCPO(/1) 49 : ID2=INCPO(/2) 50 : IDN=PROG(/1) 51 : C ... Boucle sur les noeuds ... 52 : DO 1 I=1,ID2 53 : C ... Boucle sur les DDL primaux ... 54 : DO 2 J=1,ID1 55 : C ... IA = N° de colonne correspondant ... 56 : IA=INCPO(J,I) 57 : IF(IA.EQ.0) GO TO 2 58 : C ... Si IA est non nul, on va chercher le DDL N° J dans la 59 : C liste des DDL à normaliser ... 60 : DO 3 K=1,IDN 61 : IF(IMIK(J).NE.MOTS(K)) GO TO 3 62 : C ... S'il y est, on multiplie le DNOR correspondant à 63 : C la colonne N° IA, par le coefficient correspondant ... 64 : DNOR(IA)=DNOR(IA) * PROG(K) 65 : goto 2 66 : 3 CONTINUE 67 : 2 CONTINUE 68 : 1 CONTINUE 69 : 70 : * write(6,fmt='('' dnor '',6e12.5)') ( dnor(ia),ia=1,dnor(/1)) 71 : 72 : SEGDES MLMOTS,MLREEL 73 : 74 : C ... Puis, on passe aux lignes ... 75 : ID1=MIPO1.INCPO(/1) 76 : ID2=MIPO1.INCPO(/2) 77 : IDN=MLREE1.PROG(/1) 78 : C ... Boucle sur les noeuds ... 79 : DO 10 I=1,ID2 80 : C ... Boucle sur les DDL duaux ... 81 : DO 20 J=1,ID1 82 : C ... IA = N° de ligne correspondant ... 83 : IA=MIPO1.INCPO(J,I) 84 : IF(IA.EQ.0) GO TO 20 85 : C ... Si IA est non nul, on va chercher le DDL N° J dans la 86 : C liste des DDL à normaliser ... 87 : DO 30 K=1,IDN 88 : IF(IDUA(J).NE.MLMOT1.MOTS(K)) GO TO 30 89 : C ... S'il y est, on multiplie le DNOR correspondant à 90 : C la ligne N° IA, par le coefficient correspondant ... 91 : MDNO1.DNOR(IA)=MDNO1.DNOR(IA) * MLREE1.PROG(K) 92 : goto 20 93 : 30 CONTINUE 94 : 20 CONTINUE 95 : 10 CONTINUE 96 : 97 : * write(6,fmt='('' mdno1.dnor '',6e12.5)') 98 : * & ( mdno1.dnor(ia),ia=1,mdno1.dnor(/1)) 99 : 100 : SEGDES MLMOT1,MLREE1 101 : 102 : RETURN 103 : END 104 : 105 : 106 : 107 :
© Cast3M 2003 - All rights reserved.
Disclaimer