C
C                 ARTEMIS VERSION 3.0 - MANUEL D'INITIATION
C                           SIMULATION NUMERO 1
C
C
C                          **************
                           PROGRAM PRINCI
C                          **************
C
C-----------------------------------------------------------------------
C
C                       PROGRAMME PRINCIPAL DE
C
C               AAA  RRRR  TTTTT EEEEE M   M IIIII  SSSS
C              A   A R   R   T   E     MM MM   I   S
C              AAAAA RRRR    T   EEEEE M M M   I    SSS
C              A   A R   R   T   E     M   M   I       S
C              A   A R   R   T   EEEEE M   M IIIII SSSS
C
C                          3333        000
C                             33      0   0
C                            33       0   0
C                             33  PP  0   0
C                          3333   PP   000
C
C-----------------------------------------------------------------------
C
C   NOTE:
C
C   PRINCI NE SERT QU'A DIMENSIONNER LES TABLEAUX A ET IA DANS
C   LESQUELS SERONT STOCKES TOUS LES TABLEAUX DE REELS ET D'ENTIERS
C   DU PROGRAMME ARTEMIS.
C   SI NPOIN EST LE NOMBRE DE POINTS DU MAILLAGE,
C   UTILISER LES FORMULES SUIVANTES POUR UNE PREMIERE EXECUTION.
C
C   IDIMA = 180 NPOIN   ,   IDIMIA = 30 NPOIN
C
C   LES VALEURS EXACTES DE IDIMA ET IDIMIA SONT DONNEES DANS LE LISTING
C   APRES UNE EXECUTION.
C
      INTEGER IDIMA,IDIMIA
      PARAMETER ( IDIMA=1080000 , IDIMIA=180000 )
      DOUBLE PRECISION A(IDIMA)
      INTEGER IA(IDIMIA),NPRIV,LU,LNG
      SAVE A,IA
C-----------------------------------------------------------------------
C     NOMBRE DE TABLEAUX PRIVES DISPONIBLES DANS ARTEMI
C
      PARAMETER( NPRIV=0 )
C-----------------------------------------------------------------------
      COMMON/INFO/LNG,LU
C
C     APRES UNE EXECUTION LA DIMENSION EXACTE DE A ET IA EST
C     DONNEE DANS LE DEBUT DU LISTING.
C
C-----------------------------------------------------------------------
C     CANAL DE SORTIE LISTING ET LANGUE
C
      LU = 6
      LNG = 1
C
C
      CALL PREART(A,IDIMA,IA,IDIMIA,NPRIV)
C
      IF(LNG.EQ.1) WRITE(LU,10)
      IF(LNG.EQ.2) WRITE(LU,11)
