C DCOGAF SOURCE GOUNAND 06/08/04 21:15:17 5520 SUBROUTINE DCOGAF(JCOEFF,JDFFPG,SSFACT,NBELEF, $ JDCOFG, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : DCOGAF 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 : v1, 03/10/03, version initiale C HISTORIQUE : v1, 03/10/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 JDCOFG.MCHEVA * Valeurs des fns d'interpolation du coeff. aux points de Gauss POINTEUR JDFFPG.MCHEVA * INTEGER IMPR,IRET * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dcogaf' IESREL=IDIM 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 JDFFPG NDLIG =JDFFPG.VELCHE(/1) NDCOL =JDFFPG.VELCHE(/2) N2DLIG=JDFFPG.VELCHE(/3) N2DCOL=JDFFPG.VELCHE(/4) NDNOEU=JDFFPG.VELCHE(/5) NBELEM=JDFFPG.VELCHE(/6) IF (NDLIG.NE.1.OR.NDCOL.NE.NDDL $ .OR.N2DLIG.NE.1.OR.N2DCOL.NE.IESREL $ .OR.NBELEM.NE.NBELEF) THEN WRITE(IOIMP,*) 'Erreur dims JDFFPG' GOTO 9999 ENDIF NBPOGO=NDNOEU * * Initialisations... * NBLIG=1 NBCOL=1 N2LIG=1 N2COL=IESREL NBPOI=NBPOGO NBELM=NBELEF SEGINI JDCOFG * * On effectue le calcul du coefficient aux points de Gauss * CALL DCOGF1(NDDL,IESREL,NBPOGO,NBELEV,NBELFV,NBELEF, $ NLVCOF, $ JCOEFF.VELCHE,JDFFPG.VELCHE,SSFACT.LFACTI, $ JDCOFG.VELCHE, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES JDCOFG SEGDES SSFACT SEGDES JCOEFF SEGDES JDFFPG * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine dcogaf' RETURN * * End of subroutine DCOGAF * END