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-2008 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 INITI1
C                       *****************
C     -------------------------------------------------------------
     & ( LONGIB , LONGRB , IDBIA0 , IDBRA0, IVERIF )
C     -------------------------------------------------------------
C***********************************************************************
C  FONCTION  :
C  ---------
c@foncb
CFONC
CFONC  INIT DES COMMONS
CFONC
c@fonce
C-----------------------------------------------------------------------
C                             ARGUMENTS
c@argub
CARGU .______________.____._____.______________________________________.
CARGU !    NOM       !TYPE!MODE !                   ROLE               !
CARGU !______________!____!_____!______________________________________!
CARGU ! LONGIB       ! E  ! <-> ! LONGUEUR DU TABLEAU  DES ENTIERS  IA !
CARGU ! LONGRB       ! E  ! <-> ! LONGUEUR DU TABLEAU  DES REELS    RA !
CARGU ! IDBIA0       ! E  ! <-  ! NUMERO DE LA 1ERE CASE LIBRE DANS IA !
CARGU ! IDBRA0       ! E  ! <-  ! NUMERO DE LA 1ERE CASE LIBRE DANS RA !
CARGU ! IVERIF       ! E  !  -> ! INDICATEUR DES TESTS ELEMENTAIRES    !
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 "memoir.h"
      INCLUDE "cstnum.h"
      INCLUDE "dimens.h"
      INCLUDE "numvar.h"
      INCLUDE "optcal.h"
      INCLUDE "mltgrd.h"
      INCLUDE "cstphy.h"
      INCLUDE "entsor.h"
      INCLUDE "matiss.h"
C
C***********************************************************************
C
C ARGUMENTS
C
      INTEGER          LONGIB, LONGRB, IDBIA0, IDBRA0
      INTEGER          IVERIF
C
C VARIABLES LOCALES
C
      INTEGER          IOK
C
C***********************************************************************
C
C=======================================================================
C 0. LONGIB et LONGRB s'appellent longia et longra dans cs_main
C    On souhaite les faire transiter par COMMON sous le nom de
C      LONGIA et LONGRA et on doit donc les appeler differemment
C      dans les arguments.
C=======================================================================
C
      LONGIA = LONGIB
      LONGRA = LONGRB
C
C=======================================================================
C 1. INITIALISATION DES VARIABLES EN COMMON
C      AVANT INTERVENTION UTILISATEUR.
C      . mots-cles dynamiques
C      . entsor.h
C      . dimens.h
C      . numvar.h
C      . pointe.h
C      . optcal.h
C      . mltgrd.h
C      . cstphy.h
C=======================================================================
C
      CALL INIINI
C     ===========
C
C=======================================================================
C 2. ENTREE DES DONNEES PAR L'UTILISATEUR
C      ET POSITIONNEMENT DES VARIABLES (VARPOS)
C=======================================================================
C
      CALL INIUSI(IVERIF)
C     ===========
C
      CALL PPINI1
C     ===========
C
      CALL RAYOPT
C     ===========
C
      CALL LAGOPT
C     ===========
C
      CALL MTINI1
C     ===========
C
C En mode verification, on change IMRGRA en consequence, avant les
C   impressions dans le listing (on en a besoin dans MODINI pour ANOMAX)
C Si d'autres tests elementaires viennent se greffer, on pourra faire
C   une routine specifique d'initialisation des parametres des tests.
C On met aussi la sortie en ASCII, pour le cas ou on utilise autovalid
        IF (IVERIF.EQ.1) IMRGRA = 0
        IF (IVERIF.EQ.2) IMRGRA = 1
        IF (IVERIF.EQ.3) IMRGRA = 2
        IF (IVERIF.EQ.4) IMRGRA = 3
        IF (IVERIF.EQ.5) IMRGRA = 4
        IF (IVERIF.GT.0) OPTCHR = "text"
C
C=======================================================================
C 3. MODIFS APRES USINI1
C=======================================================================
C
      CALL MODINI
C     ===========
C
C=======================================================================
C 4. VERIFS APRES USINI1
C=======================================================================
C
      IOK = 0
C
      CALL VERINI (IOK)
C     ===========
C
      IF(IOK.GT.0) THEN
        WRITE(NFECRA,9999)IOK
        CALL CSEXIT (1)
      ELSE
        WRITE(NFECRA,9998)
      ENDIF
C
C
 9998 FORMAT(
     &'                                                             ',/,
     &' Pas d erreur detectee lors de la verification des donnees   ',/,
     &'                               (interface, usini1 et autres).',/)
 9999 FORMAT(
     &'@                                                            ',/,
     &'@                                                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES               ',/,
     &'@    *********                                               ',/,
     &'@    LES PARAMETRES DE CALCUL SONT INCOHERENTS OU INCOMPLETS ',/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute (',I10,' erreurs).          ',/,
     &'@                                                            ',/,
     &'@  Se reporter aux impressions precedentes pour plus de      ',/,
     &'@    renseignements.                                         ',/,
     &'@  Verifier les donnees entrees dans l''interface, usini1 ou ',/,
     &'@    les autres sous-programmes d''initialisation.           ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
C
C=======================================================================
C 5. IMPRESSIONS
C=======================================================================
C
       CALL IMPINI
C      ===========
C
       IF (IMATIS.EQ.1) THEN
         CALL MTIMPI
C        ===========
       ENDIF
C
C=======================================================================
C 7. DIMENSIONNEMENT MEMOIRE PAR DEFAUT
C=======================================================================
C
C
      IF (LONGIA .EQ. 0) THEN
         LONGIA =  30 * MAX (NCEL, NFABOR)
      ENDIF
C
      IF (LONGRA .EQ. 0) THEN
         LONGRA = 120 * MAX (NCEL, NFABOR)
      ENDIF
C
      MTOTIA = LONGIA
      MTOTRA = LONGRA
C
      LONGIB = LONGIA
      LONGRB = LONGRA
C
      IDBIA0 = 1
      IDBRA0 = 1
C
      RETURN
      END
c@z
