dscmat
C DSCMAT SOURCE OF166741 26/02/23 21:15:01 12480 *----------------------------------------------------------------------* * DESCRIPTEUR DE LA RIGIDITE POUR LA FORMULATION 'HHO' * *----------------------------------------------------------------------* * ENTREES : * * --------- * * modHHO Modele elementaire (IMODEL) de formulation HHO * * * * SORTIES : * * --------- * * IPDSCR Descripteur (DESCR) de la rigidite du sous-modele * * LRE Dimension de la matrice de rigidite (symetrique) * * iret = 0 si ok, = num.erreur sinon * *----------------------------------------------------------------------* SUBROUTINE DSCMAT (modHHO, IPDSCR, LRE, iret) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHHOPA -INC CCHHOPR -INC SMLENTI -INC SMMODEL POINTEUR nomidu.nomid, nomidf.nomid -INC SMRIGID LOGICAL LDPGE iret = 0 IPDSCR = 0 LRE = 0 C- Premiere verification (Test de debogage a supprimer un jour) CALL HHONOB(modHHO, nobHHO) IF (nobHHO.LE.0) THEN moterr = 'DSCMAT(HHO): data not consistent !' iret = 5 return END IF imodel = modHHO c* segact,imodel <- actif en entree/sortie C- Recuperation des donnees de infell en entree MFR = imodel.INFELE(13) IF (LDPGE) THEN moterr = 'DSCMAT(HHO): PLAN GENE not implemented !' iret = 21 RETURN END IF C---- !! mlenti = imodel.IVAMOD(nobHHO+1) c* segact,mlenti c* n_o_face = mlenti.lect(2) n_d_face = mlenti.lect(3) c* n_o_cell = mlenti.lect(4) n_d_cell = mlenti.lect(5) nb_faces = mlenti.lect(7) idifo = mlenti.lect(9) NBDDL = mlenti.lect(11) c-dbg write(ioimp,*) 'DSCMAT(HHO):',nb_faces,NBDDL NDEPF = idifo * n_d_face NDEPC = idifo * n_d_cell LRE = NBDDL IF (LRE .NE. imodel.INFELE(9)) then moterr = 'DSCMAT(HHO): LRE is strange' END IF C REMPLISSAGE DU SEGMENT DESCRIPTEUR C C RECHERCHE DES NOMS D'INCONNUES ET DES DUAUX C nomidu = imodel.lnomid(1) ndepl = nomidu.lesobl(/2) c- ndum = nomidu.lesfac(/2) nomidf = imodel.lnomid(2) nforc = nomidf.lesobl(/2) c- ndum = nomidf.lesfac(/2) IF (NDEPL.EQ.0 .OR. NFORC.EQ.0 .OR. NDEPL.NE.NFORC) THEN moterr = 'DSCMAT(HHO): data inconsistent PRIMAL/DUAL (1)' iret = 5 END IF IF (NDEPL.NE.(NDEPC+NDEPF)) THEN moterr = 'DSCMAT(HHO): data inconsistent PRIMAL/DUAL (2)' iret = 717 END IF IF (NBDDL.NE.(NDEPC+(nb_faces*NDEPF))) THEN moterr = 'DSCMAT(HHO): data inconsistent PRIMAL/DUAL (3)' iret = 717 END IF IF (iret.NE.0) RETURN NLIGRP = LRE NLIGRD = LRE SEGINI,DESCR iddl = 0 c Noeud support de la cellule : INOE = 1 DO ic = 1, NDEPC iddl = iddl + 1 LISINC(iddl) = nomidu.LESOBL(ic) LISDUA(iddl) = nomidf.LESOBL(ic) NOELEP(iddl) = INOE NOELED(iddl) = INOE END DO c Noeuds supports des faces de la cellule : DO in = 1, nb_faces INOE = in + 1 DO ic = 1, NDEPF iddl = iddl + 1 LISINC(iddl) = nomidu.LESOBL(NDEPC+ic) LISDUA(iddl) = nomidf.LESOBL(NDEPC+ic) NOELEP(iddl) = INOE NOELED(iddl) = INOE END DO END DO C CAS DE LA DEFORMATION PLANE GENERALISEE c!! IF (LDPGE) THEN C!! INOE = NBNN c!! DO ic = (NDPGE-1),0,-1 c!! iddl = iddl + 1 c!! LISINC(iddl) = nomidu.LESOBL(NDEPL-ic) c!! LISDUA(iddl) = nomidf.LESOBL(NFORC-ic) c!! NOELEP(iddl) = INOE c!! NOELED(iddl) = INOE c!! END DO c!! END IF IF (iddl .NE. NBDDL) THEN ** AFinir MOTERR = 'DSCMAT(HHO): NBDDL inconsistent',iddl,nbddl MOTERR = 'DSCMAT(HHO): NBDDL inconsistent' iret = 717 RETURN END IF SEGDES,DESCR IPDSCR = DESCR * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales