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