📄 inextr.for
字号:
SUBROUTINE INEXTR(SKEY,I1,I2,N)*-----------------------------------------------------------------------* compacts all occurrences of a given key in the range indicated,* removes the key-words** Input* SKEY = key to look for* I1 = start of input command range in SIMA* I2 = end - -* Output* N = no. of characters in compacted string* or -1 if key not found.* SSTA, common /ALCAZA/ contains the string*----------------------------------------------------------------------- include 'param.h' include 'alcaza.h' include 'state.h' CHARACTER*3 SKEY N=-1 DO 20 I=I1,I2 IF (SKEY.EQ.SIMA(NFLINE(I))(1:3)) THEN*--- key found - skip key-word, string, replace ';' by ',' IF (N.LT.0) N=0 IS=NFLINE(I) IL=NLLINE(I) IP=NLTYPE(IL) SIMA(IL)(IP:IP)=',' IND=INDEX(SIMA(IS),',') IF (IND.EQ.0.OR.IND.EQ.NLTYPE(IS)) THEN KADD=1 ELSE KADD=0 ENDIF DO 10 J=IS+KADD,IL IF (J.EQ.IS) THEN IT=IND+1 ELSE IT=1 ENDIF L=NLTYPE(J)+1-IT IF (N+L.GT.MDIMST) THEN WRITE (MPUNIT,10000) SKEY,MDIMST N=-1 GOTO 999 ENDIF SSTA(N+1:N+L)=SIMA(J)(IT:NLTYPE(J)) N=N+L 10 CONTINUE ENDIF 20 CONTINUE10000 FORMAT(/1X,8('*=*='),' WARNING - total length of key ', A, +' more than ',I5,' characters, key ignored') 999 END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -