ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° FCN Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΠ£. Π―Π²Π½Π°Ρ Π‘ΠΠ£
Ksv'/' ΠΌΠΌ ΠΡ ΠΌΠΌ ΠΌΠΠΌ ΠΌΠΊΠΠ½ ΠΌΠΌ ΠΌΠΌ mkOm Π½ΠΠ½ ΠΌΠΊΠΠ½ mm')") RnarK=rKatvn+nWk*(twKr+tlzwwr)-tlzwwr [ΠΠ°ΡΡΠΆΠ½ΡΠΉ ΡΠ°Π΄ΠΈΡΡ ΠΊΠ°ΡΡΡΠΊΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ°Π»Π»Ρ Rprov=roprov*(DIProv+DIProv)*4dO/(pi*DiamPr**2) [ΠΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π». ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ² LProv=4d-7*DIProv*(LOG ((DiamPr+2dO*TizPr)/(DiamPr/2dO))+0.25dO)!MHfl. ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ² CALL C_serialRL (emk, CRs, CLs, nn) [ΠΡΡΠΈΡΠ»Π΅Π½.ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ R, L ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ½Π΄-ΡΠ° [ΠΡΠ΄Π΅Π».ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΡ., ΠΊΠΎΡ. Ρ ΡΠ°Π½ΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° FCN Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΠ£. Π―Π²Π½Π°Ρ Π‘ΠΠ£ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
SUBROUTINE FCN (N1, Tl, Yl, YPRIME).
USE MSIMSL; USE DESCRIBE IMPLICIT NONE.
INTEGER nl; REAL (8) Tl, Yl (nl), YPRIME (nl) if (dvigen) then.
x=Yl (5); CALL CalculatingSpline! ΠΡΡ-Π΅ Ll, Rl, vzi, dvzdx, LD, SoprD d=Ll*Ld-vzi**2; endif.
il=(Yl (l)*Ld-Yl (2)*vzi)/d; i2=(Yl (2)*Ll-Yl (l)*vzi)/d !ΡΠ°ΡΡ.ΡΠΎΠΊΠΎΠ² no (1.32).
! ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ Π΄ΠΈΡ. ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ:
YPRIME (l)=-il*Rl-Y (3); YPRIME (2)=-i2*SoprD; YPRIME (3)=il/emk if (.not.dvigen) RETURN.
if (uch==l) Fmex=FmO+zl*x; if (uch==2) Fmex=Fml+z2*(x-xl).
Fem=il*i2*dvzdx; YPRIME (4)=(Fem-Fmex)/massPodv; YPRIME (5)=Y1(4);
END.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ParameterJDM, C_serialRL, FCN2. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΠΠ
ΠΡΠ·ΠΎΠ²: CALL ParameterJDM SUBROUTINE ParameterJDM.
!ΠΠΏ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ R, L, M ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΠΠ Π΄Π»Ρ Π΄Π²ΡΡ ΠΊΠΎΠ½ΡΡΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΠ°Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ ΠΊΠ°ΡΡΡΠΊΠΈ ΠΈ Π΄ΠΈΡΠΊΠ° ΠΈ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½Ρ! ΡΠΌΠΊΠΎΡΡΡ ΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ°, Π΄Π»ΠΈΠ½Π°, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ². Π£ΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠΏΡ. ΠΈ ΠΈΠ½Π΄. ΠΏΠ°ΡΠ°Π·ΠΈΡΠ½ΡΠ΅ USE DESCRIBE; USE INCL_GRF; USE MSIMSL; IMPLICIT NONE EXTERNAL FCN2.
if (i==l) then; hKrach=tWKz;hDrach=hDisk; endif! ΠΠ°Ρ. Π²ΡΡΠΎΡΠ° ΠΊΠ°Ρ. ΠΈ Π΄ΠΈΡΠΊΠ° perechK=.false.;perechD=.false.; nn=0; CRs=0d0; CLs=0d0 WRITE (out," (' hKat f DltK SoprK Lk hDisk DltD SoprD Ld vzi RnarK &.
&ksv'/' ΠΌΠΌ ΠΡ ΠΌΠΌ ΠΌΠΠΌ ΠΌΠΊΠΠ½ ΠΌΠΌ ΠΌΠΌ mkOm Π½ΠΠ½ ΠΌΠΊΠΠ½ mm')") RnarK=rKatvn+nWk*(twKr+tlzwwr)-tlzwwr [ΠΠ°ΡΡΠΆΠ½ΡΠΉ ΡΠ°Π΄ΠΈΡΡ ΠΊΠ°ΡΡΡΠΊΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ°Π»Π»Ρ Rprov=roprov*(DIProv+DIProv)*4dO/(pi*DiamPr**2) [ΠΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π». ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ² LProv=4d-7*DIProv*(LOG ((DiamPr+2dO*TizPr)/(DiamPr/2dO))+0.25dO)!MHfl. ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ² CALL C_serialRL (emk, CRs, CLs, nn) [ΠΡΡΠΈΡΠ»Π΅Π½.ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ R, L ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ½Π΄-ΡΠ° [ΠΡΠ΄Π΅Π».ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΡ., ΠΊΠΎΡ. Ρ ΡΠ°Π½ΡΡ Π½Π°Ρ. ΠΈ ΠΊΠΎΠ½. Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ:
IF (ALLOCATEDfNACHW)) DEALLOCATE (NACHW, KONW).
ALLOCATE (NACHW (nwK), KONW (nwK)).
kollter=0.
3 CALL RAZBIVKA (hKrach, twKr, shrzbK, shWKz, shWKr, nrWKz, nrWKr, nrWK)!Pa36.Π²ΠΈΡΠΊΠ° ΠΠ°Ρ. nrK=nrWK*nWK [Π§ΠΈΡΠ»ΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ ΠΠ°ΡΡΡΠΊΠΈ (ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½. Π²ΠΈΡΠΊΠΎΠ² Π² ΠΊΠ°Ρ.).
CALL RAZBIVKA (hDrach, rDnar-rDvn, shrzbD, shDz, shDr, nrDz, nrDr, nrD)!pa6nBKa ΠΠΈΡΠΊΠ° ndimrz=nrD+nrK; NACHW (1)=1; KONW (l)=nrWK [ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² RAD ΠΈ Z rWvn=rKatvn; rWnar=rWvn+tWKr [ΡΠ°Π΄ΠΈΡΡΡ Π²Π½ΡΡΡ. ΠΈ Π½Π°ΡΡΠΆΠ½ΡΠΉ Π΄Π»Ρ ΠΠΈΡΠΊΠ° ΠΠ°ΡΡΡΠΊΠΈ SoprK=0d0 [ΠΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡ Π΄Π»Ρ ΡΠ°ΡΡΡΡΠ° Π² ΡΠΈΠΊΠ»Π΅ ΡΠΎΠΏΡΠΎΡ. ΠΊΠ°Ρ-ΠΊΠΈ; Π·Π°ΠΏΠΎΠ»Π½Π΅Π½. ΠΌΠ°ΡΡ-ΠΎΠ² do k=l, nwK; SoprK=SoprK+ldO/LOG (rWnar/rWvn); rWvn=rWnar+tlzWWr; rWnar=rWvn+tWKr if (k>l) then; NACHW (k)=NACHW (k-l)+nrWK; KONW (k)=KONW (k-l)+nrWK; endif enddo; SoprK=SoprK*piu2*udSoprK/hKrach [Π‘ΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ-ΠΊΠΈ RdPer=udSoprD*piu2/(hDrach*LOG (rDnar/rDvn)) [Π‘ΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΊΠ° IF (ALLOCATED (RAD)) DEALLOCATE (RAD); IF (ALLOCATED (Z)) DEALLOCATE (Z);
ALLOCATE (RAD (ndimrz), Z (ndimrz)) !ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² RAD ΠΈ Z RAD (l)=rKatvn+shWKr/2dO;Z (l)=shWKz/2dOΠ³-ΠΊΠΎΠΎΡΠ΄.ΡΠ΅Π½ΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½Ρ.ΠΏΠ»ΠΎΡ.Π² ΠΊΠ°Ρ. NACHWD (l)=nrK+l; KONWD (l)=ndimrz !Π½Π°Ρ.ΠΈ ΠΊΠΎΠ½. Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ Π² Π΄ΠΈΡΠΊΠ΅! Π Π°ΡΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠ΅Π½ΡΡΠΎΠ² ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ Π² ΠΊΠ°Ρ. ΠΈ Π·Π°ΠΏΠΎΠ»Π½. ΠΈΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² RAD ΠΈ Z:
CALL KRD_PLOSK_KAT (RAD, Z, ndimrz, l, nrWKr, nrWKz, shWKz, shWKr, tlzwwr, otl, nrK) RAD (nrk+l)=rDvn+shDr/2dO;Z (nrk+l)=hKrach+sO+shDz/2dO+x !R, Z-KOop.l-ti ΠΏΠ»ΠΎΡ. Π² Π΄ΠΈΡΠΊΠ΅ CALL KRD_PLOSK_KAT (RAD, Z, ndimrz, nrK+l, nrDr, nrDz, shDz, shDr, OdO, otl, nrD) CALLIndKat_plosk_q (RAD;Z, ndimrz, nwK, NACHW, KONW, nrWKr;nrWKz, shWKr, shWKz, LkPer) CALL lndMWtk_qq (RAD, Z, ndimrz, nrDr, nrDz, nrK+l, ndimrz, shDr, shDz, LdPer).
CALL VZI_KK (RAD, Z, ndimrz, nwK, l, NACHW, KONW;NACHWD, KONWD, vziPer); ksv=vziPer/SQRT (LkPer*LdPer) !ΠΊΠΎΡΡ.ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΊΠ°ΡΡΡΠΊΠΈ ΠΈ Π΄ΠΈΡΠΊΠ° RlPer=SoprK+Rprov+RTiristor !ΠΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ 1-Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΠ° LlPer=LkPer+LTiristor+LProv !ΠΠ½Π΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΡ 1-Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΠ°! ΠΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π‘ΠΠ£ (1.31):
Y=OdO; Y (3)=UcO; t=OdO; tend=OdO; k=l; XARR (1)=0.; YARR (3,l)=UcO; ido=l dPer=LlPer*LdPer-vziPer*vziPer IdPerΠΠ΅ΡΠ΅ΡΠΌΠΈΠ½Π°Π½Ρ Π‘ΠΠ£ (1.19), ΡΠΌ.(1.32).
!ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΈΡ. ΡΡ-ΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅:
DO; k=k+l !ΠΊ-Π‘ΡΡΡΡΠΈΠΊ ΡΠ°Π³ΠΎΠ² Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½. ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² XARR, YARR Π΄Π»Ρ ΠΏΠΎΡΡΡ. Π³ΡΠ°ΡΠΈΠΊΠΎΠ² tend=tend+ht !ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ CALL DIVPRK (ido, 3, FCN2,t, tend, tol, PARAM, Y) !ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π‘ΠΠ£ (1.31).
il=(Y (l)*LdPer-Y (2)*vziPer)/dPer; i2=(Y (2)*LlPer-Y (l)*vziPer)/dPer !Π Π΅Ρ.(1.32) ΠΎΡΠ½ΠΎΡΠΈΡ. ΡΠΎΠΊΠΎΠ² !ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ²: XARR (k)=t; YARR (l, k)=il; YARR (2,k)=i2; uc=Y (3); YARR (3,k)=uc !Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ»Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· Π½ΠΎΠ»Ρ ΡΠΎΠΊΠ° il ΠΊΠ°ΡΡΡΠΊΠΈ: if (il>OdO.AND.ipred<=OdO) then.
tO=(ipred*t-il*tpred)/(ipred-il); Tperiod=2d0*t0; f=0.5d0/t0; omga=piu2*f exit endif.
ipred=il; tpred=t !ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ° ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄. ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΡΠΎΠΊΠ° il ΡΠ΅ΡΠ΅Π· Π½ΠΎΠ»Ρ if (t>=tkon) exit! Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ENDDO;
ido=3; CALL DIVPRKfido, 3, FCN2,t, tend, tol, PARAM, Y) ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΠΏ DIVPRK kollter=kollter+l; if (kollter>5)goto 5.
DeltK=SQRT (2dO*udSoprK/(omga*rmu));DeltD=SQRT (2dO*udSoprD/(omga*rmu))!3KB.my6. WRITE (out, 110) hKrach, fjDeltl^Soprl^LkPe^hDracl^DeltD^dPer, LdPer, vziPe^Rnarl^ksv 110 FORMAT (3pF5.2,0pF6.0,3pF5.2,F7.2,6pF6.1,3pF6.2,F5.2,6pF6.2,9pF6.2,6pF5.2 &, 3pF5.1,0pF5.2).
!Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΡΡΠ° R, L ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΈΡΠΊΠ° ΠΏΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π».Π³Π»ΡΠ±.ΠΏΡΠΎΠ½ΠΈΠΊΠ½.ΠΏΠΎΠ»Ρ: if (ABS (DeltD-hDrach)/hDrach>epsDel.AND.DeltD.
else; if (DeltD>=hDisk)then; perechD=.false.; hDrach=hDisk; endif endif.
!Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΡΡΠ° R, L ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠ°Ρ-ΠΊΠΈ ΠΏΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π».Π³Π»ΡΠ±.ΠΏΡΠΎΠ½ΠΈΠΊΠ½.ΠΏΠΎΠ»Ρ: if (ABS (DeltK-hKrach)/hKrach>epsDel.AND.DeltK.
else; if (DeltK>=tWKz)then;perechK=.false.; hKrach=tWKz; endif endif.
!Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΡΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠ°ΡΡΡΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΈΡΠΊΠ°: if (perechD.OR.perechK) then; perechD=.false.; perechK=.false.
!ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π²Π΄Π²ΠΎΠ΅ ΡΠ°Π³ΠΎΠ² ΡΠ°Π·Π±ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ ΠΊΠ°ΡΡΡΠΊΠΈ ΠΈ Π΄ΠΈΡΠΊΠ°:
! if (j==0)then; shrzbK=shrzbK/2dO; shrzbD=shrzbD/2dO; j=l;endif goto 3 {ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ°ΡΡΡΡΡ endif.
- 5 WRITE (out, 115) RlPer, LlPer, RdPer, LdPer, vziPer, x
- 115 FORMAT ('R, L, M ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡ-ΠΉ (1.31),(1.32):'/'Rl=', 3pF8.3,,MOM&
& Π='/6ΡΠ Π±.1/'ΠΌΠΊΠΠ½; SoprD=', 6pF7.3,'MKOM; Ld=', 9pF6.2,'Hl" H; vzi='/6pF5.2 &.
'ΠΌΠΊΠΠ½ x='/3pf4.2/,MM') !FDATA (1:)=L1; (2:)=R1; (3:)=M; (4:)=LD; (5:)=RD END SUBROUTINE ParameterJDM.
SUBROUTINE C_serialRL (emk, CRs, CLs, n).
!ΠΠΏ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ CRs ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΠ½Π΄ΡΠΊΡΠΈΠ²- !Π½ΠΎΡΡΡ CLs ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΡΠΌΠΊΠΎΡΡΠΈ emk.
{ΠΠ°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΈΠΏΠ° ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ°, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. {ΠΠ΄Π΅ΡΡ CRs Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΠ΅ΡΡΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΏΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ {ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠΎΠ² ΡΠΈΠΏΠ° DC 85-Π‘, a CLs — Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ.
INTEGER: ΠΏ.
REAL (8):emk, CRs, CLs, a, RO, b &.
Cl=280d-6,C2=3300d-6,Rl=4.1d-3,R2=l.ld-3,Ll=50d-9,L2=95d-9 !ΠΠ· ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° SAVE a, RO, b if (n==0) then.
a=log (Rl/R2)/(Cl-C2); RO=Rl/EXP (a*Cl); b=(L2-Ll)/(C2-Cl); n=l endif.
CRs=RO*EXP (a*emk); CLs=Ll+b*(emk-Cl).
END SUBROUTINE C_serialRL.
SUBROUTINE FCN2 (nl, tl, Yl, YPR) {ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΡΡΡΡΠ° ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ Π‘ΠΠ£ (1.31).
USE DESCRIBE; IMPLICIT NONE; INTEGER nl REAL (8): Yl (nl), YPR (nl), tl il=(Yl (l)*LdPer-Yl (2)*vziPer)/dPer.
i2=(Yl (2)*LlPer-Yl (l)*vziPer)/dPer {ΡΠ°ΡΡΡΡ ΡΠΎΠΊΠΎΠ² ΠΏΠΎ ΡΡ-ΡΠΌ (1.32).
{ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΈΡ. ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ (1.31):
YPR (l)=-il*RlPer-Y (3); YPR (2)=-i2*RdPer; YPR (3)=il/emk END SUBROUTINE FCN2.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° CalculatingSpline
ΠΡΠ·ΠΎΠ²: CALL CalculatingSpline SUBROUTINE CalculatingSpline USE DESCRIBE; USE MSIMSL.
Ll=DCSVAL (x, nlntervX, BREAK (l:l:), CSCOEF (l:l:)) !ΠΠ½Π΄-ΡΡ ΠΊΠ°ΡΡΡΠΊΠΈ.
Rl=DCSVAL (x, nlntervX, BREAK (2:2:), CSCOEF (2:2:)) {ΠΠΊΡ.ΡΠΎΠΏΡ.ΠΊΠ°ΡΡΡΠΊΠΈ.
vzi=DCSVAL (x, nlntervX, BREAK (3:3:), CSCOEF (3:3:)) !ΠΠ·.ΠΈΠ½Π΄.ΠΊΠ°Ρ-ΠΊΠΈ ΠΈ Π΄ΠΈΡΠΊΠ°.
dvzdx=DCSDER (l, x, nlntervX, BREAK (3:3:), CSCOEF (3:3:)) {ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½Π°Ρ dvzi/dx LD=DCSVAL (x, nlntervX, BREAK (4:4:), CSCOEF (4:4:)) !ΠΠ½Π΄-ΡΡ Π΄ΠΈΡΠΊΠ°.
SoprD=DCSVAL (x, nlntervX, BREAK (5:5:), CSCOEF (5:5:)) {ΠΠΊΡ.ΡΠΎΠΏΡ.Π΄ΠΈΡΠΊΠ° END.