Fortran Coder

查看: 17426|回复: 2
打印 上一主题 下一主题

[求助] A specification statement cannot appear in the executable section

[复制链接]

15

帖子

5

主题

0

精华

熟手

F 币
129 元
贡献
65 点

规矩勋章

跳转到指定楼层
楼主
发表于 2020-4-7 16:27:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:
[Fortran] 纯文本查看 复制代码
module zx
    integer, parameter :: N=4
    real::k_y
    real,dimension(N,N) :: a
    real,dimension(N,N) :: b
    real,dimension(N,N) :: c
    real,dimension(N,N) :: d
    real,dimension(2*N,2*N) :: e
    real,dimension(2*N,2*N) :: f
    real,dimension(2*N,2*N) :: g
    real,dimension(N,N) :: inv_e
    end module zx


    subroutine xx
    use zx
    call QW
    CALL QWW

    e(1:N,1:N)=a(:,:)
    e(1:N,N+1:2*N)=b(:,:)
    e(N+1:2*N,1:N)=c(:,:)
    e(N+1:2*N,N+1:2*N)=d(:,:)

    f(1:N,1:N)=d(:,:)
    f(1:N,N+1:2*N)=c(:,:)
    f(N+1:2*N,1:N)=b(:,:)
    f(N+1:2*N,N+1:2*N)=a(:,:)



    end subroutine xx


    program main
    include 'link_fnl_shared.h'
    use zx
    call xx
    USE LINRG_INT
    USE WRRRN_INT

    CALL LINRG (e, inv_e)

    CALL WRRRN ('inv_e', inv_e)

    end program main




    SUBROUTINE QW
    use zx
    integer :: i,j
    do i=1,N
    do j=1,N
    a(i,j)=3.d0*i+2.d0*j
    end do
    end do

    do i=1,N
    do j=1,N
    b(i,j)=2.d0*i+3.d0*j
    end do
    end do
    END SUBROUTINE QW


    SUBROUTINE QWW
    use zx
    integer :: i,j
    do i=1,N
    do j=1,N
    c(i,j)=6.d0*i+1.d0*j
    end do
    end do

    do i=1,N
    do j=1,N
    d(i,j)=1.d0*i+6.d0*j
    end do
    end do
    END SUBROUTINE QWW

报错如下:
错误        1         error #6236: A specification statement cannot appear in the executable section.                39        
错误        2         error #6236: A specification statement cannot appear in the executable section.                40        




分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1962

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1353 元
贡献
572 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2020-4-7 22:04:27 | 只看该作者
    call xx
    USE LINRG_INT
    USE WRRRN_INT
改为
    USE LINRG_INT
    USE WRRRN_INT
    call xx

call 属于执行语句,在一个程序单元中,执行语句,必须在定义语句的后面。而 use 必须在定义语句的前面。

15

帖子

5

主题

0

精华

熟手

F 币
129 元
贡献
65 点

规矩勋章

板凳
 楼主| 发表于 2020-4-8 09:28:54 | 只看该作者
谢谢,已经解决啦
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-25 17:15

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表