24小时热门版块排行榜    

查看: 3922  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

fangdian

木虫 (正式写手)

[求助] Marc2013中subroutine flux子程序能编译成功,但是不运行? 已有1人参与

新安装了Marc2013,编译器采用VC2010和Intel.Visual.Fortran.Composer.XE.2011.5.221.ISO-TBE,进行焊接模拟测试,采用的子程序EEE.f内容如下:
      subroutine flux(f,temflu,mibody,time)
c      implicit real*8 (a-h,o-z)
c     ** Start of generated type statements **
c      real*8 f
c      integer mibody
c      real*8 temflu, time
c     ** End of generated type statements **
      dimension f(2),mibody(10),temflu(6)
c* * * * * *
c
c     user subroutine for non-uniform flux input.
c
c     f(1)         flux value (to be defined)
c     f(2)         derivative of flux with respect to temperature
c                  (to be defined; optional, this might improve the
c                   convergence behavior)
c
c     temflu(1)    estimated temperature
c     temflu(2)    previous volumetric flux
c     temflu(3)    temperature at beginning of increment
c     temflu(4,5,6)integration point coordinates
c     mibody(1)    element number
c     mibody(2)    flux type
c     mibody(3)    integration point number
c     mibody(4)    flux index - not used if table input
c     mibody(5)    not used
c     mibody(6)    =1 : heat transfer
c                  =2 : joule
c                  =3 : bearing
c                  =4 : electrostatic
c                  =5 : magnetostatic
c                  =6 : acoustic
c     mibody(7)    internal element number
c     mibody(8)    layer number for heat transfer shells elements
c                  and volume flux
c     mibody(9)    Not used
c     mibody(10)   boundary condition number if table input
c     time         time
c
c* * * * * *
      OPEN(UNIT=10,FILE='HELLO.TXT')
      WRITE(10,*) "HELLLLL!"
      a=0.005
      b=0.005
      c=0.005
      v=0.02
      d0=0
      d=v*time
      q=3000*0.7
      pi=3.14
      x=temflu(4)
      y=temflu(5)
      z=temflu(6)
      mibody(6)=1
      y0=0.01
      x0=0
      heat=6*sqrt(3.0)*q/(a*b*c*pi)
      ex=exp(-3*(z-d)**2/c**2-3*(y-y0)**2/b**2-3*(x-x0)**2/a**2)
      f(1)=heat*ex
      return
      end
建模的模型及坐标系如下:
Marc2013中subroutine flux子程序能编译成功,但是不运行?
热源加载的边界条件如下图:
Marc2013中subroutine flux子程序能编译成功,但是不运行?-1
上图中,有些疑问:我明明已经选择了那个子程序选项,为何dimension和motion框中还有热源参数的值?这些值还起作用吗?(从计算结果看,没有起作用)
job的check结果是正确的,信息如下:
INFO: Analysis dimension is derived from element class hex8.
INFO: Assuming 3-D analysis!
INFO: Found 0 errors and 0 warnings.
INFO: Job check complete.
结果设置及运行提示如下图:
Marc2013中subroutine flux子程序能编译成功,但是不运行?-2
可以看到,提示框中是选择的EEE.f的子程序,并且参与编译,运行代码3004也是对的。
运行log文件前部分如下:
Marc 2013.1.0 , Build  230727  Windows_NT version
--------------------------------
                     :         
Program name         : marc  
Job ID               : C:\Users\xxxxxxxxx\model3_job1   
Version type         : i8  
User subroutine name : EEE  
User objects/libs    :   
Restart file job ID  :   
Substructure file ID :   
Post file job ID     :   
Defaults file ID     :   
View factor file ID  :   
Save generated module: no
MPI library          : intel-mpi
Auto restart         : 0  
Contact decoupling   : 0
DDM processes        :  
Element loop threads :  
Solver processes     :  
Solver threads       :  
GPGPU option         :  
Host file            :   
Distributed i/o      :   
Run directory        : C:\Users\xxxxxxxxx
Scratch directory    : C:\Users\xxxxxxxxx
Default bin directory: E:\software\special\mar2013\marc2013.1\bin\win64i8
Material database    : E:\software\special\mar2013\marc2013.1\AF_flowmat\   
                     :            
ifort  /fpp /c /DWIN32_intel  -D_IMPLICITNONE /nologo /integer_size:64 -DI64 -DMKL -DOPENMP -DOMP_COMPAT -D_MSCMARC -DWIN64 /I"E:\software\special\mar2013\marc2013.1\common" /I"E:\software\special\mar2013\marc2013.1\bcsgpusolver\common" /I"E:\software\special\mar2013\marc2013.1\mumpssolver\include" /I"E:\software\special\mar2013\marc2013.1\intelmpi\win64\include" /O2 /Qip /Qvec- /Qsafe-cray-ptr /switch:fe_old_modvar /W0  /Qopenmp /Qopenmp-threadprivate:compat  -DCASI -DPARDISO -DMUMPS -DBCSGPU -DCUDA /MD -DDDM /object:"C:\Users\xxxxxxxxx\EEE.obj"  "C:\Users\xxxxxxxxx\EEE.f"

