rlence
C RLENCE SOURCE KK2000 14/04/10 21:15:37 8032 C C************************************************************************ C C PROJET : CASTEM 2000 C C NOM : RLENCE C C DESCRIPTION : Cette subroutine est appellée par la subroutine C GRADGE (calcul des coefficient pour le gradient C d'un CHPOINT 'CENTRE') C C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI) C C AUTEUR : A. Beccantini, SFME/LTMF C C************************************************************************ C C C APPELES (Outils) : C C APPELES (Calcul) : C C C************************************************************************ C C INPUT : ICEN : 'CENTRE' points C C IELTFA : Element-faces C C IFAC : 'FACE' points C C IFACEL : Left center - face center -right center C C C OUTPUT : MELEME : stencil to compute gradient C C************************************************************************ C C HISTORIQUE (Anomalies et modifications éventuelles) C C HISTORIQUE : 04.07.2003 C C************************************************************************ C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C INTEGER NBSOUS, NSOU, JG, NBNN, NBELEM, NBREF & ,NGVOI,NLVOI,NCENG,NCEND, NCEN & ,ISOUS, ICEN, IELEM, IVOI C -INC PPARAM -INC CCOPTIO -INC SMLENTI -INC SMELEME POINTEUR MELCEN.MELEME,MELTFA.MELEME,MELFAC.MELEME,MFACEL.MELEME POINTEUR MLELTF.MLENTI, MLEFAC.MLENTI C SEGACT MELCEN SEGACT MELTFA SEGACT MFACEL C C SEGINI MLEFAC SEGACT MELFAC C C MELEME has the same structure than 'ELTFA' C Each element of MELEME has one point more than each element of C 'ELTFA' C NBSOUS=MELTFA.LISOUS(/1) NSOU=MAX(NBSOUS,1) JG=NSOU SEGINI MLENTI SEGINI MLELTF C C**** MLENTI contains the pointers of the elementary meshes C of ELTFA C IF (NSOU.EQ.1)THEN MLENTI.LECT(1)=MELTFA ELSE DO ISOUS=1,NSOU,1 IPT1=MELTFA.LISOUS(ISOUS) MLENTI.LECT(ISOUS)=IPT1 ENDDO ENDIF C ICEN=0 DO ISOUS=1,NSOU,1 IPT1=MLENTI.LECT(ISOUS) SEGACT IPT1 NBNN=IPT1.NUM(/1)+1 NBELEM=IPT1.NUM(/2) NBREF=0 NBSOUS=0 SEGINI IPT2 MLELTF.LECT(ISOUS)=IPT2 C POLY elts IPT2.ITYPEL=32 DO IELEM=1,NBELEM,1 ICEN=ICEN+1 NCEN=MELCEN.NUM(1,ICEN) IPT2.NUM(NBNN,IELEM)=NCEN DO IVOI=1,NBNN-1,1 NGVOI=IPT1.NUM(IVOI,IELEM) NLVOI=MLEFAC.LECT(NGVOI) NCENG=MFACEL.NUM(1,NLVOI) NCEND=MFACEL.NUM(3,NLVOI) IF(NCENG .EQ. NCEND)THEN C C**************** We are on the BC C IF(NCEND .NE. NCEN)THEN WRITE(IOIMP,*) 'subroutine rlence.eso. 1' GOTO 9999 ENDIF IPT2.NUM(IVOI,IELEM)=NGVOI ELSEIF(NCENG .EQ. NCEN)THEN IPT2.NUM(IVOI,IELEM)=NCEND ELSEIF(NCEND .EQ. NCEN)THEN IPT2.NUM(IVOI,IELEM)=NCENG ELSE WRITE(IOIMP,*) 'subroutine rlence.eso. 2' GOTO 9999 ENDIF ENDDO ENDDO SEGDES IPT1 SEGDES IPT2 ENDDO C SEGDES MELCEN SEGDES MELTFA SEGDES MELFAC SEGDES MFACEL SEGSUP MLENTI SEGSUP MLEFAC C IF(NSOU .EQ. 1)THEN MELEME=MLELTF.LECT(1) ELSE NBNN=0 NBELEM=0 NBSOUS=NSOU NBREF=0 SEGINI MELEME DO ISOUS=1,NSOU,1 MELEME.LISOUS(ISOUS)=MLELTF.LECT(ISOUS) ENDDO SEGDES MELEME ENDIF C SEGSUP MLELTF C 9999 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales