Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
(1:14) ; expected
C * WDTN * [‚єўҐ¦¤ Ґ ¤ Ё § І°ЁЈ®®¬ҐІ°Ё· ЁўҐ« ¶Ёї] C Џ ° ¬ҐІ°Ё : KD - Ѓ°®© ¤ ¤ҐЁІҐ І®·ЄЁ C KT - Ѓ°®© ў±Ё·ЄЁІҐ І®·ЄЁ C KP - Ѓ°®© ®ўЁІҐ І®·ЄЁ C KZ - Ѓ°®© Ё§¬Ґ°ҐЁІҐ Ї°ҐўЁёҐЁї C MZ - ‘°Ґ¤ Єў. Ј°ҐёЄ § Ё¬Ґ°Ґ §ҐЁІҐ єЈє« ў[cc] C C1 - \ Љ®±І ІЁ § Ё§·Ё±«їў Ґ_______ C C2 - > Ms= C1[mm]+C2*S[km]+C3*\/ S[m] C C3 - / ±°Ґ¤ЁІҐ Єў ¤° ІЁ Ј°ҐёЄЁ ¤є«¦ЁЁІҐ C EI - ’®·®±І Ё§¬Ґ°Ґ І ўЁ±®·Ё Ё±І°і¬ҐІ ў [¬¬] C ES - ’®·®±І Ё§¬Ґ°Ґ І ўЁ±®·Ё ±ЁЈ «ЁІҐ ў [¬¬] C KL - Љ« ± ¬°Ґ¦ І (ў Ґ¤Ё Є«± ¶Ёї) C SKD - ‘єЎЁ° ІҐ« Є®±І І ¤ «ҐЄ®¬Ґ° ў [m] C QZ - Њ № ЎҐ Є®ҐґЁ¶ЁҐІ § ¤¬®°±ЄЁІҐ ўЁ±®·ЁЁ C EMD - ‘°.Єў. Ј°ҐёЄ ®І ¤ўі±І° ® Ё§¬Ґ°ҐЁ Ї°ҐўЁёҐЁї C KODOB- Љ®¤ ®ЎҐЄІ - ¤® 8 ±Ё¬ў®« (ЎіЄўЁ « ІЁЁ¶ Ё ¶Ёґ°Ё) C IMEOB- €¬Ґ ®ЎҐЄІ - ¤® 79 ±Ё¬ў®« (ЎіЄўЁ Ё ¶Ёґ°Ё) C M ±ЁўЁ :IM - ѓ«®Ў «Ґ ¬ ±Ёў(integer), Є®©І® Ї®Є°Ёў ў±Ё·ЄЁ ®±І «Ё C IM(1)--->NT(1) - Ќ®¬Ґ° І®·ЄЁІҐ C IM(N2)-->NH(1) - “Є § ІҐ« § Ў«ѕ¤ ў ЁІҐ §ҐЁІЁ єЈ«Ё C IM(N3)-->IH(1) - Ќ ¤¬®°±ЄЁІҐ ўЁ±®·ЁЁ І®·ЄЁІҐ C IM(N4)-->NP(1) - Ќ®¬Ґ° Ў«ѕ¤ ў ЁІҐ І®·ЄЁ C IM(N5)-->IDH(1)- …ЄўЁў «ҐІЁ Ї°ҐўЁёҐЁї C IM(N6)--> S(1) - €§¬Ґ°ҐЁ ¤є«¦ЁЁ (®І°Ё¶ ІҐ«ЁІҐ ±є± § Є - ) C IM(N7)-->NT(1) - Ќ®¬Ґ° І®·ЄЁІҐ C IM(N8)-->NZ(1) - “Є § ІҐ« § Ё§¬Ґ°ҐЁІҐ §ҐЁІЁ єЈ«Ё (Ї°ҐўЁё.) C IM(N9)-->NP(1) - Ќ®¬Ґ° Ў«ѕ¤ ў ЁІҐ І®·ЄЁ C IM(N10)-->Z(1) - €§¬Ґ°ҐЁІҐ §ҐЁІЁ єЈ«Ё C IM(N11)-->S(1) - ђ §±І®їЁї (ђ Ў®ІҐ) C IM(N12)--> T(1) - €§¬Ґ°ҐЁІҐ ўЁ±®·ЁЁ ±ЁЈ «ЁІҐ C IM(N13)-->VI(1) - €§¬Ґ°ҐЁІҐ ўЁ±®·ЁЁ Ё±І°і¬ҐІЁІҐ C Џ®¤Ї°®Ј° ¬Ё: ORAZM - ®° §¬Ґ°їў Ґ ¬ ±ЁўЁІҐ C WKOOR - ўєўҐ¦¤ Ґ Є®ІЁІҐ C TRNI - ўєўҐ¦¤ Ґ Ё§¬Ґ°ҐЁІҐ ўҐ«Ё·ЁЁ Ї°Ё І°.Ёў. C SIW - ±®°ІЁ° Ґ Ё§¬Ґ°ҐЁІҐ ўҐ«Ё·ЁЁ C MNOM - Ї°Ґ®¬Ґ°Ё° Ґ ®¬Ґ° І Ў«ѕ- C ¤ ў ЁІҐ І®·ЄЁ (¬ ёЁЁ ®¬Ґ° ) CHARACTER KODOB*9,IMFCOR*12,IMFDPI*12,IMEOB*80,CDI*5,C*8 CHARACTER FPRO*12,FLIS*12 DOUBLE PRECISION QK,QS,QZ DIMENSION IM(25000),NW(600) INTEGER VI(600),DH(3000),Z(3000),T(3000),S(3000),D(3000),HO,YO INTEGER NT(600),NZ(601),X(600),Y(600),H(600),KLH(600),NP(3000),XO INTEGER*4 NOMSER(7),NOMGET(7) INTEGER*2 IYEAR,IMONTH,IDAY EQUIVALENCE (IM,NT),(IM(601),NZ),(IM(1202),H),(IM(1802),NP) EQUIVALENCE (IM(4802),DH),(IM(7802),D),(IM(10802),T),(IM(13802),Y) EQUIVALENCE (IM(14402),X),(IM(15002),Z),(IM(18002),S) EQUIVALENCE (IM(21002),VI),(IM(21602),KLH),(IM(22202),NW) COMMON /BLOC/KD,KP,KT,KL,KZ,ZM,EM,EMD,NSTR,SSR,SO,CDI,QK COMMON /BLOK/MXRT,MXRP,XO,YO,HO,HS,KSYS,NZON,C1,C2,C3,QS,QZ DATA NOMSER/-1566463070,-1414815320,-1501577102, * -2098422714,2015503160,-1432101055,-2007498278/ 99 FORMAT(A) 100 FORMAT(12X,'ЉЋ„ ЌЂ ЋЃ…Љ’Ђ/ЌЋЊ…ђ ЌЂ ”Ђ‰‹Ђ : ',$) 101 FORMAT(/9X,56('*'),/9X,'*',54X,'*', * /9X,'* Ћ Ѓ ђ Ђ Ѓ Ћ ’ Љ Ђ Ќ Ђ Ќ € ‚ … ‹ Ђ — Ќ Ђ Њ ђ … † Ђ *', * /9X,'*',54X,'*', * /9X,'* (ЏђЋѓђЂЊ€ "WDTN","POVO","PIVO", ‚€Ђ‘,‘Ћ”€џ - 1990.) *', * /9X,'*',54X,'*', * /9X,'* ‚љ‚…†„ЂЌ… ЌЂ „ЂЌЌ€ ‡Ђ Ќ€‚…‹Ђ—ЌЂ Њђ…†Ђ *', * /9X,'*',54X,'*', * /9X,'* Љ Ћ „ Ќ Ђ Ћ Ѓ … Љ ’ Ђ : ',A, ' *', * /9X,'*',54X,'*', * /9X,'* 1. ѓ … Ћ Њ … ’ ђ € — Ќ Ђ Ќ € ‚ … ‹ Ђ – € џ *', * /9X,'*',54X,'*', * /9X,'* 2. ’ ђ € ѓ Ћ Ќ Ћ Њ … ’ ђ. Ќ € ‚ … ‹ Ђ – € џ *', * /9X,'*',54X,'*', * /9X,'* 3. € ‡ • Ћ „ Ћ ’ Џ ђ Ћ ѓ ђ Ђ Њ Ђ ’ Ђ *', * /9X,'*',54X,'*',/9X,56('*')) 102 FORMAT(/12X,'€ ‡ Ѓ … ђ … ’ … ( 1, 2 Ё«Ё 3 ): ',$) 103 FORMAT(13X,'…¤®±І ® Ё§¬e°ҐЁ Ї°ҐўЁёҐЁї:',I4,' ????') 104 FORMAT(/10X,'‘°Ґ¤ І Єў ¤° І Ј°ҐёЄ Ё§·Ё±«Ґ ®І ° §«ЁЄЁІҐ ў', * /10X,'¤ўі±І° ® Ё§¬Ґ°ҐЁІҐ Ї°ҐўЁёҐЁї Ґ ±Ґ ±єЈ« ±іў ',/10X, * '¤®Ў°Ґ ±є± § ¤ ¤Ґ І ±І®©®±І ??!!**************') 105 FORMAT(13X,'‚Ё±ї№Ё ЁўҐ« ·Ё µ®¤®ўҐ: ї¬ ') 106 FORMAT(13X,'‚Ё±ї№Ё ЁўҐ« ·Ё µ®¤®ўҐ: ',I2,' ***') 107 FORMAT(2X,'** Џ°Ґ¤іЇ°Ґ¦¤ҐЁҐ - ’®·Є ',A,' Ґ ®І ўЁ±ї№ µ®¤ !?') 108 FORMAT(13X,'…¤®±І ® Ё§¬e°ҐЁ Ї°ҐўЁёҐЁї: ї¬ ') 110 FORMAT('S ',A) 111 FORMAT('N ',A,2I4) 134 FORMAT(1H,/40X,'±І°.-',I2,' -'//30X, * '€§¬Ґ°ҐЁ Ї°ҐўЁёҐЁї',//9X,56('_'), * /9X,'| ®І Єє¬ Ё§¬Ґ°Ґ® ®Ў°.Іe¦. ° §±І®їЁҐ|' * ,/9X, '| ®¬Ґ° ®¬Ґ° Ї°ҐўЁёҐЁҐ 1/p x. ў І.±І.|' *,/9X,'|',54('-'),'|') 200 FORMAT(9X,'|',A,A,3F12.3,' |') 201 FORMAT(' ** ‹ЁЇ±ў ° §Ј° Ё·ЁІҐ«ї "/" ў Ё¬ІҐІ® ґ ©« !!!???', */' ** Ё«Ё Є®¤ ®ЎҐЄІ Ґ § ¤ ¤Ґ ± Ї®ўҐ·Ґ ®І 8 ±Ё¬ў®« ') 202 FORMAT(' ** ‘Ё¬ў®« "/" e Ґ¤®Їі±ІЁ¬ ў Ё¬ҐІ® ґ ©« !!!???') 204 FORMAT(' ** ‚ Ё¬ҐІ® ґ ©« Ґ ¬®¦Ґ ¤ Ё¬ Ї°®ЎҐ« !!!???') 203 FORMAT(3X,75('-')) CALL GETDAT( IYEAR, IMONTH, IDAY ) IF(IYEAR.LE.1996)GO TO 328 IF(IMONTH.LE.1)GO TO 328 C----------------------- OPEN(1,FILE='SKG.TMP',FORM='UNFORMATTED') READ(1,ERR=9787)NOMGET READ(1,ERR=9787)NOMGET DO 9786 I=1,7 IF( NOMGET(I).NE.NOMSER(I) ) THEN REWIND 1 NOMGET(7)=752403 WRITE(1)NOMGET GOTO 9787 ENDIF 9786 CONTINUE CLOSE(1) C----------------------- C IF( NCHECK().NE.1234 )NOMGET(7)=752403 328 FLIS='KTRN.LIS' FPRO='KTRN.PRO' NSTR=1 KT=0 KD=0 MXRT=600 MXRP=3000 5 PRINT 100 READ(*,99,ERR=5)KODOB IF(INDEX(KODOB,'.').NE.0)GOTO 327 INX=INDEX( KODOB, '/')-1 IF(INX.LE.0)PRINT 201 IF(INX.LE.0)GO TO 5 KODOB(INX+1:INX+1)=' ' IND=INX IF(IND.GE.8)GO TO 8 KODOB(INX+1:8)=KODOB(INX+2:9) IND=INDEX(KODOB,' ')-1 IF(IND.LE.0)PRINT 204 IF(IND.LE.0)GO TO 5 IF(INDEX(KODOB,'/').GT.0)WRITE(*,202) IF(INDEX(KODOB,'/').GT.0)GO TO 328 8 IMFDPI=KODOB(1:IND)//'.DPI' IMFCOR=KODOB(1:INX)//'.COR' C PRINT 101,KODOB C 4 PRINT 102 C READ(*,*,ERR=4)KOF C IF(KOF.EQ.3)STOP C IF((KOF.LT.1).OR.(KOF.GT.2))GO TO 4 C C ‚єўҐ¦¤ Ґ Ї ° ¬ҐІ°Ё, Є®®°¤Ё ІЁ Ё Ё§¬Ґ°ҐЁ ўҐ«Ё·ЁЁ, C ®° §¬Ґ°їў Ґ ¬ ±ЁўЁ, Ё§·Ё±«їў Ґ Ї ° ¬ҐІ°Ё OPEN(2,FILE=FPRO) CALL TRNI(NT,VI,NZ,NP,Z,T,S,D,DH,X,Y,H,KLH,NW,EMI,L,IMFDPI, * IMEOB,IMFCOR) KP=KT-KD N=(NZ(KT+1)-1-L)/2 IF(KD.LE.0)GO TO 329 IF(KP.LE.0)GO TO 330 OPEN(1,FILE='KTRN.LIS',ACCESS='APPEND') IF(N.GT.0)THEN WRITE(1,103)N WRITE(2,103)N ELSE WRITE(1,108) WRITE(2,108) END IF IF((L.GT.5).AND.(ABS(EM-EMD).GT.EM))WRITE(1,104) KWP=0 DO 23 I=KD+1,KT IF(NZ(I+1)-NZ(I).GE.2)GO TO 23 PRINT 107,C(NT(I)) WRITE(1,107)C(NT(I)) KWP=KWP+1 23 CONTINUE IF(KWP.LE.0)WRITE(2,105) IF(KWP.GT.0)WRITE(2,106)KWP M=0 DO 22 I=1,KT DO 29 IK=NZ(I),NZ(I+1)-1 K=NP(IK) C IF(D(IK).LE.0)GO TO 29 M=M+1 IF(MOD(M,50).NE.1)GO TO 30 NSTR=NSTR+1 WRITE(1,134)NSTR 30 WRITE(1,200)C(NT(I)),C(NT(K)),DH(IK)/QS,T(IK)/QZ,D(IK)/QS 29 CONTINUE 22 CONTINUE WRITE(1,203) CLOSE(1) OPEN(1,FILE='SXEMA.TRN') WRITE(1,*)KL DO 71 I=1,KT WRITE(1,110)C(NT(I)) DO 72 IK=NZ(I),NZ(I+1)-1 IF(D(IK).LE.0)GO TO 72 WRITE(1,111)C(NT(NP(IK))),1,1 72 CONTINUE 71 CONTINUE CLOSE(1) N2=KT+1 N3=N2+KT+1 N4=N3+KT N5=N4+KZ N6=N5+KZ N7=N6+KZ N8=N7+KZ N9=N8+KT+1 N10=N9+KT+1 CALL SORT(N2,KT+1,IM,NZ) CALL SORT(N3,KT,IM,H) CALL SORT(N4,KZ,IM,NP) CALL SORT(N5,KZ,IM,DH) CALL SORT(N6,KZ,IM,D) CALL SORT(N7,KZ,IM,T) CALL SORT(N8,KT,IM,Y) CALL SORT(N9,KT,IM,X) OPEN(1,FILE='NGM.TMP',FORM='UNFORMATTED') IRA=0 WRITE(1)KD,KP,KT,EM,EMD,KZ,NSTR,QS,SSR,EMI,EMZX,EMWX,CDI,IRA,FPRO WRITE(1)KL,N2,N3,N4,N5,N6,N7,N8,N9,N10,QZ,IMEOB,IMFCOR,KODOB,FLIS DO 33 I=1,N10,512 K=I+511 IF(K.GT.N10)K=N10 WRITE(1)(IM(J),J=I,K) 33 CONTINUE 9787 CLOSE(1) STOP '$@~^' 329 PRINT *,'* ѓ°ҐёЄ - Ѓ°®їІ ¤ ¤ҐЁІҐ І®·ЄЁ Ґ Ї® ¬ «єЄ ®І 2 !!??' PRINT *,'* Џ°®ўҐ°ҐІҐ Ї° ўЁ«® «Ё Ґ § ¤ ¤Ґ Є« ± ¬°Ґ¦ І !!??' GOTO 400 330 PRINT *,'* ѓ°ҐёЄ - Ќї¬ ®ўЁ І®·ЄЁ ў § ¤ ¤Ґ І ¬°Ґ¦ !!??' PRINT *,'* Џ°®ўҐ°ҐІҐ Ї° ўЁ«® «Ё Ґ § ¤ ¤Ґ Є« ± ¬°Ґ¦ І !!??' 400 STOP '* STOP - €§Їє«ҐЁҐІ® Ґ Ї°ҐЄ° ІҐ®!!!!!!!! ' 327 STOP '* STOP - ѓ°ҐёЄ - Ќe¤®Їі±ІЁ¬ ±®¬ў®« ў Є®¤ ®ЎҐЄІ [.] ' END C FILE (TRNI), (І°ЁЈ®®¬ҐІ°Ё· ЁўҐ« ¶Ёї - ° §±І®їЁї ) SUBROUTINE TRNI(NT,VI,NZ,NP,Z,T,S,D,DH,X,Y,H,KLH,NW,EMI,L, * IMFDPI,IMEOB,IMFCOR) CHARACTER IMFDPI*12,IMFCOR*12,IMEOB*80,PZ*3,CDI*5,C*8,ZWE*5 CHARACTER CHAR*80,IZP*50 DOUBLE PRECISION QK,QS,QZ,ROZ,DPR,SKZ,DKZ,ZRAD,FRAD,DCOF INTEGER*2 IYEAR,IMONTH,IDAY DIMENSION PAR(8),PARAM(8,5) INTEGER VI(*),Z(*),S(*),T(*),D(*),DH(*),EKNM INTEGER NT(*),NZ(*),NP(*),KLH(*),NW(*),X(*),Y(*),H(*),XO,YO,HO COMMON /BLOC/KD,KP,KT,KL,KZ,ZM,EM,EMD,NSTR,SSR,SO,CDI,QK COMMON /BLOK/MXRT,MXRP,XO,YO,HO,HS,KSYS,NZON,C1,C2,C3,QS,QZ C PAR(Mz,a,b,c,tci,tcs,tvi,tvs) 99 FORMAT(A) 100 FORMAT(12X,'** TRNI - ‚єўҐ¦¤ Ґ Ё§¬Ґ°ҐЁІҐ ўҐ«Ё·ЁЁ.') 101 FORMAT(12X,'** TRNI - €§·Ё±«їў Ґ Ї°ҐўЁёҐЁїІ . OІЇҐ· Іў Ґ') 102 FORMAT(2X,A,A,2F7.3,F9.3,F10.4,2F9.3,F7.1,A) 103 FORMAT(/13X,'‘°Ґ¤ ¤є«¦Ё (Ї°ЁҐІ § Ґ¤. ІҐ¦Ґ±І): S±°= ',F7.0,A, * /13X,'‘°Ґ¤ Єў ¤° І Ј°ҐёЄ § Ґ¤ЁЁ¶ ІҐ¦Ґ±І ®І § ¤ ¤ҐЁІҐ', * /13X,'±І®©®±ІЁ Ё§µ®¤ЁІҐ Ї ° ¬ҐІ°Ё : ЊҐ =',F7.1,' [mm]', * /13X,'‘°Ґ¤ Єў ¤° І Ј°ҐёЄ § Ґ¤ЁЁ¶ ІҐ¦Ґ±І ®І § ¤ ¤ҐЁІҐ', * /13X,'±І®©®±ІЁ Ї ° ¬ҐІ°ЁІҐ ў Ё±І°іЄ¶ЁїІ ЊҐ =',F7.1,' [mm]', * /13X,'‘°Ґ¤ Єў ¤° І Ј°ҐёЄ § Ґ¤ЁЁ¶ ІҐ¦Ґ±І ®І ° §«ЁЄЁІҐ', * /13X,'ў ¤ўі±І° ® Ё§¬Ґ°ҐЁІҐ Ї°ҐўЁёҐЁї: ЊҐ =',F7.1,' [mm]') 104 FORMAT(12X,'ERR**TRNI - ѓ°ҐёЄ Ї°Ё ·ҐІҐҐІ® ґ ©« ',A,/A, */12X,'±«Ґ¤ ',I3,' - І Є®«® ') 105 FORMAT(3X,'ERR** ‘є¬ЁІҐ« ўЁ±®·Ё Ё±І°і¬ҐІ ®І',A,F8.3) 106 FORMAT(3X,'ERR** ‘є¬ЁІҐ« ўЁ±®·Ё ±ЁЈ « ',A,A,F8.3) 107 FORMAT(3X,'ERR** Ќ Ў«ѕ¤ҐЁҐІ® ',2I5,F9.4,2F9.3,' Ґ Ё§µўє°«Ґ®') 108 FORMAT(10X,'M Є±Ё¬ « ° §«ЁЄ ў ¤ўі±І°. Ё§¬. Ї°ҐўЁёҐЁї',F6.1, *' [mm]',/10X,'MЁЁ¬ « ° §«ЁЄ ў ¤ўі±І°. Ё§¬. Ї°ҐўЁёҐЁї',F6.1, *' [mm]',/10X,'[PV] =',F9.1,10X,'[PV]/N =',F6.1, */10X,'[IPVI]=',F9.1,10X,'[IPVI]/N=',F6.1) 109 FORMAT(/13X,'„ўі±І° ® Ё§¬Ґ°ҐЁ Ї°ҐўЁёҐЁї: ',I5,/13X,35('-')) 110 FORMAT(13X,'ЌҐ¤®Їі±ІЁ¬Ё ° §«ЁЄЁ: ї¬ ') 111 FORMAT(13X,'ЌҐ¤®Їі±ІЁ¬Ё ° §«ЁЄЁ:',10X,I4,' ***') 112 FORMAT(/13X,'‡ҐЁІЁ єЈ«Ё Ё§¬Ґ°ҐЁ Ї°Ё ¤ўҐ Ї®«®¦ҐЁї ', */18X,' §°ЁІҐ« І І°єЎ N =',I4,/13X,40('-'),/13X, *'€¤ҐЄ± Ј°ҐёЄ ўҐ°ІЁЄ «Ёї Є°єЈ i =',F6.1,' [cc]',/13X, *'‘°Ґ¤ Єў. Ј°ҐёЄ § Ё§¬Ґ°Ґ §ҐЁІҐ єЈє« Mz =',F5.1,' [cc]') 113 FORMAT(/13X,'‡ҐЁІЁ єЈ«Ё Ё§¬Ґ°ҐЁ Ї°Ё ¤ўҐ Ї®«®¦ҐЁї ', */18X,' §°ЁІҐ« І І°єЎ - ї¬ ',/13X,40('-')) 114 FORMAT(/13X,'ѓ®«ї¬ Ё¤ҐЄ± Ј°ҐёЄ ' ,A,A,F6.0,' [cc]*****') 133 FORMAT(12X,'MЁЁ±ІҐ°±Іў® °ҐЈЁ® «®І® ° §ўЁІЁҐ Ё Ў« Ј®', *'і±І°®©±Іў®І®',/20X,'ѓ« ў® іЇ° ў«ҐЁҐ "ЉЂ„Ђ‘’љђ € ѓ…Ћ„…‡€џ"', */11X,60('_'),///30X,'Џ ђ Ћ ’ Ћ Љ Ћ ‹',//13X, *'§ Ї°®ўҐ°Є ЈҐ®¤Ґ§Ё·Ґ±ЄЁІҐ Ё§¬Ґ°ў Ёї Ё ®Ў° Ў®ІЄ І Ё¬',/30X, *' ·°Ґ§ Ї°®Ј° ¬ SKGIOM ',//13X,'’°ЁЈ®®¬ҐІ°Ё· ЁўҐ« ¶Ёї - Ї°®', *'ўҐ°Є ·°Ґ§ KTRN',//13X,'OЎҐЄІ: ҐЄ¬',I6,', ',A, * //13X,'€§Їє«ЁІҐ« :',A) 135 FORMAT(/13X,'Љ« ± ¬°Ґ¦ І :',29X,I5, * //13X,'Ѓ°®© ¤ ¤ҐЁІҐ °ҐЇҐ°Ё: ',I5, * //13X,'Ѓ°®© ®ўЁІҐ °ҐЇҐ°Ё [k]: ',I5, * //13X,'Ѓ°®© ў±Ё·ЄЁ І®·ЄЁ: ',I5, * //13X,'Ѓ°®© Ё§¬Ґ°ҐЁІҐ Ї°ҐўЁёҐЁї [n]: ',I5, * //13X,'KoeґЁ¶ЁҐІ ®Ї°Ґ¤Ґ«Ґ®±І [n]/[k]: ',F5.1,A, * //13X,'ЂЇ°Ё®° ±І®©®±І ±°. Єў.Ј°ҐёЄ : Mz =',F5.0,' [cc]', * //13X,'’®·®±І ўЁ±®·Ё І Ё±І°і¬ҐІ :Mi =',F5.0,' [cc]', * //13X,'To·®±І ўЁ±®·Ё І ±ЁЈ « : MІ =',F5.0,' [cc]', * //13X,'Љ®±І ІЁ § ®Ї°Ґ¤Ґ«їҐ І®·®±ІІ ° §±І®їЁїІ :', * //13X,'Ms=',F5.1,'[mm] + ',F5.1,'*S[km] + ',F5.1,'*SQRT(S[m])') 219 FORMAT('',/50X,'±І°. -',I2,' -',///9X, * '‚µ®¤Ё ¤ Ё. Џ° ўЁ Ё ®Ў° ІЁ Ї°ҐўЁёҐЁї. ђ §«ЁЄЁ (V-ў ¬¬)', * //' ®І N Єє¬ N I(i) T(k) S(ik)',5X, * 'Z(ik) DH(ik) DH(ki) V') DATA PVV,SPV,SMPV,SUMS,VMAX,VMIN,NZT,NZI/5*0.,9999,2*0/ DATA PARAM/20,10,30,5,5,15,10,10, 25,20,40,5,5,15,10,10, * 60,10,30,5,5,15,8,10, 80,20,40,5,5,15,10,10, * 100,20,40,5,5,15,10,10/ IZP=' . . . . . . . . . . . . . . . . . ' CALL GETDAT( IYEAR, IMONTH, IDAY ) C1=C2=C3=EI=ES=TVI=TVS=0. QS=1.D4 QZ=1.D5 REF=0.103 ROZ=63.66197723*QZ REFK=REF*ROZ/QS/12.742220E6 CDI=' [m] ' KZ=EKNM=0 KL=5 C WXOD PRINT 100 OPEN(1,FILE=IMFDPI) READ(1,99,ERR=325)IMEOB C ‚єўҐ¦¤ Ґ ¤ ЁІҐ 10 READ(1,99,ERR=325,END=45)CHAR WRITE(CHAR,*)CHAR I=MAX0(INDEX(CHAR,'Izp.'),INDEX(CHAR,'izp.'))+4 IF(I.GT.4)READ(CHAR(I:80),99)IZP C Џ ° ¬ҐІ°Ё IF(INDEX(CHAR(1:20),'Par').LE.0)GO TO 50 I=INDEX(CHAR,'Klasv')+5 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)KL I=INDEX(CHAR,' Mz')+3 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)ZM I=INDEX(CHAR,' a ')+3 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)C1 I=INDEX(CHAR,' b ')+3 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)C2 I=INDEX(CHAR,' c ')+3 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)C3 I=INDEX(CHAR,' tci')+4 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)EI I=INDEX(CHAR,' tcs')+4 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)ES I=INDEX(CHAR,' tvi')+4 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)TVI I=INDEX(CHAR,' tvs')+4 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)TVS I=INDEX(CHAR,'eknm')+4 IF(I.GT.5)READ(CHAR(I:80),*,ERR=300)EKNM GO TO 10 C €§¬Ґ°ў Ёї 50 I=INDEX(CHAR(1:20),'Stn')+3 IF(I.LE.3)GO TO 52 I=INDEX(CHAR,'І')+1 IF(CHAR(I:I).EQ.'І')I=I+1 IF(I.LE.2) GO TO 301 READ(CHAR(I:80),*,ERR=300)NOST IF((NOST.LE.0).OR.(NOST.GT.9999))GO TO 311 KT=KT+1 IF(KT.GE.MXRT)GO TO 306 NT(KT)=KODD(CHAR)+NOST NZ(KT)=KZ+1 VIKT=0. I=MAX0(INDEX(CHAR,'Vi'),INDEX(CHAR,'vi'))+2 IF(I.GT.3)READ(CHAR(I:80),*,ERR=300)VIKT VI(KT)=VIKT*QS 52 IF(INDEX(CHAR(1:20),'Nt').LE.0)GO TO 10 I=INDEX(CHAR,'І')+1 IF(CHAR(I:I).EQ.'І')I=I+1 IF(I.LE.1) GO TO 10 READ(CHAR(I:80),*,ERR=300)NPP I=INDEX(CHAR,'Z')+1 IF(I.LE.1)GO TO 10 READ(CHAR(I:80),*,ERR=300)DPR IF((DPR.GT.30.D0).AND.(DPR.LT.370.D0))GO TO 54 PRINT*,CHAR PAUSE '*** ’®§Ё § ЇЁ± ^ ±Ґ Ї°®Їі±Є Z < 30g - ІЁ±ҐІҐ Enter' GO TO 10 54 I=MAX0(INDEX(CHAR,'Vs'),INDEX(CHAR,'vs'))+2 IF(I.LE.2)GO TO 10 READ(CHAR(I:80),*,ERR=300)TKZ IF(TKZ.LE.10.)GO TO 53 PRINT*,CHAR PAUSE '*** ’®§Ё § ЇЁ± ^ ±Ґ Ї°®Їі±Є Vs > 10m - ІЁ±ҐІҐ Enter' GO TO 10 53 KZ=KZ+1 IF(KZ.GT.MXRP)GO TO 307 Z(KZ)=DPR*QZ NP(KZ)=KODD(CHAR)+NPP SKZ= -99999. DKZ= -99999. I=INDEX(CHAR,'S')+1 IF(I.GT.1)READ(CHAR(I:80),*,ERR=300)SKZ I=INDEX(CHAR,'D')+1 IF(I.GT.1)READ(CHAR(I:80),*,ERR=300)DKZ IF((SKZ.GT.1.D5).OR.(DKZ.GT.1.D5))GO TO 311 IF((NPP.LE.0).OR.(NPP.GT.9999))GO TO 311 IF((NOST.LE.0).OR.(NPP.LE.0))GO TO 311 IF(NT(KT).EQ.NP(KZ))GO TO 308 S(KZ)=SKZ*QS D(KZ)=DKZ*QS T(KZ)=TKZ*QS GO TO 10 45 CLOSE(1) NZ(KT+1)=KZ+1 IF(KZ.LE.1)GO TO 312 DO 47 I=1,8 47 PAR(I)=PARAM(I,KL-4) IF((KL.LE.4).OR.(KL.GT.9))GO TO 302 IF((ZM.LE.1.).OR.(ZM.GT.PAR(1)))GO TO 303 IF((TVI.LE.0.).OR.(TVI.GT.PAR(7)))GO TO 304 IF((TVS.LE.0.).OR.(TVS.GT.PAR(8)))GO TO 305 C €§Є«ѕ·ў І ±Ґ ±І ¶ЁЁІҐ ®І Є®ЁІ® ї¬ Ё§¬Ґ°ў Ёї KTT=KT KT=0 DO 37 I=1,KTT IF(NZ(I).EQ.NZ(I+1))GO TO 37 KT=KT+1 NT(KT)=NT(I) NZ(KT)=NZ(I) VI(KT)=VI(I) 37 CONTINUE C ‘І ¶ЁЁ ЎҐ§ Ў«ѕ¤ҐЁї 43 DO 14 I=1,KZ DO 15 K=1,KT IF(NP(I).EQ.NT(K))GO TO 14 15 CONTINUE KT=KT+1 NT(KT)=NP(I) NZ(KT)=KZ+1 VI(KT)=0. 14 CONTINUE NZ(KT+1)=KZ+1 CALL WKOOR(NT,X,Y,H,KLH,IMFCOR) C ‘®°ІЁ° Ґ Ї® ўє§µ®¤ї№ ®¬Ґ° DO 38 I=1,KT 38 NW(I)=I 40 KF=0 DO 39 I=1,KT-1 I1=KLH(NW(I))*10000000+NT(NW(I)) I2=KLH(NW(I+1))*10000000+NT(NW(I+1)) IF(I1.LE.I2)GO TO 39 J=NW(I) NW(I)=NW(I+1) NW(I+1)=J KF=1 39 CONTINUE IF(KF.GT.0)GO TO 40 OPEN(1,FILE='NGM.TMP',FORM='UNFORMATTED') DO 41 II=1,KT I=NW(II) WRITE(1)NT(I),VI(I),NZ(I+1)-NZ(I),X(I),Y(I),H(I),KLH(I) WRITE(1)(NP(IK),S(IK),Z(IK),D(IK),T(IK),IK=NZ(I),NZ(I+1)-1) 41 CONTINUE REWIND 1 DO 42 I=1,KT READ(1)NT(I) ,VI(I),L,X(I),Y(I),H(I),KLH(I) NZ(I+1)=NZ(I)+L READ(1)(NP(IK),S(IK),Z(IK),D(IK),T(IK),IK=NZ(I),NZ(I+1)-1) 42 CONTINUE CLOSE(1) CALL MNOM(KT,KZ,NT,NP) CALL KORE(NT,NZ,NP,D,X,Y,H) DO 48 I=1,NZ(KT+1)-1 48 NP(I)=NT(NP(I)) C Mz - ®І Ё¤ҐЄ± І Ј°ҐёЄ SW=0. SWW=0. NSW=0 DO 60 I=1,KT DO 61 IK=NZ(I),NZ(I+1)-2 IF(NP(IK).LE.0)GO TO 61 KF1=1 IF(Z(IK)/QZ.GT.200.D0)KF1=2 DO 62 IJ=IK+1,NZ(I+1)-1 IF(NP(IK).NE.NP(IJ))GO TO 62 KF2=1 IF(Z(IJ)/QZ.GT.200.D0)KF2=2 IF(KF1.NE.KF2)THEN W=(400.D0-(Z(IJ)+Z(IK))/QZ)*10000.D0 IF(ABS(W).GT.250)WRITE(2,114)C(NT(I)),C(NP(IK)),W SW=SW+W SWW=SWW+W*W NSW=NSW+1 NP(IJ)=-NP(IJ) GO TO 61 END IF 62 CONTINUE 61 CONTINUE 60 CONTINUE DO 63 I=1,NZ(KT+1)-1 IF(Z(I)/QZ.GT.200.D0)Z(I)=400.D0*QZ-Z(I) 63 NP(I)=IABS(NP(I)) C OЎҐ¤Ёїў Ґ Ё іЇ« Іїў Ґ KTT=KT KT=1 VST=VI(1) DO 44 I=2,KTT IF(NT(I).EQ.NT(I-1))THEN DO 46 IK=NZ(I),NZ(I+1)-1 T(IK)=T(IK)+VST-VI(I) 46 CONTINUE ELSE VST=VI(I) KT=KT+1 VI(KT)=VST NT(KT)=NT(I) NZ(KT)=NZ(I) KLH(KT)=KLH(I) H(KT)=H(I) X(KT)=X(I) Y(KT)=Y(I) END IF 44 CONTINUE NZ(KT+1)=NZ(KTT+1) CALL UPLA(KT,NT,NZ,NP,S,D,Z,T) KZ=NZ(KT+1)-1 PRINT 101 C €§·Ё±«їў Ґ Ї°ҐўЁёҐЁїІ CALL MNOM(KT,KZ,NT,NP) DO 12 I=1,KT IF(KLH(I).LT.KL)KD=I HI=H(I)/QS IF(H(I).LE.0)HI=HS DO 13 IK=NZ(I),NZ(I+1)-1 K=NP(IK) HK=H(K)/QS IF(H(K).LE.0)HK=HS DH(IK)=VI(I)-T(IK) IF(S(IK).GT.0)THEN ZRAD=(Z(IK)+S(IK)*REFK)/ROZ FRAD=DATAN(S(IK)/QS*DSIN(ZRAD)/(6.37111D6+HI+S(IK)*DCOS(ZRAD))) DCOF=DCOS(FRAD/2.D0) DH(IK)=DH(IK)+S(IK)*DCOS(ZRAD-FRAD/2.D0)/DCOF D(IK)=S(IK)*DSIN(ZRAD-FRAD)/DCOF ELSE ZRAD=(Z(IK)+D(IK)*REFK)/ROZ FRAD=D(IK)/QS/(6.371E6+HI) DH(IK)=DH(IK)+D(IK)*(DCOS(ZRAD-FRAD/2.)/DSIN(ZRAD-FRAD)) END IF SUMS=SUMS+ABS(D(IK)) 13 CONTINUE 12 CONTINUE KP=KT-KD SSR=INT(SUMS/QS/KZ/10)*10. IF(SSR.GT.1000.)SSR=INT(SSR/100.)*100. EM2= (SSR*ZM/636.620)**2+(TVI*TVI+TVS*TVS) EMI2= (SSR*PAR(1)/636.620)**2+(PAR(7)**2+PAR(8)**2) EMI=SQRT(EMI2) EM=SQRT(EM2) OPEN(1,FILE='KTRN.LIS') ZWE=' ' OP=0 IF(KP.GT.0)OP=1.*KZ/KP IF(OP.LT.1.5)ZWE=' ****' WRITE(IMEOB,*)IMEOB 7 I=INDEX(IMEOB,'?') IF(I.GT.0)IMEOB(I:I)='A' IF(I.GT.0)GO TO 7 6 I=INDEX(IZP,'?') IF(I.GT.0)IZP(I:I)='A' IF(I.GT.0)GO TO 6 I=INDEX(IMEOB,':')+1 WRITE(1,133)EKNM,IMEOB(I:80),IZP WRITE(1,135)KL,KD,KP,KT,KZ,OP,CDI,ZM,TVI,TVS,C1,C2,C3 WRITE(2,133)EKNM,IMEOB(I:80),IZP WRITE(2,135)KL,KD,KP,KT,KZ,OP,CDI,ZM,TVI,TVS,C1,C2,C3 L=0 N=0 DO 20 I=1,KT DO 16 IK=NZ(I),NZ(I+1)-1 N=N+1 IF(MOD(N,50).NE.1)GO TO 18 NSTR=NSTR+1 WRITE(1,219)NSTR 18 K=NP(IK) IF(MPI(K,I,KI,NZ,NP).LE.0)WRITE(1,102)C(NT(I)),C(NT(K)),VI(I)/QS, *T(IK)/QS,D(IK)/QS,Z(IK)/QZ,DH(IK)/QS ZET=Z(IK)/ROZ DIK=D(IK)/QS SM=SQRT((C1+C2/1000.*DIK+C3*SQRT(DIK))**2+EI*EI+ES*ES) SMI=SQRT((PAR(2)+PAR(3)/1000.*DIK+PAR(4)*SQRT(DIK))**2 * +PAR(5)**2+PAR(6)**2) HM=(COS(ZET)*SM)**2+(DIK*ZM/636.620)**2+TVI**2+TVS**2 HMI=(COS(ZET)*SMI)**2+(DIK*PAR(1)/636.620)**2 * +PAR(7)**2+PAR(8)**2 P=EM2/HM IF(KI.LE.0)GO TO 17 V=(DH(IK)+DH(KI))/QS*1000 IF(ABS(V).GT.ABS(VMAX))VMAX=V IF(ABS(V).LT.ABS(VMIN))VMIN=V SPV=SPV+V*P/2. SMPV=SMPV+ABS(V)*P/2. PZ=' ' IF(ABS(V).GT.3.*SQRT(HM))PZ='* ' IF(ABS(V).GT.3.*SQRT(HM))NZT=NZT+1 IF(ABS(V).GT.3.*SQRT(HMI))PZ(2:3)='**' IF(ABS(V).GT.3.*SQRT(HMI))NZI=NZI+1 WRITE(1,102)C(NT(I)),C(NT(K)),VI(I)/QS,T(IK)/QS,D(IK)/QS, *Z(IK)/QZ,DH(IK)/QS,DH(KI)/QS,V,PZ 21 PVV=PVV+V*V*P/2. L=L+1 17 T(IK)=QZ/P 16 CONTINUE 20 CONTINUE EMD=0. WRITE(1,109)L/2 IF(L.GE.2)THEN EMD=SQRT(PVV/L) WRITE(1,103)SSR,' [m]',EM,EMI,EMD WRITE(1,108)VMAX,VMIN,SPV,SPV/L,SMPV,SMPV/L WRITE(*,103)SSR,' [m]',EM,EMI,EMD WRITE(*,108)VMAX,VMIN,SPV,SPV/L,SMPV,SMPV/L WRITE(2,103)SSR,' [m]',EM,EMI,EMD IF(NZI/2.LE.0)WRITE(2,110) IF(NZI/2.GT.0)WRITE(2,111)NZI/2 ELSE WRITE(1,103)SSR,' [m]',EM,EMI WRITE(*,103)SSR,' [m]',EM WRITE(2,103)SSR,' [m]',EM END IF IF(NSW.GT.0)THEN GMZ=SQRT((SWW-SW*SW/NSW)/(2*NSW-1)) WRITE(2,112)NSW,SW/NSW/2.,GMZ ELSE WRITE(2,113) END IF CLOSE (1) PAUSE 'Љ« ўЁё "enter"' C Џ° ўЁ Ё ®Ў° ІЁ Ї°ҐўЁёҐЁї. DO 19 I=1,KT IF(NZ(I+1).LE.NZ(I))GO TO 19 IK=NZ(I)-1 22 IK=IK+1 K=NP(IK) IF(MPI(K,I,KI,NZ,NP).GT.0)GO TO 26 DO 24 J= NZ(KT+1)-1,NZ(K+1),-1 NP(J+1)=NP(J) DH(J+1)=DH(J) D(J+1)=D(J) T(J+1)=T(J) 24 CONTINUE DO 25 J=K+1,KT+1 NZ(J)=NZ(J)+1 25 CONTINUE IF(K.LT.I)IK=IK+1 J=NZ(K+1)-1 NP(J)=I DH(J)=-DH(IK) D(J)=0 T(J)=T(IK) 26 IF(IK.LT.NZ(I+1)-1)GO TO 22 19 CONTINUE KZ=NZ(KT+1)-1 RETURN 325 PRINT *,'* ѓ°ҐёЄ - Ќe ±є№Ґ±Іўіў ґ ©« - ',IMFDPI,' ?!?!!!??!!' PRINT *,' Ё«Ё Ё¬ Ј°ҐёЄ ў Їє°ўЁІҐ ¤ў °Ґ¤ ґ ©« ' GO TO 400 300 PRINT *,CHAR PRINT *, '*** ^ ѓ°ҐёЄ Ї°Ё ·ҐІҐҐІ® Ї®±®·ҐЁї § ЇЁ±!!!!' GOTO 400 301 PRINT *,CHAR PRINT *, '*^ Ќo¬Ґ° І®·Є І Ґ Ґ° §ЎЁ° Ґ¬ - § ЇЁ± ±Ґ Ї°®Їі±Є ' PAUSE ' Ќ ІЁ±ҐІҐ Є« ўЁё Enter' GOTO 10 302 PRINT *,' *** ЌҐ¤®Їі±ІЁ¬ k« ± ЁўҐ« ¶ЁїІ (4<Klasv<10)!?',KL GO TO 400 303 PRINT *,' *** ЌҐ¤®Їі±ІЁ¬ ±І®©®±І Mz[cc] § Є« ± ',KL PRINT 320,ZM,PAR(1) GO TO 400 304 PRINT *,' *** ЌҐ¤®Їі±ІЁ¬ ±І®©®±І § tvi[mm] § Є« ± ',KL PRINT 320,TVI,PAR(7) GO TO 400 305 PRINT *,' *** ЌҐ¤®Їі±ІЁ¬ ±І®©®±І § tvs[mm] § Є« ± ',KL PRINT 320,TVS,PAR(8) GO TO 400 306 PRINT *,' *** M®Ј® Ј®«ї¬ Ў°®© І®·ЄЁ - ',KT,' ¤®', MXRT GO TO 400 307 PRINT *,' *** M®Ј® Ј®«ї¬ Ў°®© Ў«ѕ¤ҐЁї - ',KZ,' ¤®',MXRP GO TO 400 308 PRINT *,' *** Ќ®¬Ґ° ±І ¶ЁїІ ±єўЇ ¤ ± ®¬Ґ° ' PRINT *,' *** Ў«ѕ¤ ў І І®·Є ',C(NT(KT)) GO TO 400 311 PRINT *,CHAR PRINT *,'* ѓ°ҐёЄ - ^ ЌҐ¤oЇі±ІЁ¬ ±І®©®±І ??!!' PRINT *,'* (0<Nt<99999) (0.1<S,D<10000) (30<Z<370)' GOTO 400 312 PRINT *,'‚єў ўµ®¤Ёї ґ ©« Ґ ± ®ІЄ°ЁІЁ І°ЁЈ. Ё§¬Ґ°ҐЁ Ї°ҐўЁёҐЁї' 400 STOP ' STOP - €§Їє«ҐЁҐІ® Ґ Ї°ҐЄ° ІҐ® !!!!!!!??????' 320 FORMAT(5X,'(§ ¤ ¤Ґ ±І®©®±І -',F5.1,', ¤®Їі±ІЁ¬ -',F5.1,' )') END C ::: MPI ::: podprograma funkciq FUNCTION MPI(I,K,IK,NR,NP) DIMENSION NR(*),NP(*) DO 10 IK=NR(I),NR(I+1)-1 IF(IABS(NP(IK)).EQ.K) GO TO 12 10 CONTINUE 11 IK=0 12 MPI=IK RETURN END C C UPLA “±°Ґ¤їў Ґ Ё§¬Ґ°ў ЁїІ ®І Ґ¤ ±І ¶Ёї SUBROUTINE UPLA(KT,NT,NZ,NP,S,D,Z,T) INTEGER NT(*),NZ(*),NP(*),S(*),Z(*),D(*),T(*) DOUBLE PRECISION DZ0,DS0,DV0,DZ1,DS1,DV1,DZ2,DS2,DV2 IF(KT.LE.0)RETURN KZ=0 DO 15 I=1,KT L=NZ(I) NZ(I)=KZ+1 DO 10 IK=L,NZ(I+1)-1 IF(Z(IK).LE.30.)GO TO 10 N=NP(IK) IF(N.LE.0)GO TO 10 DZ1=DS1=DV1=DZ2=DS2=DV2=0.D0 K1=K2=0 DO 11 IL=IK,NZ(I+1)-1 IF(N.NE.NP(IL))GO TO 11 IF(S(IL).GT.0)THEN K1=K1+1 DZ1=DZ1+Z(IL) DV1=DV1+T(IL) DS1=DS1+S(IL) ELSE K2=K2+1 DZ2=DZ2+Z(IL) DV2=DV2+T(IL) DS2=DS2+D(IL) END IF NP(IL)=-NP(IL) 11 CONTINUE KZ=KZ+1 NP(KZ)=N IF(K1.GT.0)GO TO 12 S(KZ)=-999999999 Z(KZ)=DZ2/K2 T(KZ)=DV2/K2 D(KZ)=DS2/K2 GO TO 10 12 Z(KZ)=DZ1/K1 T(KZ)=DV1/K1 S(KZ)=DS1/K1 D(KZ)=-999999999 10 CONTINUE 15 CONTINUE NZ(KT+1)=KZ+1 RETURN END C C ::: MNOM ::: Џ°Ґ®¬Ґ°Ё° Ґ ®¬Ґ° І Ў«ѕ¤ ў ЁІҐ І®·ЄЁ SUBROUTINE MNOM(KT,KN,NT,NP) CHARACTER C*8 DIMENSION NT(*),NP(*) 100 FORMAT(3X,'ER MNOM - ’®·Є ',A,' Ґ Ґ ®ІЄ°ЁІ ў ±ЇЁ±єЄ ') 101 FORMAT(12X,'** MNOM - Џ°Ґ®¬Ґ°Ё° Ґ ®¬. Ў«ѕ¤ ў ЁІҐ І®·ЄЁ') WRITE( *,101) IF((KT.LT.1).OR.(KN.LT.1))RETURN DO 10 IK=1,KN DO 11 I=1,KT IF(NP(IK).EQ.NT(I)) GO TO 10 11 CONTINUE WRITE(*,100)C(NP(IK)) I=1 10 NP(IK)=I RETURN END SUBROUTINE SORT(LL,KK,IM,NP) DIMENSION IM(*),NP(*) L=LL DO 10 I=1,KK IM(L)=NP(I) 10 L=L+1 RETURN END C C WKOR ЋЇ°Ґ¤Ґ«їҐ і±«®ў®І® Є®®°¤Ё І® · «® C ‚єўҐ¦¤ Ґ Є®®°¤Ё ІЁІҐ ¤ ¤ҐЁІҐ І®·ЄЁ. Џ°ҐЇ®¤°Ґ¦¤ Ґ SUBROUTINE WKOOR(NST,X,Y,H,KLH,IMFCOR) CHARACTER IMFCOR*12,IMEOB*80,C*8,CHAR*80,CDI*5 INTEGER X(*),Y(*),H(*),NST(*),KLH(*),XO,YO,HO DOUBLE PRECISION XT,YT,QK,QS,QZ,XOD,YOD,HOD COMMON /BLOC/KD,KP,KT,KL,KZ,ZM,EM,EMD,NSTR,SSR,SO,CDI,QK COMMON /BLOK/MXRT,MXRP,XO,YO,HO,HS,KSYS,NZON,C1,C2,C3,QS,QZ 99 FORMAT(A) 100 FORMAT(' ** WKOOR - ‚єўҐ¦¤ Ґ Є®®°¤Ё ІЁІҐ. Џ°ҐЇ®¤°Ґ¦¤ Ґ') 101 FORMAT(' *** Џ°Ґ¤іЇ°Ґ¦¤ҐЁҐ - ‚єў ґ ©« ',A,' Ё¬ ¤ўҐ ¤ ¤ҐЁ', */' *** І®·ЄЁ ± Ґ¤ ЄўЁ ®¬Ґ° - ў§ҐІ Ґ Їє°ў І !!??',I8) PRINT 100 XOD=YOD=HOD=0.D0 KSYS=NZON=0 QK=1.D4 9 OPEN(1,FILE=IMFCOR) DO 23 I=1,KT X(I)=0 H(I)=0 Y(I)=0 23 CONTINUE HS=0. K=0 READ(1,99,ERR=329,END=329)IMEOB 10 READ(1,99,ERR=300,END=5)CHAR IF(INDEX(CHAR(1:15),'Par').LE.0)GO TO 21 I=INDEX(CHAR,'sys')+3 IF(I.GT.3)READ(CHAR(I:80),*,ERR=300)KSYS I=INDEX(CHAR,'zon')+3 IF(I.GT.3)READ(CHAR(I:80),*,ERR=300)NZON I=INDEX(CHAR,'Xo')+2 IF(I.GT.3)READ(CHAR(I:80),*,ERR=300)XOD I=INDEX(CHAR,'Yo')+2 IF(I.GT.3)READ(CHAR(I:80),*,ERR=300)YOD I=INDEX(CHAR,'Ho')+2 IF(I.GT.3)READ(CHAR(I:80),*,ERR=300)HOD IF((XOD.LT.0.D0).OR.(XOD.GT.9900000.D0))GO TO 311 IF((YOD.LT.0.D0).OR.(YOD.GT.9900000.D0))GO TO 311 IF((HOD.LT.0.D0).OR.(HOD.GT.9000.D0))GO TO 311 IF((KSYS.NE.1970).AND.(KSYS.NE.1950))KSYS=0 21 IF(INDEX(CHAR(1:15),'І').LE.0)GO TO 10 I=INDEX(CHAR,'І')+1 IF(CHAR(I:I).EQ.'І')I=I+1 READ(CHAR(I:80),*,ERR=300)L,KLK,XT,YT,KLV,HT IF((L.LE.0).OR.(L.GE.100000))GO TO 311 IF((XT.LE.0.D0).OR.(YT.LE.0.D0))GO TO 311 IF(ABS(HT).GT.3000.)GO TO 311 L=KODD(CHAR)+L IF(KLV.LE.0)GO TO 26 K=K+1 HS=HS+HT 26 IF(KSYS.LE.0)GO TO 27 XT=(XT-XOD) YT=(YT-YOD) 27 IF((XT.LE.0.D0).OR.(YT.LE.0.D0))GO TO 311 IF((XT.GE.2.D9/QK).OR.(YT.GE.2.D9/QK)) GO TO 312 DO 25 I=1,KT IF(L.NE.NST(I))GO TO 25 IF((X(I).GT.0).OR.(Y(I).GT.0))GO TO 304 X(I)=INT(XT*QK+0.5) Y(I)=INT(YT*QK+0.5) IF((KLV.GT.0).AND.(HT.EQ.0.))GO TO 313 H(I)=HT*QS KLH(I)=KLV IF(KLV.LE.0)KLH(I)=KL IF(KLV.GT.KL)PRINT *,' **** ’®·Є ®І Ї® Ё±єЄ Є« ±!! ',C(NST(I)) 25 CONTINUE GO TO 10 5 CLOSE(1) XO=INT(XOD) YO=INT(YOD) HO=INT(HOD) IF(K.GE.1)HS=HS/K IF((KSYS.EQ.1970).AND.(MOD(NZON,2).LE.0))GO TO 305 IF(KSYS.LE.0)THEN PRINT *,' ** WKOOR - K®®°¤Ё І І ±Ё±ІҐ¬ Ґ «®Є « !!' IF(HOD.LE.0.1D0)PRINT *,'***** ѓ°ҐёЄ - ЌҐ Ґ § ¤ ¤Ґ® Ho=??!!!' IF(HOD.LE.0.1D0)HO=HS IF(HOD.LE.0.1D0)PAUSE' Џ°ЁҐІ® Ґ Ho=[H]/n - Ќ ІЁ±ҐІҐ Enter' ELSE HO=0 IF(HOD.GT.0.1D0)PRINT *,'***** ѓ°ҐёЄ - KoЈ І® Є®®°¤. ±Ё±ІҐ¬ ', *' Ґ Ґ «®Є « H® Ґ ±Ґ § ¤ ў -',HO IF(HOD.GT.0.1D0)PAUSE' Џ°ЁҐІ® Ґ Ho=0 - Ќ ІЁ±ҐІҐ Enter' END IF RETURN 300 PRINT *,CHAR PRINT *, '*** ^ ѓ°ҐёЄ Ї°Ё ·ҐІҐҐІ® Ї®±®·ҐЁї § ЇЁ±!!!!' GOTO 330 304 PRINT *,' **** ѓ°ҐёЄ - ’®·ЄЁ ± Ґ¤ ЄўЁ ®¬Ґ° ў ',L,' -',IMFCOR GOTO 330 305 PRINT *,'** ѓ°ҐёЄ - Ґ Ґ § ¤ ¤Ґ §® І § Є®®°¤. ±Ё±ІҐ¬ 1970' GO TO 330 311 PRINT *,CHAR PRINT *,'* ѓ°ҐёЄ - ^ ЌҐ¤®Їі±ІЁ¬ ±І®©®±І ??!!' PRINT *,'* (0 < Nt <99999) (0.1 <X,Y < 9999999) ' PRINT *,'* (0 < Xo,Yo <9900000) (0 < H < 3000 )' PRINT *,' ** ѓ°ҐёЄ І ¬®¦Ґ ¤ Ґ Ё ®І °Ґ¤іЄ¶Ё®ЁІҐ ·Ё±« ' GOTO 330 312 PRINT *,' ** Љ®°ҐЄ¶Ёї ®°¬Ё° №Ёї ¬®¦ЁІҐ« QK' QK=QK*0.1D0 CLOSE(1) GO TO 9 313 PRINT *,CHAR PRINT *, '** Њ®Ј® ±є¬ЁІҐ« ¤¬®°±Є ўЁ±®·Ё !!!!???' GO TO 330 329 PRINT *,CHAR PRINT *,' ^ ** ѓ°ҐёЄ Ї°Ё ®Іў °ҐҐІ® ґ ©« ',IMFCOR 330 STOP ' ** STOP - €§Їє«ҐЁҐІ® Ґ Ї°ҐЄ° ІҐ® !!!!!!!?????!!!!' END SUBROUTINE KORE(NT,NZ,NP,D,X,Y,H) INTEGER NT(*),NZ(*),NP(*),X(*),Y(*),H(*),D(*),XO,YO DIMENSION AK(9) CHARACTER C*8,CDI*5 DOUBLE PRECISION SN,SX,ZRAD,QK,QS,QZ,QP,DX,DY COMMON /BLOC/KD,KP,KT,KL,KZ,ZM,EM,EMD,NSTR,SSR,SO,CDI,QK COMMON /BLOK/MXRT,MXRP,XO,YO,HO,HS,KSYS,NZON,C1,C2,C3,QS,QZ DATA AK(3),AK(5),AK(7),AK(9)/724000.,638400.,720000.,555000./ 100 FORMAT(' ** Џ°Ґ¤іЇ°Ґ¦¤ҐЁҐ - Ќї¬ § ¤ ¤Ґ ЁІ® Ґ¤ Є®І !!!??', * / ' ** Љ®°ҐЄ¶ЁЁ § ¤¬®°±ЄЁ ўЁ±®·ЁЁ Ґ ± Ґ±ҐЁ!!!??') 101 FORMAT(' ** Џ°Ґ¤іЇ°Ґ¦¤ҐЁҐ - ЌҐ e § ¤ ¤Ґ Є®®°¤Ё І ±Ё±ІҐ¬ ', *'(1950 Ё«Ё 1970).',/' Љ®°ҐЄ¶ЁЁ § Ї°®ҐЄ¶ЁїІ Ґ ± Ґ±ҐЁ ??!!', */'Џ°ЁҐ¬ ±Ґ, ·Ґ Є®®°¤Ё І І ±Ё±ІҐ¬ Ґ «®Є « !') 106 FORMAT(' ** ѓ°ҐёЄ - ЌҐ¤®Їі±ІЁ¬ Є®°ҐЄ¶Ёї § Ї°®ҐЄ¶ЁїІ ', * /4X,A,' - ',A,' K=',F10.7,' YMO=',F12.1) PRINT*,' ** KORE - Ќ ±їҐ Є®°ҐЄ¶ЁЁ § Ї°®ҐЄ¶Ёї Ё ¤¬. ўЁ±.' RZ=6371110. QP=0.D0 KFLAG=0 YMO=-YO IF(KSYS.EQ.1950)YMO=MOD(YO,1000000)-500000. IF(KSYS.NE.1970)GO TO 9 IF((NZON.LT.3).OR.(NZON.GT.9))GO TO 300 IF(MOD(NZON,2).LE.0)GO TO 300 YMO=MOD(XO,1000000)-AK(NZON) 9 DO 10 I=1,KT HI=H(I)/QS IF(HI.LE.0.)HI=HS DO 11 IK=NZ(I),NZ(I+1)-1 K=NP(IK) IF(D(IK).GT.0)GO TO 11 C Љ®°ҐЄ¶Ёї § Ї°®ҐЄ¶Ёї YM=YMO+(Y(K)+Y(I))/QK/2. IF(KSYS.EQ.1970)YM=YMO+(X(K)+X(I))/QK/2. QP=0.5*(YM/(RZ+HO))**2 IF(QP.GT.3.8E-4)GO TO 301 D(IK)=D(IK)/(1.D0+QP) C K®°ҐЄ¶Ёї § ¤¬®°±Є ўЁ±®·Ё DX= (X(K)-X(I))/QK DY= (Y(K)-Y(I))/QK D(IK)=DSQRT(DX**2+DY**2)*((RZ+HI)/(RZ+HO))*QS 11 CONTINUE 10 CONTINUE IF(ABS(HS).LE.0.001)PRINT 100 RETURN 300 PRINT *,'*** ѓ°ҐёЄ - ЌҐЇ° ўЁ«® § ¤ ¤Ґ §® ',NZON GO TO 400 301 PRINT 106,C(NT(I)),C(NT(K)),QP,YM 400 STOP '*** €§Їє«ҐЁҐІ® Ґ Ї°ҐЄ° ІҐ® !!!!!!!' END SUBROUTINE GETDAT( IYEAR, IMONTH, IDAY ) *$noextensions integer*2 iyear,imonth,iday * * Define registers: These correspond to the element of an * array which is to contain the values of the registers. * integer*2 AX,BX,CX,DX,BP,DI,SI,ES,DS,FLAGS parameter (AX=1,BX=2,CX=3,DX=4,BP=5,DI=6,SI=7) parameter (ES=8,DS=9,FLAGS=10) integer NUM$REGS parameter (NUM$REGS=10) * * Define DOS functions. * integer*2 GETDATE,DOSCALL parameter (DOSCALL=33,GETDATE=42) * * Define array to contain registers. * integer*2 regs(NUM$REGS) integer*1 mon$day(2),week$(2) integer*2 year integer*1 month,day,week equivalence (regs(AX),week$) equivalence (regs(CX),year) equivalence (regs(DX),mon$day) equivalence (month, mon$day(2)) equivalence (day , mon$day(1)) equivalence (week , week$(1)) * * Set AH to be DOS 'get date' function. * regs(AX) = GETDATE*256 * * Return the date. * call intr( DOSCALL, regs ) iyear = year imonth = month iday = day end C Џ®¤Ї°®Ј° ¬Ё § ЎіўЁІҐ FUNCTION KODD(CHARK) CHARACTER CHARK*80,BUK*55 DATABUK/'І ЎЇ®«±ўЈ¤Ґ¦§Ё©Є¬°іґµ¶ё№єѕїqwertyuiopasdfghjklzxcvbnm?'/ K=MAX(INDEX(CHARK,'І')-1,INDEX(CHARK,'ІІ')) IF(K.GT.0)THEN KODD=INDEX(BUK,CHARK(K:K))*1000000 RETURN ELSE K=MAX(INDEX(CHARK,'°')-1,INDEX(CHARK,'°°')) IF(K.LE.0)K=55 KODD=(INDEX(BUK,CHARK(K:K))+55)*1000000 RETURN END IF END FUNCTION C(M) CHARACTER C*8 ,BUK*55 DATABUK/'І ЎЇ®«±ўЈ¤Ґ¦§Ё©Є¬°іґµ¶ё№єѕїqwertyuiopasdfghjklzxcvbnm?'/ 100 FORMAT(I7) C=' ' L=IABS(M/1000000) N=MOD(M,1000000) C(3:3)=CHAR(48+N/100000) N=MOD(N,100000) C(4:4)=CHAR(48+N/10000) N=MOD(N,10000) C(5:5)=CHAR(48+N/1000) N=MOD(N,1000) C(6:6)=CHAR(48+N/100) N=MOD(N,100) C(7:7)=CHAR(48+N/10) N=MOD(N,10) C(8:8)=CHAR(48+N) I=1 IF(C(3:3).EQ.'0')I=2 IF(C(3:4).EQ.'00')I=3 IF(C(3:5).EQ.'000')I=4 IF(C(3:6).EQ.'0000')I=5 IF(C(3:7).EQ.'00000')I=6 C(1:I+1)=' ' IF(L.LE.0)RETURN IF(L.LE.55)C(I:I+1)=(BUK(L:L)//'І') K=L-55 IF(L.GT.55)C(I:I+1)=(BUK(K:K)//'°') RETURN END
run
|
edit
|
history
|
help
0
database exterior 0.1
Ok
priya
enum flag comparison
Compression Decompressor
Lazy XML selection
Delegates, events
How to count the occurrence of each character in a string?
JagArray
hamming distance