LINK /nologo  /out:"EEE.exe" "E:\software\special\mar2013\marc2013.1\lib\win64i8\main.obj" "E:\software\special\mar2013\marc2013.1\lib\win64i8\blkdta.obj" "E:\software\special\mar2013\marc2013.1\lib\win64i8\comm1.obj" "E:\software\special\mar2013\marc2013.1\lib\win64i8\comm2.obj" "E:\software\special\mar2013\marc2013.1\lib\win64i8\comm3.obj" "C:\Users\xxxxxxxxx\EEE.obj"  "E:\software\special\mar2013\marc2013.1\lib\win64i8\srclib.lib" "E:\software\special\mar2013\marc2013.1\lib\win64i8\mcvfit.lib" "E:\software\special\mar2013\marc2013.1\lib\win64i8\mnflib.lib" ""E:\software\special\mar2013\marc2013.1\lib\win64i8\md_user.lib"" "E:\software\special\mar2013\marc2013.1\lib\win64i8\mdsrc.lib"  "E:\software\special\mar2013\marc2013.1\lib\win64i8\bcsgpulib.lib" "E:\software\special\mar2013\marc2013.1\lib\win64i8\marccuda.lib" "E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\mkl_intel_ilp64.lib" "E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\mkl_intel_thread.lib" "E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\mkl_core.lib" "E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\libiomp5mt.lib" "E:\software\special\mar2013\marc2013.1\lib\win64i8\blas_src.lib"  "E:\software\special\mar2013\marc2013.1\lib\win64i8\casilib.lib" "E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\mkl_solver_ilp64.lib"  "E:\software\special\mar2013\marc2013.1\lib\win64i8\mumps.lib" "E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\mkl_scalapack_ilp64.lib" "E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\mkl_lapack95_ilp64.lib"  ""E:\software\special\mar2013\marc2013.1\intelmkl\win64i8\mkl_blacs_intelmpi_ilp64.lib""    "E:\software\special\mar2013\marc2013.1\lib\win64i8\stubs.lib" "E:\software\special\mar2013\marc2013.1\lib\win64i8\clib.lib" "E:\software\special\mar2013\marc2013.1\lib\win64i8\metislib.lib" "E:\software\special\mar2013\marc2013.1\xdr_lib\win64\xdr_irc.lib" /release /subsystem:console /incremental:no /nodefaultlib:libc.lib /nodefaultlib:libcmt.lib /nodefaultlib:libifcoremt.lib libmmd.lib libifcoremd.lib /LIBPATH:"E:\software\special\mar2013\marc2013.1\intelmpi\win64\lib" impi.lib ws2_32.lib kernel32.lib user32.lib netapi32.lib advapi32.lib comdlg32.lib comctl32.lib
从上述运行过程,看到EEE.f参与了编译过程,并且编译成功!
运行的log文件显示运行完毕,信息如下:

             **************************************************************************


            
             This is a successful completion to a Marc simulation,
             indicating that no additional incremental data was
             found and that the analysis is complete.
            




             **************************************************************************
但是运行结果显示如下:
Marc2013中subroutine flux子程序能编译成功,但是不运行?-3
程序运行结果明显不对!通过查阅output文件,,发现flux没有加载上,output证实如下:
Marc2013中subroutine flux子程序能编译成功,但是不运行?-4
另外,我的子函数中      OPEN(UNIT=10,FILE='HELLO.TXT')和      WRITE(10,*) "HELLLLL!" 这句没有起作用,因为工作目录下没有生成HELLO.TXT文件(这也说明了子程序没有起作用!)
不知道是什么原因?谢谢
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yinghuilan

新虫 (初入文坛)

【答案】应助回帖

好像是环境变量有问题吧,但是我真是找不出原因,环境变量是这样的:
include
C:\Program Files\Intel\ComposerXE-2011\compiler\include;C:\Program Files\Intel\ComposerXE-2011\mkl\include;C:\MSC.Software\Marc_Classic\2013.0.0\marc2013\intelmpi\win32\include;C:\Program Files\Microsoft Visual Studio 10.0\VC\include;C:\Program Files\Microsoft SDKs\Windows\v7.0A\include
lib
C:\Program Files\Intel\ComposerXE-2011\compiler\lib\ia32;C:\Program Files\Intel\ComposerXE-2011\mkl\lib\ia32;C:\MSC.Software\Marc_Classic\2013.0.0\marc2013\lib\win32i8;C:\MSC.Software\Marc_Classic\2013.0.0\marc2013\lib\win32;C:\MSC.Software\Marc_Classic\2013.0.0\marc2013\intelmpi\win32\lib;C:\MSC.Software\Marc_Classic\2013.0.0\marc2013\lib_shared\win32
path
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin;
C:\Program Files\Intel\ComposerXE-2011\bin;
C:\MSC.Software\Marc_Classic\2013.0.0\marc2013\bin;C:\MSC.Software\Marc_Classic\2013.0.0\marc2013\tools;C:\MSC.Software\Marc_Classic\2013.0.0\mentat2013\bin;C:\Program FilesMicrosoft Visual Studio 10.0\VC\bin;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;C:\Program Files\Intel\ComposerXE-2011\bin\ia32;C:\Program Files\Intel\ComposerXE-2011\redist\ia32\mkl
9楼2015-02-24 19:38:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

fangdian

木虫 (正式写手)

运行结果中温度场居然是负值!!
2楼2015-01-13 23:03:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

我取消子程序的设置,改为常数值:
Marc2013中subroutine flux子程序能编译成功,但是不运行?-5
计算结果如下:
Marc2013中subroutine flux子程序能编译成功,但是不运行?-6
可以看到,取消子程序后,计算结果是期望的,说明其它设置应该没有问题。

就是子函数的问题?谢谢
3楼2015-01-13 23:07:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

为了方便讨论,我附上了我的相应文件:
谢谢

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 文件附件.rar
  • 2015-01-13 23:05:47, 15 K
4楼2015-01-13 23:09:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见