10    FORMAT(1X,///,1X,'FIN NORMALE DU PROGRAMME',///)
11    FORMAT(1X,///,1X,'CORRECT END OF RUN',///)
C
C-----------------------------------------------------------------------
C
      STOP
      END
C                       ***************
                        SUBROUTINE BORH
C                       ***************
C
     *(RP,TETAP,ALFAP,HB,TETAB,
     * K,C,CG,ZF,X,Y,TRA01,TRA02,TRA03,XSGBOR,YSGBOR,
     * LIHBOR,NBOR,KP1BOR,OMEGA,PER,TETAH,GRAV,NPOIN,NPTFR,
     * KENT,KLOG,KSORT,KINC,PRIVE)
C
C***********************************************************************
C  ARTEMIS    VERSION 2.0    01/03/93    F LEPEINTRE  (LNH) 30 87 78 54
C             VERSION 3.0    01/08/96    D. AELBRECHT (LNH) 30 87 74 12
C***********************************************************************
C
C      FONCTION:    PREND EN COMPTE LES CONDITIONS AUX LIMITES
C                   DE L'UTILISATEUR
C                   ELLES SONT DONNEES PAR SEGMENT.
C
C      CE SOUS-PROGRAMME PEUT ETRE COMPLETE PAR L'UTILISATEUR
C
C-----------------------------------------------------------------------
C                             ARGUMENTS
C .________________.____.______________________________________________.
C |      NOM       |MODE|                   ROLE                       |
C |________________|____|______________________________________________|
C |   RP           |<-- |  COEFFICIENTS DE REFLEXION DES PAROIS        |
C |   TETAP        |<-- |  ANGLE D'ATTAQUE DE LA HOULE SUR LES PAROIS  |
C |                |    |  (COMPTE PAR RAPPORT A LA NORMALE EXTERIEURE |
C |                |    |   DANS LE SENS DIRECT)                       |
C |   ALFAP        |<-- |  DEPHASAGE INDUIT PAR LA PAROI ENTRE L'ONDE  |
C |                |    |  REFLECHIE ET L'ONDE INCIDENTE (SI ALFAP EST |
C |                |    |  POSITIF, L'ONDE REFLECHIE EST EN RETARD)    |
C |   HB           |<-- |  HAUTEUR DE LA HOULE AUX FRONTIERES OUVERTES |
C |   TETAB        |<-- |  ANGLE D'ATTAQUE DE LA HOULE (FRONT. OUV.)   |
C |                |    |  (COMPTE PAR RAPPORT A L'AXE DES X DANS LE   |
C |                |    |   SENS DIRECT)                               |
C |    K           | -->|  NOMBRE D'ONDE                               |
C |    C,CG        | -->|  VITESSES DE PHASE ET DE GROUPE              |
C |    C           | -->|  CELERITE AU TEMPS N                         |
C |    ZF          | -->|  FOND                                        |
C |    X,Y         | -->|  COORDONNEES DES POINTS DU MAILLAGE          |
C |  TRA01,...,3   |<-->|  TABLEAUX DE TRAVAIL                         |
C | XSGBOR,YSGBOR  | -->|  NORMALES EXTERIEURES AUX SEGMENTS DE BORD   |
C |   LIHBOR       | -->|  CONDITIONS AUX LIMITES SUR H                |
C |    NBOR        | -->|  ADRESSES DES POINTS DE BORD                 |
C |   KP1BOR       | -->|  NUMERO DU POINT FRONTIERE SUIVANT           |
C |   OMEGA        | -->|  PULSATION DE LA HOULE                       |
C |   PER          | -->|  PERIODE DE LA HOULE                         |
C |   TETAH        | -->|  ANGLE DE PROPAGATION DE LA HOULE            |
C |   GRAV         | -->|  GRAVITE                                     |
C |   NPOIN        | -->|  NOMBRE DE POINTS DU MAILLAGE.               |
C |   NPTFR        | -->|  NOMBRE DE POINTS FRONTIERE.                 |
C |   KENT,KLOG    | -->|  CONVENTION POUR LES TYPES DE CONDITIONS AUX |
C |   KSORT,KINC   |    |  LIMITES                                     |
C |                |    |  KENT  : ENTREE (VALEUR IMPOSEE)             |
C |                |    |  KLOG  : PAROI                               |
C |                |    |  KSORT : SORTIE                              |
C |                |    |  KINC  : ONDE INCIDENTE                      |
C |   PRIVE        | -->|  TABLEAU DE TRAVAIL (DIMENSION DANS PRINCI)  |
C |________________|____|______________________________________________|
C MODE : -->(DONNEE NON MODIFIEE), <--(RESULTAT), <-->(DONNEE MODIFIEE)
C
C-----------------------------------------------------------------------
C
C APPELE PAR : ARTEMI
C
C***********************************************************************
C
      IMPLICIT NONE
      INTEGER LNG,LU
      COMMON/INFO/LNG,LU
C
      INTEGER NPTFR,NPOIN,KENT,KLOG,KSORT,KINC,I
      INTEGER NBOR(NPTFR),KP1BOR(NPTFR)
      INTEGER LIHBOR(NPTFR)
C
      DOUBLE PRECISION RP(NPTFR),TETAP(NPTFR),ALFAP(NPTFR)
      DOUBLE PRECISION HB(NPTFR),TETAB(NPTFR)
      DOUBLE PRECISION K(NPOIN),ZF(NPOIN),X(NPOIN),Y(NPOIN)
      DOUBLE PRECISION C(NPOIN),CG(NPOIN)
      DOUBLE PRECISION TRA01(NPOIN),TRA02(NPOIN),TRA03(NPOIN)
      DOUBLE PRECISION XSGBOR(NPTFR),YSGBOR(NPTFR)
      DOUBLE PRECISION PRIVE(NPOIN,*)
C
      DOUBLE PRECISION OMEGA,GRAV,PER,TETAH,PI,BID
      PARAMETER( PI = 3.1415926535897932384626433D0)
C
      INTRINSIC COS,SIN
C
C-----------------------------------------------------------------------
C
C CONDITIONS AUX LIMITES
C UN SEGMENT EST SOLIDE SI IL EST DE TYPE KLOG.
C UN SEGMENT EST ONDE INCIDENTE SI IL EST DE TYPE KINC.
C UN SEGMENT EST UNE ENTREE SI IL EST DE TYPE KENT.
C UN SEGMENT EST UNE SORTIE SI IL EST DE TYPE KSORT.
C
C TOUS LES ANGLES SONT EN DEGRES
C                         ------
      CALL OS( 'X=C     ' , TETAB , BID , BID , TETAH , 0 )
      CALL OS( 'X=C     ' , TETAP , BID , BID , 0.D0  , 0 )
C
C EXEMPLE DE CONDITIONS LIMITES  :
C

C
C PAROIS LIQUIDES - FRONTIERE LIBRE
C
C      DO 30 I = 439,450
C         LIHBOR(I) = KSORT
C 30   CONTINUE
C
C
C PAROIS LIQUIDES - FRONTIERE ONDE INCIDENTE
C
C      DO 40 I = 888,890
C         LIHBOR(I) = KINC
C         HB(I) = 0.60
C         TETAB(I) = 0.D0
C 40   CONTINUE
C
C CAS TEST DU MANUEL D'INITIATION

C DEFINITION DES FRONTIERES SOLIDES
C PAROIS SOLIDES
c plage
      DO 12 I = 134,167
         LIHBOR(I) = KLOG
         RP(I) = 0.D0
         TETAP(I) = 0.D0
         ALFAP(I) = 0.D0
 12   CONTINUE
 

C PAROIS LIQUIDES - FRONTIERE LIBRE

c bords du domaine
       DO 40 I = 2,133
         LIHBOR(I) = KLOG
         RP(I) = 1.D0
         TETAP(I) = 0.D0
         ALFAP(I) = 0.D0
40     CONTINUE
       DO 45 I = 168,299
         LIHBOR(I) = KLOG
         RP(I) = 1.D0
         TETAP(I) = 0.D0
         ALFAP(I) = 0.D0
45     CONTINUE
 
 

c PAROIS LIQUIDES - FRONTIERE ONDE INCIDENTE
c large
      DO 50 I = 300,332
         LIHBOR(I) = KINC
         HB(I) = 2.0
         TETAB(I) = 0.D0
 50   CONTINUE
 
c    derniers points non determines
         LIHBOR(1) = KINC
         HB(1) = 2.0
         TETAB(1) = 0.D0
 
C-----------------------------------------------------------------------
C
      RETURN
      END