c@a c@versb C----------------------------------------------------------------------- C CVERS Code_Saturne version 1.3 C ------------------------ C C This file is part of the Code_Saturne Kernel, element of the C Code_Saturne CFD tool. C C Copyright (C) 1998-2007 EDF S.A., France C C contact: saturne-support@edf.fr C C The Code_Saturne Kernel is free software; you can redistribute it C and/or modify it under the terms of the GNU General Public License C as published by the Free Software Foundation; either version 2 of C the License, or (at your option) any later version. C C The Code_Saturne Kernel is distributed in the hope that it will be C useful, but WITHOUT ANY WARRANTY; without even the implied warranty C of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the C GNU General Public License for more details. C C You should have received a copy of the GNU General Public License C along with the Code_Saturne Kernel; if not, write to the C Free Software Foundation, Inc., C 51 Franklin St, Fifth Floor, C Boston, MA 02110-1301 USA C C----------------------------------------------------------------------- c@verse SUBROUTINE TRIDIM C ***************** C ------------------------------------------------------------- & ( IDBIA0 , IDBRA0 , ITRALE , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , ISOSTD , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , RTP , PROPCE , PROPFA , PROPFB , & TSLAGR , COEFA , COEFB , FRCXT , & RDEVEL , RTUSER , & RA ) C ------------------------------------------------------------- C*********************************************************************** C FONCTION : C ---------- c@foncb CFONC CFONC RESOLUTION DES EQUATIONS N-S MONOPHASIQUES INCOMPRESSIBLE ET DES CFONC EQUATIONS SCALAIRES POUR UN PAS DE TEMPS CFONC c@fonce C----------------------------------------------------------------------- C ARGUMENTS c@argub CARGU .______________.____._____.______________________________________. CARGU ! NOM !TYPE!MODE ! ROLE ! CARGU !______________!____!_____!______________________________________! CARGU ! IDBIA0 ! E ! -> ! NUMERO DE LA 1ERE CASE LIBRE DANS IA ! CARGU ! IDBRA0 ! E ! -> ! NUMERO DE LA 1ERE CASE LIBRE DANS RA ! CARGU ! ITRALE ! E ! -> ! NUMERO D'ITERATION POUR L'ALE ! CARGU ! NDIM ! E ! -> ! DIMENSION DE L'ESPACE ! CARGU ! NCELET ! E ! -> ! NOMBRE D'ELEMENTS HALO COMPRIS ! CARGU ! NCEL ! E ! -> ! NOMBRE D'ELEMENTS ACTIFS ! CARGU ! NFAC ! E ! -> ! NOMBRE DE FACES INTERNES ! CARGU ! NFABOR ! E ! -> ! NOMBRE DE FACES DE BORD ! CARGU ! NFML ! E ! -> ! NOMBRE DE FAMILLES D ENTITES ! CARGU ! NPRFML ! E ! -> ! NOMBRE DE PROPRIETESE DES FAMILLES ! CARGU ! NNOD ! E ! -> ! NOMBRE DE SOMMETS ! CARGU ! LNDFAC ! E ! -> ! LONGUEUR DU TABLEAU NODFAC (OPTIONNEL! CARGU ! LNDFBR ! E ! -> ! LONGUEUR DU TABLEAU NODFBR (OPTIONNEL! CARGU ! NCELBR ! E ! -> ! NOMBRE D'ELEMENTS AYANT AU MOINS UNE ! CARGU ! ! ! ! FACE DE BORD ! CARGU ! NVAR ! E ! -> ! NOMBRE TOTAL DE VARIABLES ! CARGU ! NSCAL ! E ! -> ! NOMBRE TOTAL DE SCALAIRES ! CARGU ! NPHAS ! E ! -> ! NOMBRE DE PHASES ! CARGU ! NIDEVE NRDEVE! E ! -> ! LONGUEUR DE IDEVEL RDEVEL ! CARGU ! NITUSE NRTUSE! E ! -> ! LONGUEUR DE ITUSER RTUSER ! CARGU ! IFACEL ! TE ! -> ! ELEMENTS VOISINS D'UNE FACE INTERNE ! CARGU ! (2, NFAC) ! ! ! ! CARGU ! IFABOR ! TE ! -> ! ELEMENT VOISIN D'UNE FACE DE BORD ! CARGU ! (NFABOR) ! ! ! ! CARGU ! IFMFBR ! TE ! -> ! NUMERO DE FAMILLE D'UNE FACE DE BORD ! CARGU ! (NFABOR) ! ! ! ! CARGU ! IFMCEL ! TE ! -> ! NUMERO DE FAMILLE D'UNE CELLULE ! CARGU ! (NCELET) ! ! ! ! CARGU ! IPRFML ! TE ! -> ! PROPRIETES D'UNE FAMILLE ! CARGU ! NFML ,NPRFML! ! ! ! CARGU ! IPNFAC ! TE ! -> ! POSITION DU PREMIER NOEUD DE CHAQUE ! CARGU ! (NFAC+1) ! ! ! FACE INTERNE DANS NODFAC (OPTIONNEL)! CARGU ! NODFAC ! TE ! -> ! CONNECTIVITE FACES INTERNES/NOEUDS ! CARGU ! (LNDFAC) ! ! ! (OPTIONNEL) ! CARGU ! IPNFBR ! TE ! -> ! POSITION DU PREMIER NOEUD DE CHAQUE ! CARGU ! (NFABOR+1) ! ! ! FACE DE BORD DANS NODFBR (OPTIONNEL)! CARGU ! NODFBR ! TE ! -> ! CONNECTIVITE FACES DE BORD/NOEUDS ! CARGU ! (LNDFBR) ! ! ! (OPTIONNEL) ! CARGU ! ISOSTD ! TE ! -> ! INDICATEUR DE SORTIE STANDARD ! CARGU ! (NFABOR+1)! ! ! +NUMERO DE LA FACE DE REFERENCE ! CARGU ! IDEVEL(NIDEVE! TE ! <-> ! TAB ENTIER COMPLEMENTAIRE DEVELOPEMT ! CARGU ! ITUSER(NITUSE! TE ! <-> ! TAB ENTIER COMPLEMENTAIRE UTILISATEUR! CARGU ! IA(*) ! TR ! - ! MACRO TABLEAU ENTIER ! CARGU ! XYZCEN ! TR ! -> ! POINT ASSOCIES AUX VOLUMES DE CONTROL! CARGU ! (NDIM,NCELET ! ! ! ! CARGU ! SURFAC ! TR ! -> ! VECTEUR SURFACE DES FACES INTERNES ! CARGU ! (NDIM,NFAC) ! ! ! ! CARGU ! SURFBO ! TR ! -> ! VECTEUR SURFACE DES FACES DE BORD ! CARGU ! (NDIM,NFABOR)! ! ! ! CARGU ! CDGFAC ! TR ! -> ! CENTRE DE GRAVITE DES FACES INTERNES ! CARGU ! (NDIM,NFAC) ! ! ! ! CARGU ! CDGFBO ! TR ! -> ! CENTRE DE GRAVITE DES FACES DE BORD ! CARGU ! (NDIM,NFABOR)! ! ! ! CARGU ! XYZNOD ! TR ! -> ! COORDONNES DES NOEUDS (OPTIONNEL) ! CARGU ! (NDIM,NNOD) ! ! ! ! CARGU ! VOLUME ! TR ! -> ! VOLUME D'UN DES NCELET ELEMENTS ! CARGU ! (NCELET ! ! ! ! CARGU ! DT(NCELET) ! TR ! -> ! PAS DE TEMPS ! CARGU ! RTP, RTPA ! TR ! -> ! VARIABLES DE CALCUL AU CENTRE DES ! CARGU ! (NCELET,*) ! ! ! CELLULES (INSTANT COURANT OU PREC)! CARGU ! PROPCE ! TR ! -> ! PROPRIETES PHYSIQUES AU CENTRE DES ! CARGU ! (NCELET,*) ! ! ! CELLULES ! CARGU ! PROPFA ! TR ! -> ! PROPRIETES PHYSIQUES AU CENTRE DES ! CARGU ! (NFAC,*) ! ! ! FACES INTERNES ! CARGU ! PROPFB ! TR ! -> ! PROPRIETES PHYSIQUES AU CENTRE DES ! CARGU ! (NFABOR,*) ! ! ! FACES DE BORD ! CARGU ! COEFA, COEFB ! TR ! -> ! CONDITIONS AUX LIMITES AUX ! CARGU ! (NFABOR,*) ! ! ! FACES DE BORD ! CARGU ! TSLAGR ! TR ! -> ! TERME DE COUPLAGE RETOUR DU ! CARGU !(NCELET,*) ! ! ! LAGRANGIEN ! CARGU ! FRCXT(NCELET,! TR ! -> ! FORCE EXTERIEURE GENERANT LA PRESSION! CARGU ! 3,NPHAS) ! ! ! HYDROSTATIQUE ! CARGU ! RDEVEL(NRDEVE! TR ! <-> ! TAB REEL COMPLEMENTAIRE DEVELOPEMT ! CARGU ! RTUSER(NRTUSE! TR ! <-> ! TAB REEL COMPLEMENTAIRE UTILISATEUR ! CARGU ! RA(*) ! TR ! - ! MACRO TABLEAU REEL ! CARGU !______________!____!_____!______________________________________! c@argue C c@commb CCOMM COMMONS CCOMM .______________.____._____.______________________________________. CCOMM ! NOM !TYPE!MODE ! ROLE ! CCOMM !______________!____!_____!______________________________________! CCOMM !______________!____!_____!______________________________________! c@comme C C TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU) C L (LOGIQUE) .. ET TYPES COMPOSES (EX : TR TABLEAU REEL) C MODE : -> DONNEE, <- RESULTAT, <-> DONNEE MODIFIEE, C - TABLEAU DE TRAVAIL C C*********************************************************************** C IMPLICIT NONE C C*********************************************************************** C DONNEES EN COMMON C*********************************************************************** C INCLUDE "paramx.h" INCLUDE "numvar.h" INCLUDE "optcal.h" INCLUDE "entsor.h" INCLUDE "cstphy.h" INCLUDE "cstnum.h" INCLUDE "pointe.h" INCLUDE "albase.h" INCLUDE "alstru.h" INCLUDE "radiat.h" INCLUDE "period.h" INCLUDE "parall.h" INCLUDE "ppppar.h" INCLUDE "ppthch.h" INCLUDE "ppincl.h" INCLUDE "lagpar.h" INCLUDE "lagdim.h" INCLUDE "lagran.h" INCLUDE "vortex.h" INCLUDE "ihmpre.h" INCLUDE "matiss.h" C C les includes pp* ne servent que pour recuperer le pointeur IIZFPP C C*********************************************************************** C C ARGUMENTS C INTEGER IDBIA0 , IDBRA0 , ITRALE INTEGER NDIM , NCELET , NCEL , NFAC , NFABOR INTEGER NFML , NPRFML INTEGER NNOD , LNDFAC , LNDFBR , NCELBR INTEGER NVAR , NSCAL , NPHAS INTEGER NIDEVE , NRDEVE , NITUSE , NRTUSE C INTEGER IFACEL(2,NFAC) , IFABOR(NFABOR) INTEGER IFMFBR(NFABOR) , IFMCEL(NCELET) INTEGER IPRFML(NFML,NPRFML) INTEGER IPNFAC(NFAC+1), NODFAC(LNDFAC) INTEGER IPNFBR(NFABOR+1), NODFBR(LNDFBR) INTEGER ISOSTD(NFABOR+1,NPHAS) INTEGER IDEVEL(NIDEVE), ITUSER(NITUSE) INTEGER IA(*) C DOUBLE PRECISION XYZCEN(NDIM,NCELET) DOUBLE PRECISION SURFAC(NDIM,NFAC), SURFBO(NDIM,NFABOR) DOUBLE PRECISION CDGFAC(NDIM,NFAC), CDGFBO(NDIM,NFABOR) DOUBLE PRECISION XYZNOD(NDIM,NNOD), VOLUME(NCELET) DOUBLE PRECISION DT(NCELET), RTP(NCELET,*), RTPA(NCELET,*) DOUBLE PRECISION PROPCE(NCELET,*) DOUBLE PRECISION PROPFA(NFAC,*), PROPFB(NFABOR,*) DOUBLE PRECISION TSLAGR(NCELET,*) DOUBLE PRECISION COEFA(NFABOR,*), COEFB(NFABOR,*) DOUBLE PRECISION FRCXT(NCELET,3,NPHAS) DOUBLE PRECISION RDEVEL(NRDEVE), RTUSER(NRTUSE), RA(*) C C VARIABLES LOCALES C INTEGER IDEBIA, IDEBRA INTEGER IDBIA1, IDBRA1 INTEGER IFINIA, IFINRA INTEGER IEL , IFAC , IVAR , ISCAL , IAPPEL INTEGER NCP , NCV , IOK INTEGER IICODC, IRCODC INTEGER ICOEFU, IRIJIP, IHBORD, ITBORD INTEGER IDTR , IVISCF, IVISCB, IVISFI, IVISBI, IIPTOT INTEGER IDAM , IXAM , IDAG , IXAG INTEGER IIFACL, IIRESP INTEGER ICOFBD INTEGER IDRTP , IGRDP , ISMBR , IROVSD INTEGER ITINSK, ITINSE, IDIVU , IPRV2F INTEGER IW1 , IW2 , IW3 , IW4 , IW5 , IW6 INTEGER IW7 , IW8 , IW9 , IW10 , IW11 , IW12 INTEGER IXMIJ INTEGER IFRCHY, IDFRHY, IDFRCX INTEGER IGRDVT, IPRODU, IGRARX, IGRARY, IGRARZ INTEGER IESFLM, IESFLB INTEGER ITRAVA, IXIMPA, IUVWK INTEGER NBCCOU INTEGER ICOFBR C INTEGER ISVHB , ISVTB INTEGER IPHAS , KPHAS , II , IPPCP , IENTHA, IPPCV INTEGER IKIPH INTEGER IUIPH , IVIPH , IWIPH , IPRIPH, IPHIPH, IPHASS INTEGER IR11IP, IR22IP, IR33IP, IR12IP, IR13IP, IR23IP INTEGER IPCROM, IPCROA INTEGER IPRNEW, IDIMTE, ITENSO INTEGER IFINIB, IFINRB, IIIFAP INTEGER IFLUA , IFLUB INTEGER ICOAX , ICOBX , ICOAY , ICOBY , ICOAZ , ICOBZ INTEGER IQFX , IQFY , IQFZ , ICOEFQ INTEGER IIRHO , IIRHOB, ICOEFX INTEGER IRTDP , IDRTDP, ICOFAY, ICOFBY, IISMPH INTEGER IISOTH, ITEXT , ITINT , ITEK INTEGER ICORUA, ICORUB, IFLXMA, IFLXMB INTEGER ITERNS, INSLST, ICVRGE, IUETBO, IVSVDR INTEGER IWFLMS, IWFLMB INTEGER IWCF , IPH , IFLMAS, IFLMAB INTEGER ITALIM, ITRFIN, IFLALF, IFLALB, INEEFL DOUBLE PRECISION CPCST , TDITOT, TDIST2, TDIST1, CVCST DOUBLE PRECISION RO0IPH, P0IPH, PR0IPH, XXP0, XYP0, XZP0 C INTEGER IPASS DATA IPASS /0/ SAVE IPASS C INTEGER INFPAR SAVE INFPAR C C*********************************************************************** C C C======================================================================= C 1. INITIALISATION C======================================================================= C IF(IWARNI(IU(1)).GE.1) THEN WRITE(NFECRA,1000) ENDIF C IDEBIA = IDBIA0 IDEBRA = IDBRA0 C IPASS = IPASS + 1 C C --- Indicateur de stockage d'un scalaire et de son coef C d'echange associe. C Pour le moment, on stocke uniquement dans le cas couplage SYRTHES. C ISVTB donne le numero du scalaire (on suppose qu'il n'y en a C qu'un). C Dans le cas ou on a un couplage avec le module thermique 1D en paroi, C on utilise le meme scalaire que celui qui sert a Syrthes (s'il y a C couplage Syrthes), sinon on stocke le scalaire thermique de la phase 1. C CALL NBCSYR (NBCCOU) C =========== ISVHB = 0 ISVTB = 0 IF (NBCCOU .GE. 1) THEN DO ISCAL = 1, NSCAL IF(ICPSYR(ISCAL).EQ.1) THEN ISVHB = ISCAL ISVTB = ISCAL ENDIF ENDDO ENDIF C IF ((NFPT1T.GT.0).AND.(NBCCOU.LE.0)) THEN IPHAS = 1 ISVHB = ISCALT(IPHAS) ISVTB = ISCALT(IPHAS) ENDIF C C Si la distance a la paroi doit etre mise a jour, on l'initialise a GRAND C des maintenant (pour le premier passage dans phyvar en k-omega) IF(IPASS.EQ.1.AND.INEEDY.EQ.1.AND.ABS(ICDPAR).EQ.1.AND. & IMAJDY.EQ.0) THEN DO IEL = 1, NCEL RA(IDIPAR+IEL-1) = GRAND ENDDO ENDIF C C======================================================================= C 2. AU DEBUT DU CALCUL ON REINITIALISE LA PRESSION C======================================================================= C C On le fait sur 2 pas de temps, car souvent, le champ de flux de masse C initial n'est pas a divergence nulle (CL incluses) et l'obtention C d'un flux a divergence nulle coherent avec la contrainte stationnaire C peut prendre quelques pas de temps. C Remarquer que la pression est rattrapee dans l'etape de stokes. C On ne le fait pas dans le cas de la prise en compte de la pression C hydrostatique, ni dans le cas du compressible C IF( NTCABS.LE.2 .AND. ISUITE.EQ.0 .AND. IPHYDR.EQ.0 & .AND. IPPMOD(ICOMPF).LT.0 ) THEN C IF(IWARNI(IPR(1)).GE.2) THEN WRITE(NFECRA,2000) NTCABS ENDIF DO IPHAS = 1, NPHAS IPRNEW = 1 IF(IPHAS.GT.1) THEN DO KPHAS = 1, IPHAS-1 IF(IPR(IPHAS).EQ.IPR(KPHAS)) THEN IPRNEW = 0 ENDIF ENDDO ENDIF IF(IPRNEW.EQ.1) THEN IIPTOT = IPPROC(IPRTOT(IPHAS)) RO0IPH = RO0 (IPHAS) P0IPH = P0 (IPHAS) PR0IPH = PRED0(IPHAS) XXP0 = XYZP0(1,IPHAS) XYP0 = XYZP0(2,IPHAS) XZP0 = XYZP0(3,IPHAS) DO IEL = 1, NCEL RTP(IEL,IPR(IPHAS)) = PR0IPH PROPCE(IEL,IIPTOT) = P0IPH & + RO0IPH*( GX*(XYZCEN(1,IEL)-XXP0) & + GY*(XYZCEN(2,IEL)-XYP0) & + GZ*(XYZCEN(3,IEL)-XZP0) ) ENDDO ENDIF ENDDO ENDIF C 2000 FORMAT( & ' REINITIALISATION DE LA PRESSION A L''ITERATION ',I10) C C======================================================================= C 3. COMMUNICATIONS C======================================================================= C C ---> On echange ici les variables RTP en debut de pas de temps. C Ce n'est pas fait dans caltri pour faciliter la lecture C (manipulation des tableaux) C Ceci a l'avantage d'echanger egalement ce qui provient de C inivar et lecamo (et par rapport a une solution d'echange C en fin de pas de temps, on evite une communication) C L'inconvenient est que l'on ne dispose pas des halos sitot les C RTP calcules (fin de navsto, turbke, turrij, boucle dans scalai) C On pourrait penser a echanger aussi les PROPCE et le DT C Pour le moment ca ne s'impose pas : on a besoin d'avoir C echange RHO dans navsto pour un affichage et les viscosites C dans vissec. On fera les transferts localement quand necessaire. C Par principe, on suppose que C c'est a la charge de celui qui utilise des valeurs voisines de C s'assurer qu'elles existent (ss pgm utilisateurs en C particulier) C seules les RTPA sont echangees de maniere systematique C (eviter donc d'utiliser RTP) C le calcul du gradient fournit aussi les valeurs sur le halo C (utile pour les reconstructions) C les seules boucles sur NCELET sont des boucles d'initialisation C (on n'a pas a faire de calcul sur les cellules halo, elles C elles sont remplies par les routines de communication et C on y preleve seulement de l'information) C C C C ---> Parallelisme C IF(IRANGP.GE.0) THEN C DO IVAR = 1, NVAR CALL PARCOM (RTP(1,IVAR)) C =========== ENDDO C ENDIF C C ---> Periodicite C IF(IPERIO.EQ.1) THEN C C -- Vitesse C DO IPHAS = 1, NPHAS C IUIPH = IU(IPHAS) IVIPH = IV(IPHAS) IWIPH = IW(IPHAS) IDIMTE = 1 ITENSO = 0 CALL PERCOM C =========== & ( IDIMTE , ITENSO , & RTP(1,IUIPH), RTP(1,IUIPH), RTP(1,IUIPH), & RTP(1,IVIPH), RTP(1,IVIPH), RTP(1,IVIPH), & RTP(1,IWIPH), RTP(1,IWIPH), RTP(1,IWIPH)) C ENDDO C C -- Tenseur de Reynolds C DO IPHAS = 1, NPHAS C IF(ITYTUR(IPHAS).EQ.3) THEN IDIMTE = 2 ITENSO = 0 IR11IP = IR11(IPHAS) IR22IP = IR22(IPHAS) IR33IP = IR33(IPHAS) IR12IP = IR12(IPHAS) IR13IP = IR13(IPHAS) IR23IP = IR23(IPHAS) CALL PERCOM C =========== & ( IDIMTE , ITENSO , & RTP(1,IR11IP), RTP(1,IR12IP), RTP(1,IR13IP), & RTP(1,IR12IP), RTP(1,IR22IP), RTP(1,IR23IP), & RTP(1,IR13IP), RTP(1,IR23IP), RTP(1,IR33IP) ) ENDIF C C -- Remarque pour le v2f C v2 (donc phi) est lie a une orientation locale, on peut donc le traiter C comme un scalaire dans la periodicite de rotation C C ENDDO C C -- Variables scalaires C DO IVAR = 1, NVAR DO IPHAS = 1, NPHAS IF(IVAR.NE.IU(IPHAS).AND.IVAR.NE.IV(IPHAS).AND. & IVAR.NE.IW(IPHAS).AND. & (ITYTUR(IPHAS).NE.3.OR. & (IVAR.NE.IR11(IPHAS).AND.IVAR.NE.IR22(IPHAS).AND. & IVAR.NE.IR33(IPHAS).AND.IVAR.NE.IR12(IPHAS).AND. & IVAR.NE.IR13(IPHAS).AND.IVAR.NE.IR23(IPHAS)))) THEN C IDIMTE = 0 ITENSO = 0 CALL PERCOM C =========== & ( IDIMTE , ITENSO , & RTP(1,IVAR), RTP(1,IVAR), RTP(1,IVAR), & RTP(1,IVAR), RTP(1,IVAR), RTP(1,IVAR), & RTP(1,IVAR), RTP(1,IVAR), RTP(1,IVAR) ) C ENDIF ENDDO ENDDO C ENDIF C C======================================================================= C 4. POUR IPHYDR ON DOIT COMMUNIQUER FRCXT AU PREMIER PASSAGE C (FRCXT SERT DANS TYPECL) C SI ICALHY=1, ON COMMUNIQUE AUSSI RHO POUR REMPLIR C PROPCE(1,IPPROC(IROMA(IPHAS))) C======================================================================= C IF(IPASS.EQ.1) THEN C C --- Communication de FRCXT IF (IPHYDR.EQ.1) THEN C DO IPHAS = 1, NPHAS IF(IRANGP.GE.0) THEN CALL PARCOM (FRCXT(1,1,IPHAS)) C =========== CALL PARCOM (FRCXT(1,2,IPHAS)) C =========== CALL PARCOM (FRCXT(1,3,IPHAS)) C =========== ENDIF IF(IPERIO.EQ.1) THEN IDIMTE = 1 ITENSO = 0 CALL PERCOM C =========== & ( IDIMTE , ITENSO , & FRCXT(1,1,IPHAS),FRCXT(1,1,IPHAS),FRCXT(1,1,IPHAS), & FRCXT(1,2,IPHAS),FRCXT(1,2,IPHAS),FRCXT(1,2,IPHAS), & FRCXT(1,3,IPHAS),FRCXT(1,3,IPHAS),FRCXT(1,3,IPHAS) ) ENDIF C ENDDO C ENDIF C C --- Communication de RHO IF (ICALHY.EQ.1) THEN C DO IPHAS = 1, NPHAS IPCROM = IPPROC(IROM (IPHAS)) IF(IRANGP.GE.0) THEN CALL PARCOM (PROPCE(1,IPCROM)) C =========== ENDIF IF(IPERIO.EQ.1) THEN IDIMTE = 0 ITENSO = 0 CALL PERCOM C =========== & ( IDIMTE , ITENSO , & PROPCE(1,IPCROM),PROPCE(1,IPCROM),PROPCE(1,IPCROM), & PROPCE(1,IPCROM),PROPCE(1,IPCROM),PROPCE(1,IPCROM), & PROPCE(1,IPCROM),PROPCE(1,IPCROM),PROPCE(1,IPCROM) ) ENDIF ENDDO C ENDIF C ENDIF C C======================================================================= C 5. LES VALEURS COURANTES ECRASENT LES VALEURS ANTERIEURES C======================================================================= C C --- Noter que exceptionnellement, on fait un calcul avec NCELET, C pour eviter une nouvelle communication sur RTPA et Les autres C tableaux du pas de temps precedent C DO IVAR = 1, NVAR DO IEL = 1, NCELET RTPA (IEL,IVAR) = RTP (IEL,IVAR) ENDDO ENDDO C IF (ICALHY.EQ.1) THEN DO IPHAS = 1, NPHAS IPCROM = IPPROC(IROM (IPHAS)) IPCROA = IPPROC(IROMA (IPHAS)) DO IEL = 1, NCELET PROPCE(IEL,IPCROA) = PROPCE(IEL,IPCROM) ENDDO ENDDO ENDIF C C======================================================================= C 6. DANS LE CAS "zero pas de temps" EN "SUITE" DE CALCUL C ON SORT ICI C======================================================================= C on sort avant SCHTMP car sinon a l'ordre 2 en temps la valeur du C flux de masse au pas de temps precedent est ecrasee par la valeur C au pas de temps actuel et la valeur au pas de temps actuel est C remplacee par une extrapolation qui n'a pas lieu d'etre puisque C NTCABS n'est pas incremente. Dans le cas INPDT0=1 sans suite, il C n'y a pas de probleme puisque tous les flux de masse sont a 0 ! C C IF(INPDT0.EQ.1.AND.ISUITE.EQ.1) GOTO 200 C C IAPPEL = 1 CALL SCHTMP C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , IAPPEL , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , ISOSTD , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , RTP , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RDEVEL , RTUSER , & RA ) C C C======================================================================= C 7. CALCUL DES PROPRIETES PHYSIQUES VARIABLES C SOIT VARIABLES AU COURS DU TEMPS C SOIT VARIABLES LORS D'UNE REPRISE DE CALCUL C (VISCOSITES ET MASSE VOLUMIQUE) C======================================================================= C IF(IWARNI(IU(1)).GE.1) THEN WRITE(NFECRA,1010) ENDIF C CALL MEMPHY C =========== & ( IDEBIA , IDEBRA , & NVAR , NCELET , NCEL , NFAC , NFABOR , NPHAS , & IW1 , IW2 , IW3 , IW4 , & IW5 , IW6 , IW7 , IW8 , & IW9 , IW10 , IXMIJ , & IFINIA , IFINRA ) C CALL PHYVAR C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RA(IW1), RA(IW2), RA(IW3), RA(IW4), & RA(IW5), RA(IW6), RA(IW7), RA(IW8), RA(IW9), RA(IW10), & RA(IXMIJ) , & RDEVEL , RTUSER , RA ) C IAPPEL = 2 CALL SCHTMP C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , IAPPEL , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , ISOSTD , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , RTP , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RDEVEL , RTUSER , & RA ) C C C REMPLISSAGE DES COEFS DE PDC C ON Y PASSE MEME S'IL N'Y A PAS DE PDC SUR LE PROC COURANT AU CAS OU C UN UTILISATEUR DECIDERAIT D'AVOIR UN COEFF DE PDC DEPENDANT DE C LA VITESSE MOYENNE OU MAX. C DO IPHAS = 1, NPHAS C IF (NCPDCT(IPHAS).GT.0) THEN C IAPPEL = 3 IF (IMATIS.EQ.1) THEN C CALL MTKPDC C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , IPHAS , IAPPEL , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , IA(IICEPD(IPHAS)) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , RTP , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(ICKUPD(IPHAS)) , & RDEVEL , RTUSER , RA ) C ELSE C CALL USKPDC C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , IPHAS , IAPPEL , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , IA(IICEPD(IPHAS)) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , RTP , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(ICKUPD(IPHAS)) , & RDEVEL , RTUSER , RA ) C ENDIF C ENDIF C ENDDO C C C REMPLISSAGE DES COEFS DE TERME SOURCE DE MASSE C DO IPHAS = 1, NPHAS C C ON Y PASSE MEME S'IL N'Y A PAS DE TSM SUR LE PROC COURANT AU CAS OU C UN UTILISATEUR DECIDERAIT D'AVOIR UN TSM DEPENDANT DE C VALEURS GLOBALES OU MAX. IF(NCTSMT(IPHAS).GT.0) THEN C C Mise a zero du tableau de type de TS masse et source DO II = 1, NCETSM(IPHAS)*NVAR IA(IITPSM(IPHAS)+II-1) = 0 RA(ISMACE(IPHAS)+II-1) = 0.D0 ENDDO C IAPPEL = 3 CALL USTSMA C ============ & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , NCEPDC(IPHAS) , NCKPDC(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & NCETSM(IPHAS) , IPHAS , IAPPEL , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)) , & IA(IICESM(IPHAS)) , IA(IITPSM(IPHAS)) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(ICKUPD(IPHAS)), RA(ISMACE(IPHAS)), & RDEVEL , RTUSER , RA ) C ENDIF C ENDDO C C======================================================================= C 8. CALCUL DU NOMBRE DE COURANT ET DE FOURIER C CALCUL DU PAS DE TEMPS SI VARIABLE C======================================================================= C IF(IWARNI(IU(1)).GE.1) THEN WRITE(NFECRA,1020) ENDIF C CALL MEMDTV C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & IVISCF , IVISCB , IDAM , ICOFBD , IW1 , IW2 , IW3 , & ICOFBR , IGRARX , IGRARY , IGRARZ , IWCF , & IPTLRO , IPPMOD(ICOMPF) , & IFINIA , IFINRA ) C IPHAS = 1 C CALL DTTVAR C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , NCETSM(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , IWARNI(IU(1)) , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)), IA(IICESM(IPHAS)), IA(IITPSM(IPHAS)) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(ICKUPD(IPHAS)) , RA(ISMACE(IPHAS)), & RA(IVISCF) , RA(IVISCB) , RA(IDAM) , & RA(ICOFBD) , RA(IW1) , RA(IW2) , RA(IW3) , & RA(ICOFBR) , RA(IGRARX) , RA(IGRARY) , RA(IGRARZ), & RA(IWCF), & RDEVEL , RTUSER , RA ) C C======================================================================= C 9. CHARGEMENT ET TRADUCTION DES CONDITIONS AUX LIMITES C======================================================================= C IF(IWARNI(IU(1)).GE.1) THEN WRITE(NFECRA,1030) ENDIF C C -- Methode des vortex en LES : C Definition ou modification eventuelle des parametres C Mise a jour des vortex C IF (IVRTEX.EQ.1) THEN C IPHAS = 1 IAPPEL = 2 CALL USVORT C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IPHAS , IAPPEL , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML, & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IIREPV) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , & XYZNOD , VOLUME , & DT , RTPA , & PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RDEVEL , RTUSER , RA ) C C Verification des donnees entrees par l'utilisateur C (au premier passage seulement) IF (IPASS.EQ.1) THEN CALL VORVER ( NFABOR , IA(IIREPV) , IAPPEL ) C =========== ENDIF C IF(IRANGP.LE.0) THEN CALL VORTEX C =========== & ( IA(IIVRCE) , RA(IVISV) , RA(IXYZV) , & RA(IYZCEL) , RA(IUVORT) , RA(IVVORT), & RA(IWVORT) , & RA(IYZVOR) , RA(IYZVOA) , RA(ISIGNV), & RA(IXSIGM) , RA(IXGAMM) , RA(IXTMP) , & RA(IXTMPL) ) ENDIF C C -- Fin de zone Methode des vortex C ENDIF C C --- Methode ALE : debut de boucle d'implicitation du deplacement des C structures. ITRFIN=0 indique qu'on a besoin de refaire une iteration C pour Syrthes, T1D ou rayonnement. ITALIM = 1 ITRFIN = 1 IDBIA1 = IDEBIA IDBRA1 = IDEBRA IFLALF = 1 IFLALB = 1 INEEFL = 0 IF (IALE.EQ.1 .AND. NALIMX.GT.1 .AND. ITRALE.GT.NALINF) THEN C On reserve un tableau pour stocker le flux de masse initial C jusqu'a la fin de navsto (pas la peine de tester les C depassements car on passe dans memcli juste apres) IFLALF = IDEBRA IFLALB = IFLALF + NFAC IDBRA1 = IFLALB + NFABOR INEEFL = 1 C IF (NBCCOU.GT.0 .OR. NFPT1T.GT.0 .OR. IIRAYO.GT.0) ITRFIN = 0 C ENDIF C 300 CONTINUE C C CALL MEMCLI C =========== & ( IDBIA1 , IDBRA1 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & ISVHB , ISVTB , & IICODC , IRCODC , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , & ICOEFU , IRIJIP , IUETBO , IVSVDR , IHBORD , ITBORD , & IFINIA , IFINRA ) C CALL PRECLI C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICODC) , IA(IIZFPP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RA(IRCODC) , RA(ICOEFU) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , & RA(IW4 ) , RA(IW5 ) , RA(IW6 ) , & RDEVEL , RTUSER , RA ) C C IF ((NSCAPP.EQ.0).AND.(IMATIS.EQ.0)) THEN C C ON NE FAIT PAS DE LA PHYSIQUE PARTICULIERE ET PAS DE MATISSE C #if defined(_CS_HAVE_XML) C C - Interface Code_Saturne C ====================== C IF(IIHMPR.EQ.1) THEN C CALL UICLIM C =========== & ( NSCAPP, NFABOR, NFML, & IINDEF, IENTRE, IPAROI, ISYMET, ISOLIB, & ITURB, IFMFBR, IPRFML, & IA(IITYPF), IA(IICODC), & RA(IRCODC), SURFBO ) C ENDIF C #endif C C - Sous-programme utilisateur C ========================== C CALL USCLIM C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICODC) , IA(IITRIF) , IA(IITYPF) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(IRCODC) , & RA(IW1), RA(IW2), RA(IW3), RA(IW4), RA(IW5), RA(IW6), & RA(ICOEFU) , & RDEVEL , RTUSER , RA ) C #if defined(_CS_HAVE_XML) C C - Interface Code_Saturne C ====================== C IF(IIHMPR.EQ.1) THEN C CALL UICLIV C =========== & ( NFABOR, NFML, IINDEF, IENTRE, IPAROI, ISYMET, ISOLIB, & IFMFBR, IPRFML, IA(IITYPF) ) C ENDIF C #endif C ELSEIF (IMATIS.EQ.0) THEN C C ON FAIT DE LA PHYSIQUE PARTICULIERE (MAIS PAS DE MATISSE) C CALL PPCLIM C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICODC) , IA(IITRIF) , IA(IITYPF) , IA(IIZFPP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(IRCODC) , & RA(IW1), RA(IW2), RA(IW3), RA(IW4), RA(IW5), RA(IW6), & RA(ICOEFU) , & RDEVEL , RTUSER , RA ) C ENDIF C C -- Methode des vortex en L.E.S. : C (Transfert des vortex dans les tableaux RCODCL) C IF(IVRTEX.EQ.1) THEN C CALL VOR2CL C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICODC) , IA(IITRIF) , IA(IITYPF) , & IDEVEL , IA(IIREPV) , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(IRCODC) , & RA(IW1), RA(IW2), RA(IW3), RA(IW4), RA(IW5), RA(IW6), & RA(ICOEFU) , & RDEVEL , RTUSER , RA ) C ENDIF C C C -- Methode ALE (CL de vitesse de maillage et deplacement aux noeuds) C IF (IALE.EQ.1) THEN C DO II = 1, NNOD IA(IIMPAL+II-1) = 0 ENDDO C CALL USALCL C =========== & ( IFINIA , IFINRA , ITRALE , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICODC) , IA(IITYPF) , IA(IIALTY) , & IA(IIMPAL) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(IRCODC) , & RA(IXYZN0) , RA(IDEPAL) , & RDEVEL , RTUSER , RA ) C C Au cas ou l'utilisateur aurait touche DEPALE sans mettre IMPALE=1, on C remet le deplacement initial DO II = 1, NNOD IF (IA(IIMPAL+II-1).EQ.0) THEN RA(IDEPAL+II-1 ) = & XYZNOD(1,II)-RA(IXYZN0+(II-1)*NDIM ) RA(IDEPAL+II-1+ NNOD) = & XYZNOD(2,II)-RA(IXYZN0+(II-1)*NDIM+1) RA(IDEPAL+II-1+2*NNOD) = & XYZNOD(3,II)-RA(IXYZN0+(II-1)*NDIM+2) ENDIF ENDDO C C En cas de couplage de structures, on calcule un deplacement predit IF (NBSTRU.GT.0) THEN C CALL STRPRE C =========== & ( IFINIA , IFINRA , ITALIM , INEEFL , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML, & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IIMPAL) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , & XYZNOD , VOLUME , & RTP , RTPA , PROPCE , PROPFA , PROPFB , & RA(IFLALF) , RA(IFLALB) , RA(IDEPAL) , & RDEVEL , RTUSER , RA ) C ENDIF C ENDIF C C UNE FOIS CERTAINS CODES DE CONDITIONS LIMITES INITIALISES PAR C L'UTILISATEUR, ON PEUT COMPLETER CES CODES PAR LES COUPLAGES C AUX BORDS (TYPE SYRTHES), SAUF SI ON DOIT Y REPASSER ENSUITE C IF (ITRFIN.EQ.1) THEN C CALL COUPBI C =========== & ( IFINIA , IFINRA , & NFABOR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IA(IICODC) , & IDEVEL , ITUSER , IA , & RA(IRCODC) , & RDEVEL , RTUSER , RA ) C IF (NFPT1T.GT.0) THEN CALL COU1DI C =========== & ( IFINIA , IFINRA , & NFABOR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & ISVTB , IA(IICODC) , & IDEVEL , ITUSER , IA , & RA(IRCODC) , & RDEVEL , RTUSER , RA ) ENDIF C ENDIF C C IF(IIRAYO.GT.0 .AND. ITRFIN.EQ.1) THEN C CALL MEMRA3 C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & IISOTH , ITEK , ITEXT , ITINT , & IFINIB , IFINRB ) C CALL RAYCLI C =========== & ( IFINIB , IFINRB , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , ISVHB , ISVTB , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICODC) , IA(IITRIF) , IA(IITYPF) , C & IA(IIZFRD) , IA(IISOTH) , C & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & RA(IRCODC) , & COEFA , COEFB , RA(IHBORD) , RA(ITBORD) , & RA(IW1), RA(IW2), RA(IW3), RA(IW4), RA(IW5), RA(IW6), C & RA(ITSRE) , RA(ITSRI) , & RA(ITPARO) , RA(IQINCI) , RA(IXLAM) , RA(IEPA) , RA(IEPS) , & RA(IFNET) , RA(IFCONV) , RA(IHCONV) , RA(ITEXT) , RA(ITINT) , & RA(ITEK) , C & RDEVEL , RTUSER , RA ) C ENDIF C C ON CALCULE LES COEFFICIENTS ASSOCIES AUX CONDITIONS LIMITES C CALL CONDLI C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , ISVHB , ISVTB , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICODC) , ISOSTD , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & RA(IRCODC) , & COEFA , COEFB , RA(IUETBO) , RA(IVSVDR) , & RA(IHBORD) , RA(ITBORD) , & FRCXT , & RA(IW1), RA(IW2), RA(IW3), RA(IW4), RA(IW5), RA(IW6), & RA(ICOEFU) , RA(IRIJIP) , & RDEVEL , RTUSER , RA ) C C C UNE FOIS LES COEFFICIENTS CALCULES, ON PEUT EN DEDUIRE PLUS C FACILEMENT (I.E. SANS RECALCULS INUTILES) LES TERMES A C ENVOYER POUR LES COUPLAGES AUX BORDS (TYPE SYRTHES) C C C On indique si la variable couplee est l'enthalpie IENTHA = 0 IF(ISVTB.GT.0) THEN IF(ISCSTH(ISVTB).EQ.2) THEN IENTHA = 1 ENDIF ENDIF C C Compressible : on indique si la variable couple est l'energie C IF ( IPPMOD(ICOMPF).GE.0 ) THEN IF(ISVTB.GT.0) THEN IF(ISCSTH(ISVTB).EQ.3) THEN IENTHA = 2 ENDIF ENDIF ENDIF C C On recupere le Cp de la phase couplee C (ou de la phase 1, si pas de couplage) IPHAS = 1 IF(ISVTB.GT.0) THEN IPHAS = IPHSCA(ISVTB) ENDIF IF(ICP(IPHAS).GT.0) THEN IPPCP = IPPROC(ICP(IPHAS)) NCP = NCELET CPCST = 0.D0 ELSE IPPCP = IFINRA NCP = 1 CPCST = CP0(IPHAS) ENDIF C C En compressible et si on couple ave l'energie C on recupere de Cv de la phase couplee C IF ( IPPMOD(ICOMPF).GE.0 .AND. IENTHA .EQ. 2 ) THEN C IPHAS = IPHSCA(ISVTB) IF(ICV(IPHAS).GT.0) THEN IPPCV = IPPROC(ICV(IPHAS)) NCV = NCELET CVCST = 0.D0 ELSE IPPCV = IFINRA NCV = 1 CVCST = CV0(IPHAS) ENDIF ELSE IPPCV = IFINRA NCV = 1 CVCST = 0.D0 ENDIF C C On envoie le tout vers SYRTHES, en distinguant CP C constant ou variable IF (ITRFIN.EQ.1) THEN C CALL COUPBO C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , ISVTB , & NIDEVE , NRDEVE , NITUSE , NRTUSE , NCP , NCV , IENTHA , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & CPCST , PROPCE(1,IPPCP) , CVCST , PROPCE(1,IPPCV), & RA(IHBORD) , RA(ITBORD) , & RDEVEL , RTUSER , RA ) C C IF (NFPT1T.GT.0) THEN CALL COU1DO C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , NCP , NFPT1D , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML, & IPNFAC , NODFAC , IPNFBR , NODFBR , & IENTHA , IA(IIFPT1), IA(IICLT1), & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , & XYZNOD , VOLUME , & RA(ITPPT1), RA(ITEPT1), RA(IHEPT1), & RA(IFEPT1), RA(IXLMT1), RA(IRCPT1), RA(IDTPT1), & DT , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & CPCST , PROPCE(1,IPPCP) , RA(IHBORD) , RA(ITBORD) , & RDEVEL , RTUSER , RA ) ENDIF ENDIF C C ON N'A PLUS BESOIN DE ISVHB OU ISVHT (POUR HBORD ET TBORD) C A PARTIR D'ICI C C C C CALCUL DE LA DISTANCE A LA PAROI C (Nouvel algorithme. L'ancien est dans condli) C En ALE on ne fait ce calcul qu'a la premiere des C sous-iterations d'implicitation ITALIM, car le maillage C n'est pas modifie dans les sous-iterations suivantes C IF (ITALIM.EQ.1) THEN C IF(INEEDY.EQ.1.AND.IWARNY.GE.1) THEN CALL DMTMPS(TDIST1) ENDIF C C C On ne fait le calcul que s'il y a des parois (RA(IDIPAR) est reserve C et initialise a GRAND avant. S'il n'y a pas de paroi, il restera = GRAND) C C Pour le moment, on suppose que l'on peut se contenter de faire C cela au premier passage, sauf avec les maillages mobiles. Attention donc C aux conditions aux limites variables (faces qui deviennent des parois ou C parois qui deviennent autre chose) C C Nombre de faces de paroi IF(IPASS.EQ.1) THEN IF(INEEDY.EQ.1) THEN INFPAR = 0 DO IFAC = 1, NFABOR IF(IA(IITYPF-1+IFAC).EQ.IPAROI) THEN INFPAR = INFPAR+1 ENDIF ENDDO IF(IRANGP.GE.0) THEN CALL PARCPT(INFPAR) ENDIF ENDIF ENDIF C C C On calcule la distance a la paroi C si elle doit etre mise a jour C et si on en a besoin, C et si on a choisi ce mode de calcul, IF( IMAJDY.EQ.0.AND.INEEDY.EQ.1.AND.ABS(ICDPAR).EQ.1) THEN C C S'il n'y a pas de paroi, on garde l'initialisation a GRAND IF(INFPAR.EQ.0) THEN IMAJDY = 1 C C S'il y a des parois, il faut calculer ELSE C C C On doit conserver la memoire de memcli a cause de RA(IUETBO) C dans DISTYP (uniquement en LES avec van Driest mais tant pis) C CALL MEMDIS C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IVISCF , IVISCB , IDAM , IXAM , ISMBR , IROVSD , & IRTDP , ICOFAY , ICOFBY , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , & IFINIB , IFINRB ) C CALL DISTPR C =========== & ( IFINIB , IFINRB , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , IA(IITYPF) , & IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & RA(IDIPAR) , & RA(IVISCF) , RA(IVISCB) , & RA(IDAM) , RA(IXAM) , & RA(ISMBR ) , RA(IROVSD) , & RA(IRTDP) , RA(ICOFAY) , RA(ICOFBY) , & RA(IW1), RA(IW2), RA(IW3), RA(IW4), RA(IW5), RA(IW6), RA(IW7), & RA(IW8), RA(IW9), & RDEVEL , RTUSER , RA ) C C La distance n'a plus a etre mise a jour sauf en ALE IF (IALE.EQ.0) IMAJDY = 1 C ENDIF ENDIF C ENDIF C C C C CALCUL DE L'AMORTISSEMENT DE VAN DRIEST C OU CALCUL DE Y+ POUR LE LAGRANGIEN C C DO IPHAS = 1, NPHAS C C Pour passer en argument IPHASS = IPHAS C C On calcule y+ si on en a besoin C IF( (ITYTUR(IPHAS).EQ.4.AND.IDRIES(IPHAS).EQ.1) & .OR. (IILAGR.GE.1 .AND. IROULE.EQ.2) ) THEN C C On calcule si on a demande ce mode de calcul C et s'il y a des parois (si pas de paroi, pas de y+) IF(ABS(ICDPAR).EQ.1.AND.INFPAR.GT.0) THEN C IISMPH = IISYMP+NFABOR*(IPHAS-1) C C On doit conserver la memoire de memcli a cause de RA(IUETBO) C dans DISTYP C CALL MEMDYP C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IDAM , IXAM , ISMBR , IROVSD , & IRTDP , IDRTDP , & IQFX , IQFY , IQFZ , ICOEFQ , IIRHO , IIRHOB , & IFLUA , IFLUB , & ICOAX , ICOBX , ICOAY , ICOBY , ICOAZ , ICOBZ , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , & IFINIB , IFINRB ) C CALL DISTYP C =========== & ( IFINIB , IFINRB , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , IPHASS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IIFACL) , IA(IIRESP) , IA(IITYPF) , IA(IISMPH), & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & RA(IDIPAR), PROPCE , RA(IUETBO), RA(IYPPAR), & RA(IDAM ), RA(IXAM ), RA(ISMBR ), RA(IROVSD), & RA(IRTDP ), RA(IDRTDP), & RA(IQFX ), RA(IQFY ), RA(IQFZ ), RA(ICOEFQ), & RA(IIRHO ), RA(IIRHOB), & RA(IFLUA ), RA(IFLUB ), & RA(ICOAX ), RA(ICOBX ), RA(ICOAY ), RA(ICOBY ), & RA(ICOAZ ), RA(ICOBZ ), & RA(IW1), RA(IW2), RA(IW3), RA(IW4), RA(IW5), RA(IW6), RA(IW7), & RA(IW8), RA(IW9), & RDEVEL , RTUSER , RA ) C ENDIF C ENDIF C IF (ITYTUR(IPHAS).EQ.4 .AND. IDRIES(IPHAS).EQ.1) THEN C C Pas d'amortissement si pas de paroi IF(INFPAR.GT.0) THEN IF(IIFAPA(IPHAS).GT.0) THEN IIIFAP = IIFAPA(IPHAS) ELSE IIIFAP = IFINIB ENDIF CALL VANDRI C =========== & ( NDIM , NCELET , NCEL , NFAC , NFABOR , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , IPHASS , & IA(IITYPF) , IFABOR, IA(IIIFAP), & IDEVEL , ITUSER , IA , & XYZCEN , CDGFBO , RA(IUETBO) , RA(IVSVDR) , RA(IYPPAR) , & PROPCE , RDEVEL , RTUSER , RA ) ENDIF C ENDIF C ENDDO C IF(INEEDY.EQ.1.AND.IWARNY.GE.1) THEN CALL DMTMPS(TDIST2) TDITOT = TDIST2-TDIST1 IF (IRANGP.GE.0) CALL PARSOM (TDITOT) C =========== WRITE(NFECRA,4010)TDITOT ENDIF C C C======================================================================= C 10. DANS LE CAS "zero pas de temps" EN "NON SUITE" DE CALCUL C ON SORT ICI C======================================================================= C IF (INPDT0.EQ.1.AND.ISUITE.EQ.0) GOTO 200 C IF (IILAGR.EQ.3) GOTO 200 C C======================================================================= C 11. RESOLUTION DE LA VITESSE DE MAILLAGE EN ALE C======================================================================= C IF (IALE.EQ.1) THEN C IF (ITRALE.EQ.0 .OR. ITRALE.GT.NALINF) THEN C CALL MEMALE C =========== & ( IDBIA1 , IDBRA1 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IVISCF , IVISCB , IDAM , IXAM , IDAG , IXAG , & IDRTP , ISMBR , IROVSD , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , & IFINIA , IFINRA ) C CALL ALELAP C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RA(IVISCF) , RA(IVISCB) , & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , RA(IW4 ), & RA(IW5 ) , RA(IW6 ) , RA(IW7 ) , RA(IW8 ) , RA(IW9 ), & RDEVEL , RTUSER , RA ) C ENDIF C IF (ITRALE.EQ.0) GOTO 200 C ENDIF C C======================================================================= C 11. CALCUL A CHAMP DE VITESSE NON FIGE : C ON RESOUT VITESSE ET TURBULENCE C ON SUPPOSE QUE TOUTES LES PHASES SONT FIGEES OU AUCUNE C======================================================================= C IF (ICCVFG.EQ.0) THEN C ======================== C C======================================================================= C 12. RESOLUTION MASSE (MODULE COMPRESSIBLE UNIQUEMENT) C======================================================================= IF ( IPPMOD(ICOMPF).GE.0 ) THEN C IF(IWARNI(IU(1)).GE.1) THEN WRITE(NFECRA,1080) ENDIF C CALL MEMCFM C =========== & ( IDBIA1 , IDBRA1 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IDTR , IVISCF , IVISCB , IDAM , IXAM , IDAG , IXAG , & IDRTP , ISMBR , IROVSD , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , & IW7 , IW8 , IW9 , IW10 , IW11 , IW12 , & IWFLMS , IWFLMB , & ICOEFU , & IFINIA , IFINRA ) C DO IPHAS = 1, NPHAS C ISCAL = IRHO(IPHAS) C CALL CFMSVL C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , NCETSM(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , ISCAL , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)) , IA(IICESM(IPHAS)) , & IA(IITPSM(IPHAS)) , IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RA(ICKUPD(IPHAS)) , RA(ISMACE(IPHAS)) , & RA(IVISCF) , RA(IVISCB) , & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , & RA(IW4 ) , RA(IW5 ) , RA(IW6 ) , & RA(IW7 ) , RA(IW8 ) , RA(IW9 ) , & RA(IW10 ) , RA(IW11 ) , RA(IW12 ) , & RA(IWFLMS) , RA(IWFLMB) , & RA(ICOEFU) , & RDEVEL , RTUSER , RA ) C ENDDO C ENDIF C C======================================================================= C 13. RESOLUTION QUANTITE DE MOUVEMENT ET MASSE (INCOMPRESSIBLE) C======================================================================= C IF(IWARNI(IU(1)).GE.1) THEN WRITE(NFECRA,1040) ENDIF C CALL MEMNAV C =========== & ( IDBIA1 , IDBRA1 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IVISCF , IVISCB , IVISFI , IVISBI , & IDAM , IXAM , IDAG , IXAG , IIFACL , IIRESP , & IDRTP , IGRDP , ISMBR , IROVSD , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , IW10 , IDFRCX , IFRCHY , IDFRHY , & ICOEFU , IESFLM , IESFLB , ITRAVA , IXIMPA , & IUVWK , & IFINIA , IFINRA ) C C SI LE COMPRESSIBLE SANS CHOC EST ACTIF, ON RESOUT AVEC CFQDMV IF ( IPPMOD(ICOMPF).GE.0 ) THEN C DO IPHAS = 1, NPHAS C IUIPH = IU(IPHAS) IFLMAS = IPPROF(IFLUMA(IUIPH)) IFLMAB = IPPROB(IFLUMA(IUIPH)) IPH = IPHAS C CALL CFQDMV C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , NCETSM(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , IPH , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)) , IA(IICESM(IPHAS)) , & IA(IITPSM(IPHAS)) , IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & PROPFA(1,IFLMAS), PROPFB(1,IFLMAB), & COEFA , COEFB , & RA(ICKUPD(IPHAS)) , RA(ISMACE(IPHAS)) , & FRCXT , RA(IDFRCX) , RA(ITPUCO) , RA(IGRDP) , & RA(IVISCF) , RA(IVISCB) , RA(IVISFI) , RA(IVISBI) , & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , & RA(IW4 ) , RA(IW5 ) , RA(IW6 ) , & RA(IW7 ) , RA(IW8 ) , RA(IW9 ) , & RA(ICOEFU) , & RDEVEL , RTUSER , RA ) C ENDDO C ELSE C C --- Boucle sur navsto pour couplage vitesse/pression C on s'arrete a NTERUP ou quand TOUTES les phases on converge C ICVRGE = 0 INSLST = 0 DO ITERNS = 1, NTERUP C CALL NAVSTO C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , ITERNS , ICVRGE , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IIFACL) , IA(IIRESP) , ISOSTD , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & TSLAGR , COEFA , COEFB , FRCXT , & RA(ITRAVA) , RA(IXIMPA) , RA(IUVWK ) , & RA(IVISCF) , RA(IVISCB) , RA(IVISFI) , RA(IVISBI) , & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(IGRDP ) , RA(ISMBR ) , RA(IROVSD) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , & RA(IW4 ) , RA(IW5 ) , RA(IW6 ) , & RA(IW7 ) , RA(IW8 ) , RA(IW9 ) , RA(IW10 ) , & RA(IDFRCX) , RA(IFRCHY) , RA(IDFRHY) , & RA(ICOEFU) , RA(IESFLM) , RA(IESFLB), & RDEVEL , RTUSER , RA ) C C Mise a jour de la pression si on utilise un couplage vitesse/pression C par point fixe C En parallele, l'echange est fait au debut de navsto. IF(NTERUP.GT.1) THEN DO IPHAS = 1, NPHAS IPRIPH = IPR(IPHAS) DO IEL = 1, NCEL RTPA(IEL,IPRIPH) = RTP(IEL,IPRIPH) ENDDO ENDDO ENDIF C C Si c'est la derniere iteration : INSLST = 1 IF((ICVRGE.EQ.1).OR.(ITERNS.EQ.NTERUP)) THEN INSLST = 1 ENDIF C C Si ISTMPF(IPHAS).EQ.0 (explicite) on traite le flux de masse C uniquement a la derniere iteration C (ce faisant, a partir de la deuxieme sous-iteration, C le calcul sera fait avec F(n+1) et plus F(n), mais on C suppose que l'utilisateur a choisi de faire des sous-iter C aussi pour impliciter le flux de masse) C Sinon on traite le flux de masse a toutes les iterations C C On teste le flux de masse de la phase 1 (toutes les phases sont C necessairement traitees de la meme facon, cf. VERINI) IF( (ISTMPF(1).EQ.0.AND.INSLST.EQ.1).OR. & (ISTMPF(1).NE.0 ) ) THEN IAPPEL = 3 CALL SCHTMP C =========== & ( IDBIA1 , IDBRA1 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , IAPPEL , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , ISOSTD , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , RTP , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RDEVEL , RTUSER , & RA ) ENDIF C IF(INSLST.EQ.1) GOTO 100 C ENDDO C ENDIF C 100 CONTINUE C C======================================================================= C 14. DEPLACEMENT DES STRUCTURES EN ALE ET TEST DE BOUCLAGE IMPLICITE C======================================================================= C IF (ITRALE.GT.NALINF .AND. NBSTRU.GT.0) THEN C CALL STRDEP C =========== & ( IDBIA1 , IDBRA1 , ITALIM , ITRFIN , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , NVAR , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & RA(IFLALF) , RA(IFLALB) , & RDEVEL , RTUSER , & RA ) C C On boucle eventuellement sur de deplacement des structures IF (ITRFIN.NE.-1) THEN ITALIM = ITALIM + 1 GOTO 300 ENDIF C ENDIF C C --- On libere les tableaux IFLALF et IFLALB C C======================================================================= C 15. RESOLUTION TURBULENCE C======================================================================= C IOK = 0 IF(IWARNI(IU(1)).GE.1) THEN DO IPHAS = 1, NPHAS IF( ITYTUR(IPHAS).EQ.2 .OR. ITYTUR(IPHAS).EQ.3 & .OR. ITURB(IPHAS).EQ.50 .OR. ITURB(IPHAS).EQ.60 ) THEN IOK = 1 ENDIF ENDDO IF(IOK.EQ.1) THEN WRITE(NFECRA,1050) ENDIF ENDIF C DO IPHAS = 1, NPHAS C C Si on est en v2f, on reserve un tableau de taille NCELET pour C eviter de recalculer la production dans RESV2F (trois appels C a GRDCEL) IDBIA1 = IDEBIA IDBRA1 = IDEBRA IPRV2F = IDEBRA IF (ITURB(IPHAS).EQ.50) THEN IDBRA1 = IPRV2F + NCELET c Pas la peine de tester les depassements de tableaux puisqu'on c passe juste apres dans MEMKEP ENDIF C IF( (ITYTUR(IPHAS).EQ.2) .OR. (ITURB(IPHAS).EQ.50) ) THEN C IKIPH = IK (IPHAS) C CALL MEMKEP C =========== & ( IDBIA1 , IDBRA1 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IDTR , IVISCF , IVISCB , IDAM , IXAM , IDAG , IXAG , & IDRTP , ISMBR , IROVSD , ITINSK , ITINSE , IDIVU , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , & IFINIA , IFINRA ) C IF(CDTVAR(IKIPH).NE.1.D0) THEN DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL)*CDTVAR(IKIPH) ENDDO ELSE DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL) ENDDO ENDIF C CALL TURBKE C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , NCETSM(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , IPHAS , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)) , IA(IICESM(IPHAS)) , IA(IITPSM(IPHAS)) , & IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & RA(IDTR) , RTP , RTPA , PROPCE , PROPFA , PROPFB , & TSLAGR , & COEFA , COEFB , RA(ICKUPD(IPHAS)) , RA(ISMACE(IPHAS)) , & RA(IVISCF) , RA(IVISCB) , RA(IPRV2F), & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , RA(ITINSK) , RA(ITINSE), & RA(IDIVU ) , RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , RA(IW4 ), & RA(IW5 ) , RA(IW6 ) , RA(IW7 ) , RA(IW8 ) , RA(IW9 ), & RDEVEL , RTUSER , RA ) C IF( ITURB(IPHAS).EQ.50 ) THEN C IPHIPH = IPHI(IPHAS) C CALL MEMV2F C =========== & ( IDBIA1 , IDBRA1 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IDTR , IVISCF , IVISCB , IDAM , IXAM , IDAG , IXAG , & IDRTP , ISMBR , IROVSD , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , IW10 , & IFINIA , IFINRA ) C IF(CDTVAR(IPHIPH).NE.1.D0) THEN DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL)*CDTVAR(IPHIPH) ENDDO ELSE DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL) ENDDO ENDIF C CALL RESV2F C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , NCETSM(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , IPHAS , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)) , IA(IICESM(IPHAS)) , IA(IITPSM(IPHAS)) , & IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & RA(IDTR) , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , RA(ICKUPD(IPHAS)) , RA(ISMACE(IPHAS)) , & RA(IVISCF) , RA(IVISCB) , RA(IPRV2F), & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , RA(IW4 ), & RA(IW5 ) , RA(IW6 ) , RA(IW7 ) , RA(IW8 ) , RA(IW9 ), & RA(IW10 ) , RDEVEL , RTUSER , RA ) C ENDIF C C RELAXATION DE K ET EPSILON SI IKECOU=0 IF (IKECOU(IPHAS).EQ.0) THEN DO IEL = 1,NCEL RTP(IEL,IK(IPHAS)) = & RELAXK(IPHAS)*RTP(IEL,IK(IPHAS)) + & (1.D0-RELAXK(IPHAS))*RTPA(IEL,IK(IPHAS)) RTP(IEL,IEP(IPHAS)) = & RELAXK(IPHAS)*RTP(IEL,IEP(IPHAS)) + & (1.D0-RELAXK(IPHAS))*RTPA(IEL,IEP(IPHAS)) ENDDO ENDIF C ELSE IF(ITYTUR(IPHAS).EQ.3) THEN C IR11IP = IR11(IPHAS) C CALL MEMRIJ C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , ITURB(IPHAS) , & IIFACL , IIRESP , & IDTR , IVISCF , IVISCB , ICOEFX , & IDAM , IXAM , IDAG , IXAG , IDRTP , & ISMBR , IROVSD , IGRDVT , IPRODU , IGRARX , IGRARY , IGRARZ , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , & IFINIA , IFINRA ) C IF(CDTVAR(IR11IP).NE.1.D0) THEN DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL)*CDTVAR(IR11IP) ENDDO ELSE DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL) ENDDO ENDIF C CALL TURRIJ C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , NCETSM(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , IPHAS , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)) , IA(IICESM(IPHAS)) , IA(IITPSM(IPHAS)) , & IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & RA(IDTR) , RTP , RTPA , PROPCE , PROPFA , PROPFB , & TSLAGR , & COEFA , COEFB , RA(ICKUPD(IPHAS)) , RA(ISMACE(IPHAS)) , & RA(IVISCF) , RA(IVISCB) , RA(ICOEFX), & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , RA(IGRDVT) , & RA(IPRODU) , RA(IGRARX) , RA(IGRARY) , RA(IGRARZ) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , RA(IW4 ) , & RA(IW5 ) , RA(IW6 ) , RA(IW7 ) , RA(IW8 ) , RA(IW9 ), & RDEVEL , RTUSER , RA ) C ELSE IF( ITURB(IPHAS).EQ.60 ) THEN C IKIPH = IK (IPHAS) C CALL MEMKOM C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IDTR , IVISCF , IVISCB , IDAM , IXAM , IDAG , IXAG , & IDRTP , ISMBR , IROVSD , ITINSK , ITINSE , IDIVU , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , & IFINIA , IFINRA ) C IF(CDTVAR(IKIPH).NE.1.D0) THEN DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL)*CDTVAR(IKIPH) ENDDO ELSE DO IEL = 1, NCEL RA(IDTR-1+IEL) = DT(IEL) ENDDO ENDIF C CALL TURBKW C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NCEPDC(IPHAS) , NCKPDC(IPHAS) , NCETSM(IPHAS) , & NIDEVE , NRDEVE , NITUSE , NRTUSE , IPHAS , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IICEPD(IPHAS)) , IA(IICESM(IPHAS)) , IA(IITPSM(IPHAS)) , & IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & RA(IDTR) , RTP , RTPA , PROPCE , PROPFA , PROPFB , & TSLAGR , & COEFA , COEFB , RA(ICKUPD(IPHAS)) , RA(ISMACE(IPHAS)) , & RA(IS2KW(IPHAS)), RA(IDVUKW(IPHAS)), & RA(IVISCF) , RA(IVISCB) , & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , RA(ITINSK) , RA(ITINSE), & RA(IDIVU ) , RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , RA(IW4 ), & RA(IW5 ) , RA(IW6 ) , RA(IW7 ) , RA(IW8 ) , RA(IW9 ), & RDEVEL , RTUSER , RA ) C C RELAXATION DE K ET OMEGA SI IKECOU=0 IF (IKECOU(IPHAS).EQ.0) THEN DO IEL = 1,NCEL RTP(IEL,IK(IPHAS)) = & RELAXK(IPHAS)*RTP(IEL,IK(IPHAS)) + & (1.D0-RELAXK(IPHAS))*RTPA(IEL,IK(IPHAS)) RTP(IEL,IOMG(IPHAS)) = & RELAXK(IPHAS)*RTP(IEL,IOMG(IPHAS)) + & (1.D0-RELAXK(IPHAS))*RTPA(IEL,IOMG(IPHAS)) ENDDO ENDIF ENDIF C ENDDO C C C FIN DU TEST SUR ICCVFG : CI DESSOUS C ======================== C ENDIF C C C Ici on peut liberer les eventuels tableaux SKW et DIVUKW C C======================================================================= C 16. RESOLUTION DES SCALAIRES C======================================================================= C C IF (NSCAL.GE.1 .AND. IIRAYO.GT.0) THEN C IF(IWARNI(IU(1)).GE.1 .AND. MOD(NTCABS,NFREQR).EQ.0) THEN WRITE(NFECRA,1070) ENDIF C CALL MEMRA2 C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IDTR , IVISCF , IVISCB , IDAM , IXAM , IDAG , IXAG , & IDRTP , ISMBR , IROVSD , C & ICORUA , ICORUB , IFLXMA , IFLXMB , ITEK , C & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , IW10 , & IFINIA , IFINRA ) C C CALL RAYDOM C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , IA(IITYPF) , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IIFACL) , IA(IIRESP) , IA(IIZFRD) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , C & RA(ICORUA) , RA(ICORUB) , & RA(IFLXMA) , RA(IFLXMB) , C & RA(IDTR) , RA(IVISCF) , RA(IVISCB) , & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , RA(IW4 ) , RA(IW5 ), & RA(IW6 ) , RA(IW7 ) , RA(IW8 ) , RA(IW9 ) , & RA(IW10 ) , & RDEVEL , RTUSER , C & RA(ITSRE) , RA(ITSRI) , RA(IQX) , RA(IQY) , RA(IQZ) , & RA(IABS) , RA(IEMI) , RA(ICAK) , RA(ITEK) , & RA(ITPARO) , RA(IQINCI) , RA(IXLAM) , RA(IEPA) , RA(IEPS) , & RA(IFNET) , RA(IFCONV) , RA(IHCONV) , C & RA ) C ENDIF C C IF (NSCAL.GE.1) THEN C IF(IWARNI(IU(1)).GE.1) THEN WRITE(NFECRA,1060) ENDIF C CALL MEMSCA C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IIFACL , IIRESP , & IDTR , IVISCF , IVISCB , IDAM , IXAM , IDAG , IXAG , & IDRTP , ISMBR , IROVSD , & IW1 , IW2 , IW3 , IW4 , IW5 , IW6 , IW7 , & IW8 , IW9 , & IFINIA , IFINRA ) C CALL SCALAI C =========== & ( IFINIA , IFINRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , & IA(IIFACL) , IA(IIRESP) , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTP , RTPA , PROPCE , PROPFA , PROPFB , & TSLAGR , COEFA , COEFB , & RA(IDTR) , RA(IVISCF) , RA(IVISCB) , & RA(IDAM ) , RA(IXAM ) , RA(IDAG ) , RA(IXAG ) , & RA(IDRTP ) , RA(ISMBR ) , RA(IROVSD) , & RA(IW1 ) , RA(IW2 ) , RA(IW3 ) , RA(IW4 ) , RA(IW5 ), & RA(IW6 ) , RA(IW7 ) , RA(IW8 ) , RA(IW9 ) , & RDEVEL , RTUSER , & RA ) C ENDIF C C======================================================================= C 17. TRAITEMENT DU FLUX DE MASSE, DE LA VISCOSITE, C DE LA MASSE VOLUMIQUE ET DE LA CHALEUR SPECIFIQUE POUR C UN THETA SCHEMA C======================================================================= C C IAPPEL = 4 CALL SCHTMP C =========== & ( IDEBIA , IDEBRA , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , IAPPEL , & NIDEVE , NRDEVE , NITUSE , NRTUSE , & IFACEL , IFABOR , IFMFBR , IFMCEL , IPRFML , & IPNFAC , NODFAC , IPNFBR , NODFBR , ISOSTD , & IDEVEL , ITUSER , IA , & XYZCEN , SURFAC , SURFBO , CDGFAC , CDGFBO , XYZNOD , VOLUME , & DT , RTPA , RTP , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , & RDEVEL , RTUSER , & RA ) C C======================================================================= C 18. SORTIE DANS LE CAS DE "zero pas de temps" C======================================================================= C 200 CONTINUE C C C======================================================================= C C-------- C FORMATS C-------- C 1000 FORMAT(/, &' ------------------------------------------------------------',/, & /,/, &' INITIALISATIONS ',/, &' =============== ',/) 1010 FORMAT(/, &' ------------------------------------------------------------',/, & /,/, &' CALCUL DES GRANDEURS PHYSIQUES ',/, &' ============================== ',/) 1020 FORMAT(/, &' ------------------------------------------------------------',/, & /,/, &' CALCUL DU CFL, DU FOURIER ET DU DT VARIABLE ',/, &' =========================================== ',/) 1030 FORMAT(/, &' ------------------------------------------------------------',/, & /,/, &' MISE EN PLACE DES CONDITIONS AUX LIMITES ',/, &' ======================================== ',/) 1040 FORMAT(/, &' ------------------------------------------------------------',/, & /,/, &' RESOLUTION DES EQUATIONS DE NAVIER-STOKES ',/, &' ========================================= ',/) 1050 FORMAT(/, &' ------------------------------------------------------------',/, & /,/, &' RESOLUTION DES EQUATIONS DES VARIABLES TURBULENTES ',/, &' ================================================== ',/) 1060 FORMAT(/, &' ------------------------------------------------------------',/, & /,/, &' RESOLUTION DES EQUATIONS SUR L''ENERGIE ET LES SCALAIRES ',/, &' ======================================================== ',/) 1070 FORMAT(/, & '------------------------------------------------------------',/, & /,/, & ' RESOLUTION DES TRANSFERTS THERMIQUES RADIATIFS ',/, &' ============================================== ',/) 1080 FORMAT(/, & '------------------------------------------------------------',/, & /,/, & ' RESOLUTION DE L''EQUATION DE MASSE ',/, &' ================================== ',/) C 4010 FORMAT(/, &' ** TEMPS CPU TOTAL POUR LA DISTANCE A LA PAROI : ',E14.5 ,/, &' ------------------------------------------- ',/) C C---- C FIN C---- C END c@z