рдлреЛрд░рдЯреНрд░рд╛рди 95 рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдХрд▓рди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдХ

рд╕реВрдХреНрддрд┐


рд▓рдЧрднрдЧ 15 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЬрдм рд╡реЗ рдЕрднреА рднреА MSBuild рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдереЗ, рддреЛ рдРрд╕реЗ рд▓реЛрдЧ рдереЗ рдЬреЛ рдлреЛрд░рдЯреНрд░рд╛рди рдкрд░ рдмрдбрд╝реЗ рдирд┐рдкрдЯрд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдзрд╛рд░реНрдорд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ ...

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реНрддрд░


рдФрд╕рддред

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

"рдлреЛрд░рдЯреНрд░рд╛рди" рд╢рдмреНрдж рдЖрдкрдХреА рдЖрддреНрдорд╛ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ (рдУрдмреЗрд░реЙрди рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛)ред
рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХрд╛ рд╕рдордп рдкрд╣рд▓реЗ рд╣реА рдмреАрдд рдЪреБрдХрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред

рдкрд░рд┐рдЪрдп


рдЖрдк рд╕реЛрдЪрддреЗ рдереЗ рдХрд┐ рдЬрдм рдЖрдк рд▓рд┐рдЦреЗрдВрдЧреЗ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛
call Foo(); 

?

рд╕рд╣реА рдЙрддреНрддрд░ - рдпрд╣ рд╕рдм рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдЗрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдпрджрд┐ рдмрд╛рдбрд╝ рдкрд░ рдЪрд╛рдХ - рддреЛ рдЬрд▓реНрдж рд╣реА рдмреБрд░реЗ рдЗрд░рд╛рджреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдЪреМрдХреАрджрд╛рд░ рдЖрдкрдХреЗ рдКрдкрд░ рдЖ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ FooProgram.f90 рдореЗрдВ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдЗрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдлрд╝реЛрд░реНрдЯрди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ FOO рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред

 !FooProgram.f90 Program FooProgram call Foo(); end program 


рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ _FOO рд╕рдмрд░реВрдЯреАрди рдХреЙрд▓ рдХреЛрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпрд╛рдиреА рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд▓рд┐рдВрдХрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди _FOO рд╡рд░реНрдг рдкрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдлреЛрд░рдЯреНрд░рд╛рди рд▓реЛрдЕрд░рдХреЗрд╕ рдФрд░ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╡рд░реНрдг рд╣рдореЗрд╢рд╛ рдЕрдкрд░рдХреЗрд╕ рд╣реЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреЛрд░рдЯреНрд░рд╛рди рдореЗрдВ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдпрд╣ _FOO, рдФрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рдХрд╛рдо рдЖрдПрдЧрд╛ред
рдпрджрд┐ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рд╡рд╣ рд▓рд┐рдЦреЗрдЧрд╛:

 1>------ Build started: Project: Console1, Configuration: Debug Win32 ------ 1>Compiling with Intel(R) Visual Fortran 11.1.051 [IA-32]... 1>FooProgram.f90 1>Linking... 1>FooProgram.obj : error LNK2019: unresolved external symbol _FOO referenced in function _MAIN__ 1>Debug\Console1.exe : fatal error LNK1120: 1 unresolved externals 1> 1>Build log written to "file://F:\2011_03_12\CPP_PROJECTS\Console1\Console1\Debug\BuildLog.htm" 1>Console1 - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 


рдХреИрдЪ рд▓рдЧрддрд╛ рд╣реИ?

рдпрд╣ рд╕рд╣реА рд╣реИ - рдХреЛрдИ рд╕реНрдерд┐рд░ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рд╣реЛрдЧреАред рдФрд░ рдЕрдЧрд░ рдлреВ рдХреЛ рдПрдХ рдЕрдиреНрдп рд╕рдВрдХрд▓рди рдЗрдХрд╛рдИ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ Bar.f90 рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
 !Bar.f90 Subroutine Foo(bar) Integer, intent(in) :: bar Write(*,*) bar; end subroutine 

?

рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреА рд╣реИ, рдЖрдкрдХреА рд╕реМрддреЗрд▓реА рдмрд╣рди рдХреЛ рднреЗрджреНрдпрддрд╛ рдХрд╣рддреЗ рд╣реИрдВред

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ Bar.f90 рдХреЗ рдЕрдВрджрд░ FOO "рдмрд╛рд╣рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛" рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреВрдирд┐рдЯ (рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреВрдирд┐рдЯ) рд╣реИред
рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдлреЛрд░рдЯреНрд░рд╛рди 95 рдореЗрдВ рддреАрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреВрдирд┐рдЯ рд╣реИрдВ:


рдпрд╣ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдХрд╛рдИ рдореЙрдбреНрдпреВрд▓ред
рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рд╣рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛
рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
 !FooProgram2.f90 Program FooProgram use BarModule; call Foo(); end program !Bar.f90 module BarModule contains Subroutine Foo(bar) Integer, intent(in) :: bar Write(*,*) bar; end subroutine end module 


рдЬрдм рдЖрдк рдЕрд╕реЗрдВрдмрд▓реА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреИрд░рд┐рдВрдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЖрдкрдХреЛ FOO рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

 1>------ Build started: Project: Console1, Configuration: Debug Win32 ------ 1>Compiling with Intel(R) Visual Fortran 11.1.051 [IA-32]... 1>Bar.f90 1>FooProgram.f90 1>F:\2011_03_12\CPP_PROJECTS\Console1\Console1\FooProgram.f90(4): error #6631: A non-optional actual argument must be present when invoking a procedure with an explicit interface. [BAR] 1>compilation aborted for F:\2011_03_12\CPP_PROJECTS\Console1\Console1\FooProgram.f90 (code 1) 1> 1>Build log written to "file://F:\2011_03_12\CPP_PROJECTS\Console1\Console1\Debug\BuildLog.htm" 1>Console1 - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 


рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреВрдирд┐рдЯ рдореЗрдВ FOO рдХреЙрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ? рднрд╛рдЧ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЖрдкрдХреЛ рдЙрддреНрддрд░ рджрд┐рдпрд╛: рдЙрдиреНрд╣реЛрдВрдиреЗ FOO рдХреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕рдШрд╛рдд рд╕реЗ рддреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдпрд╣рд╛рдБ рдореИрдВ рдзреЛрдЦрд╛ рджреЗрдЧрд╛ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рджреГрд╢реНрдп рдХреЛ рдПрдХ рдШреЛрд╖рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛ред

рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдкрд╣рд▓рд╛: рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреВрдирд┐рдЯ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдлреЛрд░рдореИрди рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рдмрд░рдореЛрдбреБрд▓реЗрдореЛрдб рдлрд╝рд╛рдЗрд▓ (рд╣реЗрдбрд▓ рдлрд╛рдЗрд▓реНрд╕ рдФрд░ рд╕реАрдПрд▓рдЖрд░ рдХреЗ рд▓рд┐рдП рд╣реИрд▓реЛ) рдореЗрдВ рд░рдЦрд╛ рд╣реИред

рджреВрд╕рд░рд╛: рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЗрдХрд╛рдИ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ред
рд░реЗрдЦрд╛ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдпрд╣реА рд╣реЛрддрд╛ рд╣реИ
 use BarModule; 


рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкрд╣рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ рд╣рдорд╛рд░реА рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рдХреИрд╕реЗ рдмрддрд╛ рдкрд╛ рд░рд╣рд╛ рдерд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдм FOO () рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд╣реАрдВ рд╣реИ, FOO рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдХреЙрд▓ рд╣реИред рд╕рдВрдХрд▓рдХ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

рд╕рдм рдареАрдХ рд▓рдЧрдиреЗ рд▓рдЧрд╛ рд╣реИред рд╕рднреА рд▓реЛрдЧ рдЦреБрд╢ рд╣реИрдВред

рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдирд┐рд░реНрдорд╛рдг, рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рд╣рдореЗрдВ рд╕рдВрдХрд▓рди рдЪрд░рдг рдкрд░ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдХреЛрдбрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ FOO_BAZmodule рдореЙрдбреНрдпреВрд▓ рдФрд░ FOO_BAZ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред
рдпрд╛рдиреА рд░рд┐рдПрдХреНрдЯрд░ рдХреВрд▓рд┐рдВрдЧ рд▓реВрдк рдореЗрдВ рдХреВрд▓реЗрдВрдЯ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА "рднрд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛" рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
 !FooProgram.f90 Program FooProgram use BarModule; call Foo(1); end program !Bar.f90 module BarModule contains Subroutine Foo(bar) use FOO_BAZModule Integer, intent(in) :: bar Write(*,*) bar; call Foo_BAZ(); end subroutine end module !Foo_Baz.f90 module FOO_BAZModule contains subroutine FOO_BAZ() write(*,*) "FOO_BAZ" endsubroutine end module 


рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ FooProgram <- Foo <- Foo_BAZ рдХреЛ рджреЛ рдореЗрдВ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
FooProgram <- Foo рдФрд░ Foo <- Foo_BAZред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд░реНрд╡рд╢рдХреНрддрд┐рдорд╛рди рдирд╣реАрдВ рд╣реИред рдФрд░ Foo_Baz рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдмрд┐рд▓реНрдб рд▓реЙрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 1>------ Build started: Project: Console1, Configuration: Debug Win32 ------ 1>Compiling with Intel(R) Visual Fortran 11.1.051 [IA-32]... 1>FOO_BAZ.f90 1>Bar.f90 1>FooProgram.f90 1>Linking... 1>Embedding manifest... 1> 1>Build log written to "file://F:\2011_03_12\CPP_PROJECTS\Console1\Console1\Debug\BuildLog.htm" 1>Console1 - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 

Bar.f90 рдФрд░ FooProgram.f90 рдХреЛ рдкреБрдирд░реНрдмреАрдорд╛ рдХреЗ рд▓рд┐рдП рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ред

рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдпрд╣ рдЕрд╕рд╣рдиреАрдп рд╣реИ рдЬрдм рдЖрд╡реЗрджрди рдХреЗ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЬреЛрдбрд╝рд╛ рдерд╛ ...

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА (рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрдВрдЯреЗрд▓ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдлреЛрд░рдЯреНрд░рд╛рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд) рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИрдХ


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, FOO_BAZ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдП рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдХреЗрд╡рд▓ рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рдХ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИред рдЦреИрд░ - рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ ...
рд╣рдо рдЗрд╕реЗ FOO_BAZ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ:
 interface subroutine FOO_BAZ() endsubroutine endinterface 


рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдореЙрдбреНрдпреВрд▓ FOO_BAZModule рдореЗрдВ рд░рдЦреЗрдВ
 !Foo_baz.f90 module FOO_BAZModule interface subroutine FOO_BAZ() endsubroutine endinterface contains subroutine FOO_BAZ() write(*,*) "FOO_BAZ 2" endsubroutine end module 


рд▓реЗрдХрд┐рди рдЬрдм рд╕рдВрдХрд▓рди, рдПрдХ рдЕрдкреНрд░рд┐рдп рдЖрд╢реНрдЪрд░реНрдп рд╣рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ:

 1>------ Build started: Project: Console1, Configuration: Debug Win32 ------ 1>Compiling with Intel(R) Visual Fortran 11.1.051 [IA-32]... 1>FOO_BAZ.f90 1>F:\2011_03_12\CPP_PROJECTS\Console1\Console1\FOO_BAZ.f90(8): error #6645: The name of the module procedure conflicts with a name in the encompassing scoping unit. [FOO_BAZ] 1>compilation aborted for F:\2011_03_12\CPP_PROJECTS\Console1\Console1\FOO_BAZ.f90 (code 1) 1>Bar.f90 1>FooProgram.f90 1> 1>Build log written to "file://F:\2011_03_12\CPP_PROJECTS\Console1\Console1\Debug\BuildLog.htm" 1>Console1 - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 


рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХрд░реЗрдВ?
рдХреНрдпрд╛ рд╣рдо рдЬреЛ рд╣рд╛рд░ рдорд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рд╣рдорд╛рд░реЗ рдКрдкрд░ рд╣рд╛рд╡реА рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдо рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреЛрдб рдХреЗ рддрдереНрдп рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдЕрдкрдирд╛ рдЖрдзрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд░реНрдмрд╛рдж рд╣реЛрдВрдЧреЗ?

рд╣рдХред рджреВрд╕рд░рд╛ рдХрджрдо


рд╣рдо FOO_BAZ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдВрдХрд▓рди рдЗрдХрд╛рдИ рдореЗрдВ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ:
 !Foo_baz.f90 module FOO_BAZModule interface subroutine FOO_BAZ() endsubroutine endinterface end module !FOO_BAZ_Implementation.f90 subroutine FOO_BAZ() write(*,*) "FOO_BAZ 2" endsubroutine 


рд╕рдВрдХрд▓рди ...

 1>------ Build started: Project: Console1, Configuration: Debug Win32 ------ 1>Compiling with Intel(R) Visual Fortran 11.1.051 [IA-32]... 1>FOO_BAZ_Implementation.f90 1>FOO_BAZ.f90 1>Bar.f90 1>FooProgram.f90 1>Linking... 1>Embedding manifest... 1> 1>Build log written to "file://F:\2011_03_12\CPP_PROJECTS\Console1\Console1\Debug\BuildLog.htm" 1>Console1 - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 


