[updated 8.Sep.2008]

Librairie caldom > Fichier calefl.f

Qui appelle calefl ?

line
      SUBROUTINE CALEFL
line
  Auteur : O.deBayser (Mai 1992) 
  Derniere modification : D.Martin (5 Mai 2001)
  Version 1.0.3
   
      Calcul des termes 'ELements FINIs Localises'                 (EFLQTR)
 
      Sauvegarde des termes calcules sur le domaine                (SAVTRM) 
  
line
      IMPLICIT NONE
      INCLUDE 'ALLOC'
      INCLUDE 'CONTEX'
 
      CHARACTER     ERCODE*120,KALEFL
      INTEGER       ADDOMK,ADDOM1,DOMAIN
     &             ,MCTRDO,LGERDO,NBDOMK,INCRDO,NCHDOM
     &             ,MCDTRM,LGETRM,NBTERM,INCTRM,NCHTRM
     &             ,MCDOMK,NUDOMG,NUDOMK,IGEOME,INDMIX,NUSCHQ,INDEXC
     &             ,IDLHRC,INTRPC,NBNECX,NBNEXC,NBDLXC,NBNFXC,NBDFXC
     &             ,NVNUMC,INDEXL,IDLHRL,INTRPL,NBNELX,NBNEXL,NBDLXL
     &             ,NBNFXL,NBDFXL,NVNUML,NVCORC,INUTIL,NBTRDO,NIVDOM
     &             ,MCLIST,NXLIST,LGRPTL,NDMDOM,NDMDOE,NBELDO,NBNEXG
     &             ,NBDLXG,NBNFXG,NBDFXG,MCNOMD,NUCC,NUCL,NULC,NULL
     &             ,NBNECO,NBNELI,NUDGAV,NIVALL
      COMMON/FORMAH/ERCODE
