{"id":255340,"date":"2015-04-16T11:15:02","date_gmt":"2015-04-16T07:15:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=255340"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=255340","title":{"rendered":"Fortran 2003: \u0443\u0447\u0438\u043c \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u0438 \u0421 \u0434\u0440\u0443\u0436\u0438\u0442\u044c"},"content":{"rendered":"\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/936\/bbd\/d08\/936bbdd082844793bca5d4047e16c73c.png\" \/><\/div>\n<p>  \u041d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430, \u043e\u0442\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0433\u043e\u0434\u044b. \u042f \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u2014 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u0438\u043b\u0438 \u0421?\u00bb. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u041d\u043e, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 \u0421, \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u0440\u0443\u0433\u0430\u0445 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0438 \u00ab\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0445\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u043f\u0438\u0448\u0435\u0442\u0441\u044f (\u0441\u043a\u043e\u0440\u0435\u0435, \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430) \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0424\u043e\u0440\u0442\u0440\u0430\u043d, \u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u2013 \u043d\u0430 \u0421. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430, \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e <a href=\"http:\/\/habrahabr.ru\/company\/intel\/blog\/254235\/\">\u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b<\/a>, \u0438 \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432. \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0442\u0438\u043f\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u0445 \u043e \u0432\u044b\u0437\u043e\u0432\u0435 (calling convention), \u0438\u043c\u0435\u043d\u0430\u0445 (naming convention) \u0434\u0435\u043b\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f mixed language \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0439. \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 Fortran 2003 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0446\u0435\u043b\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0440\u0435\u0434\u0441\u0442\u0432, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0442\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 C \u0438 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430. \u041a\u0441\u0442\u0430\u0442\u0438, \u043d\u0435 \u043f\u043e\u043c\u043d\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u2014 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u00ab\u043f\u043b\u044e\u0441\u0438\u043a\u00bb \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0443 \u0437\u0430 \u043f\u0440\u043e\u0442\u044f\u043d\u0443\u0442\u0443\u044e \u00ab\u0440\u0443\u043a\u0443 \u0434\u0440\u0443\u0436\u0431\u044b\u00bb.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0427\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u0430 \u0438\u043d\u0442\u0435\u0440-\u043e\u043f\u0435\u0440- \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435? \u041f\u043e\u0434 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043c \u00ab\u0438\u043d\u0442\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u00bb \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u0430 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0421 \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0432 \u0421. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u2014 \u0432\u0441\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u043a\u0430\u043a \u0432 \u0421, \u0442\u0430\u043a \u0438 \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435. \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434 \u0421 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u042199 (ISO\/IEC 9899:1999). \u041a\u0441\u0442\u0430\u0442\u0438, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u0432\u043f\u0440\u0430\u0432\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c, \u0441 \u043a\u0435\u043c \u0438\u0437 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 C \u0434\u0440\u0443\u0436\u0438\u0442\u044c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 Intel Fortan, \u044d\u0442\u043e Microsoft Visual C++ \u043d\u0430 Windows \u0438 gcc \u043d\u0430 Linux \u0438 OS X. \u0410 \u0447\u0442\u043e \u0441 Intel C++? \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 Visual C++ \u0438 gcc \u2014 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043d\u0438\u043c \u043d\u0435\u0442 (\u0447\u0442\u043e \u0438 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u043e\u0436\u0438\u0434\u0430\u0442\u044c).<\/p>\n<p>  \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430:<\/p>\n<ul>\n<li>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u044b<\/li>\n<li>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f BIND( C )<\/li>\n<li>\u041c\u043e\u0434\u0443\u043b\u044c ISO_C_BINDING<\/li>\n<li>\u0410\u0442\u0442\u0440\u0438\u0431\u0443\u0442 VALUE<\/li>\n<\/ul>\n<p>  \u041e\u0434\u043d\u0430 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u00ab\u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0438\u043f\u044b \u0432 \u0421 \u0438 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0440\u0430\u0437\u043d\u044b\u0435: \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0414\u0430 \u0438 \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u0421\u043a\u0430\u0436\u0435\u043c, \u0432 \u0421 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0442\u0438\u043f\u044b \u043e\u0442 <i>short int<\/i> \u0434\u043e <i>long long int<\/i>. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c, \u0430 \u043c\u043e\u0433\u0443 \u0438 \u043d\u0435 \u0438\u043c\u0435\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432 \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435. <br \/>  \u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u00ab\u0434\u0440\u0443\u0436\u0431\u0443\u00bb \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u2014 <i>ISO_C_BINDING<\/i>. \u0427\u0442\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c? \u041d\u0430\u0431\u043e\u0440 \u0441\u0440\u0435\u0434\u0441\u0442\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u00ab\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438\u00bb \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u0434\u043e\u043c \u043d\u0430 \u0421.<br \/>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0442\u0438\u043f\u0430 <i>int<\/i> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f <i>INTEGER(C_INT)<\/i> \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435, \u0430 <i>C_INT<\/i> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <i>ISO_C_BINDING<\/i>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 Intel Fortran, \u0434\u043b\u0438\u043d\u0430 INTEGER \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 4 \u0431\u0430\u0439\u0442\u0430, \u043d\u043e \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0445 \u2014 \u043d\u0435 \u0444\u0430\u043a\u0442. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0412\u043e\u0442 \u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0421, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435:<\/p>\n<ul>\n<li>\u0427\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b: \u0446\u0435\u043b\u044b\u0435, \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435<\/li>\n<li>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b (\u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0435\u0441\u0442\u044c \u0442\u0438\u043f\u0430 LOGICAL)<\/li>\n<li>\u0421\u0442\u0440\u043e\u043a\u0438<\/li>\n<li>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/li>\n<li>\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438<\/li>\n<li>\u041c\u0430\u0441\u0441\u0438\u0432\u044b<\/li>\n<li>\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/li>\n<li>\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u043e\u0432\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u044b\u043c\u0438, \u043d\u043e \u043c\u044b \u0438\u0445 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0442\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 KIND \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u044f. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u00ab\u0441\u0432\u044f\u0437\u0443\u044e\u0449\u0438\u043c \u0437\u0432\u0435\u043d\u043e\u043c\u00bb \u043c\u0435\u0436\u0434\u0443 \u0442\u0438\u043f\u0430\u043c\u0438 \u0421 \u0438 \u0424\u043e\u0440\u0442\u0440\u0430\u043d. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0442\u0438\u043f\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435:<\/p>\n<table>\n<tr>\n<th>\u0422\u0438\u043f \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430<\/th>\n<th>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 KIND<\/th>\n<th>\u0422\u0438\u043f \u0421<\/th>\n<\/tr>\n<tr>\n<th rowspan=\"6\">INTEGER<\/th>\n<td>C_INT<\/td>\n<td>int<br \/>  signed int   <\/td>\n<\/tr>\n<tr>\n<td>C_SHORT<\/td>\n<td>short int<br \/>  signed short int   <\/td>\n<\/tr>\n<tr>\n<td>C_LONG<\/td>\n<td>long int<br \/>  signed long int   <\/td>\n<\/tr>\n<tr>\n<td>C_LONG_LONG<\/td>\n<td>long long int<br \/>  signed long long int  <\/td>\n<\/tr>\n<tr>\n<td>C_SIGNED_CHAR<\/td>\n<td>signed char<br \/>  unsigned char  <\/td>\n<\/tr>\n<tr>\n<td>C_SIZE_T<\/td>\n<td>size_t  <\/td>\n<\/tr>\n<tr>\n<th rowspan=\"3\">REAL<\/th>\n<td>C_FLOAT<\/td>\n<td>float<\/td>\n<\/tr>\n<tr>\n<td>C_DOUBLE<\/td>\n<td>double<\/td>\n<\/tr>\n<tr>\n<td>C_LONG_DOUBLE<\/td>\n<td>long double<\/td>\n<\/tr>\n<tr>\n<th rowspan=\"3\">COMPLEX<\/th>\n<td>C_COMPLEX<\/td>\n<td>_Complex<\/td>\n<\/tr>\n<tr>\n<td>C_DOUBLE_COMPLEX<\/td>\n<td>double _Complex<\/td>\n<\/tr>\n<tr>\n<td>C_LONG_DOUBLE_COMPLEX<\/td>\n<td>long double _Complex<\/td>\n<\/tr>\n<tr>\n<th>LOGICAL<\/th>\n<td>C_BOOL<\/td>\n<td>_Bool<\/td>\n<\/tr>\n<tr>\n<th>CHARACTER  <\/th>\n<td>C_CHAR<\/td>\n<td>char<\/td>\n<\/tr>\n<\/table>\n<p>\u0425\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0438\u043f <i>unsigned int<\/i>. <br \/>  \u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u2014 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 true\/false \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432 \u0421 \u0438 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435.<br \/>  \u0415\u0441\u043b\u0438 \u0432 \u0421 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 0 \u0434\u043b\u044f false \u0438 \u043b\u044e\u0431\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u043e\u0442 0 \u0434\u043b\u044f true, \u0442\u043e \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0447\u0435\u0442\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u2014 false, \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u0435 \u2014 true.<br \/>  \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e -fpscomp logicals (\/fpscomp:logicals \u043d\u0430 Windows), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043a\u0430\u043a \u0432 \u0421.<br \/>  \u041a\u0441\u0442\u0430\u0442\u0438, \u043e\u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u044f\u0432\u043d\u043e, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e -standard-semantics (\/standard-semantics \u043d\u0430 Windows) \u2014 \u0432\u0435\u0441\u044c\u043c\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c Fortran 2003.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 \u043c\u044b \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c  <\/p>\n<pre><code>INTEGER(KIND=C_LONG) :: I <\/code><\/pre>\n<p>  \u0422\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <i>KIND=C_LONG<\/i> \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <i>I<\/i> \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0442\u0438\u043f\u043e\u043c \u043f\u0440\u0438 \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u043a\u043e\u0434\u0435 C, \u0438 \u0442\u0430\u043c \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u0438\u043f\u0430 <i>long int<\/i> (\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u043e\u0439). \u0421 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e \u2013 \u0438\u0449\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u0434\u043b\u044f <i>KIND <\/i> \u0432 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0435 \u0438 \u0434\u0435\u043b\u043e \u0432 \u0448\u043b\u044f\u043f\u0435. \u041a\u0441\u0442\u0430\u0442\u0438, \u0440\u0430\u0437 \u0443\u0436 \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f, \u0442\u043e \u043d\u0430\u043c \u0441\u0442\u043e\u0438\u0442 \u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <i>USE<\/i>:  <\/p>\n<pre><code>USE, INTRINSIC :: ISO_C_BINDING <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u0441\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0432 \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u044f. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0437\u0430\u0441\u043e\u0440\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a:  <\/p>\n<pre><code>USE, INTRINSIC :: ISO_C_BINDING, ONLY C_LONG <\/code><\/pre>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0441\u0430\u043c\u0438\u0445 \u0442\u0438\u043f\u043e\u0432, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a \u0436\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <i>BIND<\/i> (\u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u043c\u043e\u0434\u0443\u043b\u044f \u2014 \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 Fortran 2003), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u044f\u0437\u044b\u043a\u0430 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0438\u043c\u044f \u2013 \u043e\u0431\u044a\u0435\u043a\u0442 \u0421. \u041f\u0440\u0438\u0447\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u044f\u0432\u043d\u043e \u0438 \u043d\u0435\u044f\u0432\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0421:  <\/p>\n<pre><code class=\"cpp\">int a_int; long b_long; <\/code><\/pre>\n<p>  \u0418 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043c\u043e\u0434\u0443\u043b\u0435:  <\/p>\n<pre><code>MODULE TEST_BINDING   USE ISO_C_BINDING   ! \u043d\u0435\u044f\u0432\u043d\u044b\u0439 binding A_INT \u0438 a_int   INTEGER(C_INT), BIND(C) :: A_INT   ! \u044f\u0432\u043d\u044b\u0439 binding B \u0438 b_long   INTEGER(C_LONG) :: B   BIND(C, NAME=' b_long ') :: B END MODULE TEST_BINDING <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0430\u044f \u00ab\u0441\u0432\u044f\u0437\u043a\u0430\u00bb \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0441 \u0442\u0435\u043c\u0438 \u0441\u0430\u043c\u044b\u043c\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u0421. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440  <\/p>\n<pre><code class=\"cpp\">Cfunc(float a1, double a2); <\/code><\/pre>\n<p>  \u0422\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 <i>BIND <\/i>\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e:  <\/p>\n<pre><code>REAL(C_FLOAT) :: A1 COMPLEX(C_DOUBLE) :: A2 <\/code><\/pre>\n<p>  \u041e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430 \u0438 \u0421 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u0445 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443:  <\/p>\n<pre><code class=\"cpp\">void copy(char in[], char out[]); <\/code><\/pre>\n<p>  \u041d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>KIND=C_CHAR<\/i> \u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 <i>C_NULL_CHAR<\/i> (\u0430\u043d\u0430\u043b\u043e\u0433 <i>\\0<\/i> \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435):  <\/p>\n<pre><code>CHARACTER(LEN=10, KIND=C_CHAR) :: DIGIT_STRING = C_CHAR '123456789' \/\/ C_NULL_CHAR CHARACTER(KIND=C_CHAR) :: DIGIT_ARR(10) <\/code><\/pre>\n<p>  \u0418 \u043d\u0430\u0448\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u00ab\u0434\u0440\u0443\u0436\u0438\u0442\u044c\u00bb \u0441 \u0421 \u2013 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e!<br \/>  \u041d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0442\u043e\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0441 \u0435\u0451 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c \u0438\u0437 \u0421. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432:  <\/p>\n<pre><code>INTERFACE   SUBROUTINE COPY(IN, OUT), BIND(C)     USE ISO_C_BINDING     CHAR(KIND=C_CHAR), DIMENSION(*) :: IN, OUT   END SUBROUTINE COPY END INTERFACE <\/code><\/pre>\n<p>  \u0418 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043c\u0435\u043b\u043e \u043f\u0438\u0441\u0430\u0442\u044c  <\/p>\n<pre><code>CALL COPY(DIGIT_STRING, DIGIT_ARR) <\/code><\/pre>\n<p>  \u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u2013 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438. \u0414\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432  <\/p>\n<pre><code class=\"cpp\">short func(double *a; int *b; int c[10]; void *d) <\/code><\/pre>\n<p>  \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435:  <\/p>\n<pre><code>REAL(C_DOUBLE) :: A          ! A \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 *\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u0432 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 INTEGER(C_INT) :: B, V(10)   ! B \u0438 \u0421 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 *b \u0438 c[] TYPE(C_PTR), VALUE :: D      !D \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 *d, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0438\u043f \u0443 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f void* <\/code><\/pre>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <i>KIND<\/i>, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0438 \u0440\u044f\u0434 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0435\u0441\u0442\u044c \u00ab\u043d\u0443\u043b\u0435\u0432\u043e\u0439\u00bb \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c <i>C_NULL_PTR<\/i> \u2013 \u0430\u043d\u0430\u043b\u043e\u0433 <i>null <\/i>\u0438\u0437 \u0421. \u0412 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0442\u0430\u043a \u0436\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>  <i>C_F_POINTER<\/i> \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430 \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0421. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0443 \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:  <\/p>\n<pre><code>CALL  C_F_POINTER( CPTR, FPTR [,SHAPE] ) TYPE(C_PTR), INTENT(IN) :: CPTR &lt;type_spec&gt;, POINTER, INTENT(OUT) :: FPTR INTEGER, INTENT(IN), OPTIONAL :: SHAPE <\/code><\/pre>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <i>CPTR <\/i>\u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0421, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u043c\u0435\u0435\u043c \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c <i>FPTR <\/i>\u043d\u0430 \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n<p>  <i>C_LOC<\/i> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0421 \u0438\u043b\u0438 \u0424\u043e\u0440\u0442\u0440\u0430\u043d:  <\/p>\n<pre><code>C_ADDRESS = C_LOC(OBJECT) <\/code><\/pre>\n<p>  <i>C_ASSOCIATED<\/i> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430\u0448 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0432 <i>null <\/i>\u0438\u043b\u0438 \u043d\u0435\u0442, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d \u043b\u0438 \u043e\u043d \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0421.<\/p>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0442\u043e\u0436\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <i>ctype<\/i>  <\/p>\n<pre><code class=\"cpp\">typedef struct {   int a, b;   float c; } ctype; <\/code><\/pre>\n<p>  \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0438\u043f\u043e\u043c FTYPE:  <\/p>\n<pre><code>TYPE, BIND(C) :: FTYPE   INTEGER(C_INT) :: A, B   REAL(C_FLOAT) :: C END TYPE FTYPE <\/code><\/pre>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u043e\u0441\u0442\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0434\u0430 \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u044f \u0438 \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u043b, \u043d\u043e \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u043f\u0440\u043e\u043b\u0438\u043b \u0441\u0432\u0435\u0442 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a \u0432\u0441\u0451 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u0443 \u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u0447\u0438\u043a, \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u0439 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u043c\u043e\u0434\u0443\u043b\u044c <i>ISO_C_BINDING<\/i> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u0430\u043a \u0438\u0437 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430, \u0442\u0430\u043a \u0438 \u0438\u0437 \u0421. <br \/>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0421 \u0444\u0443\u043d\u043a\u0446\u0438\u044e:  <\/p>\n<pre><code class=\"cpp\">int C_Library_Function(void* sendbuf, int sendcount, int *recvcounts); <\/code><\/pre>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 KIND:  <\/p>\n<pre><code>MODULE FTN_C_2   INTERFACE     INTEGER (C_INT) FUNCTION C_LIBRARY_FUNCTION (SENDBUF, SENDCOUNT, RECVCOUNTS) BIND(C, NAME='C_LIBRARY_FUNCTION\u2019)       USE, INTRINSIC :: ISO_C_BINDING        IMPLICIT NONE       TYPE (C_PTR), VALUE :: SENDBUF       INTEGER (C_INT), VALUE :: SENDCOUNT       TYPE (C_PTR), VALUE :: RECVCOUNTS     END FUNCTION C_LIBRARY_FUNCTION   END INTERFACE  END MODULE FTN_C_2 <\/code><\/pre>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:  <\/p>\n<pre><code>USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT, C_FLOAT, C_LOC  USE FTN_C_2  ... REAL (C_FLOAT), TARGET :: SEND(100)  INTEGER (C_INT) :: SENDCOUNT  INTEGER (C_INT), ALLOCATABLE, TARGET :: RECVCOUNTS(100)  ...  ALLOCATE( RECVCOUNTS(100) )  ...  CALL C_LIBRARY_FUNCTION(C_LOC(SEND), SENDCOUNT, C_LOC(RECVCOUNTS))  ... <\/code><\/pre>\n<p>  \u0418 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0438 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438, \u043d\u0438 \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>  \u041d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u0432\u0435\u0441\u044c\u043c\u0430 \u0447\u0430\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430), \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0438 \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <i>Simulation<\/i>:  <\/p>\n<pre><code>SUBROUTINE SIMULATION(ALPHA, BETA, GAMMA, DELTA, ARRAYS) BIND(C)     USE, INTRINSIC :: ISO_C_BINDING     IMPLICIT NONE     INTEGER (C_LONG), VALUE :: ALPHA     REAL (C_DOUBLE), INTENT(INOUT) :: BETA     INTEGER (C_LONG), INTENT(OUT) :: GAMMA     REAL (C_DOUBLE),DIMENSION(*),INTENT(IN) :: DELTA    TYPE, BIND(C) :: PASS        INTEGER (C_INT) :: LENC, LENF       TYPE (C_PTR) :: C, F     END TYPE PASS     TYPE (PASS), INTENT(INOUT) :: ARRAYS    REAL (C_FLOAT), ALLOCATABLE, TARGET, SAVE :: ETA(:)    REAL (C_FLOAT), POINTER :: C_ARRAY(:)     ...     ! \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u043c C_ARRAY \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0432 C     CALL C_F_POINTER (ARRAYS%C, C_ARRAY, (\/ARRAYS%LENC\/) )     ...     ! \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0432 \u0421    ARRAYS%LENF = 100     ALLOCATE (ETA(ARRAYS%LENF))     ARRAYS%F = C_LOC(ETA)     ...  END SUBROUTINE SIMULATION <\/code><\/pre>\n<p>  \u0414\u0435\u043a\u043b\u0430\u0440\u0438\u0440\u0443\u0435\u043c \u0432 \u0421 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:  <\/p>\n<pre><code class=\"cpp\">struct pass {int lenc, lenf; float *c, *f;}; <\/code><\/pre>\n<p>  \u0418 \u0444\u0443\u043d\u043a\u0446\u0438\u044e:  <\/p>\n<pre><code class=\"cpp\">void simulation(long alpha, double *beta, long *gamma, double delta[], struct pass *arrays); <\/code><\/pre>\n<p>  \u0418 \u043c\u043e\u0436\u0435\u043c \u0435\u0451 \u0441\u043c\u0435\u043b\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c:  <\/p>\n<pre><code class=\"cpp\">simulation(alpha, &beta, &gamma, delta, &arrays); <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0438 \u0432\u0441\u0451. \u0414\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043c\u043d\u043e\u0433\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0430 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u0438 \u0421 \u0431\u0443\u0434\u0443\u0442 \u0434\u0440\u0443\u0436\u043d\u044b \u043a\u0430\u043a \u043d\u0438\u043a\u043e\u0433\u0434\u0430.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/255305\/\"> http:\/\/habrahabr.ru\/post\/255305\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/936\/bbd\/d08\/936bbdd082844793bca5d4047e16c73c.png\" \/><\/div>\n<p>  \u041d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430, \u043e\u0442\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0433\u043e\u0434\u044b. \u042f \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u2014 \u0424\u043e\u0440\u0442\u0440\u0430\u043d \u0438\u043b\u0438 \u0421?\u00bb. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u041d\u043e, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 \u0421, \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u0440\u0443\u0433\u0430\u0445 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0438 \u00ab\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0445\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u043f\u0438\u0448\u0435\u0442\u0441\u044f (\u0441\u043a\u043e\u0440\u0435\u0435, \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430) \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0424\u043e\u0440\u0442\u0440\u0430\u043d, \u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u2013 \u043d\u0430 \u0421. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430, \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e <a href=\"http:\/\/habrahabr.ru\/company\/intel\/blog\/254235\/\">\u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b<\/a>, \u0438 \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432. \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0442\u0438\u043f\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u0445 \u043e \u0432\u044b\u0437\u043e\u0432\u0435 (calling convention), \u0438\u043c\u0435\u043d\u0430\u0445 (naming convention) \u0434\u0435\u043b\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f mixed language \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0439. \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 Fortran 2003 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0446\u0435\u043b\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0440\u0435\u0434\u0441\u0442\u0432, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0442\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 C \u0438 \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0430. \u041a\u0441\u0442\u0430\u0442\u0438, \u043d\u0435 \u043f\u043e\u043c\u043d\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u2014 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u00ab\u043f\u043b\u044e\u0441\u0438\u043a\u00bb \u0424\u043e\u0440\u0442\u0440\u0430\u043d\u0443 \u0437\u0430 \u043f\u0440\u043e\u0442\u044f\u043d\u0443\u0442\u0443\u044e \u00ab\u0440\u0443\u043a\u0443 \u0434\u0440\u0443\u0436\u0431\u044b\u00bb.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-255340","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=255340"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255340\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=255340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=255340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=255340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}