рдЦреИрд░ рдЕрдм, рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЪрд╛рд░ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣реИрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛?
рд╣рдо FOO_BAZ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЕрдм "рдмрд╛рд╣рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛" рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрдХрд╛рдИ рдмрди рдЧрдИ рд╣реИ, рдФрд░ рд╕рдВрдЦреНрдпрд╛ рд╕рдВрдХрд▓рди:

 1>------ Build started: Project: Console1, Configuration: Debug Win32 ------ 1>Compiling with Intel(R) Visual Fortran 11.1.051 [IA-32]... 1>FOO_BAZ_Implementation.f90 1>Linking... 1>Embedding manifest... 1> 1>Build log written to "file://F:\2011_03_12\CPP_PROJECTS\Console1\Console1\Debug\BuildLog.htm" 1>Console1 - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 


рд╡рд╣ рд╕рдм рд╣реИред рд╣реИрдХ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдХрд▓рди рдЗрдХрд╛рдИ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╣реИрдХ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ рдХрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ "рдмрд╛рд╣рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛" FOO_BAZ рдореЙрдбреНрдпреВрд▓ FOO_BAZModule рд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ FOO_BAZ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ)ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдХреНрдпрд╛ рд╣рдореЗрдВ рд╡рд╣реА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдорд┐рд▓рд╛ рдерд╛?
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ - рдирд╣реАрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдиреБрдЕрд▓ рд╕рддреНрдпрд╛рдкрди рдЕрдм рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рдореЗрд░реЗ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдПрдХ рд╕рдорд╛рди рд╣реИрдХ рдиреЗ рдореБрдЭреЗ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕реНрдерд┐рд░ рдХреЛрдб рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЯреБрдХрдбрд╝рд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬреЛ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рдереЗред

рдЙрдкрд╕рдВрд╣рд╛рд░


рдмреЗрд╢рдХ, рдЕрдм рдЬрдм .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЗ рдкрд░рд┐рд╡рд╛рд░ рдХреА рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЙрд╕реА рдХреНрд╖рдг рдЬрдм рдЖрдк Microsoft Visual Studio рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рдЕрдЪреНрдЫреА рдкреНрд░рдХреГрддрд┐ рд╡рд╛рд▓реА рдореБрд╕реНрдХрд╛рди рдкреИрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рд╡реЗ рдЬрд▓реНрджреА рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб, рдЬрдмрдХрд┐ рдЗрдВрдЯреЗрд▓ рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрдХрд▓рдХ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред
рдФрд░ рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд╡рдпрдВ рдЕрднреА рднреА рдЦрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ: рдлреЛрд░рдЯреНрд░рд╛рди 2003 рдФрд░ рдлреЛрд░рдЯреНрд░рд╛рди 2008 рдорд╛рдирдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдиреЗ рдЗрд╕ рддрдереНрдп рдкрд░ рдореЗрд░рд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдЬ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИрдХ рдирдП рдорд╛рдирдХреЛрдВ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдпрд╣ рдЕрднреА рддрдХ рдЕрдзрд┐рдХрд╛рдВрд╢ рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрдХрд▓рдХреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рджреЛрдиреЛрдВ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рддред

рд╕рдВрджрд░реНрдн


рдЗрд╕ рдЖрд▓реЗрдЦ рдиреЗ Intel┬о Visual Fortran Console Application рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП Intel Visual Studio * 2008, 11.1.3468.2008, рдХреЙрдкреАрд░рд╛рдЗрдЯ ┬й 2002-2009 Intel Corporation рдХреЗ рд▓рд┐рдП Intel┬о Visual Fortran Compiler Integration рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
* рдЕрдиреНрдп рдирд╛рдореЛрдВ рдФрд░ рдмреНрд░рд╛рдВрдбреЛрдВ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Microsoft Visual Studio 2008 рдХреЗ рд▓рд┐рдП
рд╕рдВрд╕реНрдХрд░рдг 9.0.30729.1 рд╕рдкрд╛ ┬й 2007 Microsoft рдирд┐рдЧрдо
рдФрд░ Intel┬о Fortran Compiler рд╕реЗ рд╕рд╛рдордЧреНрд░реА 11.1 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдВрджрд░реНрдн рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБ
Ps рд▓реЗрдЦрдХ рдХрд┐рд╕реА рднреА рдХрдерди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In130914/


All Articles