C CCGSUT SOURCE GOUNAND 05/12/21 21:16:52 5281 SUBROUTINE CCGSUT(LCOF, $ FC, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : CCGSUT C DESCRIPTION : Calcul de la loi de comportement aux points de Gauss : C une divergence 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, 12/05/04, version initiale C HISTORIQUE : v1, 12/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 CCOPTIO CBEGININCLUDE SMCHAEL SEGMENT MCHAEL POINTEUR IMACHE(N1).MELEME POINTEUR ICHEVA(N1).MCHEVA ENDSEGMENT SEGMENT MCHEVA REAL*8 VELCHE(NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM) ENDSEGMENT SEGMENT LCHEVA POINTEUR LISCHE(NBCHE).MCHEVA ENDSEGMENT CENDINCLUDE SMCHAEL INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM,N1 POINTEUR FC.MCHEVA POINTEUR LCOF.LCHEVA POINTEUR T1.MCHEVA POINTEUR T2.MCHEVA POINTEUR T3.MCHEVA * INTEGER IMPR,IRET * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans ccgsut' NLFC=FC.VELCHE(/6) NPFC=FC.VELCHE(/5) T1=LCOF.LISCHE(1) T2=LCOF.LISCHE(2) T3=LCOF.LISCHE(3) NLC1=T1.VELCHE(/6) NPC1=T1.VELCHE(/5) NLC2=T2.VELCHE(/6) NPC2=T2.VELCHE(/5) NLC3=T3.VELCHE(/6) NPC3=T3.VELCHE(/5) DO ILFC=1,NLFC IF (NLC1.EQ.1) THEN ILC1=1 ELSE ILC1=ILFC ENDIF IF (NLC2.EQ.1) THEN ILC2=1 ELSE ILC2=ILFC ENDIF IF (NLC3.EQ.1) THEN ILC3=1 ELSE ILC3=ILFC ENDIF DO IPFC=1,NPFC IF (NPC1.EQ.1) THEN IPC1=1 ELSE IPC1=IPFC ENDIF IF (NPC2.EQ.1) THEN IPC2=1 ELSE IPC2=IPFC ENDIF IF (NPC3.EQ.1) THEN IPC3=1 ELSE IPC3=IPFC ENDIF XT1=T1.VELCHE(1,1,1,1,IPC1,ILC1) XT2=T2.VELCHE(1,1,1,1,IPC2,ILC2) XT3=T3.VELCHE(1,1,1,1,IPC3,ILC3) FC.VELCHE(1,1,1,1,IPFC,ILFC)= $ ((XT1/XT2)**1.5D0) $ *((XT2+XT3)/(XT1+XT3)) ENDDO ENDDO * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine ccgsut' RETURN * * End of subroutine CCGSUT * END