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

📄 skiptp.for

📁 This Source-Navigator, an IDE for C/C++/Fortran/Java/Tcl/PHP/Python and a host of other languages.
💻 FOR
字号:
      SUBROUTINE SKIPTP(ITYPE,STRING,ICC1,ICC2,HOLFLG,KPOS,ILEV)*-----------------------------------------------------------------------* positions on the last character of a string of the requested type* input* ITYPE      1 = numeric*            2 = alpha*            3 = alpha-numeric*            4 = special*            5 = FORTRAN-name*            6 = expression ( no [,] at level 0 )* STRING     string* ICC1       first ch, in string* ICC2       last   -    -  -* HOLFLG     if TRUE, hollerith included* output* KPOS       position of last ch. of given type, if ICC1 is of that*            type, otherwise = 0* ILEV       level (including KPOS) relative to input level 0*-----------------------------------------------------------------------      LOGICAL HOLFLG      CHARACTER STRING*(*),STEMP*1      include 'convex.h'      ILEV=0      KPOS=0      NCNT=0      ISSTR=0      ILBASE=-1      JC=ICC1-1   10 JC=JC+1      IF (JC.GT.ICC2) GOTO 999      STEMP=STRING(JC:JC)*--- skip blanks outside strings      IF (STEMP.EQ.' '.AND.ISSTR.EQ.0) GOTO 10      IF(STEMP.EQ.'{')  THEN*--- start of character string         ISSTR=1         IF (.NOT.HOLFLG) THEN            ISSTR=0            I=INDEX(STRING(JC:ICC2),'}')            IF (I.EQ.0) GOTO 999            JC=I+JC-2         ENDIF         GOTO 10      ELSEIF(STEMP.EQ.'}')  THEN         ISSTR=0         IF(ITYPE.EQ.6)  THEN            KPOS=JC         ELSE            GOTO 10         ENDIF      ELSEIF(ITYPE.EQ.1)  THEN         IF (NUMCH(STEMP)) KPOS=JC      ELSEIF(ITYPE.EQ.2)  THEN         IF (ALPHCH(STEMP)) KPOS=JC      ELSEIF(ITYPE.EQ.3)  THEN         IF (ANUMCH(STEMP)) KPOS=JC      ELSEIF(ITYPE.EQ.4)  THEN         IF (SPECCH(STEMP))  THEN            KPOS=JC            IF (STEMP.EQ.'(')  THEN               ILEV=ILEV+1            ELSEIF (STEMP.EQ.')')  THEN               ILEV=ILEV-1            ENDIF         ENDIF      ELSEIF(ITYPE.EQ.5)  THEN         IF (NCNT.EQ.0)  THEN            IF (ALPHCH(STEMP))  THEN               KPOS=JC               NCNT=NCNT+1            ENDIF         ELSEIF (ANUMCH(STEMP))  THEN            KPOS=JC         ENDIF      ELSEIF(ITYPE.EQ.6)  THEN         IF (KPOS.EQ.0.AND..NOT.(ANUMCH(STEMP).OR.STEMP.EQ.'('.OR.STEMP.     +   EQ.'+'.OR.STEMP.EQ.'-'.OR.STEMP.EQ.''''))GOTO 999         IF (STEMP.EQ.'(')  THEN            ILEV=ILEV+1         ELSEIF (ILBASE.LT.0)  THEN            ILBASE=ILEV         ENDIF         IF (STEMP.EQ.')')  ILEV=ILEV-1         IF ((STEMP.NE.','.OR.ILEV-ILBASE.GT.0).AND.ILEV.GE.0) KPOS=JC      ENDIF      IF (KPOS.EQ.JC) GOTO 10  999 END

⌨️ 快捷键说明

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