C IDDIFF SOURCE FANDEUR 10/12/17 21:17:12 6427 SUBROUTINE IDDIFF (ITROP,MOOBL,MOFAC,INLIN,IRET) *----------------------------------------------------------------------* * Noms de composantes de materiau pour la DIFFUSION non lineaire * *----------------------------------------------------------------------* * ITROP (E) "tropie" du materiau (IMATEE du MODELE) * * MOOBL (E/S) pointeur sur les composantes obligatoires * * MOFAC (E/S) pointeur sur les composantes facultatives * * INLIN (E) numero du modele dans MODDIF (INATUU du MODELE) * * IRET (S) =0 en cas de probleme * *----------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC SMLMOTS JGN = 8 * Loi de FICK : loi lineaire * --------------- IF (INLIN.EQ.0) THEN * Pas de composantes supplementaires que les coefficients lineaires IRET = 1 * Loi SORET : * ------------- ELSE IF (INLIN.EQ.1) THEN IF (MOOBL.NE.0) THEN MLMOTS = MOOBL JGA = MOTS(/2) JGM = JGA+10 SEGADJ,MLMOTS ELSE JGA = 0 JGM = 10 SEGINI,MLMOTS ENDIF C -- Diffusion isotrope IF (ITROP.EQ.1) THEN JGM = JGA+1 C*8 MOTS(JGA+1) = 'KSORET ' MOTS(JGA+1) = 'KS ' C -- Diffusion orthotrope ELSE IF (ITROP.EQ.2) THEN C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE IF (IFOMOD.LE.0) THEN JGM = JGA + 2 C*8 MOTS(JGA+1) = 'KSORET1 ' C*8 MOTS(JGA+2) = 'KSORET2 ' MOTS(JGA+1) = 'KS1 ' MOTS(JGA+2) = 'KS2 ' C ---- Elements massifs bidimensionnels FOURIER C ---- Elements massifs TRIDimensionnels ELSE JGM = JGA + 3 C*8 MOTS(JGA+1) = 'KSORET1 ' C*8 MOTS(JGA+2) = 'KSORET2 ' C*8 MOTS(JGA+3) = 'KSORET3 ' MOTS(JGA+1) = 'KS1 ' MOTS(JGA+2) = 'KS2 ' MOTS(JGA+3) = 'KS3 ' ENDIF C -- Diffusion anisotrope ELSE IF (ITROP.EQ.3) THEN C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE IF (IFOMOD.LE.0) THEN JGM = JGA + 3 C*8 MOTS(JGA+1) = 'KSORET11' C*8 MOTS(JGA+2) = 'KSORET22' C*8 MOTS(JGA+3) = 'KSORET21' MOTS(JGA+1) = 'KS11 ' MOTS(JGA+2) = 'KS22 ' MOTS(JGA+3) = 'KS21 ' C ---- Elements massifs bidimensionnels FOURIER ELSE IF (IFOMOD.EQ.1) THEN JGM = JGA + 4 C*8 MOTS(JGA+1) = 'KSORET11' C*8 MOTS(JGA+2) = 'KSORET22' C*8 MOTS(JGA+3) = 'KSORET21' C*8 MOTS(JGA+4) = 'KSORET33' MOTS(JGA+1) = 'KS11 ' MOTS(JGA+2) = 'KS22 ' MOTS(JGA+3) = 'KS21 ' MOTS(JGA+4) = 'KS33 ' C ---- Elements massifs TRIDimensionnels ELSE IF (IFOMOD.EQ.2) THEN JGM = JGA + 6 C*8 MOTS(JGA+1) = 'KSORET11' C*8 MOTS(JGA+2) = 'KSORET22' C*8 MOTS(JGA+3) = 'KSORET33' C*8 MOTS(JGA+4) = 'KSORET21' C*8 MOTS(JGA+5) = 'KSORET31' C*8 MOTS(JGA+6) = 'KSORET32' MOTS(JGA+1) = 'KS11 ' MOTS(JGA+2) = 'KS22 ' MOTS(JGA+3) = 'KS33 ' MOTS(JGA+4) = 'KS21 ' MOTS(JGA+5) = 'KS31 ' MOTS(JGA+6) = 'KS32 ' ENDIF ELSE C -- Erreur ne devant pas survenir IRET = 0 CALL ERREUR(261) RETURN ENDIF SEGADJ,MLMOTS MOOBL = MLMOTS IRET = 1 * Loi UTILISATEUR : * ------------------- ELSE IF (INLIN.EQ.2) THEN * Par defaut pas de composantes autres que celles de l'utilisateur IRET = 1 * Loi inconnue : ERREUR * ---------------- ELSE IRET = 0 CALL ERREUR(261) ENDIF RETURN END