⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indecz.for

📁 This Source-Navigator, an IDE for C/C++/Fortran/Java/Tcl/PHP/Python and a host of other languages.
💻 FOR
字号:
      SUBROUTINE INDECZ(ISTR1,ISTR2)*-----------------------------------------------------------------------**  Checks consistency between replacement strings, kills illegal ones**--- Input*    ISTR1        ref. to string to be replaced (rel. to KKYSTA, KKYEND)*    ISTR2        ref. to replacing string*-----------------------------------------------------------------------      include 'param.h'      include 'alcaza.h'      include 'keycom.h'      include 'flwork.h'      include 'condec.h'      DIMENSION ICT1(10),ICT2(10),IREF1(MXNAME/20,10), IREF2(MXNAME/20,     +10)      EQUIVALENCE (IREF1(1,1),IWS(1)),(IREF2(1,1),IWS(MXNAME/2+1))      CHARACTER *40 STEXT(4)      DATA STEXT/'too many special symbols', 'unclosed [...] in string',     +'replacement count [n] too high',     +'unclosed quote string inside string'/       include 'condat.h'      IF(ISTR1.GT.0.AND.ISTR2.GT.0)  THEN*--- extract special symbols from first string         CALL SPECCT(1,ISTR1,NTOT1,ICT1,IREF1,IERR)         IF (IERR.NE.0) GOTO 30*--- second string         CALL SPECCT(2,ISTR2,NTOT2,ICT2,IREF2,IERR)         IF (IERR.NE.0) GOTO 30         IF (NTOT2.GT.0)  THEN*--- there are special symbols in the replacement string -*    check that no count in [...] higher than actually present            DO 20 I=1,LEN(SPCHAR)               DO 10 J=1,ICT2(I)                  IF (ICT1(I).LT.IREF2(J,I))  THEN                     IERR=3                     GOTO 30                  ENDIF   10          CONTINUE   20       CONTINUE         ENDIF      ENDIF      GOTO 999   30 CONTINUE*--- error condition - suppress string (or name+string) replacement      WRITE (MPUNIT,10000) STEXT(IERR)      I1=KKYSTA(ISTR1)-1      I2=KKYEND(ISTR1)      L=(I2-I1-1)/MXLINE+1      DO 40 I=1,L         SIMA(I)=SKYSTR(I1+1:MIN(I2,I1+MXLINE))         I1=I1+MXLINE   40 CONTINUE      CALL FLPRNT(0,'replace',L,SIMA,I1)      I1=KKYSTA(ISTR2)-1      I2=KKYEND(ISTR2)      L=(I2-I1-1)/MXLINE+1      DO 50 I=1,L         SIMA(I)=SKYSTR(I1+1:MIN(I2,I1+MXLINE))         I1=I1+MXLINE   50 CONTINUE      CALL FLPRNT(0,'by string',L,SIMA,I1)      ISTR1=-IERR10000 FORMAT(/' +++++++ WARNING - ',A,' in following replacement ',     +'request, request ignored')  999 END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -