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.
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?
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.
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 ’
3 MODULE CommonData
4 IMPLICIT NONE
6 CHARACTER∗32 , PARAMETER : : SETNAME = ’ El eme n t L i s t ’
7 REAL∗8 , PARAMETER : : ySt ress = 210.D0
9 INTEGER , ALLOCATABLE : : e d g e L i s t ( : , : )
10 INTEGER : : edgeCount
12 REAL∗8 , ALLOCATABLE : : edgeStress ( : )
13 LOGICAL , ALLOCATABLE : : yMask ( : )
14 END MODULE CommonData
16 SUBROUTINE ubginc ( ubInc , ubIncsub )
18 USE CommonData
19 USE MarcTools
21 IMPLICIT NONE
23 ! ∗∗ St a r t of generated type statements ∗∗
24 INTEGER ubInc , ubIncsub
25 ! ∗∗ End of generated type statements ∗∗
27 INTEGER , PARAMETER : : MAXEDGE = 8
29 INTEGER , ALLOCATABLE , DIMENSION ( : ) : : e l L s t
30 INTEGER : : elNum
32 INTEGER , ALLOCATABLE , DIMENSION ( : , : ) : : curEdLst
33 INTEGER : : curEl , curEdNum
35 INTEGER , ALLOCATABLE , DIMENSION ( : , : ) : : orgEdLst
36 INTEGER : : orgEdNum
38 INTEGER , ALLOCATABLE , DIMENSION ( : , : ) : : r e fEdLst
39 INTEGER : : nRefEdLst
41 INTEGER : : i , j , k
43 IF ( ubInc .EQ. 0) THEN
45 CALL E x t r a c t S e t I t e m L s t (SETNAME, elLst , elNum)
47 IF ( elNum .GT . 0) THEN
48 ALLOCATE ( or g E d l s t (2 , elNum∗MAXEDGE) )
49 orgEdNum = 0
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
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 )
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 )
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
73 CALL QUIT(1234)
74 END IF
75 END IF
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 )
82 USE CommonData
83 IMPLICIT NONE
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 ∗∗
92 INTEGER : : i , yEdNum
93 INTEGER , ALLOCATABLE , DIMENSION ( : ) : : y Index
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 ) )
100 nEdgeList = yEdNum
101 iEdgeLi s t ( : , 1 : yEdNum) = e d g e L i s t ( : , yIndex )
102 END IF
106 SUBROUTINE uedinc ( inc , incsub )
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 ∗∗
115 INTEGER : : i
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
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.
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.
implicit logical (a-z)
if (icall.eq.1) then
c alternative 1: specify a sequence of nodes
if (alt.eq.1) then
elseif (alt.eq.2) then
c alternative 2: specify a list of edges in any order
elseif (alt.eq.3) then
c 3d: give a list of faces
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.
And the resulted above code on Fortran from the book, the Intel XE 2015 Fortran compiler can compile without errors? Thanks.
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 22.214.171.1247 Build 20160518
Copyright (C) 1985-2016 Intel Corporation. All rights reserved.
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.
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).
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.
can you help me with how to make the connection between marc 2016 and xe 2015?
Please see https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-fo...
If you need additional assistance, please create a new forum topic here: https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-fo...
Intel(R) Developer Zone Support
*Other names and brands may be claimed as the property of other
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”?