- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello. Inform, please, some links, where it is possible to download the manuals and books on language Fortran, which compiles Intel Visual Fortran Compiler for Windows. Thanks.
- Tags:
- Development Tools
- Intel® License Manager for FLEXlm*
- Intel® Software Development Products Registration Center
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I acquired the book recently:
Zia Javanbakht, Andreas Öchsner. Advanced Finite Element Simulation with MSC Marc. Application of User Subroutines. – Springer International Publishing AG, 2017. 333 pages.
In this book to Preface it is written:
The instructions provided in this book relate to the MSC Marc/Mentat 2014.2.0 (64 bit) version under Microsoft Windows OS and the Intel XE 2013 FORTRAN (update 5) compiler (also known as Intel FORTRAN version 13).
Question: in this book, in paragraph 4.2.3 USPLIT_MESH, somebody checked the Example 4.3 for existence of errors in the presented listing on Fortran and operability in Marc of the project, submitted in fig. 4.4?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Your questions should be addressed to the authors of the book and/or MSC Marc vendors/user forums.If the code in question is short and may be displayed here (there is a separate Intel forum for Visual Fortran on Windows), you may ask about difficulties in compiling it. Even then, questions regarding the functioning of the code can only be answered by someone familiar with Marc.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the enclosed below listing on Fortran (taken from this book in paragraph 4.2.3 USPLIT_MESH, Example 4.3), the Intel XE 2013 FORTRAN (update 5) compiler will find errors or not? Thanks.
1 #INCLUDE ’ MarcTools . f ’
2
3 MODULE CommonData
4 IMPLICIT NONE
5
6 CHARACTER∗32 , PARAMETER : : SETNAME = ’ El eme n t L i s t ’
7 REAL∗8 , PARAMETER : : ySt ress = 210.D0
8
9 INTEGER , ALLOCATABLE : : e d g e L i s t ( : , : )
10 INTEGER : : edgeCount
11
12 REAL∗8 , ALLOCATABLE : : edgeStress ( : )
13 LOGICAL , ALLOCATABLE : : yMask ( : )
14 END MODULE CommonData
15
16 SUBROUTINE ubginc ( ubInc , ubIncsub )
17
18 USE CommonData
19 USE MarcTools
20
21 IMPLICIT NONE
22
23 ! ∗∗ St a r t of generated type statements ∗∗
24 INTEGER ubInc , ubIncsub
25 ! ∗∗ End of generated type statements ∗∗
27 INTEGER , PARAMETER : : MAXEDGE = 8
28
29 INTEGER , ALLOCATABLE , DIMENSION ( : ) : : e l L s t
30 INTEGER : : elNum
31
32 INTEGER , ALLOCATABLE , DIMENSION ( : , : ) : : curEdLst
33 INTEGER : : curEl , curEdNum
34
35 INTEGER , ALLOCATABLE , DIMENSION ( : , : ) : : orgEdLst
36 INTEGER : : orgEdNum
37
38 INTEGER , ALLOCATABLE , DIMENSION ( : , : ) : : r e fEdLst
39 INTEGER : : nRefEdLst
40
41 INTEGER : : i , j , k
42
43 IF ( ubInc .EQ. 0) THEN
44
45 CALL E x t r a c t S e t I t e m L s t (SETNAME, elLst , elNum)
46
47 IF ( elNum .GT . 0) THEN
48 ALLOCATE ( or g E d l s t (2 , elNum∗MAXEDGE) )
49 orgEdNum = 0
50
51 DO i = 1 , elNum
52 curEl = elLst ( i )
53 CALL ExtractElmEdgeLst ( curEl , curEdLst , curEdNum)
54 DO j = 1 , curEdNum
55 DO k = 1 , 2
56 orgEdLst ( k , orgEdNum + j ) = curEdLst ( k , j )
57 END DO
58 END DO
59 orgEdNum = orgEdNum + curEdNum
60 END DO
61
62 CALL Pu t Sma l l F i r s t ( orgEdLst , orgEdNum )
63 CALL DelRepeated2D ( orgEdlst , orgEdNum , r e f E d l s t , nRefEdLst )
64
65 CALL DelElmFreeEdge ( r e fEd l s t , nRefEdLst , e d g e L i s t )
66 edgeCount = s i z e ( edgeList , 2 )
67
68 Al l o c a t e ( edgeStress ( edgeCount ) )
69 Al l o c a t e ( yMask ( edgeCount ) )
70 yMask = . FALSE .
71 edgeStress = 0.D0
72 ELSE
73 CALL QUIT(1234)
74 END IF
75 END IF
76 RETURN
77 END
78
79 SUBROUTINE u s p l i t _me s h ( i c a l l , n o d e l i s t , n l i s t , i e d g e l i s t , n e d g e l i s t ,
80 $ i f a c e l i s t , n f a c e l i s t , inc , time , t imeinc )
81
82 USE CommonData
83 IMPLICIT NONE
84
85 ! ∗∗ St a r t of generated type statements ∗∗
86 INTEGER n o d e l i s t , n l i s t , i e d g e l i s t , n e d g e l i s t , i f a c e l i s t , n f a c e l i s t
87 INTEGER i c a l l , i n c
88 REAL∗8 time,timeinc
89 DIMENSION n o d e l i s t ( ∗ ) , i e d g e l i s t (2 , ∗ ) , i f a c e l i s t (4 , ∗ )
90 ! ∗∗ End of generated type statements ∗∗
91
92 INTEGER : : i , yEdNum
93 INTEGER , ALLOCATABLE , DIMENSION ( : ) : : y Index
94
95 IF ( i c a l l .EQ. 3) THEN
96 yMask = [ ( edgeStress ( i ) .GT. yStress , i =1 , edgeCount ) ]
97 yEdNum = COUNT( yMask )
98 ALLOCATE ( yIndex ,SOURCE=PACK ( [ ( i , i =1 , edgeCount ) ] , yMask ) )
99
100 nEdgeList = yEdNum
101 iEdgeLi s t ( : , 1 : yEdNum) = e d g e L i s t ( : , yIndex )
102 END IF
103 RETURN
104 END
105
106 SUBROUTINE uedinc ( inc , incsub )
107
108 USE CommonData
109 USE MarcTools , ONLY: GetElmEdgeVal
110 IMPLICIT NONE
111 ! ∗∗ St a r t of generated type statements ∗∗
112 INTEGER inc , i n c s u b
113 ! ∗∗ End of generated type statements ∗∗
114
115 INTEGER : : i
116
117 IF ( i n c .GT . 0 ) THEN
118 DO i = 1 , edgeCount
119 edgeStress ( i ) =
120 & GetElmEdgeVal ( edgeList ( 1 , i ) , edgeList ( 2 , i ) ,17 ,2)
121 WRITE ( 6 , ∗ ) edgeList ( 1 , i ) , ’ − ’ , edgeList ( 2 , i )
122 WRITE ( 6 , ∗ ) ’ s t r e s s ’ , edgeStress ( i )
123 END DO
124 END IF
125 RETURN
126 END
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The process that you used for extracting source text from a PDF file has added hundreds of spurious space characters. The text has line numbers preceding each line. As a result, what you posted is not valid Fortran source code; the include file Marctools.f will be needed before compilation is attempted..
On the other hand, there is no requirement for a specific version or even any version of the Intel compiler at this stage. You can use any F95 or F2003 compiler on the source code, as long as you have MARC libraries that are compatible with that compiler.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In documentation, which can be loaded from the website MSC Software, syntax of the enclosed below file on Fortran for the Intel XE 2015 Fortran compiler (is also known as Intel Fortran version 15) for MSC.Marc, significantly differs from brought above from the book. From these two variants, where the correct syntax of Fortran for the Intel XE 2015 Fortran compiler? Thanks.
subroutine usplit_mesh(icall,nodelist,nlist,iedgelist,nedgelist,
$ ifacelist,nfacelist,inc,time,timeinc)
#ifdef _IMPLICITNONE
implicit none
#else
implicit logical (a-z)
#endif
integer nodelist,nlist,iedgelist,nedgelist,ifacelist,nfacelist
integer icall,inc
real*8 time,timeinc
dimension nodelist(*),iedgelist(2,*),ifacelist(4,*)
integer num,i,alt
if (icall.eq.1) then
alt=3
c alternative 1: specify a sequence of nodes
if (alt.eq.1) then
nlist=7
num=0
do i=57,63
num=num+1
nodelist(num)=i
enddo
elseif (alt.eq.2) then
c alternative 2: specify a list of edges in any order
nedgelist=6
iedgelist(1,1)=57
iedgelist(2,1)=58
iedgelist(1,2)=62
iedgelist(2,2)=63
iedgelist(1,3)=59
iedgelist(2,3)=60
iedgelist(1,4)=58
iedgelist(2,4)=59
iedgelist(1,5)=60
iedgelist(2,5)=61
iedgelist(1,6)=61
iedgelist(2,6)=62
elseif (alt.eq.3) then
c 3d: give a list of faces
nfacelist=4
ifacelist(1,1)=819
ifacelist(2,1)=817
ifacelist(3,1)=822
ifacelist(4,1)=824
c
ifacelist(1,2)=817
ifacelist(2,2)=57
ifacelist(3,2)=58
ifacelist(4,2)=822
c
ifacelist(1,3)=829
ifacelist(2,3)=827
ifacelist(3,3)=822
ifacelist(4,3)=824
c
ifacelist(1,4)=822
ifacelist(2,4)=827
ifacelist(3,4)=58
ifacelist(4,4)=59
endif
endif
return
end
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
valery z. wrote:
In documentation, which can be loaded from the website MSC Software, syntax of the enclosed below file on Fortran for the Intel XE 2015 Fortran compiler (is also known as Intel Fortran version 15) for MSC.Marc, significantly differs from brought above from the book. From these two variants, where the correct syntax of Fortran for the Intel XE 2015 Fortran compiler?
The code that you just posted is standard Fortran 77, except for the '#' preprocessor directives. Any Fortran compiler can compile this code, and there is no reason to look for "correct syntax for the Intel xx compiler". Any version of the Intel Fortran compiler for Windows can compile this code. So can other compilers such as G77, GFortran, MS Fortran, etc.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
And the resulted above code on Fortran from the book, the Intel XE 2015 Fortran compiler can compile without errors? Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes. Whether Marc will work correctly with the .OBJ/DLL that is produced is, on the other hand, another question. As I said earlier, the compiler version is of almost no relevance.
S:\lang>ifort /c /fpp usplit.F Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 15.0.7.287 Build 20160518 Copyright (C) 1985-2016 Intel Corporation. All rights reserved.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Many thanks for detailed answers.
In Marc with the Intel XE 2015 Fortran compiler there is the demonstration example e8x94c.dat on deformation of a plate. Without use of file u8x94c.f on Fortran with the method usplit_mesh, shown above, deformation of a plate is run without a splitting of faces of the hexagon finite elements. After adding file u8x94c.f, deformation of a plate is run with a splitting of faces (written above in code in the method usplit_mesh) of hexagon finite elements.
In file u8x94c.f is declared the method usplit_mesh with ten parameters, stated above. From the theory of programming it is known, that the method usplit_mesh is not run, until it is called with a task of certain values for all ten parameters, for example with the value “1” for the variable “icall”. At running of the demonstration example e8x94c.dat on deformation of a plate with use of file u8x94c.f with method usplit_mesh, somewhere is called the method usplit_mesh with the certain values for all ten parameters, but where is called, it is unknown.
What code should be written in the method usplit_mesh, shown above, to learn, where the method usplit_mesh is called? Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Those questions should be asked of the vendor of Marc or in a Marc users' forum. They are completely outside the scope of this forum (which is about licensing, downloading and installing Intel compilers).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Inform, please, some links, where it is possible to download the manuals and books on language Fortran, on which is written the presented above method usplit_mesh in the demonstration example e8x94c.dat from MSC.Marc and which compiles Intel Visual Fortran Compiler for Windows. Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
can you help me with how to make the connection between marc 2016 and xe 2015?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please see https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/735816
If you need additional assistance, please create a new forum topic here: https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows
Regards, Hal
Intel(R) Developer Zone Support
https://software.intel.com
*Other names and brands may be claimed as the property of other
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
mech d. wrote:
can you help me with how to make the connection between marc 2016 and xe 2015?
Indicative instruction of installation of system “Marc 2016 + Intel XE 2015 Fortran compiler”:
1. Installation of Marc 2016.
2. Installation of Intel XE 2015 Fortran compiler.
3. We carry out: Marc, File, Import, Marc Input, and we import the Marc demonstration file e8x94c.dat (from folder Marc, 2016.0.0, marc2016, demo). In a graphic window, the plate appears. We add the file u8x94c.f to the Run Job panel, and we click the Submit button. In several seconds, the solution of a task comes to an end. After the choice of commands File, Results, Open Default, Monitor results file, the plate begins to be deformed with the splitting of the faces. To two files e8x94c.dat, u8x94c.f are added more the 6 files: *.mud, *_job1.dat, *_job1.log, *_job1.out, *_job1.sts, *_job1.t16, *_job1.t16.mud.
4. A typical error, which I faced: system "does not see" the *.f file. For correction of this error, it is necessary to reduce a way to this *.f file.
5. If at a run of point 3, the errors appeared, at first correct errors independently, and if it is impossible, write here.
6. After a solution of this test problem (e8x94c.dat + u8x94c.f), it is possible to start a solution of the task.
7. I solved the several test examples (*.dat + *.f) from folder Marc, 2016.0.0, marc2016, demo. But at me the solution of my engineering task in system “Marc 2016 + Intel XE 2015 Fortran compiler” did not turn out (you watch the link in post #16).
8. And what engineering problem you plan to solve in system “Marc 2016 + Intel XE 2015 Fortran compiler”?
Thanks.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page