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 INIVAR C ***************** C ------------------------------------------------------------- & ( IDBIA0 , IDBRA0 , & NDIM , NCELET , NCEL , NFAC , NFABOR , NFML , NPRFML , & NNOD , LNDFAC , LNDFBR , NCELBR , & NVAR , NSCAL , NPHAS , NCOFAB , & 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 , PROPCE , PROPFA , PROPFB , & COEFA , COEFB , FRCXT , & RDEVEL , RTUSER , RA ) C ------------------------------------------------------------- C*********************************************************************** C FONCTION : C -------- c@foncb CFONC CFONC INITIALISATION DES VARIABLES DE CALCUL, DU PAS DE TEMPS CFONC ET DU TABLEAU INDICATEUR DU CALCUL DE LA DISTANCE A LA PAROI CFONC PAR L'UTILISATEUR (apres relecture eventuelle d'un fichier suite) c@fonce C----------------------------------------------------------------------- c@argub CARGU ARGUMENTS 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 ! 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 ! NCOFAB ! E ! -> ! NOMBRE DE COUPLES COEFA/B POUR LES CL! 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 ! (LNDFAC) ! ! ! FACE INTERNE DANS NODFAC (OPTIONNEL)! CARGU ! NODFAC ! TE ! -> ! CONNECTIVITE FACES INTERNES/NOEUDS ! CARGU ! (NFAC+1) ! ! ! (OPTIONNEL) ! CARGU ! IPNFBR ! TE ! -> ! POSITION DU PREMIER NOEUD DE CHAQUE ! CARGU ! (LNDFBR) ! ! ! FACE DE BORD DANS NODFBR (OPTIONNEL)! CARGU ! NODFBR ! TE ! -> ! CONNECTIVITE FACES DE BORD/NOEUDS ! CARGU ! (NFABOR+1) ! ! ! (OPTIONNEL) ! 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 ! <-> ! VALEUR DU PAS DE TEMPS ! CARGU ! RTP ! TR ! <-> ! VARIABLES DE CALCUL AU CENTRE DES ! CARGU ! (NCELET,*) ! ! ! CELLULES ! 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 ! 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 IMPLICIT NONE C C*********************************************************************** C DONNEES EN COMMON C*********************************************************************** C INCLUDE "paramx.h" INCLUDE "numvar.h" INCLUDE "optcal.h" INCLUDE "cstphy.h" INCLUDE "cstnum.h" INCLUDE "pointe.h" INCLUDE "entsor.h" INCLUDE "period.h" INCLUDE "parall.h" INCLUDE "ihmpre.h" INCLUDE "ppppar.h" INCLUDE "ppthch.h" INCLUDE "ppincl.h" C C*********************************************************************** C C ARGUMENTS C INTEGER IDBIA0 , IDBRA0 INTEGER NDIM , NCELET , NCEL , NFAC , NFABOR INTEGER NFML , NPRFML INTEGER NNOD , LNDFAC , LNDFBR , NCELBR INTEGER NVAR , NSCAL , NPHAS , NCOFAB 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 IDEVEL(NIDEVE), ITUSER(NITUSE), 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,*), PROPCE(NCELET,*) DOUBLE PRECISION PROPFA(NFAC,*), PROPFB(NFABOR,*) DOUBLE PRECISION COEFA(NFABOR,NCOFAB), COEFB(NFABOR,NCOFAB) DOUBLE PRECISION FRCXT(NCELET,3,NPHAS) DOUBLE PRECISION RDEVEL(NRDEVE), RTUSER(NRTUSE), RA(*) C C VARIABLES LOCALES C CHARACTER*80 CHAINE INTEGER IDEBIA, IDEBRA INTEGER IVAR , IPHAS , ISCAL , IPHASS, IMOM INTEGER IEL INTEGER ICLIP , IPP , IOK , II INTEGER IKIPH , IEIPH , IR11IP, IR22IP, IR33IP, IPHIPH INTEGER IOMGIP, IDTCM , IPCMOM, IIPTOT, IPRIPH INTEGER IBORMO(NBMOMX) DOUBLE PRECISION VALMAX, VALMIN, VFMIN , VFMAX DOUBLE PRECISION VDTMAX, VDTMIN DOUBLE PRECISION XEKMIN, XEPMIN, XOMGMN, XPHMIN, XPHMAX DOUBLE PRECISION X11MIN, X22MIN, X33MIN, VALMOM DOUBLE PRECISION VMOMAX(NBMOMX), VMOMIN(NBMOMX) DOUBLE PRECISION RO0IPH, P0IPH, PR0IPH, XXP0, XYP0, XZP0 C C*********************************************************************** C C======================================================================= C 1. INITIALISATION C======================================================================= C IDEBIA = IDBIA0 IDEBRA = IDBRA0 C IOK = 0 C C======================================================================= C 2. ON REPASSE LA MAIN A L'UTILISATEUR POUR LA PROGRAMMATION DES C INITIALISATIONS QUI LUI SONT PROPRES C======================================================================= C C Indicateur d'initialisation des scalaires par l'utilisateur C (mis a 1 si passage dans USINIV ou PPINIV ou dans l'IHM ; a 0 sinon) C IUSINI = 1 C #if defined(_CS_HAVE_XML) C C - Interface Code_Saturne C ====================== C IF (ISUITE.EQ.0 .AND. IIHMPR.EQ.1) THEN C CALL UIINIV C =========== & ( NSCAPP, NCELET, NCEL, NFML, NPRFML, & ISCA, IFMCEL , IPRFML ,RTP ) C ENDIF C C #endif C C - Sous-programme utilisateur C ========================== C CALL USINIV C =========== & ( IDEBIA , IDEBRA , & 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 , PROPCE , PROPFA , PROPFB , COEFA , COEFB , & RDEVEL , RTUSER , RA ) C C Avec l'interface, il peut y avoir eu initialisation, C meme si usiniv n'est pas utilise. IF (ISUITE.EQ.0.AND.IIHMPR.EQ.1) THEN IUSINI = 1 ENDIF C C C ON FAIT DE LA PHYSIQUE PARTICULIERE C On pourrait remonter la partie init non utilisateur de ppiniv avant lecamo C dans iniva0, mais il faudrait quand meme conserver ici l'appel a C ppiniv car il encapsule les appels aux ss pgm utilisateur similaires a C usiniv. IF(NSCAPP.GT.0) THEN C IUSINI = 1 C CALL PPINIV C =========== & ( IDEBIA , IDEBRA , & 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 , PROPCE , PROPFA , PROPFB , COEFA , COEFB , & RDEVEL , RTUSER , RA ) ENDIF C C Si l'utilisateur a change Ptot, on change P* en consequence, C sinon on met Ptot a P0 + rho.g.r C A priori l'utilisateur remplira les NCEL valeurs ou rien du C tout, mais on ne sait jamais ... C En compressible, Ptot n'est pas defini (correspond directement a RTP(.,IPR) C IF (IPPMOD(ICOMPF).LT.0) THEN DO IPHAS = 1, NPHAS IPRIPH = IPR(IPHAS) 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 IF (PROPCE(IEL,IIPTOT).GT.-0.5D0*RINFIN) THEN RTP(IEL,IPRIPH) = PROPCE(IEL,IIPTOT) & - RO0IPH*( GX*(XYZCEN(1,IEL)-XXP0) & + GY*(XYZCEN(2,IEL)-XYP0) & + GZ*(XYZCEN(3,IEL)-XZP0) ) & + PR0IPH - P0IPH ELSE PROPCE(IEL,IIPTOT) = RTP(IEL,IPRIPH) & + RO0IPH*( GX*(XYZCEN(1,IEL)-XXP0) & + GY*(XYZCEN(2,IEL)-XYP0) & + GZ*(XYZCEN(3,IEL)-XZP0) ) & + P0IPH - PR0IPH ENDIF ENDDO ENDDO ENDIF C C C C======================================================================= C 3. CLIPPING DES GRANDEURS TURBULENTES (UTILISATEUR OU SUITE) C (pour ITYTUR=2, 3, 5 ou 6) C Si l'utilisateur est intervenu dans USINIV, PPINIV ou via l'interface C et a impose des valeurs "correctes" (au sens k, eps, Rii > 0) C on considere qu'il s'agit d'une initialisation admissible, C on la clippe pour la rendre coherente avec le clipping du code C et on continue le calcul C Si l'utilisateur est intervenu dans USINIV, PPINIV ou via l'interface C et a impose des valeurs visiblement erronees C (k, eps ou Rii < 0), on s'arrete (il s'est sans doute trompe). C On adopte le meme traitement en suite de calcul C pour assurer un comportement identique en suite entre un calcul C ou l'utilisateur modifie une variable avec usiniv (mais pas la C turbulence) et un calcul ou l'utilisateur ne modifie pas usiniv. C S'il n'y a ni suite ni intervention dans USINIV ou PPINIV ou via l'interface, C les grandeurs ont deja ete clippees par defaut, sauf si UREF n'a pas C (ou a mal) ete initialise. Dans ce cas on avertit aussi l'utilisateur et on C stoppe le calcul. C C Pour resumer : C -en suite avec des valeurs positives pour k, eps, Rii : on clippe C -avec usiniv ou ppiniv ou interface C avec des valeurs positives pour k, eps, Rii : on clippe C -non suite sans usiniv ni ppiniv ni interface avec UREF positif : C grandeurs par defaut (deja clippees) C -non suite sans usiniv ni ppiniv ni interface avec UREF negatif : stop C -suite ou usiniv ou ppiniv ou interface C avec une valeur negative de k, eps ou Rii : stop C avec une valeur hors de [0;2] pour phi : stop C (on souhaite indiquer a l'utilisateur que son fichier suite est C bizarre ou que son initialisation est fausse et qu'il a donc C fait au moins une erreur qui peut en cacher d'autres) C======================================================================= C IF(IUSINI.EQ.1.OR.ISUITE.EQ.1) THEN C DO IPHAS = 1, NPHAS IF(ITYTUR(IPHAS).EQ.2 .OR. ITURB(IPHAS).EQ.50) THEN C IKIPH = IK (IPHAS) IEIPH = IEP(IPHAS) C XEKMIN = RTP(1,IKIPH) XEPMIN = RTP(1,IEIPH) DO IEL = 1, NCEL XEKMIN = MIN(XEKMIN,RTP(IEL,IKIPH) ) XEPMIN = MIN(XEPMIN,RTP(IEL,IEIPH)) ENDDO IF (IRANGP.GE.0) THEN CALL PARMIN (XEKMIN) C =========== CALL PARMIN (XEPMIN) C =========== ENDIF C IF(XEKMIN.GE.0.D0.AND.XEPMIN.GE.0.D0) THEN ICLIP = 1 IPHASS = IPHAS CALL CLIPKE( NCELET , NCEL , NVAR , NPHAS , C =========== & IPHASS , ICLIP , IWARNI(IKIPH) , & PROPCE , RTP ) ELSE WRITE(NFECRA,3020) IPHAS,XEKMIN,XEPMIN IOK = IOK + 1 ENDIF C C En v2-f, on verifie aussi que phi est compris entre 0 et 2 IF (ITURB(IPHAS).EQ.50) THEN IPHIPH = IPHI(IPHAS) C XPHMIN = RTP(1,IPHIPH) XPHMAX = RTP(1,IPHIPH) DO IEL = 1, NCEL XPHMIN = MIN(XPHMIN,RTP(IEL,IPHIPH) ) XPHMAX = MAX(XPHMAX,RTP(IEL,IPHIPH) ) ENDDO IF (IRANGP.GE.0) THEN CALL PARMIN (XPHMIN) C =========== CALL PARMAX (XPHMAX) C =========== ENDIF C C Par coherence avec clpv2f, on ne clippe qu'a zero et pas a 2 C IF(XPHMIN.LT.0.D0 .OR. XPHMAX.GT.2.D0) THEN IF(XPHMIN.LT.0.D0) THEN WRITE(NFECRA,3021) IPHAS,XPHMIN,XPHMAX IOK = IOK + 1 ENDIF C ENDIF C ELSEIF(ITYTUR(IPHAS).EQ.3) THEN C IR11IP = IR11(IPHAS) IR22IP = IR22(IPHAS) IR33IP = IR33(IPHAS) IEIPH = IEP (IPHAS) C X11MIN = RTP(1,IR11IP) X22MIN = RTP(1,IR22IP) X33MIN = RTP(1,IR33IP) XEPMIN = RTP(1,IEIPH) DO IEL = 1, NCEL X11MIN = MIN(X11MIN,RTP(IEL,IR11IP)) X22MIN = MIN(X22MIN,RTP(IEL,IR22IP)) X33MIN = MIN(X33MIN,RTP(IEL,IR33IP)) XEPMIN = MIN(XEPMIN,RTP(IEL,IEIPH) ) ENDDO IF (IRANGP.GE.0) THEN CALL PARMIN (X11MIN) C =========== CALL PARMIN (X22MIN) C =========== CALL PARMIN (X33MIN) C =========== CALL PARMIN (XEPMIN) C =========== ENDIF IF (X11MIN.GE.0.D0.AND.X22MIN.GE.0.D0.AND. & X33MIN.GE.0.D0.AND.XEPMIN.GE.0.D0 ) THEN ICLIP = 1 IPHASS = IPHAS CALL CLPRIJ( NCELET , NCEL , NVAR , NPHAS , C =========== & IPHASS , ICLIP , & PROPCE , RTP , RTP ) ELSE WRITE(NFECRA,3030) IPHAS,X11MIN,X22MIN,X33MIN,XEPMIN IOK = IOK + 1 ENDIF C ELSEIF(ITURB(IPHAS).EQ.60) THEN C IKIPH = IK (IPHAS) IOMGIP = IOMG(IPHAS) C XEKMIN = RTP(1,IKIPH ) XOMGMN = RTP(1,IOMGIP) DO IEL = 1, NCEL XEKMIN = MIN(XEKMIN,RTP(IEL,IKIPH )) XOMGMN = MIN(XOMGMN,RTP(IEL,IOMGIP)) ENDDO IF (IRANGP.GE.0) THEN CALL PARMIN (XEKMIN) C =========== CALL PARMIN (XOMGMN) C =========== ENDIF C C En k-omega on clippe seulement a 0 IF(XEKMIN.LT.0.D0 .OR. XOMGMN.LT.0.D0) THEN WRITE(NFECRA,3031) IPHAS,XEKMIN,XOMGMN IOK = IOK + 1 ENDIF C ENDIF ENDDO C ELSE C DO IPHAS = 1, NPHAS IF (ITURB(IPHAS).NE.0 .AND. ITURB(IPHAS).NE.10 & .AND. ITYTUR(IPHAS).NE.4) THEN IF (UREF(IPHAS).LT.0.D0) THEN WRITE(NFECRA,3032) IPHAS,UREF(IPHAS) IOK = IOK + 1 ENDIF ENDIF ENDDO C ENDIF C C======================================================================= C 4. CLIPPING DES SCALAIRES (UTILISATEUR OU SUITE) C Si l'utilisateur est intervenu dans USINIV ou PPINIV et C a impose des valeurs "correctes" (au sens comprises dans des bornes C simplifiees a base de 0, scamin, scamax) C on considere qu'il s'agit d'une initialisation admissible, C on la clippe pour la rendre coherente avec le clipping du code C et on continue le calcul C si l'utilisateur a impose des valeurs visiblement erronees C (au sens comprises dans des bornes simplifiees a base de 0, scamin, C scamax), on s'arrete (il s'est sans doute trompe). C On adopte le meme traitement en suite de calcul C pour assurer un comportement identique en suite entre un calcul C ou l'utilisateur modifie une variable avec usiniv (mais pas un C scalaire) et un calcul ou l'utilisateur ne modifie pas usiniv. C Sinon, les grandeurs ont deja ete clippees apres les init par defaut C C Pour resumer : C -en suite avec des valeurs grossierement admissibles : on clippe C -avec usiniv ou ppiniv C avec des valeurs grossierement admissibles : on clippe C -non suite sans usiniv ni ppiniv : C grandeurs par defaut (deja clippees) C -suite ou usiniv ou ppiniv C avec une valeur grossierement non admissible : stop C (on souhaite indiquer a l'utilisateur que son fichier suite est C bizarre ou que son initialisation est fausse et qu'il a donc C fait au moins une erreur qui peut en cacher d'autres) C======================================================================= C C On traite tous les scalaires d'abord, car ils peuvent etre necessaires C pour clipper les variances C IF(NSCAL.GT.0.AND.(IUSINI.EQ.1.OR.ISUITE.EQ.1)) THEN C C Scalaires non variance C DO II = 1, NSCAL IF(ISCAVR(II).LE.0.OR.ISCAVR(II).GT.NSCAL) THEN C IF(SCAMIN(II).LE.SCAMAX(II)) THEN IVAR = ISCA(II) VALMAX = RTP(1 ,IVAR) VALMIN = RTP(1 ,IVAR) DO IEL = 1, NCEL VALMAX = MAX(VALMAX,RTP(IEL,IVAR)) VALMIN = MIN(VALMIN,RTP(IEL,IVAR)) ENDDO IF (IRANGP.GE.0) THEN CALL PARMAX (VALMAX) C =========== CALL PARMIN (VALMIN) C =========== ENDIF C C Verification de la coherence pour les clippings C des scalaires non variance. IF(VALMIN.GE.SCAMIN(II).AND.VALMAX.LE.SCAMAX(II)) THEN ISCAL = II CALL CLPSCA C =========== & ( NCELET , NCEL , NVAR , NSCAL , ISCAL , & PROPCE , RA , RTP ) ELSE CHAINE = NOMVAR(IPPRTP(ISCA(II))) WRITE(NFECRA,3040) II,CHAINE(1:8), & VALMIN,SCAMIN(II),VALMAX,SCAMAX(II) IOK = IOK + 1 ENDIF ENDIF C ENDIF ENDDO C C C Variances C DO II = 1, NSCAL IF(ISCAVR(II).GT.0.AND.ISCAVR(II).LE.NSCAL) THEN C IF(SCAMIN(II).LE.SCAMAX(II)) THEN IVAR = ISCA(II) VALMAX = RTP(1 ,IVAR) VALMIN = RTP(1 ,IVAR) DO IEL = 1, NCEL VALMAX = MAX(VALMAX,RTP(IEL,IVAR)) VALMIN = MIN(VALMIN,RTP(IEL,IVAR)) ENDDO IF (IRANGP.GE.0) THEN CALL PARMAX (VALMAX) C =========== CALL PARMIN (VALMIN) C =========== ENDIF C C Verification de la coherence pour les clippings de variance. C Pour iclvfl = 1 on ne verifie que > 0 sinon ca va devenir difficile C de faire une initialisation correcte. C IF(ICLVFL(II).EQ.0) THEN C On pourrait clipper dans le cas ou VALMIN.GE.0, mais ca C n'apporterait rien, par definition IF(VALMIN.LT.0.D0) THEN CHAINE = NOMVAR(IPPRTP(ISCA(II))) WRITE(NFECRA,3050)II,CHAINE(1:8), & VALMIN,SCAMIN(II),VALMAX,SCAMAX(II) IOK = IOK + 1 ENDIF ELSEIF(ICLVFL(II).EQ.1) THEN C Ici on clippe pour etre coherent avec la valeur du scalaire IF(VALMIN.GE.0.D0) THEN ISCAL = II CALL CLPSCA C =========== & ( NCELET , NCEL , NVAR , NSCAL , ISCAL , & PROPCE , RTP(1,ISCA(ISCAVR(II))) , RTP ) ELSE CHAINE = NOMVAR(IPPRTP(ISCA(II))) WRITE(NFECRA,3050)II,CHAINE(1:8), & VALMIN,SCAMIN(II),VALMAX,SCAMAX(II) IOK = IOK + 1 ENDIF ELSEIF(ICLVFL(II).EQ.2) THEN VFMIN = 0.D0 VFMIN = MAX(SCAMIN(ISCAL),VFMIN) VFMAX = SCAMAX(ISCAL) C On pourrait clipper dans le cas ou VALMIN.GE.VFMIN.AND.VALMAX.LE.VFMAX C mais ca n'apporterait rien, par definition IF(VALMIN.LT.VFMIN.OR.VALMAX.GT.VFMAX) THEN CHAINE = NOMVAR(IPPRTP(ISCA(II))) WRITE(NFECRA,3051)II,CHAINE(1:8), & VALMIN,SCAMIN(II),VALMAX,SCAMAX(II), & II,ICLVFL(II) IOK = IOK + 1 ENDIF ENDIF ENDIF C ENDIF ENDDO C ENDIF C C C======================================================================= C 6. IMPRESSIONS DE CONTROLE POUR LES INCONNUES, LE PAS DE TEMPS C LE CUMUL DES DUREE POUR LES MOYENNES C======================================================================= C WRITE(NFECRA,2000) C C Inconnues de calcul : on affiche les bornes DO IPP = 2, NVPPMX IF(ITRSVR(IPP ).GE.1) THEN IVAR = ITRSVR(IPP ) VALMAX = -GRAND VALMIN = GRAND DO IEL = 1, NCEL VALMAX = MAX(VALMAX,RTP(IEL,IVAR)) VALMIN = MIN(VALMIN,RTP(IEL,IVAR)) ENDDO IF (IRANGP.GE.0) THEN CALL PARMAX (VALMAX) C =========== CALL PARMIN (VALMIN) C =========== ENDIF CHAINE = NOMVAR(IPP ) WRITE(NFECRA,2010)CHAINE(1:8),VALMIN,VALMAX ENDIF ENDDO WRITE(NFECRA,2020) C C Moyennes : on affiche les bornes IF(NBMOMT.GT.0) THEN DO IMOM = 1, NBMOMT IPCMOM = IPPROC(ICMOME(IMOM)) C C Si on ne (re)initialise pas IF(IMOOLD(IMOM).NE.-1) THEN VALMAX = -GRAND VALMIN = GRAND C Si le cumul en temps est variable en espace IF(IDTMOM(IMOM).GT.0) THEN IDTCM = IPPROC(ICDTMO(IDTMOM(IMOM))) DO IEL = 1, NCEL VALMOM = PROPCE(IEL,IPCMOM)/ & MAX(PROPCE(IEL,IDTCM),EPZERO) VALMAX = MAX(VALMAX,VALMOM) VALMIN = MIN(VALMIN,VALMOM) ENDDO C Si le cumul en temps est uniforme ELSE IDTCM =-IDTMOM(IMOM) DO IEL = 1, NCEL VALMOM = PROPCE(IEL,IPCMOM)/ & MAX(DTCMOM(IDTCM),EPZERO) VALMAX = MAX(VALMAX,VALMOM) VALMIN = MIN(VALMIN,VALMOM) ENDDO ENDIF IF (IRANGP.GE.0) THEN CALL PARMAX (VALMAX) C =========== CALL PARMIN (VALMIN) C =========== ENDIF C Si on (re)initialise ELSE VALMAX = 0.D0 VALMIN = 0.D0 ENDIF C CHAINE = NOMVAR(IPPPRO(IPCMOM)) WRITE(NFECRA,2010)CHAINE(1:8),VALMIN,VALMAX C ENDDO WRITE(NFECRA,2020) ENDIF C C Pas de temps : on affiche les bornes C si < 0 on s'arrete VDTMAX = -GRAND VDTMIN = GRAND DO IEL = 1, NCEL VDTMAX = MAX(VDTMAX,DT (IEL)) VDTMIN = MIN(VDTMIN,DT (IEL)) ENDDO IF (IRANGP.GE.0) THEN CALL PARMAX (VDTMAX) C =========== CALL PARMIN (VDTMIN) C =========== ENDIF WRITE(NFECRA,2010)'PasDeTmp',VDTMIN,VDTMAX WRITE(NFECRA,2020) C IF (VDTMIN.LE.ZERO) THEN WRITE(NFECRA,3010) VDTMIN IOK = IOK + 1 ENDIF C C C Cumul du temps associe aux moments : on affiche les bornes C si < 0 on s'arrete C IF(NBMOMT.GT.0) THEN C C Indicateur de calcul des bornes pour les cumuls non uniformes DO IMOM = 1, NBMOMT IF(IDTMOM(IMOM).GT.0) THEN IBORMO(ICDTMO(IDTMOM(IMOM))) = 0 VMOMAX(ICDTMO(IDTMOM(IMOM))) = -GRAND VMOMIN(ICDTMO(IDTMOM(IMOM))) = GRAND ENDIF ENDDO C C Calcul des bornes des cumuls non uniformes DO IMOM = 1, NBMOMT IF(IDTMOM(IMOM).GT.0) THEN IF(IBORMO(ICDTMO(IDTMOM(IMOM))).EQ.0) THEN IDTCM = IPPROC(ICDTMO(IDTMOM(IMOM))) VDTMAX = -GRAND VDTMIN = GRAND DO IEL = 1, NCEL VDTMAX = MAX(VDTMAX,PROPCE(IEL,IDTCM)) VDTMIN = MIN(VDTMIN,PROPCE(IEL,IDTCM)) ENDDO IF (IRANGP.GE.0) THEN CALL PARMAX (VDTMAX) C =========== CALL PARMIN (VDTMIN) C =========== ENDIF VMOMAX(ICDTMO(IDTMOM(IMOM))) = VDTMAX VMOMIN(ICDTMO(IDTMOM(IMOM))) = VDTMIN IBORMO(ICDTMO(IDTMOM(IMOM))) = 1 ENDIF ENDIF ENDDO C C Impression des bornes WRITE(NFECRA,2030) DO IMOM = 1, NBMOMT IF(IDTMOM(IMOM).GT.0) THEN WRITE(NFECRA,2040) IMOM,VMOMIN(ICDTMO(IDTMOM(IMOM))), & VMOMAX(ICDTMO(IDTMOM(IMOM))), & 'Variable' ELSEIF(IDTMOM(IMOM).LT.0) THEN WRITE(NFECRA,2040) IMOM,DTCMOM(-IDTMOM(IMOM)) , & DTCMOM(-IDTMOM(IMOM)) , & 'Uniforme' ENDIF ENDDO WRITE(NFECRA,2050) C C On s'arrete si des cumuls sont negatifs DO IMOM = 1, NBMOMT IF(IDTMOM(IMOM).GT.0) THEN IF(VMOMIN(ICDTMO(IDTMOM(IMOM))).LT.ZERO) THEN WRITE(NFECRA,3011) IMOM,VMOMIN(ICDTMO(IDTMOM(IMOM))) IOK = IOK + 1 ENDIF ELSEIF(IDTMOM(IMOM).LT.0) THEN IF(DTCMOM(-IDTMOM(IMOM)).LT.ZERO) THEN WRITE(NFECRA,3011) IMOM,DTCMOM(-IDTMOM(IMOM)) IOK = IOK + 1 ENDIF ENDIF ENDDO C ENDIF C C======================================================================= C 7. ARRET GENERAL SI PB C======================================================================= C IF (IOK.GT.0) THEN WRITE(NFECRA,3090) IOK CALL CSEXIT (1) ENDIF C WRITE(NFECRA,3000) C C---- C FORMATS C---- C C 2000 FORMAT( &' ',/, &' ----------------------------------------------------------- ',/, &' ',/, &' ',/, &' ** INITIALISATION DES VARIABLES ',/, &' ---------------------------- ',/, &' ',/, &' --------------------------------- ',/, &' Variable Valeur min Valeur max ',/, &' --------------------------------- ' ) 2010 FORMAT( & 2X, A8, E12.4, E12.4 ) 2020 FORMAT( &' --------------------------------- ',/) 2030 FORMAT( &' Duree cumulee : ',/, &' ------------------------------------------------------------',/, &' Moyenne Valeur min Valeur max Uniforme/Variable en espac',/, &' ------------------------------------------------------------' ) 2040 FORMAT( & I10, E12.4, E12.4,1X, A8 ) 2050 FORMAT( &' ------------------------------------------------------------',/) C 3000 FORMAT(/,/, &'-------------------------------------------------------------',/) 3010 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ PAS DE TEMPS NEGATIF OU NUL ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ La valeur minimale du pas de temps DT est ',E14.5 ,/, &'@ Verifier l''initialisation dans usiniv ou le fichier suite',/, &'@ dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3011 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ CUMUL DE DUREE POUR LES MOYENNES NEGATIVE ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ La valeur minimale de la duree cumulee pour la moyenne ',/, &'@ IMOM = ',I10 ,' est ',E14.5 ,/, &'@ ',/, &'@ Verifier l''initialisation dans usiniv ou le fichier suite',/, &'@ dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut reinitialiser la moyenne et le',/, &'@ cumul temporel associe en imposant IMOOLD(IMOM) = -1 ',/, &'@ dans usini1. ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3020 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ TURBULENCE NEGATIVE OU NULLE ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ Phase = ',I4 ,/, &'@ Valeur minimale de k = ',E14.5 ,/, &'@ Valeur minimale de epsilon = ',E14.5 ,/, &'@ ',/, &'@ Verifier l''initialisation (usiniv et/ou interface), ',/, &'@ le fichier suite ou bien la valeur de UREF (usini1 ',/, &'@ et/ou interface). ',/, &'@ Dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ou ',/, &'@ par l''interface). ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3021 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ VARIABLE PHI DU V2F HORS DES BORNES [0;2] ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ Phase = ',I4 ,/, &'@ Valeur minimale de phi = ',E14.5 ,/, &'@ Valeur maximale de phi = ',E14.5 ,/, &'@ ',/, &'@ Verifier l''initialisation (usiniv et/ou interface), ',/, &'@ ou le fichier suite. ',/, &'@ Dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ou ',/, &'@ par l''interface. ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3030 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ TURBULENCE NEGATIVE OU NULLE ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ Phase = ',I4 ,/, &'@ Valeur minimale de R11 = ',E14.5 ,/, &'@ Valeur minimale de R22 = ',E14.5 ,/, &'@ Valeur minimale de R33 = ',E14.5 ,/, &'@ Valeur minimale de epsilon = ',E14.5 ,/, &'@ ',/, &'@ Verifier l''initialisation (usiniv et/ou interface), ',/, &'@ le fichier suite ou bien la valeur de UREF (usini1 ',/, &'@ et/ou interface). ',/, &'@ Dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ou ',/, &'@ par l''interface). ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3031 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ TURBULENCE NEGATIVE OU NULLE ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ Phase = ',I4 ,/, &'@ Valeur minimale de k = ',E14.5 ,/, &'@ Valeur minimale de omega = ',E14.5 ,/, &'@ ',/, &'@ Verifier l''initialisation (usiniv et/ou interface), ',/, &'@ le fichier suite ou bien la valeur de UREF (usini1 ',/, &'@ et/ou interface). ',/, &'@ Dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ou ',/, &'@ par l''interface). ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3032 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ PHASE ',I10 ,/, &'@ LA VITESSE DE REFERENCE UREF N''A PAS ETE INITIALISEE ',/, &'@ OU A ETE MAL INITIALISEE (VALEUR NEGATIVE). ',/, &'@ ELLE VAUT ICI ',E14.5 ,/, &'@ ',/, &'@ La turbulence n''a pas pu etre initialisee ',/, &'@ Corriger la valeur de UREF (usini1 ou interface)ou bien ',/, &'@ initialiser directement la turbulence dans la routine ',/, &'@ (usiniv ou interface). ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3040 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ GRANDEUR SCALAIRE HORS BORNES ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ Scalaire numero ',I10,' : ',A8 ,/, &'@ Valeur minimale = ',E14.5 ,/, &'@ Clipping demande a SCAMIN = ',E14.5 ,/, &'@ Valeur maximale = ',E14.5 ,/, &'@ Clipping demande a SCAMAX = ',E14.5 ,/, &'@ Les valeurs extremes ne sont pas coherentes avec les ',/, &'@ limites SCAMIN et SCAMAX imposees dans usini1. ',/, &'@ ',/, &'@ Verifier l''initialisation dans usiniv ou le fichier suite',/, &'@ dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ',/, &'@ Verifier les valeurs de clipping dans usini1. ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3050 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ VARIANCE NEGATIVE ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ Scalaire numero ',I10,' : ',A8 ,/, &'@ Valeur minimale = ',E14.5 ,/, &'@ Le scalaire indique ci-dessus est une variance (ISCAVR est',/, &'@ postif dans usini1) mais l initialisation imposee ',/, &'@ dans usiniv comporte des valeurs negatives. ',/, &'@ ',/, &'@ Verifier l''initialisation dans usiniv ou le fichier suite',/, &'@ dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ',/, &'@ Verifier la definition des variances dans usini1. ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3051 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ VARIANCE HORS BORNES ',/, &'@ ',/, &'@ Le calcul ne peut etre execute. ',/, &'@ ',/, &'@ Scalaire numero ',I10,' : ',A8 ,/, &'@ Valeur minimale = ',E14.5 ,/, &'@ Clipping demande a SCAMIN = ',E14.5 ,/, &'@ Valeur maximale = ',E14.5 ,/, &'@ Clipping demande a SCAMAX = ',E14.5 ,/, &'@ Le scalaire indique ci-dessus est une variance (ISCAVR est',/, &'@ postif dans usini1) mais l initialisation imposee ',/, &'@ dans usiniv comporte des valeurs situees hors des bornes',/, &'@ SCAMIN, SCAMAX ou inferieures a 0 et le mode de clipping',/, &'@ demande est ICLVFL(',I10,') = ',I10 ,/, &'@ ',/, &'@ Verifier l''initialisation dans usiniv ou le fichier suite',/, &'@ dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ',/, &'@ Verifier la definition des variances et le mode de ',/, &'@ clipping demande dans usini1. ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) 3090 FORMAT( &'@ ',/, &'@ ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''INITIALISATION DES VARIABLES ',/, &'@ ********* ',/, &'@ ',/, &'@ L INITIALISATION DES VARIABLES EST INCOMPLETE OU ',/, &'@ INCOHERENTE AVEC LES VALEURS DES PARAMETRES DE CALCUL ',/, &'@ ',/, &'@ Le calcul ne sera pas execute (',I10,' erreurs). ',/, &'@ ',/, &'@ Se reporter aux impressions precedentes pour plus de ',/, &'@ renseignements. ',/, &'@ Attention a l''initialisation du pas de temps ',/, &'@ de la turbulence ',/, &'@ des scalaires et variances ',/, &'@ des moyennes temporelles ',/, &'@ ',/, &'@ Verifier usiniv ou le fichier suite. ',/, &'@ dans le cas ou les valeurs lues dans le fichier suite ',/, &'@ sont incorrectes, on peut les modifier par usiniv ',/, &'@ Verifier usini1. ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) C C---- C FIN C---- C RETURN END c@z