24小时热门版块排行榜    

查看: 1631  |  回复: 5

lijunjiexm

铁虫 (小有名气)

[求助] 求助一个简单程序的错误(2),谢谢

编译如下程序,在22行处CHARACTER*(*) STR
出错:

    PROGRAM MOVIE1

C *** Program to draw velocity profiles.
C
      IMPLICIT     REAL*4(A-H,O-Z)
      PARAMETER   (NUMEL = 1920, NUMNP = 2047,NDMB = 1000,NTIME1 = 140)
      REAL*8       QUADX (4,NUMEL), QUADY (4,NUMEL)
      REAL*8       QUADVX(4,NUMEL), QUADVY(4,NUMEL)
      INTEGER*4    BLACK(3)
      INTEGER*4    GREEN(3),RED(3),BLUE(3),WHITE(3),YELLOW(3)
      INTEGER*4    PALEGREEN(3), GREY(3)
      REAL*4       COORD(2), X1, X2, Y1, Y2, PARRAY(2,4)
      REAL*4       VARRAY(2,22)
      INTEGER*4    STATUS1, WINOPE, IDUM, NPOINT, LENGTH
      INTEGER*4    HORPROP, VERPROP
      REAL*4       X(NDMB,NTIME1), Y(NDMB,NTIME1)
      REAL*4       VX(NUMNP, NTIME1), VY(NUMNP, NTIME1)
      REAL*4       XNODE(NUMNP), YNODE(NUMNP)
      CHARACTER*13 MESSAGE1, LINE
      CHARACTER*50 MESSAGE2,MESSAGE3,MESSAGE4,MESSAGE5
      CHARACTER*80 DUM
      CHARACTER*(*) STR
      LOGICAL*1    GRID, VEL
C
C *** Prepare for the graphics:
C
      DATA (BLACK(I),       I=1,3)  /0,0,0/
      DATA (RED(I),         I=1,3)  /256,20,20/
      DATA (GREEN(I),       I=1,3)  /50,256,50/
      DATA (PALEGREEN(I),   I=1,3)  /10,86,10/
      DATA (BLUE(I),        I=1,3)  /100,100,256/
      DATA (WHITE(I),       I=1,3)  /256,256,256/
      DATA (YELLOW(I),      I=1,3)  /256,256,0/
C
      OPEN (7 , FILE = '../eval/ns2dev.msh')
      OPEN (8 , FILE = '../eval/ns2dev.trc')
      OPEN (10, FILE = '../eval/ns2dev.ve2')
      OPEN (11, FILE = '../mesh/mesh.dat')
C
C *** WINDOW
C
C       XMIN =     0.17
      XMIN =   0.0
C       XMAX =    0.19
      XMAX =    0.36
      YMIN =    -0.03
      YMAX =    0.03
C       YMAX =    0.02
      HORPROP = INT(1000. * XMAX) - INT(1000. * XMIN)
      VERPROP = INT(1000. * YMAX) - INT(1000. * YMIN)
      CALL KEEPAS ( ABS(HORPROP),  ABS(VERPROP))
      CALL KEEPAS (1,1)
      CALL PREFSI(1200, 200)
      MESSAGE1 = 'movie1'
      STATUS1 = WINOPE(MESSAGE1,6)
C
      CALL ORTHO2 (XMIN, XMAX, YMIN, YMAX)
      CALL LINEWI (1)
      CALL RGBMOD
      CALL DOUBLE
      CALL LSETDE (0,19)
      CALL GCONFI
      CALL C3I (BLACK)
      CALL CLEAR
      CALL ZBUFFE (.TRUE.)
      CALL ZCLEAR
      CALL SWAPBU
      CALL SLEEP(1)
      CALL ZBUFFE (.TRUE.)
      CALL ZCLEAR
c
c read mesh
c
      DO I = 1, NUMEL
        READ(7,*) IDUM, (QUADX(II,I),II=1,4),  (QUADY(II,I),II=1,4)
      ENDDO
c
c read tracer particles
c
      DO I = 1 , NTIME1
        READ(8,*) IDUM, TIME
        DO II=1, NDMB
          READ(8, *, END = 300) X(II , I), Y(II , I)
        ENDDO
      ENDDO
c
c read velocity field
c
      READ(10,*,END=300) IDUM, DUM1
      DO I = 1 , NTIME1
        READ(10,*,END=300) IDUM, DUM1
        DO II = 1, NUMNP
          READ(10,*,END=300) IDUM, VX(II , I), VY(II , I)
        ENDDO
      ENDDO
c
c read nodes (mesh again)
c
      READ(11,*,END=300) IDUM, DUM1
      DO I = 1 , NUMNP
        READ(11, *, END = 300) IDUM, XNODE(I), YNODE(I)
      ENDDO
C
C loop
C
      DO IBIGLOOP = 1 , 1000
      DO ITIME = 1 , NTIME1
        CALL C3I (BLACK)
        CALL CLEAR
        IF (ITIME .EQ. 1) THEN
          DO II = 1 , 1000
            DUMMY = II ** 0.2342
          ENDDO
        ENDIF
C
C *** Grid
C
        GRID = .FALSE.
        IF (GRID) THEN
          CALL LINEWI (1)
          CALL C3I (BLUE)
          DO II = 1 , NUMEL
            CALL BGNLIN
            DO III = 1 , 4
              COORD(1) = QUADX(III, II)
              COORD(2) = QUADY(III, II)
              PARRAY(1 , III) = QUADX(III, II)
              CALL V2F(COORD)
            ENDDO
            CALL ENDLIN
          ENDDO
          CALL C3I (RED)
          CALL LINEWI (1)
        ENDIF
