5 & (f , cf , xk , nf , ndire, npoin2,
6 & iangnl,tstot, tsder, told , tnew, z0new, twnew,
7 & taux1, taux2, taux3, taux4, taux5, taux6, taux7,
8 & mdia, ianmdi, coemdi, fbor)
127 & namewx,namewy,unitveb,phasveb,
128 & source_on_bnd,debug,cg,porous,
129 & amorp,lt, gravit, cimpli,
130 & ifrbj, ifrtg , ifrro, ifrih,
131 & diaghf, coefhs, nsits, smout,
132 & fmoy, varian, xkmoy, sfrot, svent, lvent, strif, vent, vensta,
133 & luvef, luveb, namvef, namveb, fmtveb, fmtvef,
134 & sbrek, xdtbrk, ndtbrk, stria, proinf, df_lim, limit,
135 & vegetation, cbaj, sdscu,freq, dfreq, depth,
136 & teta, tailf, raisf, nbor, nptfr, lifbor,
137 & tv1 ,tv2 , uv1, uv2, vv1, vv2, uv, vv,
138 & tauwav,usold, usnew, twold, z0old, at, dtsi, indiv, nvwin
187 INTEGER,
INTENT(IN) :: NPOIN2,NDIRE,NF, IANGNL(*)
188 DOUBLE PRECISION,
INTENT(INOUT) :: Z0NEW(npoin2), TWNEW(npoin2)
189 DOUBLE PRECISION,
INTENT(INOUT) :: TAUX1(npoin2), TAUX2(npoin2),
190 & taux3(npoin2), taux4(npoin2),
191 & taux5(npoin2), taux6(npoin2),
193 DOUBLE PRECISION,
INTENT(INOUT) :: F(npoin2,ndire,nf)
194 DOUBLE PRECISION,
INTENT(INOUT) :: TSDER(npoin2,ndire,nf)
195 DOUBLE PRECISION,
INTENT(INOUT) :: TSTOT(npoin2,ndire,nf)
196 DOUBLE PRECISION,
INTENT(INOUT) :: TOLD(npoin2,ndire)
197 DOUBLE PRECISION,
INTENT(INOUT) :: TNEW(npoin2,ndire)
198 DOUBLE PRECISION,
INTENT(INOUT) :: XK(npoin2,nf)
199 DOUBLE PRECISION,
INTENT(IN) :: CF(*)
201 INTEGER,
INTENT(IN) :: MDIA, IANMDI(*)
202 DOUBLE PRECISION,
INTENT(IN) :: COEMDI(*)
203 DOUBLE PRECISION,
INTENT(IN) :: FBOR(nptfr,ndire,nf)
207 INTEGER ISITS,IFF,IP,JP,K,NVENT,IFCAR,MF1,MF2,MFMAX,IDT
209 DOUBLE PRECISION AUX1,AUX2,AUX3,AUX4,COEF
210 DOUBLE PRECISION FM1,FM2,TDEB,TFIN,VITVEN
211 DOUBLE PRECISION VITMIN,HM0,HM0MAX,DTN,SOMME,AUXI,USMIN
213 DOUBLE PRECISION XCCMDI(4)
217 DOUBLE PRECISION CPHAS , SEUILF
219 CHARACTER(LEN=8) FMTVEN
234 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE TOTNRJ' 235 CALL totnrj(varian, f, nf, ndire, npoin2)
236 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE TOTNRJ' 242 hm0max=coefhs*depth(ip)
243 hm0 =max(4.d0*sqrt(varian(ip)),1.d-20)
244 taux1(ip)=min((hm0max/hm0)**2,1.d0)
253 f(ip,jp,iff)=f(ip,jp,iff)*taux1(ip)
272 IF(vent.AND.vensta)
THEN 277 IF (svent.GE.2.OR.(lvent.EQ.1.AND.svent.NE.1).OR.
278 & (smout.EQ.2.AND.svent.NE.1))
THEN 296 tdeb=at-(nsits-isits+1)*dtsi
303 IF(vent.AND..NOT.vensta)
THEN 308 IF(namveb(1:1).NE.
' '.OR.namvef(1:1).NE.
' ')
THEN 309 IF(namvef(1:1).NE.
' ')
THEN 316 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE NOUDON' 317 CALL noudon(uv,namewx,2, vv,namewy,2,
318 & vv,
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',0,
319 & npoin2, nvent,fmtven,tfin,tv1,tv2,
320 & uv1,uv2,vv1,vv2,vv1,vv2,indiv,
321 &
'WIND ',nvwin,
texveb,trouve,unitveb,phasveb)
322 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE NOUDON' 324 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE ANAVEN' 326 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE ANAVEN' 333 vitven=sqrt(uv(ip)**2+vv(ip)**2)
334 IF(vitven.GT.vitmin)
THEN 335 twnew(ip)=atan2(uv(ip),vv(ip))
344 IF(svent.GE.2.OR.(lvent.EQ.1.AND.svent.NE.1).OR.
345 & (smout.EQ.2.AND.svent.NE.1))
THEN 346 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE USTAR2' 347 CALL ustar2( usnew, npoin2)
348 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE USTAR2' 353 IF(vent.AND.svent.EQ.1)
THEN 354 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE USTAR1' 355 CALL ustar1(usnew, z0new, tauwav, npoin2)
356 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE USTAR1' 366 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE TOTNRJ' 367 CALL totnrj(varian, f, nf, ndire, npoin2)
368 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE TOTNRJ' 375 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREMOY' 376 CALL fremoy(fmoy, f, nf, ndire, npoin2)
377 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREMOY' 381 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE KMOYEN' 382 CALL kmoyen (xkmoy, xk , f, nf, ndire, npoin2,
383 & taux1 , taux2 , taux3 )
384 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE KMOYEN' 385 ELSEIF (cbaj.EQ.1)
THEN 390 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREM01' 391 CALL frem01 (fmoy, f, nf, ndire, npoin2)
392 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREM01' 396 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE KMOYE2' 397 CALL kmoye2(xkmoy, xk, f, nf, ndire , npoin2,
398 & taux1 , taux2 , taux3 )
399 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE KMOYE2' 401 WRITE(
lu,*)
'UNKNOWN VALUE OF BAJ:',cbaj
415 tstot(ip,jp,iff)=0.d0
416 tsder(ip,jp,iff)=0.d0
426 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QWIND1' 428 &( tstot , tsder , f , xk , usold , usnew , twold , twnew ,
429 & z0old , z0new , nf , ndire , npoin2, told , tnew ,
430 & taux2 , taux3 , taux4 , taux5 , taux6 , taux7 )
431 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QWIND1' 432 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE STRESS' 434 &( tauwav, tstot , f , usnew , twnew , z0new ,
435 & npoin2, ndire , nf , taux1 , taux2 , taux3 )
436 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE STRESS' 437 ELSEIF(svent.EQ.2)
THEN 438 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QWIND2' 440 &( tstot , tsder , f , xk , usold , usnew , twold , twnew ,
442 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QWIND2' 443 ELSEIF(svent.EQ.3)
THEN 444 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QWIND3' 446 &( tstot , tsder , f , xk , usold , usnew , twold , twnew ,
447 & nf , ndire , npoin2, taux1 , taux2 , taux3 , taux4 )
448 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QWIND3' 456 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QWINDL' 457 CALL qwindl(tstot, usold, usnew, twold, twnew, nf, ndire,
459 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QWINDL' 479 aux3=
deupi/dble(ndire)*dfreq(iff)
483 cphas=
deupi*freq(iff)/xk(ip,iff)
484 auxi=28.0d0/cphas*usnew(ip)*cos(teta(jp)-twnew(ip))
485 IF ((tstot(ip,jp,iff).GT.0).OR.(auxi.GE.1.0d0))
THEN 486 taux1(ip) = taux1(ip) + f(ip,jp,iff)*aux3
487 taux2(ip) = taux2(ip) + f(ip,jp,iff)*aux4
494 IF (taux1(ip).LT.seuilf)
THEN 497 taux7(ip) = taux1(ip)/taux2(ip)
507 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QNLIN1' 508 CALL qnlin1(tstot, tsder, iangnl, nf, ndire, npoin2,
509 & f, xkmoy, taux1, taux2, taux3, taux4, taux5,taux6)
510 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QNLIN1' 512 ELSEIF (strif.EQ.2)
THEN 515 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QNLIN2' 521 xccmdi(k)=xccmdi(k)/dble(mdia)
526 &( tstot , tsder , ianmdi((k-1)*ndire*16+1:k*ndire*16) ,
527 & coemdi((k-1)*32+1:k*32) , nf , ndire,
528 & npoin2, f , xkmoy , taux1 , taux2 , xccmdi(k))
530 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QNLIN2' 532 ELSEIF (strif.EQ.3)
THEN 533 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QNLIN3' 534 CALL qnlin3(tstot , tsder , f ,npoin2, ndire , nf )
535 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QNLIN3' 543 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QMOUT1' 545 &( tstot, tsder, f , xk , varian, fmoy, xkmoy,
546 & nf , ndire , npoin2, taux1 )
547 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QMOUT1' 549 ELSEIF(smout.EQ.2)
THEN 551 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QMOUT2' 553 &( tstot , tsder , f , xk , varian, fmoy , xkmoy , usold ,
554 & usnew , nf , ndire , npoin2, taux1 , taux2 , taux5 , taux6 )
555 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QMOUT2' 562 IF(sfrot.EQ.1.AND..NOT.proinf)
THEN 563 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QFROT1' 565 &( tstot , tsder , f , xk , nf ,ndire , npoin2)
566 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QFROT1' 567 ELSEIF(sfrot.NE.0)
THEN 568 WRITE(
lu,*)
'OPTION FOR BOTTOM FRICTION DISSIPATION' 569 WRITE(
lu,*)
'UNKNOWN: SFROT=',sfrot
587 coef=0.62d-4*dtsi/1200.d0
588 auxi=coef/freq(iff)**5
593 ELSEIF(limit.EQ.2)
THEN 594 coef=3.d-7*gravit*freq(nf)*dtsi
595 auxi=coef/freq(iff)**4
596 usmin=gravit*5.6d-3/freq(iff)
598 df_lim(ip)=auxi*max(usnew(ip),usmin)
603 ELSEIF (limit.EQ.3)
THEN 604 coef=3.0d-7*gravit*dtsi
605 auxi=coef/freq(iff)**4
606 usmin=gravit*5.6d-3/freq(iff)
608 df_lim(ip)=auxi*max(usnew(ip),usmin)*taux7(ip)
611 ELSEIF(limit.NE.0)
THEN 612 WRITE(
lu,*)
'UNKNOWN LIMITING FACTOR:',limit
619 aux1=max(1.d0-dtsi*tsder(ip,jp,iff)*cimpli,1.d0)
620 aux2=dtsi*tstot(ip,jp,iff)/aux1
621 aux3=min(abs(aux2),df_lim(ip))
623 f(ip,jp,iff)=max(f(ip,jp,iff)+aux4,0.d0)
629 aux1=max(1.d0-dtsi*tsder(ip,jp,iff)*cimpli,1.d0)
630 aux2=dtsi*tstot(ip,jp,iff)/aux1
631 f(ip,jp,iff)=max(f(ip,jp,iff)+aux2,0.d0)
645 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREMOY' 646 CALL fremoy(fmoy, f, nf, ndire, npoin2)
647 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREMOY' 649 aux1=gravit/(7.d0*
deupi*freq(1))
651 aux3=1.d0/log10(raisf)
662 fm1 =aux1/max(usnew(ip),1.d-90)
664 mf1=int(aux3*log10(fm1)+1.d0)
665 mf2=int(aux3*log10(fm2)+1.d0)
666 mfmax=max(min(max(mf1,mf2),nf),1)
674 aux4=(freq(mfmax)/freq(iff))**tailf
676 f(ip,jp,iff)=aux4*f(ip,jp,mfmax)
683 fm1 =aux1/max(usnew(ip),1.d-90)
685 mf1=int(aux3*log10(fm1)+1.d0)
686 mf2=int(aux3*log10(fm2)+1.d0)
687 mfmax=max(min(max(mf1,mf2),nf),1)
689 aux4=(freq(mfmax)/freq(iff))**tailf
691 f(ip,jp,iff)=aux4*f(ip,jp,mfmax)
697 ELSEIF(diaghf.GE.2)
THEN 698 WRITE(
lu,*)
'OPTION FOR DIAGNOSTIC TAIL' 699 WRITE(
lu,*)
'UNKNOWN: DIAGHF=',diaghf
710 IF(((sbrek.GT.0.OR.stria.GT.0.OR.vegetation.OR.porous).AND.
711 & .NOT.proinf).OR.sdscu.EQ.2)
THEN 716 IF (sbrek.GT.0.AND.sbrek.LT.5)
THEN 717 IF (sbrek.EQ.1) ifcar = ifrbj
718 IF (sbrek.EQ.2) ifcar = ifrtg
719 IF (sbrek.GE.3) ifcar = ifrro
720 IF (sbrek.GE.4) ifcar = ifrih
727 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREMOY' 728 CALL fremoy(taux3, f, nf, ndire, npoin2 )
729 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREMOY' 736 ELSE IF (ifcar.EQ.2)
THEN 740 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREM01' 741 CALL frem01( taux3, f, nf, ndire, npoin2)
742 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREM01' 744 ELSE IF (ifcar.EQ.3)
THEN 748 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREM02' 749 CALL frem02( taux3, f, nf, ndire, npoin2)
750 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREM02' 752 ELSE IF (ifcar.EQ.4)
THEN 756 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREPIC' 757 CALL frepic( taux3, f, nf, ndire, npoin2)
758 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREPIC' 760 ELSE IF (ifcar.EQ.5)
THEN 764 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FPREAD' 765 CALL fpread( taux3, f, nf, ndire, npoin2, 5.d0)
766 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FPREAD' 768 ELSE IF (ifcar.EQ.6)
THEN 772 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FPREAD' 773 CALL fpread( taux3, f, nf, ndire, npoin2, 8.d0)
774 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FPREAD' 778 WRITE(
lu,*)
'WAVE FREQUENCY NOT EXPECTED......IFCAR=',
788 somme=(xdtbrk**ndtbrk-1.d0)/(xdtbrk-1.d0)
797 tstot(ip,jp,iff)=0.d0
805 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE TOTNRJ' 806 CALL totnrj(varian, f, nf, ndire, npoin2)
807 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE TOTNRJ' 818 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QBREK1' 820 & ( tstot , f , taux3 , varian, nf , ndire , npoin2)
821 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QBREK1' 827 ELSEIF(sbrek.EQ.2)
THEN 829 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QBREK2' 831 & ( tstot , f , taux3 , varian, nf , ndire ,
833 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QBREK2' 839 ELSEIF(sbrek.EQ.3)
THEN 841 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QBREK3' 843 &( tstot , f , taux3 , varian, nf , ndire ,
845 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QBREK3' 851 ELSEIF(sbrek.EQ.4)
THEN 853 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QBREK4' 855 &( tstot , f ,taux3,varian, nf , ndire , npoin2)
856 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QBREK4' 858 ELSEIF(sbrek.NE.0)
THEN 859 WRITE(
lu,*)
'BREAKING FORMULATION NOT PROGRAMMED: ',
868 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE FREMOY' 869 CALL fremoy( fmoy, f, nf, ndire, npoin2)
870 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE FREMOY' 871 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QTRIA1' 873 &( f , xk , nf , ndire , npoin2, tstot , varian, fmoy )
874 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QTRIA1' 876 ELSEIF(stria.EQ.2)
THEN 877 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QTRIA2' 879 &( f , xk , nf , ndire , npoin2, tstot )
880 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QTRIA2' 887 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QDSCUR' 889 &( tstot , tsder , f , cf , xk , usold , usnew ,
890 & nf , ndire , npoin2, taux2 ,
t3_01%R,
t3_02%R)
891 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QDSCUR' 900 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QVEG' 901 CALL qveg( tstot, tsder, f, varian, fmoy, xkmoy, nf,
903 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QVEG' 911 IF(debug.EQ.2)
WRITE(
lu,*)
' APPEL DE QPOROS' 912 CALL qporos( tstot , tsder , f , cg, lt, xk,
913 & nf , ndire , npoin2, amorp)
914 IF(debug.EQ.2)
WRITE(
lu,*)
' RETOUR DE QPOROS' 929 f(ip,jp,iff)=max(f(ip,jp,iff)+dtn*tstot(ip,jp,iff),0.d0)
957 IF(.NOT.source_on_bnd)
THEN 959 IF(lifbor(iptfr).EQ.
kent)
THEN 962 f(nbor(iptfr),ip,iff)=fbor(iptfr,ip,iff)
subroutine stress(TAUWAV, TSTOT, F, USNEW, TWNEW, Z0NEW, NPOIN2, NDIRE, NF, XTAUW, YTAUW, TAUHF)
subroutine qnlin2(TSTOT, TSDER, IANGNL, COEFNL, NF, NDIRE, NPOIN2, F, XKMOY, TAUX1, DFINI, XCOEF)
type(bief_obj), pointer t3_02
character(len=32), dimension(30) texveb
subroutine qbrek1(TSTOT, F, FCAR, VARIAN, NF, NDIRE, NPOIN2)
subroutine qnlin1(TSTOT, TSDER, IANGNL, NF, NDIRE, NPOIN2, F, XKMOY, TAUX1, TAUX2, TAUX3, TAUX4, TAUX5, DFINI)
subroutine qtria1(F, XK, NF, NDIRE, NPOIN2, TSTOT, FTOT, FMOY)
subroutine ustar1(USTAR, Z0, TAUWAV, NPOIN2)
subroutine qdscur(TSTOT, TSDER, F, CF, XK, USOLD, USNEW, NF, NDIRE, NPOIN2, F_INT, BETOTO, BETOTN)
subroutine totnrj(VARIAN, F, NF, NDIRE, NPOIN2)
subroutine frepic(FPIC, F, NF, NDIRE, NPOIN2)
subroutine qbrek3(TSTOT, F, FCAR, VARIAN, NF, NDIRE, NPOIN2)
subroutine qnlin3(T1TOT, T1DER, F2, N1POIN2, N1PLAN, N1F)
subroutine noudon(F1, NAME1, MODE1, F2, NAME2, MODE2, F3, NAME3, MODE3, NPOIN, NDON, FFORMAT, AT, TV1, TV2, F11, F12, F21, F22, F31, F32, INDIC, CHDON, NVAR, TEXTE, TROUVE, UNITIME, PHASTIME)
subroutine qmout2(TSTOT, TSDER, F, XK, ENRJ, FMOY, XKMOY, USOLD, USNEW, NF, NDIRE, NPOIN2, TAUX1, F_INT, BETOTO, BETOTN)
subroutine kmoye2(XKMOY, XK, F, NF, NDIRE, NPOIN2, AUX1, AUX2, AUX3)
subroutine qwind2(TSTOT, TSDER, F, XK, USOLD, USNEW, TWOLD, TWNEW, NF, NDIRE, NPOIN2, USN, USO)
subroutine qwind1(TSTOT, TSDER, F, XK, USOLD, USNEW, TWOLD, TWNEW, Z0OLD, Z0NEW, NF, NDIRE, NPOIN2, TOLD, TNEW, USN, USO, OMNEW, OMOLD, BETAN, BETAO)
subroutine qtria2(F, XK, NF, NDIRE, NPOIN2, TSTOT)
subroutine semimp(F, CF, XK, NF, NDIRE, NPOIN2, IANGNL, TSTOT, TSDER, TOLD, TNEW, Z0NEW, TWNEW, TAUX1, TAUX2, TAUX3, TAUX4, TAUX5, TAUX6, TAUX7, MDIA, IANMDI, COEMDI, FBOR)
subroutine ustar2(USTAR, NPOIN2)
subroutine qbrek2(TSTOT, F, FCAR, VARIAN, NF, NDIRE, NPOIN2)
subroutine frem02(FM02, F, NF, NDIRE, NPOIN2)
subroutine qwind3(TSTOT, TSDER, F, XK, USOLD, USNEW, TWOLD, TWNEW, NF, NDIRE, NPOIN2, BETAN, BETAO, DIRN, DIRO)
subroutine qmout1(TSTOT, TSDER, F, XK, ENRJ, FMOY, XKMOY, NF, NDIRE, NPOIN2, TAUX1)
subroutine kmoyen(XKMOY, XK, F, NF, NDIRE, NPOIN2, AUX1, AUX2, AUX3)
subroutine qwindl(TSTOT, USOLD, USNEW, TWOLD, TWNEW, NF, NDIRE, NPOIN2, USN, USO, FPMO, FPMN)
subroutine qveg(TSTOT, TSDER, F, VARIAN, FMOY, XKMOY, NF, NDIRE, NPOIN2)
subroutine qfrot1(TSTOT, TSDER, F, XK, NF, NDIRE, NPOIN2)
subroutine fpread(FREAD, F, NF, NDIRE, NPOIN2, EXPO)
subroutine fremoy(FMOY, F, NF, NDIRE, NPOIN2)
type(bief_obj), pointer t3_01
subroutine qbrek4(TSTOT, F, FCAR, VARIAN, NF, NDIRE, NPOIN2)
subroutine frem01(FM01, F, NF, NDIRE, NPOIN2)