Fortran Coder

查看: 9924|回复: 8
打印 上一主题 下一主题

[派生类型] 关于自定义类型type的使用

[复制链接]

19

帖子

6

主题

0

精华

入门

F 币
107 元
贡献
69 点
跳转到指定楼层
楼主
发表于 2015-2-14 15:24:36 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 taotao0718 于 2015-2-16 09:00 编辑

编译时发生这样错误fortcom: Error: mod_random_forcing.F, line 59: This entity cannot be PUBLIC since its derived type is PRIVATE.   [RAN]      type(forcing_fields)   ,save :: ran, ran1
-----------------------------------^

原程序的一部分:
   
[Fortran] 纯文本查看 复制代码
 module mod_random_forcing
#define FFTW 
      use mod_xc
      implicit none
c --- shield everything
      private
      type forcing_fields
         character(len=5) tforce
         real slp    (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  Sea level pressure
         real taux   (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  wind stress in x direction
         real tauy   (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  wind stress in y direction
         real wndspd (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  wind speed (tke source)
         real airtmp (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  pseudo air temperature
         real relhum (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  relative humidity
         real clouds (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  cloud cover
         real precip (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  precipitation
         real sss    (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  SSS for relax 
         real sst    (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  SST for relax 
         real uwind  (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  u-component of wind
         real vwind  (1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  v-component of wind
         real tauxice(1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  ice stress on water in x dir
         real tauyice(1-nbdy:idm+nbdy,1-nbdy:jdm+nbdy) !  ice stress on water in y dir
      end type forcing_fields
c

...................
...................
...................
c --- These will hold the forcing fields (dim and nondimensional)
      type(forcing_fields)   ,save :: ran, ran1


我改为  type(forcing_fields)   ,save,private :: ran, ran1
依旧是一样的错误,不知道有没有高手可以指点一下,谢谢


mod_random_forcing.F

33.63 KB, 下载次数: 5

mod_xc_common_blocks.zip

32.96 KB, 下载次数: 1

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

19

帖子

6

主题

0

精华

入门

F 币
107 元
贡献
69 点
沙发
 楼主| 发表于 2015-2-15 09:26:54 | 显示全部楼层
楚香饭 发表于 2015-2-14 18:19
不知道你用什么编译器?我这里是没法重现你的错误的。

如果可以,请给出更多的代码,至少要有 mod_xc 模块 ...

谢谢,已添加了附件,用的是ifort编译器

19

帖子

6

主题

0

精华

入门

F 币
107 元
贡献
69 点
板凳
 楼主| 发表于 2015-2-16 09:02:01 | 显示全部楼层
楚香饭 发表于 2015-2-15 17:30
我还是找不到 mod_xc 模块,还有 common_blocks.h 文件。

不好意思哈,昨天漏传了,其实还有个问题,不知道这是不是和编译器版本不一样,或者netcdf还有openmpi的选择有关,就是在有的机器上没有问题,但是换机器就出现了这个问题。

19

帖子

6

主题

0

精华

入门

F 币
107 元
贡献
69 点
地板
 楼主| 发表于 2015-2-16 09:59:03 | 显示全部楼层
楚香饭 发表于 2015-2-16 09:53
1.如果 ran 是 public 属性的,那么它的类型 :forcing_fields 也必须是 public 属性的。这是 F95 的规定。 ...

我之前把第六行的private注释了,就通过了,默认public属性,不知道会不会影响最终结果
谢谢您这几天的帮忙,祝新年快乐!

19

帖子

6

主题

0

精华

入门

F 币
107 元
贡献
69 点
5#
 楼主| 发表于 2015-2-25 10:06:43 | 显示全部楼层
楚香饭 发表于 2015-2-16 10:10
我一早就想让你去掉 private,但是怕影响你其他的程序。比如有重名的变量,如果public可能就变成同一个变量 ...

电脑坏了,才看到这条,再试试看,谢谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-6 12:09

Powered by Tencent X3.4

© 2013-2024 Tencent

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