C
C *** Velocity field
C
        VEL = .FALSE.
        IF (VEL) THEN
          DO I = 1 , NUMNP
            CALL C3I (GREEN)
            X1 = XNODE(I)
            Y1 = YNODE(I)
            X2 = XNODE(I) + VX(I,ITIME) * 1
            Y2 = YNODE(I) + VY(I,ITIME) * 1
            CALL MOVE2 (X1,Y1)
            CALL DRAW2 (X2,Y2)         
            CALL C3I (RED)
            CALL DRAW2 (X2,Y2)
          ENDDO
        ENDIF
c
c *** x-axis
c
C        CALL C3I (RED)
C        CALL LINEWI (1)
C        X1 = -11.
C        Y1 =  0.
C        X2 =  11.
C        Y2 =  0.
C        CALL MOVE2 (X1,Y1)
C        CALL DRAW2 (X2,Y2)
C
c *** y-axis
c
        X1 =  0.
        Y1 = -11
        X2 =  0.
        Y2 =  11
        CALL MOVE2 (X1,Y1)
        CALL DRAW2 (X2,Y2)
C        DO I = 1 , 1000
C          DUMMY = I ** 3.3
C        ENDDO
C
C *** Dumbbells
C
        DO I = 1 , 1
          CALL LINEWI (1)
          CALL C3I (YELLOW)
          CALL BGNPOI
          DO II = 1, NDMB
            COORD(1) = X(II, ITIME)
            COORD(2) = Y(II, ITIME)
            CALL V2F(COORD)
            COORD(2) = - Y(II, ITIME)
            CALL V2F(COORD)
          ENDDO
          CALL ENDPOI
C          CALL C3I (RED)
C          COORD(1) = X(346, ITIME)
C          COORD(2) = Y(346, ITIME)
C          CALL CIRCF(COORD(1), COORD(2), 0.0001)
C          CALL C3I (GREEN)
C          COORD(1) = X(1116, ITIME)
C          COORD(2) = Y(1116, ITIME)
C          CALL CIRCF(COORD(1), COORD(2), 0.0001)
C          CALL C3I (BLUE)
C          COORD(1) = X(319, ITIME)
C          COORD(2) = Y(319, ITIME)
C          CALL CIRCF(COORD(1), COORD(2), 0.0001)
        ENDDO
C         READ(5,*) LINE
        CALL SWAPBU
      ENDDO
      ENDDO
300  STOP
      END
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijunjiexm

铁虫 (小有名气)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-07-31 13:28:39
编译错误信息如下(请帮忙指点,谢谢):
--------------------Configuration: sucontr - Win32 Debug--------------------
Compiling Fortran...
G:\Program Files\sucontr\eval\movie1.f
G:\Program Files\sucontr\eval\movie1.f(22) : Error: This passed length character name has been used in an invalid context.   [STR]
      CHARACTER*(*) STR
--------------------^
Error executing df.exe.

movie1.obj - 1 error(s), 0 warning(s)
2楼2011-07-18 01:19:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-07-18 14:48:49
CHARACTER*(*) STR

这个只能用在子程的参数中,也就是说 STR 只能是 dummy argument

gfortran 给出的提示信息可能更清楚一些:
引用回帖:
      CHARACTER*(*) STR                                                
                      1
Error: Entity with assumed character length at (1) must be a dummy argument or a PARAMETER

3楼2011-07-18 08:30:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijunjiexm

铁虫 (小有名气)

那应该如何呢?把它删了??
4楼2011-07-18 08:56:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zsq510

银虫 (小有名气)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-07-31 13:28:48
祝福一下
5楼2011-07-18 09:17:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


lijunjiexm(金币+10): 谢谢,应该是删了就可以,不影响,我就是觉得f77程序,在VF调用时经常出现原来没问题的隐式申明,但在VF中就出问题了,是这样吗? 2011-07-18 09:54:06
jjdg(金币+1): 感谢参与 2011-07-18 14:49:03
引用回帖:
Originally posted by lijunjiexm at 2011-07-18 08:56:41:
那应该如何呢?把它删了??

好像在程序中也没有用到,就删了好了……
如果用到了,就直接给个特定的长度,如 character*80 str 也可以……
6楼2011-07-18 09:21:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lijunjiexm 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 建议基金发布提前给出明确的时间点 +12 kulium 2026-08-21 15/750 2026-08-24 12:02 by iaeyuan
[基金申请] 范进中举一文的中心思想 +6 炎黄贵胄 2026-08-22 7/350 2026-08-24 11:58 by 6543yes
[基金申请] 朋友圈看到的 +7 wangzilk 2026-08-18 9/450 2026-08-24 10:50 by cmrandy
[基金申请] 放榜前的不淡定 20+4 snowwithsea 2026-08-19 17/850 2026-08-24 10:20 by echo8914667
[基金申请] 什么时候开奖? +10 CrisMessi 2026-08-18 11/550 2026-08-24 06:50 by 开心的小狮子
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +4 process2012 2026-08-23 5/250 2026-08-23 19:58 by jurkat.1640
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[基金申请] 只有每年这种时候来逛逛小木虫 +24 yaoyewhu2008 2026-08-20 26/1300 2026-08-22 17:43 by kammury
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +16 医学老男孩 2026-08-20 20/1000 2026-08-21 21:13 by Ldrop2023
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[基金申请] 我面上完蛋了 +7 且听虎啸 2026-08-20 8/400 2026-08-21 12:31 by 酷酷墨镜
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见