刘哲睿 发表于 2023-8-14 20:26:32

module使用是否有误

本帖最后由 刘哲睿 于 2023-8-14 20:26 编辑

各位大神好,我这里有不太清楚的地方:为了使用一些类似于全局变量功能的数据,我使用module定义如下变量

   module hiden_para
      implicit none
      real*8 h_c1(10000)
      real*8 h_c2(10000)
      real*8 h_s1(10000)
      real*8 h_s2(10000)
      real*8 h_m(10000)
      !h为应该使用的网络隐藏层参数
      real*8 h1_c1(10000)
      real*8 h1_c2(10000)
      real*8 h1_s1(10000)
      real*8 h1_s2(10000)
      real*8 h1_m(10000)
      !h1为下一步使用的网络隐藏层参数
      real*8 hy_c1(10000)
      real*8 hy_c2(10000)
      real*8 hy_s1(10000)
      real*8 hy_s2(10000)
      real*8 hy_m(10000)
      common h_c1,h_c2,h_s1,h_s2,h_m
      common h1_c1,h1_c2,h1_s1,h1_s2,h1_m
      common hy_c1,hy_c2,hy_s1,hy_s2,hy_m
      !hy为保存更新前网络隐藏层参数
      end



由于这个程序时abaqus计算软件中用到的子程序,在后面使用如下:
   SUBROUTINE UEL(RHS,AMATRX,SVARS,ENERGY,NDOFEL,NRHS,NSVARS,
   1   PROPS,NPROPS,COORDS,MCRD,NNODE,U,DU,V,A,JTYPE,TIME,
   1   DTIME,KSTEP,KINC,JELEM,PARAMS,NDLOAD,JDLTYP,ADLMAG,
   1   PREDEF,NPREDF,LFLAGS,MLVARX,DDLMAG,MDLOAD,PNEWDT,
   1   JPROPS,NJPROP,PERIOD)
      use hiden_para
      INCLUDE 'ABA_PARAM.INC'
      h_s1=SVARS(49:10048)
      h_s2=SVARS(10049:20048)
      h_c1=SVARS(20049:30048)
      h_c2=SVARS(30049:40048)
      h_m=SVARS(40049:50048)
      write(*,*) h_m(1:10)
      h1_s1=h_s1

      !h1_s2=h_s2
      !h1_c1=h_c1
      !h1_c2=h_c2
      !h1_m=h_m
      !hy_s1=h_s1
      !hy_s2=h_s2
      !hy_c1=h_c1
      !hy_c2=h_c2
      !hy_m=h_m
其中svars数组是软件计算过程中传入的不需要预先定义但是上个子程序在运行的过程中回出现如下错误
Unexpected LoadLibraryA error 193
然而当我修改程序注释掉上文中 h1_s1=h_s1时程序可以正常运行,请问这个问题和我module的使用是否有关?

风平老涡 发表于 2023-8-14 23:14:23

本帖最后由 风平老涡 于 2023-8-14 23:18 编辑

有可能是32位程序调用64位库或64位程序调用32位库。
页: [1]
查看完整版本: module使用是否有误