Fortran Coder

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

[派生类型] 求助,关于自定义数据类型的问题

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
6 点
跳转到指定楼层
楼主
发表于 2014-2-11 00:57:24 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
小弟我自定义了若干数据类型,都写在module里面,但是在声明的时候很奇怪,第一个数据类型,也就是TYPE Coordinates 声明无误,但是第二个TYPE Matrix_2X2就不能声明,编译器报错,显示出现非预期的数据声明,出错语句用红色标出,求教~
[Fortran] 纯文本查看 复制代码
!====TYPE DEFINE!
MODULE DATATYPE
IMPLICIT NONE
  TYPE COORDINATES
  REAL :: X
  REAL :: Y
  END TYPE COORDINATES

  TYPE MATRIX_2X2 
  REAL :: LOCAL(2,2)
  END TYPE MATRIX_2X2

  TYPE B_MATRIX 
  REAL :: LOCAL(18,3)
  END TYPE B_MATRIX 
END MODULE DATATYPE
PROGRAM PERSONALPROJECT
USE DATATYPE

TYPE (COORDINATES),DIMENSION(9) :: NODE_COORD
INTEGER :: I,J,K
TYPE (COORDINATES),DIMENSION(9) :: GAUSS_POINT
DO I=1,3,1
  GAUSS_POINT(I)%X=-0.7745966
    SELECT CASE(I)
      CASE(1)
         GAUSS_POINT(I)%Y=-0.7745966
      CASE(2)
         GAUSS_POINT(I)%Y=0
      CASE(3)
         GAUSS_POINT(I)%Y=0.7745966
    END SELECT
END DO
DO I=1,3,1
  GAUSS_POINT(I)%X=0
    SELECT CASE(I)
      CASE(1)
         GAUSS_POINT(I)%Y=-0.7745966
      CASE(2)
         GAUSS_POINT(I)%Y=0
      CASE(3)
         GAUSS_POINT(I)%Y=0.7745966
    END SELECT
END DO
DO I=1,3,1
  GAUSS_POINT(I)%X=0.7745966
    SELECT CASE(I)
      CASE(1)
         GAUSS_POINT(I)%Y=-0.7745966
      CASE(2)
         GAUSS_POINT(I)%Y=0
      CASE(3)
         GAUSS_POINT(I)%Y=0.7745966
    END SELECT
END DO
!=====ITERATION GAUSS AND JACOBIAN MATRIX
TYPE (MATRIX_2X2), DIMENSION(9) :: JACOBIANMATRIX !// 此处报错
END PROGRAM PERSONALPROJECT

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

2

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
6 点
沙发
 楼主| 发表于 2014-2-11 02:02:09 | 显示全部楼层
问题已解决,是声明必须跟在use后面,不像c or c++,可以随用随开
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-5 23:51

Powered by Tencent X3.4

© 2013-2024 Tencent

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