line
      CALL PRFXMJ (1,'*Calefl*')
 
      CALL TBAR2  (ERCODE,'#TERDO',1,MCTRDO,'$SDTRM',1,MCDTRM)
      CALL SDEXDB (IST(MCTRDO),LGERDO,NBDOMK,INCRDO,NCHDOM)             !utilite
      CALL SDEXDB (IST(MCDTRM),LGETRM,NBTERM,INCTRM,NCHTRM)             !utilite
      ADDOMK=LGERDO
      ADDOM1=ADDOMK
      NUDGAV=0
                          +++++++++++++++++++++++++++++
                          ++ BOUCLE SUR LES DOMAINES ++
                          +++++++++++++++++++++++++++++
                              DO 1000 DOMAIN=1,NBDOMK
 
      ERCODE=' '
      CALL TBAR1  (ERCODE,'#TERDO',1,MCTRDO)                     
 
      Exploitation du contenu de la structure de donnees #TERDO pour le domaine
      le domaine de calcul NUDOMK
 
      ADDOMK adresse relative (-1) du domaine de calcul courant dans #TERDO
      ADDOM1 adresse relative (-1) du premier domaine de calcul dans #TERDO
             attache au domaine geometrique courant
      MCDOMK adresse absolue des caracteristiques d'un domaine
      MCDOMK=MCTRDO+ADDOMK
 
      Recherche des parametres de description du domaine de calcul
      CALL GETDOM (IST(MCDOMK),NUDOMG,NUDOMK,IGEOME,INDMIX,NUSCHQ
     &            ,INDEXC,IDLHRC,INTRPC,NBNECX,NBNEXC,NBDLXC,NBNFXC
     &            ,NBDFXC,NVNUMC
     &            ,INDEXL,IDLHRL,INTRPL,NBNELX,NBNEXL,NBDLXL,NBNFXL
     &            ,NBDFXL,NVNUML,NVCORC,INUTIL,NBTRDO,NIVDOM)           !sdexplo
 
      IF (NUDOMG.NE.NUDGAV) ADDOM1=ADDOMK
      NUDGAV=NUDOMG
      NIVALL=NVNUMC
 
         Exploitation de la structure de donnees #ISTEL (1ere partie)
         (Renseignements globaux sur les elements constituant le domaine)
         CALL TBRR2  (ERCODE,'#ISTEL',NUDOMG,MCLIST
     &                      ,'#ORPTL',NUDOMK,LGRPTL)
         CALL TBAR1  (ERCODE,'#ISTEL',NUDOMG,MCLIST)
         CALL EXLIST (IST(MCLIST),NXLIST,NDMDOM,NDMDOE,NBELDO
     &               ,NBNEXG,NBDLXG,NBNFXG,NBDFXG)                      !sdexplo
 
         IF (NDMDOM.GT.0) THEN
 
            Nom du domaine geometrique NUDOMG correspondant au domaine
            de calcul NUDOMK
            IF (NIVDOM.GE.0) THEN
               CALL TBAR1  (ERCODE,'#OMDOM',1,MCNOMD)
               CALL PRNOMD (AST(MCNOMD+(NUDOMG-1)*NCHDOM),NCHDOM,NUDOMK
     &                     ,NDMDOM,NBELDO,NBTRDO,IGEOME,-99999,INTRPG
     &                     ,INTRPC,INTRPL,NIVDOM,IMPPAL,IMPSDR)         !caldom
            ENDIF
 
            Tableaux de numerotation des noeuds : #GNEDO et #RGNDO
 
            IF (ADDOMK.GT.ADDOM1)
     &      CALL NUMNIV (ADDOMK,ADDOM1,INCRDO,NUDOMK,INTRPC,INDEXC
     &                  ,INTRPL,INDEXL,NVNUMC,NVNUML
     &                  ,NUCC,NUCL,NULC,NULL,NIVDOM,IMPSDR)             !caldom
 
            CALL NUMDOM (NDMDOM,NDMDOE,NBELDO,NXLIST,ADDOMK,NUDOMK
     &                  ,NBNECO,NVNUMC,NBNELI,NVNUML,NIVALL,IMPSDR)     !caldom
 
            IF (NBTRDO.GE.1) THEN
 
               Creation des tableaux 'Elements Finis Localises' sur le domaine
               ---------------------------------------------------------------
               CALL EFLTRD (NBTRDO,INCRDO,ADDOMK,NBNECO,NBNELI,NVNUMC
     &                     ,NVNUML,NIVALL,NVCORC,KALEFL)                !calefl

               IF (KALEFL.EQ.'Y') THEN
                  CALL EFLQTR (NDMDOM,NDMDOE,NBELDO,NXLIST,INCRDO,ADDOMK
     &                        ,IMPSDR)                                  !calefl
                  CALL SAVTRM ('ELFLOC',ADDOMK,IMPSDR)                  !caldom
               ENDIF
 
            ENDIF
 
            Sauvegarde des tableaux de numerotations
 
            CALL TBSAVE ('#RGNDO',NUDOMK)
            IF (NVNUMC.NE.NDFNUM) CALL TBSAVE ('#GNEDO',NVNUMC)
            IF (NVNUML.NE.NDFNUM.AND.NVNUML.NE.NVNUMC)
     &         CALL TBSAVE ('#GNEDO',NVNUML)                     
 
            Mise a jour des parametres de description du domaine de calcul
 
            CALL TBAR1  (ERCODE,'#TERDO',1,MCTRDO)
            MCDOMK=MCTRDO+ADDOMK
            CALL PUTDOM (IST(MCDOMK),NUDOMG,NUDOMK,IGEOME,INDMIX,NUSCHQ
     &            ,INDEXC,IDLHRC,INTRPC,NBNECX,NBNEXC,NBDLXC,NBNFXC
     &            ,NBDFXC,NVNUMC
     &            ,INDEXL,IDLHRL,INTRPL,NBNELX,NBNEXL,NBDLXL,NBNFXL
     &            ,NBDFXL,NVNUML,NVCORC,INUTIL,NBTRDO,NIVDOM)           !sdexplo
 
            IF (NIVDOM.GT.5) CALL PRTRDO (NUDOMG,NUDOMK,IMPSDR)         !prsd
 
         Sauvegarde du tableau de definition et des coordonnees des points
         -----------------------------------------------------------------
         CALL TBSAVE ('#ISTEL',NUDOMG)
         CALL TBSAVE ('#ORPTL',NUDOMK)
 
      ENDIF 
 
1000  ADDOMK=ADDOMK+INCRDO+NBTRDO
      CALL PRFXMJ (-1,'*Calefl*')
line  
                                                                    END !Calefl
line
top

calefl est appelé dans (7 procédures)

00README-cbdisp eflqtr.f (efloca) output.txt
ppcbdisp.f (A_mode_guide) ppefl_ana.f (E_6efl_ana) ppmodefl.f (A_lap2d_efloc)
trmdom.f (caltrm)    

top