The TELEMAC-MASCARET system  trunk
ks_gaia.f
Go to the documentation of this file.
1 ! ******************
2  SUBROUTINE ks_gaia
3 ! ******************
4 !
5  &(iks,ks,ksp,ksr,kspratio,houle,grav,xmve,xmvs,vce,
6  & hn,acladm,unorm,uw,tw,npoin)
7 !
8 !***********************************************************************
9 ! GAIA
10 !***********************************************************************
11 !
13 !
14 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 !
33 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34 !
35  USE bief
37  IMPLICIT NONE
38 !
39 !
40 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
41 !
42  INTEGER, INTENT(IN) :: NPOIN,IKS
43  LOGICAL, INTENT(IN) :: HOULE
44  DOUBLE PRECISION, INTENT(IN) :: XMVE,XMVS, VCE,GRAV
45  DOUBLE PRECISION, INTENT(IN) :: KSPRATIO
46  TYPE(bief_obj), INTENT(IN) :: HN,UNORM
47  TYPE(bief_obj), INTENT(IN) :: TW,UW
48  TYPE(bief_obj), INTENT(INOUT) :: KS,KSP,KSR
49  TYPE(bief_obj), INTENT(IN) :: ACLADM
50 !
51 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 !
53 !
54 ! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
55 ! BED ROUGHNESS PREDICTOR
56 ! SKIN : KSP
57 ! TOTAL : KS
58 ! RIPPLES : KSR
59 !
60 ! NOTE: IT IS RECOMMENDED TO USE FRICTION LAW NO 3 WHEN COUPLING TO
61 ! AVOID UNNECESSARY COMPUTATION
62 ! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
63 !
64 ! SKIN BED ROUGHNESS --> KSP
65 !
66 ! RIPPLED BED ROUGHNESS --> KSR =KSP
67 !
68 !
69 ! TOTAL BED ROUGHNESS --> KS
70 ! IKS= 0: FLAT BED KS=KSP
71 ! IKS = 1: RIPPLED BED KS= KSP + KSR
72 ! IKS=3 : DUNED BED KS= KSP +KSR +KSMR +KSD
73 !
74  IF(iks.EQ.0) THEN
75 !
76  CALL os('X=Y ', x=ks, y=ksp)
77 !
78  ELSEIF(iks.EQ.1) THEN
79 !
80  IF(houle) THEN
81 ! WIBERG AND HARRIS: KSR (RIPPLES)
82 ! KS (RIPPLES + SKIN)
83  CALL ride_gaia(ksr%R, tw%R, uw%R, unorm%R, grav, xmve,
84  & xmvs, vce, npoin, kspratio, acladm%R)
85  CALL os('X=Y+Z ', x=ks, y=ksp, z=ksr)
86  ELSE
87 ! VR PREDICTOR : KSR (RIPPLES)
88  CALL ride_vr_gaia(ksr%R,ks%R,unorm%R,hn%R,grav,xmve,
89  & xmvs,npoin,acladm%R)
90  CALL os('X=Y+Z ', x=ks, y=ksp, z=ksr)
91  ENDIF
92 !
93  ELSEIF(iks.EQ.3) THEN
94 !
95 ! VR PREDICTOR : KSR (RIPPLES)
96 !
97  CALL ride_vr_gaia(ksr%R,ks%R,unorm%R,hn%R,grav,xmve,
98  & xmvs,npoin,acladm%R)
99  CALL os('X=X+Y ', x=ks, y=ksp)
100 !
101  ELSE
102 !
103  WRITE(lu,201) iks
104 201 FORMAT(1x,'KS_GAIA:',/,1x,
105  & 'BED ROUGHNESS PREDICTOR OPTION',/,1x,
106  & 'UNEXPECTED VALUE:',1i6)
107  CALL plante(1)
108  stop
109 !
110  ENDIF
111 !
112 !-----------------------------------------------------------------------
113 !
114  RETURN
115  END
subroutine ride_vr_gaia(KSR, KS, UNORM, HN, GRAV, XMVE, XMVS, NPOIN, ACLADM)
Definition: ride_vr_gaia.f:7
subroutine ks_gaia(IKS, KS, KSP, KSR, KSPRATIO, HOULE, GRAV, XMVE, XMVS, VCE, HN, ACLADM, UNORM, UW, TW, NPOIN)
Definition: ks_gaia.f:8
subroutine ride_gaia(KS, TW, UW, UNORM, GRAV, XMVE, XMVS, VCE, NPOIN, KSPRATIO, ACLADM)
Definition: ride_gaia.f:7
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
Definition: bief.f:3