calcgb
C CALCGB SOURCE GOUNAND 21/06/02 21:15:05 11022 $ FC, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : CALCGB C DESCRIPTION : Calcul de la loi de comportement aux points de Gauss C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : C APPELE PAR : C*********************************************************************** C ENTREES : C ENTREES/SORTIES : C SORTIES : - C TRAVAIL : C*********************************************************************** C VERSION : v1, 11/05/04, version initiale C HISTORIQUE : v1, 11/05/04, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC TNLIN *-INC SMCHAEL INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM,N1 POINTEUR FC.MCHEVA POINTEUR LCOF.LCHEVA POINTEUR MYCOF.MCHEVA POINTEUR JPC.MCHEVA * les MCHEVA des coefficient *-INC SLCOMP POINTEUR IVCOM.COMP *-INC TMPREC POINTEUR METRIQ.MPREC INTEGER IMPR,IRET CHARACTER*8 NOMLOI REAL*8 MAXVAL * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans calcgb' NOMLOI=IVCOM.NOMCOM * WRITE(IOIMP,*) 'NOMLOI=',NOMLOI * * Dispatching * IF (NOMLOI.EQ.'RIEN ') THEN FC.WELCHE(1,1,1,1,1,1)=1.D0 ELSEIF (NOMLOI.EQ.'IDEN ') THEN NLFC=FC.WELCHE(/6) NPFC=FC.WELCHE(/5) MYCOF=LCOF.LISCHE(1) NLC=MYCOF.WELCHE(/6) NPC=MYCOF.WELCHE(/5) N2C=MYCOF.WELCHE(/4) IF (NLFC.NE.NLC.OR.NPFC.NE.NPC.OR.N2C.NE.1) THEN WRITE(IOIMP,*) 'Erreur grave 1' GOTO 9999 ENDIF DO ILFC=1,NLFC DO IPFC=1,NPFC FC.WELCHE(1,1,1,1,IPFC,ILFC)= $ MYCOF.WELCHE(1,1,1,1,IPFC,ILFC) ENDDO ENDDO ELSEIF (NOMLOI.EQ.'1/X ') THEN NLFC=FC.WELCHE(/6) NPFC=FC.WELCHE(/5) MYCOF=LCOF.LISCHE(1) NLC=MYCOF.WELCHE(/6) NPC=MYCOF.WELCHE(/5) N2C=MYCOF.WELCHE(/4) IF (NLFC.NE.NLC.OR.NPFC.NE.NPC.OR.N2C.NE.1) THEN WRITE(IOIMP,*) 'Erreur grave 2' GOTO 9999 ENDIF DO ILFC=1,NLFC DO IPFC=1,NPFC FC.WELCHE(1,1,1,1,IPFC,ILFC)=1.D0/ $ MYCOF.WELCHE(1,1,1,1,IPFC,ILFC) ENDDO ENDDO ELSEIF (NOMLOI.EQ.'MAXI ') THEN NLFC=FC.WELCHE(/6) NPFC=FC.WELCHE(/5) MYCOF=LCOF.LISCHE(1) NLC=MYCOF.WELCHE(/6) NPC=MYCOF.WELCHE(/5) N2C=MYCOF.WELCHE(/4) IF (NLFC.NE.NLC.OR.NPFC.NE.NPC.OR.N2C.NE.1) THEN WRITE(IOIMP,*) 'Erreur grave 3' GOTO 9999 ENDIF DO ILFC=1,NLFC MAXVAL=FC.WELCHE(1,1,1,1,1,ILFC) DO IPFC=2,NPFC MAXVAL=MAX(MAXVAL,FC.WELCHE(1,1,1,1,IPFC,ILFC)) ENDDO DO IPFC=1,NPFC FC.WELCHE(1,1,1,1,IPFC,ILFC)=MAXVAL ENDDO ENDDO ELSEIF (NOMLOI.EQ.'RAYS ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'MUR ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'SUTH ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'DIV ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'TAU ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'SIGMA ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'MADSMID ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'VOLORI ') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI(1:3).EQ.'AHU') THEN IF (IRET.NE.0) GOTO 9999 * ELSEIF (NOMLOI(1:3).EQ.'AHP') THEN * CALL CCGAHP(LCOF,NOMLOI,METRIQ,FC,IMPR,IRET) * IF (IRET.NE.0) GOTO 9999 ELSEIF ((NOMLOI(1:4).EQ.'QEQU').OR.(NOMLOI(1:4).EQ.'QALI')) THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI(1:4).EQ.'D/DX') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'TAILDIRE') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI(1:6).EQ.'MUSTAB') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI(1:3).EQ.'TSU') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI(1:3).EQ.'VNO') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI(1:4).EQ.'IMET') THEN IF (IRET.NE.0) GOTO 9999 ELSEIF (NOMLOI.EQ.'X1 ') THEN NLFC=FC.WELCHE(/6) NPFC=FC.WELCHE(/5) IF (IFOMOD.NE.0.AND.IFOMOD.NE.4.AND.IFOMOD.NE.5) then write(ioimp,*) 'erreur compor X1, ifomod=',ifomod goto 9999 endif JPC=LCOF.LISCHE(6) NLPC=JPC.WELCHE(/6) NPPC=JPC.WELCHE(/5) IF (((NLPC.NE.1).AND.(NLPC.NE.NLFC)).OR. $ ((NPPC.NE.1).AND.(NPPC.NE.NPFC))) THEN WRITE(IOIMP,*) 'Erreur dims JPC' GOTO 9999 ENDIF DO ILFC=1,NLFC IF (NLPC.EQ.1) THEN ILPC=1 ELSE ILPC=ILFC ENDIF DO IPFC=1,NPFC IF (NPPC.EQ.1) THEN IPPC=1 ELSE IPPC=IPFC ENDIF FC.WELCHE(1,1,1,1,IPFC,ILFC)= $ JPC.WELCHE(1,1,1,1,IPPC,ILPC) ENDDO ENDDO ELSE WRITE(IOIMP,*) 'Loi de comportement ',NOMLOI WRITE(IOIMP,*) 'non définie dans calcgb' GOTO 9999 ENDIF * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine calcgb' RETURN * * End of subroutine CALCGB * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales