C COGAUF SOURCE GOUNAND 06/08/04 21:15:10 5520 SUBROUTINE COGAUF(JCOEFF,FFPG,SSFACT,NBELEF, $ JCOEFG, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : COGAUF C PROJET : Noyau linéaire NLIN C DESCRIPTION : 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 C ENTREES/SORTIES : - C SORTIES : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v2, 03/10/03, refonte complète (modif SMPOUET) C VERSION : v1, 17/01/03, version initiale C HISTORIQUE : v1, 17/01/03, 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 SFACTIV SEGMENT FACTIV POINTEUR IFACTI(NBSOUV).SFACTI ENDSEGMENT SEGMENT SFACTI POINTEUR ISFACT(NBSOFV).SSFACT ENDSEGMENT SEGMENT SSFACT LOGICAL LFACTI(NBELFV,NBELEV) ENDSEGMENT CENDINCLUDE SFACTIV 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 POINTEUR JCOEFF.MCHEVA POINTEUR JCOEFG.MCHEVA * Valeurs des fns d'interpolation du coeff. aux points de Gauss POINTEUR FFPG.MCHEVA * INTEGER IMPR,IRET * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans cogauf' SEGACT SSFACT NBELFV=SSFACT.LFACTI(/1) NBELEV=SSFACT.LFACTI(/2) SEGACT JCOEFF NDLIG =JCOEFF.VELCHE(/1) NDCOL =JCOEFF.VELCHE(/2) N2DLIG=JCOEFF.VELCHE(/3) N2DCOL=JCOEFF.VELCHE(/4) NDNOEU=JCOEFF.VELCHE(/5) NBELEM=JCOEFF.VELCHE(/6) IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.1 $ .OR.NDNOEU.NE.1 $ .OR.(NBELEM.NE.1.AND.NBELEM.NE.NBELEV)) THEN WRITE(IOIMP,*) 'Erreur dims JCOEFF' GOTO 9999 ENDIF NDDL=NDCOL NLVCOF=NBELEM SEGACT FFPG NDLIG =FFPG.VELCHE(/1) NDCOL =FFPG.VELCHE(/2) N2DLIG=FFPG.VELCHE(/3) N2DCOL=FFPG.VELCHE(/4) NDNOEU=FFPG.VELCHE(/5) NBELEM=FFPG.VELCHE(/6) IF (NDLIG.NE.1.OR.NDCOL.NE.NDDL $ .OR.N2DLIG.NE.1.OR.N2DCOL.NE.1 $ .OR.(NBELEM.NE.1.AND.NBELEM.NE.NBELFV)) THEN WRITE(IOIMP,*) 'Erreur dims FFPG' GOTO 9999 ENDIF NBPOGO=NDNOEU NLFVFF=NBELEM IF (NLVCOF.EQ.1.AND.NLFVFF.EQ.1) THEN NLFCOG=1 ELSE NLFCOG=NBELEF ENDIF * * Initialisations... * NBLIG=1 NBCOL=1 N2LIG=1 N2COL=1 NBPOI=NBPOGO NBELM=NLFCOG SEGINI JCOEFG * * On effectue le calcul du coefficient aux points de Gauss * CALL COGAF1(NDDL,NBPOGO,NBELEV,NBELFV,NBELEF, $ NLVCOF,NLFVFF,NLFCOG, $ JCOEFF.VELCHE,FFPG.VELCHE,SSFACT.LFACTI, $ JCOEFG.VELCHE, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES JCOEFG SEGDES SSFACT SEGDES JCOEFF SEGDES FFPG * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine cogauf' RETURN * * End of subroutine COGAUF * END