65 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE::
t_til_p 66 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE::
a_p 70 DOUBLE PRECISION,
DIMENSION(:,:,:),
ALLOCATABLE::
psi 74 DOUBLE PRECISION,
DIMENSION(:,:,:),
ALLOCATABLE::
fi_p 78 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
u_i_0_algae 79 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
u_i_algae 81 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
v_i_algae 83 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
x_i_algae 84 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
c_i_algae 131 INTEGER ,
INTENT(IN) :: NP_TOT
133 DOUBLE PRECISION,
INTENT(IN) :: DT
183 CALL os(
'X=C ',x=
k_av,c=0.d0)
187 CALL os(
'X=C ',x=
u_x,c=0.d0)
188 CALL os(
'X=C ',x=
u_y,c=0.d0)
189 CALL os(
'X=C ',x=
u_z,c=0.d0)
190 CALL os(
'X=C ',x=
v_x,c=0.d0)
191 CALL os(
'X=C ',x=
v_y,c=0.d0)
192 CALL os(
'X=C ',x=
v_z,c=0.d0)
193 CALL os(
'X=C ',x=
dx_a,c=0.d0)
194 CALL os(
'X=C ',x=
dy_a,c=0.d0)
195 CALL os(
'X=C ',x=
dz_a,c=0.d0)
196 CALL os(
'X=C ',x=
teff,c=0.d0)
248 INTEGER ,
INTENT(IN) :: N_A
249 INTEGER ,
INTENT(IN) :: NDIM
250 DOUBLE PRECISION,
INTENT(IN) :: DT
272 IF(
ALLOCATED(
a_p))
DEALLOCATE(
a_p)
274 a_p(1)=0.23477481312586d0
275 a_p(2)=0.28549576238194d0
276 a_p(3)=0.28479416718255d0
277 a_p(4)=0.26149775537574d0
278 a_p(5)=0.32056200511938d0
279 a_p(6)=0.35354490689146d0
280 a_p(7)=0.39635904496921d0
281 a_p(8)=0.42253908596514d0
282 a_p(9)=0.48317384225265d0
283 a_p(10)=0.63661146557001d0
298 IF(
ALLOCATED(
psi))
DEALLOCATE(
psi)
315 &(
np,np_tot,shp_p,shz_p,elt_p,
u_x_av,
u_y_av,
u_z_av,
k_av,
eps_av,
316 &
h_flu,npoin,ielm,ndp,ndp2,nplan,nelmax,ikle,w1,
317 & ielmu,npoinu,uconv,vconv,wconv,
388 INTEGER ,
INTENT(IN) :: NDP,NDP2,NPLAN,NELMAX
389 INTEGER ,
INTENT(IN) :: NPOIN,IELM,IELMU,NPOINU
390 DOUBLE PRECISION,
INTENT(IN) :: UCONV(npoinu),VCONV(npoinu)
391 DOUBLE PRECISION,
INTENT(IN) :: WCONV(npoinu)
392 DOUBLE PRECISION,
INTENT(IN) :: AK(npoin),EP(npoin)
393 DOUBLE PRECISION,
INTENT(IN) :: H(npoin)
395 INTEGER ,
INTENT(IN) :: NP,NP_TOT
396 DOUBLE PRECISION,
INTENT(IN) :: SHP_P(ndp,np_tot)
397 INTEGER ,
INTENT(IN) :: IKLE(nelmax,ndp2)
398 DOUBLE PRECISION,
INTENT(IN) :: SHZ_P(np_tot)
399 INTEGER ,
INTENT(IN) :: ELT_P(np_tot)
400 DOUBLE PRECISION,
INTENT(OUT) :: U_X_AV(np_tot)
401 DOUBLE PRECISION,
INTENT(OUT) :: U_Y_AV(np_tot)
402 DOUBLE PRECISION,
INTENT(OUT) :: U_Z_AV(np_tot)
403 DOUBLE PRECISION,
INTENT(OUT) :: K_AV(np_tot)
404 DOUBLE PRECISION,
INTENT(OUT) :: EPS_AV(np_tot)
405 DOUBLE PRECISION,
INTENT(OUT) :: H_FLU(np_tot)
407 DOUBLE PRECISION,
INTENT(IN) :: W1(*)
416 CALL bief_interp(uconv,u_x_av,shp_p,ndp,shz_p,elt_p,w1,fre,
417 & elt_p,np,npoinu,nplan,ielmu,ikle,nelmax,
419 CALL bief_interp(vconv,u_y_av,shp_p,ndp,shz_p,elt_p,w1,fre,
420 & elt_p,np,npoinu,nplan,ielmu,ikle,nelmax,
422 CALL bief_interp(wconv,u_z_av,shp_p,ndp,shz_p,elt_p,w1,fre,
423 & elt_p,np,npoinu,nplan,ielmu,ikle,nelmax,
426 CALL bief_interp(ak,k_av,shp_p,ndp,shz_p,elt_p,w1,fre,
427 & elt_p,np,npoin,1,ielm,ikle,nelmax,
429 CALL bief_interp(ep,eps_av,shp_p,ndp,shz_p,elt_p,w1,fre,
430 & elt_p,np,npoin,1,ielm,ikle,nelmax,
433 CALL bief_interp(h,h_flu,shp_p,ndp,shz_p,elt_p,w1,fre,
434 & elt_p,np,npoin,1,ielm,ikle,nelmax,
446 &
v_y_0,
v_z_0,
dx_a,
dy_a,
dz_a,elem_alg,
u_x,
u_y,
u_z,
v_x,
v_y,
v_z,
447 & x_a,y_a,z_a,lt,dalgae,ralgae,ealgae,talgae,yalgae,
531 DOUBLE PRECISION :: PI
532 DOUBLE PRECISION :: E
533 DOUBLE PRECISION,
PARAMETER :: C0=2.1d0
534 DOUBLE PRECISION,
PARAMETER :: RHO_F=1000.d0
535 DOUBLE PRECISION,
PARAMETER :: NU=0.000001d0
537 INTEGER ,
INTENT(IN) :: NA_TOT
538 INTEGER ,
INTENT(IN) :: NA
539 DOUBLE PRECISION,
INTENT(IN) :: DT,AT
541 INTEGER ,
INTENT(IN) :: LT
542 DOUBLE PRECISION,
INTENT(IN) :: DALGAE(*)
543 DOUBLE PRECISION,
INTENT(IN) :: RALGAE(*)
544 DOUBLE PRECISION,
INTENT(IN) :: EALGAE(*)
545 DOUBLE PRECISION,
INTENT(IN) :: TALGAE(*)
546 INTEGER ,
INTENT(IN) :: YALGAE(*)
547 INTEGER ,
INTENT(IN) :: REL_ALGAE(*)
549 DOUBLE PRECISION :: S
550 DOUBLE PRECISION :: OMEGA
551 DOUBLE PRECISION :: M
552 DOUBLE PRECISION :: MASS
554 INTEGER ,
INTENT(IN) :: NDIM
557 DOUBLE PRECISION :: F_A
558 DOUBLE PRECISION :: F_B
559 DOUBLE PRECISION :: TAU_PART
560 DOUBLE PRECISION :: FI_C
561 DOUBLE PRECISION :: D_ALG,R_ALG,E_ALG,T_ALG
562 INTEGER :: Y_ALG,REL_ALG
564 DOUBLE PRECISION :: T_I
565 DOUBLE PRECISION :: B_I
566 DOUBLE PRECISION :: NORME_U0_V0
568 DOUBLE PRECISION,
INTENT(IN) :: U_X_AV_0(na_tot)
569 DOUBLE PRECISION,
INTENT(IN) :: U_Y_AV_0(na_tot)
570 DOUBLE PRECISION,
INTENT(IN) :: U_Z_AV_0(na_tot)
571 DOUBLE PRECISION,
INTENT(IN) :: U_X_AV(na_tot)
572 DOUBLE PRECISION,
INTENT(IN) :: U_Y_AV(na_tot)
573 DOUBLE PRECISION,
INTENT(IN) :: U_Z_AV(na_tot)
574 DOUBLE PRECISION,
INTENT(IN) :: K_AV_0(na_tot)
575 DOUBLE PRECISION,
INTENT(IN) :: EPS_AV_0(na_tot)
576 DOUBLE PRECISION,
INTENT(IN) :: H_FLU(na_tot)
578 DOUBLE PRECISION,
INTENT(IN) :: U_X_0(na_tot)
579 DOUBLE PRECISION,
INTENT(IN) :: U_Y_0(na_tot)
580 DOUBLE PRECISION,
INTENT(IN) :: U_Z_0(na_tot)
581 DOUBLE PRECISION,
INTENT(OUT) :: U_X(na_tot)
582 DOUBLE PRECISION,
INTENT(OUT) :: U_Y(na_tot)
583 DOUBLE PRECISION,
INTENT(OUT) :: U_Z(na_tot)
584 DOUBLE PRECISION,
INTENT(IN) :: V_X_0(na_tot)
585 DOUBLE PRECISION,
INTENT(IN) :: V_Y_0(na_tot)
586 DOUBLE PRECISION,
INTENT(IN) :: V_Z_0(na_tot)
587 DOUBLE PRECISION,
INTENT(OUT) :: V_X(na_tot)
588 DOUBLE PRECISION,
INTENT(OUT) :: V_Y(na_tot)
589 DOUBLE PRECISION,
INTENT(OUT) :: V_Z(na_tot)
590 DOUBLE PRECISION,
INTENT(INOUT) :: X_A(na_tot)
591 DOUBLE PRECISION,
INTENT(INOUT) :: Y_A(na_tot)
592 DOUBLE PRECISION,
INTENT(INOUT) :: Z_A(na_tot)
593 DOUBLE PRECISION,
INTENT(OUT) :: DX_A(na_tot)
594 DOUBLE PRECISION,
INTENT(OUT) :: DY_A(na_tot)
595 DOUBLE PRECISION,
INTENT(OUT) :: DZ_A(na_tot)
596 INTEGER ,
INTENT(IN) :: ELEM_ALG(na_tot)
598 DOUBLE PRECISION :: RAND1
599 DOUBLE PRECISION :: XI_G_I
600 DOUBLE PRECISION :: RAND2
601 DOUBLE PRECISION :: XI_CAPG_I
602 DOUBLE PRECISION :: RAND3
603 DOUBLE PRECISION :: XI_CAPP_I
605 DOUBLE PRECISION :: RE
606 DOUBLE PRECISION :: CD
607 DOUBLE PRECISION :: PHI_1
608 DOUBLE PRECISION :: PHI_2
609 DOUBLE PRECISION :: PHI_3
610 DOUBLE PRECISION :: PHI_4
612 DOUBLE PRECISION :: GAMMA_I
613 DOUBLE PRECISION :: CAPGAMMA_I
614 DOUBLE PRECISION :: CAPPHI_I
615 DOUBLE PRECISION :: COV_G_I2
616 DOUBLE PRECISION :: COV_CAPG_I2
617 DOUBLE PRECISION :: COV_CAPP_I2
618 DOUBLE PRECISION :: COV_G_ICAPG_I
619 DOUBLE PRECISION :: COV_G_ICAPP_I
620 DOUBLE PRECISION :: COV_CAPG_ICAPP_I
621 DOUBLE PRECISION :: L11
622 DOUBLE PRECISION :: L21
623 DOUBLE PRECISION :: L22
624 DOUBLE PRECISION :: L31
625 DOUBLE PRECISION :: L32
626 DOUBLE PRECISION :: L33
628 DOUBLE PRECISION :: ALPHA
629 DOUBLE PRECISION :: BETA
630 DOUBLE PRECISION :: C_CHECK
631 DOUBLE PRECISION :: K_CHECK
632 DOUBLE PRECISION :: Q_CHECK
633 DOUBLE PRECISION :: G_CHECK
637 pi = 4.d0 * atan( 1.d0 )
676 rel_alg = rel_algae(
parclss%I(i_a))
680 omega = pi*d_alg**3/6.d0
681 m = 0.5d0*rho_f*omega
682 ELSEIF( y_alg.EQ.2 )
THEN 685 m = 3.57d0*rho_f*omega
686 ELSEIF( y_alg.EQ.3 )
THEN 689 m = 4.64d0*rho_f*omega
690 ELSEIF( y_alg.EQ.4 )
THEN 693 m = 3.26d0*rho_f*omega
696 cb = 6.d0*d_alg**2*rho_f*sqrt(pi*nu)
701 IF( elem_alg(i_a).LE.0 )
GOTO 12
702 IF( h_flu(i_a).LT.d_alg )
GOTO 12
703 IF(rel_alg.EQ.2)
THEN 706 IF( at.LT.t_alg )
GOTO 12
708 ib = lt - int( t_alg/dt ) + 1
727 t_i=1.d0/(0.5d0+0.75d0*c0)*k_av_0(i_a)/eps_av_0(i_a)
732 c_i_algae(1)=(u_x_av(i_a)-u_x_av_0(i_a))/dt
733 & +1.d0/t_i*u_x_av_0(i_a)
734 c_i_algae(2)=(u_y_av(i_a)-u_y_av_0(i_a))/dt
735 & +1.d0/t_i*u_y_av_0(i_a)
736 b_i=(c0*eps_av_0(i_a))**0.5
737 norme_u0_v0=sqrt((u_x_0(i_a)-v_x_0(i_a))**2+(u_y_0(i_a)
740 c_i_algae(2)=(u_z_av(i_a)-u_z_av_0(i_a))/dt
741 & +1.d0/t_i*u_z_av_0(i_a)
742 norme_u0_v0=sqrt((u_x_0(i_a)-v_x_0(i_a))**2+(u_y_0(i_a)
743 & -v_y_0(i_a))**2+(u_z_0(i_a)-v_z_0(i_a))**2)
758 & *(3.d0*sqrt(
REAL(
nb))+2.d0*(
REAL(
nb)-1.D0)**(1.5D0)
759 & -2.d0*
REAL(
nb)**(1.5d0))
762 & *((
REAL(
iwin)-1.D0)**(1.5D0)-2.d0*
REAL(IWIN)**(1.5D0)
763 & +(
REAL(iwin)+1.D0)**(1.5D0))
768 f_a=(rho_f*omega+m+4.d0/3.d0*
cb*sqrt(dt))/(mass+m+4.d0/3.d0
771 re=norme_u0_v0*d_alg/nu
775 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 777 ELSEIF(re.LT.0.4)
THEN 779 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 781 ELSEIF(re.GT.1000000)
THEN 783 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0*
cb 786 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
787 & +(4.d0*re**(-0.33))**10+0.4d0**10
788 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
789 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
790 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
792 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)**0.1
793 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0*
cb 796 ELSEIF(y_alg.EQ.2)
THEN 797 IF(re.GE.14073.d0)
THEN 798 cd=exp(6.822121d0-0.800627d0*log(re))
799 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
804 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 806 ELSEIF(re.LT.0.4)
THEN 808 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 810 ELSEIF(re.GT.1000000)
THEN 812 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
815 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
816 & +(4.d0*re**(-0.33))**10+0.4d0**10
817 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
818 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
819 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
821 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)
823 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
827 ELSEIF(y_alg.EQ.3)
THEN 828 IF(re.GE.28611.d0)
THEN 829 cd=exp(8.214783d0-0.877036d0*log(re))
830 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
835 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 837 ELSEIF(re.LT.0.4)
THEN 839 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 841 ELSEIF(re.GT.1000000)
THEN 843 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
846 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
847 & +(4.d0*re**(-0.33))**10+0.4d0**10
848 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
849 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
850 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
852 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)
854 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
858 ELSEIF(y_alg.EQ.4)
THEN 859 IF(re.GE.17981.d0)
THEN 860 cd=exp(6.773712d0-0.774252d0*log(re))
861 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
866 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 868 ELSEIF(re.LT.0.4)
THEN 870 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 872 ELSEIF(re.GT.1000000)
THEN 874 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
877 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
878 & +(4.d0*re**(-0.33))**10+0.4d0**10
879 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
880 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
881 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
883 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)
885 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
893 fi_c=
ci_bas/(mass+m+4.d0/3.d0*
cb*sqrt(dt))
913 & *(3.d0*sqrt(
REAL(
nb))+2.d0*(
REAL(
nb)-1.D0)**(1.5D0)
914 & -2.d0*
REAL(
nb)**(1.5d0))
917 & *((
REAL(iwin)-1.D0)**(1.5D0)-2.d0*
REAL(IWIN)**(1.5D0)
918 & +(
REAL(iwin)+1.D0)**(1.5D0))
922 f_a=(rho_f*omega+m+4.d0/3.d0*
cb*sqrt(dt))/(mass+m+4.d0/3.d0
925 re=norme_u0_v0*d_alg/nu
929 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 931 ELSEIF(re.LT.0.4)
THEN 933 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 935 ELSEIF(re.GT.1000000)
THEN 937 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0*
cb 940 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
941 & +(4.d0*re**(-0.33))**10+0.4d0**10
942 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
943 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
944 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
946 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)**0.1
947 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0*
cb 950 ELSEIF(y_alg.EQ.2)
THEN 951 IF(re.GE.14073.d0)
THEN 952 cd=exp(6.822121d0-0.800627d0*log(re))
953 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
958 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 960 ELSEIF(re.LT.0.4)
THEN 962 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 964 ELSEIF(re.GT.1000000)
THEN 966 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
969 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
970 & +(4.d0*re**(-0.33))**10+0.4d0**10
971 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
972 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
973 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
975 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)
977 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
981 ELSEIF(y_alg.EQ.3)
THEN 982 IF(re.GE.28611.d0)
THEN 983 cd=exp(8.214783d0-0.877036d0*log(re))
984 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
989 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 991 ELSEIF(re.LT.0.4)
THEN 993 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 995 ELSEIF(re.GT.1000000)
THEN 997 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
1000 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
1001 & +(4.d0*re**(-0.33))**10+0.4d0**10
1002 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
1003 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
1004 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
1006 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)
1008 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
1012 ELSEIF(y_alg.EQ.4)
THEN 1013 IF(re.GE.17981.d0)
THEN 1014 cd=exp(6.773712d0-0.774252d0*log(re))
1015 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
1020 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 1022 ELSEIF(re.LT.0.4)
THEN 1024 f_b=(rho_f*s*24.d0*nu)/(2.d0*(mass+m+4.d0/3.d0*
cb 1026 ELSEIF(re.GT.1000000)
THEN 1028 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
1031 phi_1=(24.d0*re**(-1))**10+(21.d0*re**(-0.67))**10
1032 & +(4.d0*re**(-0.33))**10+0.4d0**10
1033 phi_2=1.d0/((0.148d0*re**0.11)**(-10)+0.5d0**(-10))
1034 phi_3=(1.57d0*10.d0**8*re**(-1.625))**10
1035 phi_4=1.d0/((6.d0*10.d0**(-17)*re**2.63)**(-10)
1037 cd=(1.d0/((phi_1+phi_2)**(-1)+phi_3**(-1))+phi_4)
1039 f_b=(rho_f*s*cd*norme_u0_v0)/(2.d0*(mass+m+4.d0/3.d0
1047 fi_c=
ci_bas/(mass+m+4.d0/3.d0*
cb*sqrt(dt))
1051 IF(t_i-tau_part.EQ.0)
THEN 1053 WRITE(
lu,*)
' **************' 1054 WRITE(
lu,*)
' *T_I=TAU_PART*' 1055 WRITE(
lu,*)
' **************' 1063 CALL random_number(rand1)
1064 xi_g_i=(rand1*2.d0-1.d0)*(12.d0**0.5)/2.d0
1065 CALL random_number(rand2)
1066 xi_capg_i=(rand2*2.d0-1.d0)*(12.d0**0.5)/2.d0
1067 CALL random_number(rand3)
1068 xi_capp_i=(rand3*2.d0-1.d0)*(12.d0**0.5)/2.d0
1075 cov_g_i2=(1.d0-alpha**2)*b_i**2*t_i/2.d0
1088 beta=exp(-dt/tau_part)
1089 c_check=(t_i-f_a*tau_part)/(t_i-tau_part)
1090 k_check=f_a/c_check-1.d0
1091 q_check=k_check*t_i*tau_part/(t_i+tau_part)
1093 cov_capg_i2=(b_i*c_check)**2*((1.d0-alpha**2)*t_i/2.d0+(1.d0
1094 & -beta**2)*k_check**2*tau_part/2.d0+2.d0*(1.d0-alpha*beta)
1096 cov_g_icapg_i=b_i**2*c_check*((1.d0-alpha**2)*t_i/2.d0
1097 & +(1.d0-alpha*beta)*q_check)
1099 l21=cov_g_icapg_i/l11
1101 IF(cov_capg_i2.GE.l21**2)
THEN 1102 l22=sqrt(cov_capg_i2-l21**2)
1104 l22=sqrt(l21**2-cov_capg_i2)
1110 capgamma_i=l21*xi_g_i+l22*xi_capg_i
1113 & +(1.d0-beta)*(
c_i_algae(i_dim)*t_i+fi_c)
1122 g_check=t_i+k_check*tau_part
1124 cov_capp_i2=(b_i*c_check)**2*(g_check**2*dt+(1.d0-alpha**2)
1125 & *t_i**3/2.d0+(1.d0-beta**2)*k_check**2*tau_part**3/2.d0
1126 & -2.d0*g_check*((1.d0-alpha)*t_i**2+(1.d0-beta)*k_check
1127 & *tau_part**2)+2.d0*(1.d0-alpha*beta)*q_check*t_i*tau_part)
1129 cov_g_icapp_i=b_i**2*c_check*((1.d0-alpha)*g_check*t_i-(1.d0
1130 & -alpha**2)*t_i**2/2.d0-(1.d0-alpha*beta)*q_check*tau_part)
1132 cov_capg_icapp_i=(b_i*c_check)**2*(((1.d0-alpha)*t_i+(1.d0
1133 & -beta)*k_check*tau_part)*g_check-(1.d0-alpha**2)*t_i**2
1134 & /2.d0-(1.d0-beta**2)*k_check**2*tau_part**2/2.d0-(1.d0
1135 & -alpha*beta)*k_check*t_i*tau_part)
1137 l31=cov_g_icapp_i/l11
1138 l32=(cov_capg_icapp_i-l21*l31)/l22
1140 IF(cov_capp_i2.GE.l31**2+l32**2)
THEN 1141 l33=sqrt(cov_capp_i2-l31**2-l32**2)
1143 l33=sqrt(abs(cov_capp_i2-l31**2-l32**2))
1146 capphi_i=l31*xi_g_i+l32*xi_capg_i+l33*xi_capp_i
1150 & -(1.d0-beta)*tau_part)*(
c_i_algae(i_dim)*t_i+fi_c*tau_part)
1152 & *((1.d0-alpha)*t_i-(1.d0-beta)*tau_part)
1158 IF(abs(
x_i_algae(i_dim)).GT.10.d0**10)
THEN 1160 WRITE(
lu,*)
' **************' 1161 WRITE(
lu,*)
' *POSITION INF*' 1162 WRITE(
lu,*)
' **************' 1212 psi(i_a,i_dim,iwin)=0.d0
1248 IF(
ALLOCATED(
a_p))
DEALLOCATE(
a_p)
1249 IF(
ALLOCATED(
psi))
DEALLOCATE(
psi)
1250 IF(
ALLOCATED(
fi_p))
DEALLOCATE(
fi_p)
subroutine, public alloc_algae(NP_TOT, MESH, DT)
double precision, dimension(:), allocatable a_p
integer nalg_clss
A. JOLY 14/06/2013 V6P3 First version
subroutine, public organise_algs(NPARAM, NOMB)
integer, parameter max_nalg_clss
double precision, dimension(:), allocatable u_i_0_algae
double precision, dimension(:), allocatable x_i_algae
subroutine bief_deallobj(OBJ)
subroutine, public interp_algae(NP, NP_TOT, SHP_P, SHZ_P, ELT_P, U_X_AV, U_Y_AV, U_Z_AV, K_AV, EPS_AV, H_FLU, NPOIN, IELM, NDP, NDP2, NPLAN, NELMAX, IKLE, W1, IELMU, NPOINU, UCONV, VCONV, WCONV, AK, EP, H)
subroutine bief_allvec(NAT, VEC, NOM, IELM, DIM2, STATUT, MESH)
double precision, dimension(:,:,:), allocatable fi_p
subroutine, public bief_interp(U, UTILD, SHP, NDP, SHZ, ETA, SHF, FRE, ELT, NP, NPOIN2, NPLAN, IELM, IKLE, NELMAX, PERIO, YA4D)
double precision phi_moins
type(bief_obj), target parclss
subroutine init_basset(N_A, NDIM, DT)
double precision, dimension(:), allocatable c_i_algae
double precision, dimension(:), allocatable t_til_p
type(bief_obj), target nodclss
double precision, dimension(:), allocatable v_i_algae
double precision, dimension(:), allocatable v_i_0_algae
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
double precision, dimension(:), allocatable x_i_0_algae
subroutine, public dealloc_algae()
subroutine, public disp_algae(NA_TOT, NA, NDIM, DT, AT, U_X_AV_0, U_Y_AV_0, U_Z_AV_0, K_AV_0, EPS_AV_0, H_FLU, U_X_AV, U_Y_AV, U_Z_AV, U_X_0, U_Y_0, U_Z_0, V_X_0, V_Y_0, V_Z_0, DX_A, DY_A, DZ_A, ELEM_ALG, U_X, U_Y, U_Z, V_X, V_Y, V_Z, X_A, Y_A, Z_A, LT, DALGAE, RALGAE, EALGAE, TALGAE, YALGAE, REL_ALGAE)
double precision, dimension(:,:,:), allocatable psi
double precision phi_plus
double precision, dimension(:), allocatable u_i_algae