clim11
C CLIM11 SOURCE PV 20/09/26 21:16:09 10724 C************************************************************************ C C PROJET : CASTEM 2000 C C NOM : CLIM11 C C DESCRIPTION : Subroutine appellée par CLIM1 C C Modelisation 2D/3D des equations d'Euler C Calcul de conditions aux bords C Inlet; Riemann invariants C C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI) C C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/LTMF C C************************************************************************ C C APPELES (Calcul) : C C************************************************************************ C C C************************************************************************ C C HISTORIQUE (Anomalies et modifications éventuelles) C C HISTORIQUE : C C************************************************************************ C IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC SMLMOTS -INC SMELEME -INC SMLENTI -INC SMMATRIK POINTEUR MLMVIT.MLMOTS C C**** Variables de COOPTIO C C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES C & ,IECHO, IIMPI, IOSPI C & ,IDIM, IFICLE, IPREFI C & ,MCOORD C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU C & ,NORINC,NORVAL,NORIND,NORVAD C & ,NUCROU, IPSAUV C INTEGER IJAC, IJACO & ,IDOMA, IDBOR, IRET, MELEMC, MELEFE, MELEMF, ICHPVO, INORM & ,JGN, JGM, NBELEM, NBNN, NBSOUS, NBREF, NGF, NLC & ,I1, ICEN, N1, ILIINP & ,ILIINC, IROC, IVITC, IPC, IGAMC, ICHLIM, NBOPT, ILIM & ,ICHRES, ICHRLI & ,NKID,NKMT,NMATRI,NRIGE,MMODEL,INEFMD PARAMETER (NBOPT=9) CHARACTER*8 LOPT(NBOPT) CHARACTER*4 MOT CHARACTER*8 TYPE C DATA LOPT/'INRI ','OUTRI ','INSS ','OUTSS ','OUTP ', & 'INSU ','INJE ','INJELM ','INSO '/ C C******************************* C**** La table domaine ********* C******************************* C IF(IERR.NE.0)GOTO 9999 C INEFMD inutilisé IF(IERR .NE. 0)GOTO 9999 C IF(IERR .NE. 0) GOTO 9999 C IF(IERR .NE. 0) GOTO 9999 C C**** Lecture du CHPOINT contenant les volumes C IF(IERR .NE. 0) GOTO 9999 MOT = 'SCAL' IF(IERR .NE. 0) GOTO 9999 C IF(IERR .NE. 0) GOTO 9999 MOT = 'SCAL' IF(IERR .NE. 0) GOTO 9999 C C**** Les normales aux faces C IF(IDIM .EQ. 2)THEN C Que les normales IF(IERR .NE. 0) GOTO 9999 JGN = 4 JGM = 2 SEGINI MLMVIT SEGSUP MLMVIT IF(IERR .NE. 0) GOTO 9999 ELSE C C**** Les normales ('MX ', ...) C Les tangentes ('RX ', ...) C TYPE = ' ' IF (TYPE .NE. 'CHPOINT ') THEN IF(IERR .NE. 0) GOTO 9999 ENDIF JGN = 4 JGM = 9 SEGINI MLMVIT SEGSUP MLMVIT ENDIF C C********************************** C**** La table domaine du bord **** C********************************** C IF(IERR.NE.0)GOTO 9999 C INEFMD inutilisé IF(IERR .NE. 0)GOTO 9999 C IF(IERR .NE. 0) GOTO 9999 C TYPE = ' ' IF (TYPE.NE.'MAILLAGE') THEN C IF(IERR .NE. 0) GOTO 9999 C C******* On cree la connectivité face-centre C IPT1=MELECB IPT2=MELEFE SEGACT IPT1 SEGACT IPT2 C SEGINI MLENTI NBELEM=IPT1.NUM(/2) NBNN=2 NBSOUS=0 NBREF=0 SEGINI IPT3 IPT3.ITYPEL=2 N1=IPT2.NUM(/2) ICEN=0 DO I1=1,N1,1 NGF=IPT2.NUM(2,I1) NLC=MLENTI.LECT(NGF) IF(NLC.NE.0)THEN ICEN=ICEN+1 IPT3.NUM(1,ICEN)=NGF IPT3.NUM(2,ICEN)=IPT2.NUM(1,I1) IF(IPT2.NUM(1,I1) .NE. IPT2.NUM(3,I1))THEN C Interior point C Donné incompatible WRITE(IOIMP,*) 'Internal boundary condition!!!' ENDIF ENDIF ENDDO C IF(ICEN .NE. NBELEM)THEN ENDIF SEGDES IPT1 SEGDES IPT2 SEGDES IPT3 SEGSUP MLENTI C MELEFC=IPT3 ENDIF C C**** Le SPG du residu C IPT1=MELEFC SEGACT IPT1 NBELEM=IPT1.NUM(/2) NBNN=1 NBSOUS=0 NBREF=0 SEGINI IPT2 IPT2.ITYPEL=1 DO I1=1,NBELEM,1 IPT2.NUM(1,I1)=IPT1.NUM(2,I1) ENDDO MELRES=IPT2 SEGDES IPT1 SEGDES IPT2 C C**** Noms de variables conservatives C TYPE='LISTMOTS' IF(IERR .NE. 0) GOTO 9999 MLMOTS = ILIINC SEGACT MLMOTS SEGDES MLMOTS MOTERR(1:40) = 'LISTINCO = ???' WRITE(IOIMP,*) MOTERR C C******* Message d'erreur standard C 21 2 C Données incompatibles C GOTO 9999 ENDIF C C**** Noms de variables primitives C TYPE='LISTMOTS' IF(IERR .NE. 0) GOTO 9999 MLMOTS = ILIINP SEGACT MLMOTS SEGDES MLMOTS MOTERR(1:40) = 'LISTPRIM = ???' WRITE(IOIMP,*) MOTERR C C******* Message d'erreur standard C 21 2 C Données incompatibles C GOTO 9999 ENDIF C C**** Lecture du CHPOINT RN C TYPE='CHPOINT ' IF (IERR.NE.0) GOTO 9999 C C**** Control du CHPOINT: QUEPOI C C INDIC = 1 -> on impose le pointeur du support geometrique C NBCOMP > 0 -> nombre des composantes C MOT = 'SCAL' IF(IERR .NE. 0)GOTO 9999 C C**** Lecture du CHPOINT VITC C IF (IERR.NE.0) GOTO 9999 C C**** Control du CHPOINT C JGN = 4 JGM = IDIM SEGINI MLMVIT SEGSUP MLMVIT IF(IERR .NE. 0)GOTO 9999 C C**** Lecture du CHPOINT PC C IF (IERR.NE.0) GOTO 9999 C C**** Control du CHPOINT C MOT = 'SCAL' IF(IERR .NE. 0)GOTO 9999 C C**** Lecture du CHPOINT GAMC C IF (IERR.NE.0) GOTO 9999 C C**** Control du CHPOINT C MOT = 'SCAL' IF(IERR .NE. 0)GOTO 9999 C C**** CHPOINT condition limite C IF (IERR.NE.0) GOTO 9999 C C**** Resultats C IF(IJAC .EQ.0)THEN TYPE=' ' C TYPE=' ' ELSE ICHRES=0 ICHRLI=0 ENDIF C C**** TYPE DE CONDITION LIMITE C IF(IERR .NE. 0) GOTO 9999 IF(ILIM .EQ. 1)THEN C C******** 'INRI ' C JGN = 4 JGM = IDIM+2 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE IF(IDIM.EQ.2)THEN $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ELSE $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ENDIF IF(IERR.NE.0)GOTO 9999 ENDIF ELSEIF(ILIM .EQ. 2)THEN C C******** 'OUTRI ' C JGN = 4 JGM = IDIM+2 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE IF(IDIM.EQ.2)THEN $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ELSE $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ENDIF IF(IERR.NE.0)GOTO 9999 ENDIF ELSEIF(ILIM .EQ. 3)THEN C C******** 'INSS ' C JGN = 4 JGM = IDIM+2 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE * Le Jacobien est une matrik vide NRIGE=7 NMATRI=0 NKID =9 NKMT =7 SEGINI MATRIK SEGDES MATRIK IJACO=MATRIK ENDIF ELSEIF(ILIM .EQ. 4)THEN C C******** 'OUTSS ' C C ICHLIM est un CHPOINT vide C Mais on fait pas de controlle C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE IF(IDIM.EQ.2)THEN $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ILIINC $ ,ILIINP,IJAC,IJACO) ELSE $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ILIINC $ ,ILIINP,IJAC,IJACO) ENDIF IF(IERR.NE.0)GOTO 9999 ENDIF ELSEIF(ILIM .EQ. 5)THEN C C******** 'OUTP ' C JGN = 4 JGM = 1 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE IF(IDIM.EQ.2)THEN $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ELSE $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ENDIF ENDIF ELSEIF(ILIM .EQ. 6)THEN C C******** 'INSU ' C JGN = 4 JGM = 2 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE IF(IDIM.EQ.2)THEN & ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC & ,ILIINP,IJAC,IJACO) ELSE $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ENDIF ENDIF ELSEIF(ILIM .EQ. 7)THEN C C******** 'INJE ' C JGN = 4 JGM = 2 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE IF(IDIM.EQ.2)THEN & ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC & ,ILIINP,IJAC,IJACO) ELSE $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ENDIF ENDIF ELSEIF(ILIM .EQ. 8)THEN C C******** 'INJELM ' C JGN = 4 JGM = 2 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ELSE IF(IDIM.EQ.2)THEN & ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC & ,ILIINP,IJAC,IJACO) ELSE $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC $ ,ILIINP,IJAC,IJACO) ENDIF ENDIF ELSEIF(ILIM .EQ. 9)THEN C C******** 'INSO ' C JGN = 4 JGM = 2 SEGINI MLMVIT SEGSUP MLMVIT IF (IERR.NE.0) GOTO 9999 C IF(IJAC.EQ.0)THEN & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI) IF(IERR.NE.0)GOTO 9999 ENDIF ENDIF C IF(IJAC.EQ.0)THEN ELSE ENDIF C 9999 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales