The TELEMAC-MASCARET system  trunk
frazil_mass_on_bar.f
Go to the documentation of this file.
1 ! ******************************
2  SUBROUTINE frazil_mass_on_bar
3 ! ******************************
4 !
5  & (rfr0,rfr1,db,bar,nbar,ang1,fm1,fmt)
6 !
7 !***********************************************************************
8 ! KHIONE V8P0
9 !***********************************************************************
10 !
11 !brief
12 !+
13 !
14 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 !| ANG1 |<--|
16 !| BAR |<--|
17 !| DB |<--|
18 !| FM1 |-->|
19 !| FMT |-->|
20 !| NBAR |<--|
21 !| RFR0,RFR1 |<--|
22 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 !
24  USE declarations_khione, ONLY : rho_ice,ef0
25 !
26  IMPLICIT NONE
27 !
28 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
29 !
30  INTEGER , INTENT(IN) :: NBAR
31  DOUBLE PRECISION, INTENT(IN) :: RFR0,RFR1,BAR,ANG1,DB
32  DOUBLE PRECISION, INTENT(INOUT) :: FM1,FMT
33 !
34 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
35 !
36  DOUBLE PRECISION :: RB,DR,AMNU,ASH,RATIO,ADONT,AICE
37 !
38 ! RB = RFR0/2.0/COS(ANG1)
39  rb = db/2.d0
40  dr = 2.d0*rb - rfr0
41 !
42  amnu = rfr0**2*cos(ang1)*sin(ang1) + 2.d0*ang1*rb**2 -
43  & rb**2*cos(2.d0*ang1)*sin(2.d0*ang1)
44  ash = 2.d0*ang1*rb**2 - (ang1*rfr0**2 - rb*rfr0*sin(ang1)) ! SHADE AREA
45 !
46  IF (rfr1.GT.2.d0*rb) THEN
47  aice = ang1*rfr1**2 - amnu
48  ELSE
49  adont = (rfr1**2 - rfr0**2)*ang1
50  ratio = (rfr1 - rfr0) / dr
51  aice = adont - ratio*ash
52  ENDIF
53 !
54  fm1 = aice*bar*rho_ice*(1.d0 - ef0)
55  fmt = fm1*nbar
56 !
57  END SUBROUTINE frazil_mass_on_bar
double precision rho_ice
subroutine frazil_mass_on_bar(RFR0, RFR1, DB, BAR, NBAR, ANG1, FM1, FMT)