C BNPOR2 SOURCE CHAT 05/01/12 21:41:44 5004 SUBROUTINE BNPOR2 (YGENE,NCOT,IELE) *______________________________________________________________________ * * POUR PENALISATION (MILIEUX POREUX) APPELE PAR RIGI2 *______________________________________________________________________ * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO * DIMENSION YGENE(NCOT,*) * * CONSTRUCTION DU TABLEAU SELON LES ELEMENTS * LES SOMMETS SONT RANGES AVANT LES MILIEUX * * T6 * IF(IELE.EQ.6) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,4) =-2.D0 YGENE(2,2) = 1.D0 YGENE(2,3) = 1.D0 YGENE(2,5) =-2.D0 YGENE(3,3) = 1.D0 YGENE(3,1) = 1.D0 YGENE(3,6) =-2.D0 * * Q8 * ELSE IF(IELE.EQ.10) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,5) =-2.D0 YGENE(2,2) = 1.D0 YGENE(2,3) = 1.D0 YGENE(2,6) =-2.D0 YGENE(3,3) = 1.D0 YGENE(3,4) = 1.D0 YGENE(3,7) =-2.D0 YGENE(4,4) = 1.D0 YGENE(4,1) = 1.D0 YGENE(4,8) =-2.D0 * * C20 * ELSE IF(IELE.EQ.15) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,9) =-2.D0 YGENE(2,2) = 1.D0 YGENE(2,3) = 1.D0 YGENE(2,10) =-2.D0 YGENE(3,3) = 1.D0 YGENE(3,4) = 1.D0 YGENE(3,11) =-2.D0 YGENE(4,4) = 1.D0 YGENE(4,1) = 1.D0 YGENE(4,12) =-2.D0 YGENE(5,5) = 1.D0 YGENE(5,6) = 1.D0 YGENE(5,17) =-2.D0 YGENE(6,6) = 1.D0 YGENE(6,7) = 1.D0 YGENE(6,18) =-2.D0 YGENE(7,7) = 1.D0 YGENE(7,8) = 1.D0 YGENE(7,19) =-2.D0 YGENE(8,8) = 1.D0 YGENE(8,5) = 1.D0 YGENE(8,20) =-2.D0 YGENE(9,1) = 1.D0 YGENE(9,5) = 1.D0 YGENE(9,13) =-2.D0 YGENE(10,2) = 1.D0 YGENE(10,6) = 1.D0 YGENE(10,14)=-2.D0 YGENE(11,3) = 1.D0 YGENE(11,7) = 1.D0 YGENE(11,15)=-2.D0 YGENE(12,4) = 1.D0 YGENE(12,8) = 1.D0 YGENE(12,16)=-2.D0 * * P15 * ELSE IF(IELE.EQ.17) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,7) =-2.D0 YGENE(2,2) = 1.D0 YGENE(2,3) = 1.D0 YGENE(2,8) =-2.D0 YGENE(3,3) = 1.D0 YGENE(3,1) = 1.D0 YGENE(3,9) =-2.D0 YGENE(4,4) = 1.D0 YGENE(4,5) = 1.D0 YGENE(4,13)=-2.D0 YGENE(5,5) = 1.D0 YGENE(5,6) = 1.D0 YGENE(5,14)=-2.D0 YGENE(6,6) = 1.D0 YGENE(6,4) = 1.D0 YGENE(6,15)=-2.D0 YGENE(7,1) = 1.D0 YGENE(7,4) = 1.D0 YGENE(7,10)=-2.D0 YGENE(8,2) = 1.D0 YGENE(8,5) = 1.D0 YGENE(8,11)=-2.D0 YGENE(9,3) = 1.D0 YGENE(9,6) = 1.D0 YGENE(9,12)=-2.D0 * * T10 * ELSE IF(IELE.EQ.24) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,5) =-2.D0 YGENE(2,2) = 1.D0 YGENE(2,3) = 1.D0 YGENE(2,6) =-2.D0 YGENE(3,3) = 1.D0 YGENE(3,1) = 1.D0 YGENE(3,7) =-2.D0 YGENE(4,1) = 1.D0 YGENE(4,4) = 1.D0 YGENE(4,8) =-2.D0 YGENE(5,2) = 1.D0 YGENE(5,4) = 1.D0 YGENE(5,9) =-2.D0 YGENE(6,3) = 1.D0 YGENE(6,4) = 1.D0 YGENE(6,10)=-2.D0 * * RP3 * ELSE IF(IELE.EQ.29) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,7) =-2.D0 YGENE(2,3) = 1.D0 YGENE(2,4) = 1.D0 YGENE(2,8) =-2.D0 * * LP6 * ELSE IF(IELE.EQ.30) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,10)=-2.D0 YGENE(2,2) = 1.D0 YGENE(2,3) = 1.D0 YGENE(2,11)=-2.D0 YGENE(3,3) = 1.D0 YGENE(3,1) = 1.D0 YGENE(3,12)=-2.D0 YGENE(4,4) = 1.D0 YGENE(4,5) = 1.D0 YGENE(4,13)=-2.D0 YGENE(5,5) = 1.D0 YGENE(5,6) = 1.D0 YGENE(5,14)=-2.D0 YGENE(6,6) = 1.D0 YGENE(6,4) = 1.D0 YGENE(6,15)=-2.D0 * * LP8 * ELSE IF(IELE.EQ.31) THEN YGENE(1,1) = 1.D0 YGENE(1,2) = 1.D0 YGENE(1,13)=-2.D0 YGENE(2,2) = 1.D0 YGENE(2,3) = 1.D0 YGENE(2,14)=-2.D0 YGENE(3,3) = 1.D0 YGENE(3,4) = 1.D0 YGENE(3,15)=-2.D0 YGENE(4,4) = 1.D0 YGENE(4,1) = 1.D0 YGENE(4,16)=-2.D0 YGENE(5,5) = 1.D0 YGENE(5,6) = 1.D0 YGENE(5,17)=-2.D0 YGENE(6,6) = 1.D0 YGENE(6,7) = 1.D0 YGENE(6,18)=-2.D0 YGENE(7,7) = 1.D0 YGENE(7,8) = 1.D0 YGENE(7,19)=-2.D0 YGENE(8,8) = 1.D0 YGENE(8,5) = 1.D0 YGENE(8,20)=-2.D0 * ELSE CALL ERREUR(5) ENDIF RETURN END