دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: زبان های برنامه نویسی ویرایش: 4 نویسندگان: Metcalf M., et al. سری: Numerical Mathematics and Scientific Computation ISBN (شابک) : 9780199601417 ناشر: Oxford University Press سال نشر: 2011 تعداد صفحات: 509 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 1 مگابایت
در صورت تبدیل فایل کتاب Modern Fortran Explained به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب Fortran مدرن توضیح داد نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
فرترن یکی از زبان های برنامه نویسی اصلی است که در محاسبات
علمی، عددی و مهندسی با کارایی بالا استفاده می شود. مجموعه ای از
بازنگری های قابل توجه در نسخه های استاندارد این زبان به تدریج
قابلیت های آن را افزایش داده است و آخرین استاندارد، Fortran
2008، شامل بسیاری از ویژگی های مدرن، مانند شی گرایی، آرایه ها
برای برنامه نویسی موازی، قابلیت همکاری با C و پیشرفت های مختلف
دیگر است.
Modern Fortran Explained به نسخه قبلی خود، Fortran
95/2003 Explained گسترش می یابد. فصل های آغازین شامل
توضیحات کاملی از Fortran 95 است که توسط ویژگی های آرایه قابل
تخصیص Fortran 2003 گسترش یافته است. پوشش سایر ویژگیهای اضافی
Fortran 2003، قبل از فصلهای جدید در مورد همآهنگها و بسیاری
از پیشرفتهای دیگر Fortran 2008، در ادامه آمده است. .
نوشته شده توسط سه متخصص در این زمینه، که دو نفر از آنها به طور
فعال در Fortran 2008 مشارکت داشته اند، این یک توصیف کامل و
معتبر از Fortran به شکل مدرن آن است. این برای کاربران جدید و
موجود زبان و برای همه کسانی که در محاسبات علمی و عددی درگیر
هستند در نظر گرفته شده است. این کتاب به عنوان یک کتاب درسی برای
تدریس و با ضمائم و نمایه گسترده خود به عنوان یک مرجع مفید برای
پزشکان مناسب است.
Fortran remains one of the principal programming languages used
in high-performance scientific, numerical, and engineering
computing. A series of significant revisions to the standard
versions of the language have progressively enhanced its
capabilities and the latest standard, Fortran 2008, includes
many modern features, such as object orientation, coarrays for
parallel programming, interoperability with C and various other
enhancements.
Modern Fortran Explained expands on its predecessor,
Fortran 95/2003 Explained. The opening chapters
contain a complete description of Fortran 95, extended by
Fortran 2003 allocatable array features. Coverage of the other
additional features of Fortran 2003 follows, before new
chapters on coarrays and the many other enhancements of Fortran
2008. The distinction between the three language levels is
maintained throughout, allowing readers to understand and amend
legacy code as well as the new features.
Authored by three experts in the field, two of whom have
actively contributed to Fortran 2008, this is a complete and
authoritative description of Fortran in its modern form. It is
intended for new and existing users of the language and for all
those involved in scientific and numerical computing. It is
suitable as a textbook for teaching and, with its extensive
Appendices and an Index, as a handy reference for practitioners
Cover......Page 1
Contents......Page 10
1.1 Introduction......Page 22
1.2 Fortran’s early history......Page 23
1.3 The drive for the Fortran 90 standard......Page 24
1.5 Fortran 95......Page 25
1.6 Extensions to Fortran 95......Page 26
1.7 Fortran 2003......Page 27
1.9 Conformance......Page 28
2.2 Fortran character set......Page 30
2.3 Tokens......Page 31
2.4 Source form......Page 32
2.5 Concept of type......Page 34
2.6.1 Integer literal constants......Page 35
2.6.2 Real literal constants......Page 36
2.6.4 Character literal constants......Page 38
2.6.5 Logical literal constants......Page 40
2.8 Scalar variables of intrinsic type......Page 41
2.9 Derived data types......Page 42
2.10 Arrays of intrinsic type......Page 44
2.11 Character substrings......Page 47
2.13 Pointers......Page 48
2.14 Summary......Page 50
3.1 Introduction......Page 54
3.2 Scalar numeric expressions......Page 55
3.3 Defined and undefined variables......Page 58
3.5 Scalar relational operators......Page 59
3.6 Scalar logical expressions and assignments......Page 60
3.7 Scalar character expressions and assignments......Page 62
3.8 Structure constructors and scalar defined operators......Page 63
3.9 Scalar defined assignments......Page 66
3.10 Array expressions......Page 67
3.12 Pointers in expressions and assignments......Page 69
3.14 Summary......Page 72
4.2 The if construct and statement......Page 76
4.3 The case construct......Page 78
4.4 The do construct......Page 80
4.5 The go to statement......Page 83
4.6 Summary......Page 84
5.1 Introduction......Page 88
5.2 Main program......Page 89
5.4 External subprograms......Page 90
5.5 Modules......Page 91
5.7 Arguments of procedures......Page 94
5.7.1 Pointer arguments......Page 96
5.7.3 Arguments with the target attribute......Page 97
5.9 Argument intent......Page 98
5.10 Functions......Page 99
5.11 Explicit and implicit interfaces......Page 101
5.12 Procedures as arguments......Page 103
5.13 Keyword and optional arguments......Page 104
5.15 Scope of names......Page 106
5.16 Direct recursion......Page 109
5.17 Indirect recursion......Page 110
5.18 Overloading and generic interfaces......Page 111
5.19 Assumed character length......Page 114
5.20 The subroutine and function statements......Page 116
5.21 Summary......Page 117
6.2 Zero-sized arrays......Page 120
6.4 Automatic objects......Page 121
6.5.1 The allocatable attribute......Page 123
6.5.2 The allocate statement......Page 124
6.5.3 The deallocate statement......Page 125
6.5.5 Allocatable functions......Page 126
6.5.6 Allocatable components......Page 127
6.5.7 Allocatable arrays vs. pointers......Page 130
6.7 Array-valued functions......Page 131
6.8 The where statement and construct......Page 132
6.9 The forall statement and construct......Page 135
6.10 Pure procedures......Page 138
6.11 Elemental procedures......Page 139
6.12 Array elements......Page 140
6.13 Array subobjects......Page 141
6.14 Arrays of pointers......Page 144
6.15 Pointers as aliases......Page 145
6.16 Array constructors......Page 146
6.17 Mask arrays......Page 147
6.18 Summary......Page 148
7.2 Implicit typing......Page 154
7.4 Named constants and constant expressions......Page 155
7.5.1 Initialization in type declaration statements......Page 158
7.5.2 The data statement......Page 159
7.5.3 Pointer initialization and the function null......Page 161
7.5.4 Default initialization of components......Page 162
7.6 The public and private attributes......Page 163
7.8 The intent and optional statements......Page 165
7.9 The save attribute......Page 166
7.10 The use statement......Page 167
7.11 Derived-type definitions......Page 170
7.12 The type declaration statement......Page 171
7.13 Type and type parameter specification......Page 173
7.14.1 Specification functions......Page 174
7.15 The namelist statement......Page 176
7.16 Summary......Page 177
8.1.1 Keyword calls......Page 182
8.2 Inquiry functions for any type......Page 183
8.3.1 Elemental functions that may convert......Page 184
8.3.2 Elemental functions that do not convert......Page 185
8.4 Elemental mathematical functions......Page 186
8.5.1 Character–integer conversions......Page 187
8.5.3 String-handling elemental functions......Page 188
8.7.1 Models for integer and real data......Page 189
8.7.2 Numeric inquiry functions......Page 190
8.7.3 Elemental functions to manipulate reals......Page 191
8.8 Bit manipulation procedures......Page 192
8.8.2 Elemental functions......Page 193
8.9 Transfer function......Page 194
8.10 Vector and matrix multiplication functions......Page 195
8.11.2 Optional argument dim......Page 196
8.12.2 Bounds, shape, and size......Page 197
8.13.3 Reshaping an array......Page 198
8.13.5 Array shifting functions......Page 199
8.15 Transformational function for pointer disassociation......Page 200
8.16.1 Real-time clock......Page 201
8.16.3 Random numbers......Page 202
8.17 Summary......Page 203
9.2 Number conversion......Page 206
9.3 I/O lists......Page 207
9.4 Format definition......Page 209
9.5 Unit numbers......Page 211
9.6 Internal files......Page 212
9.7 Formatted input......Page 214
9.8 Formatted output......Page 215
9.9 List-directed I/O......Page 216
9.10 Namelist I/O......Page 218
9.11 Non-advancing I/O......Page 219
9.12.1 Repeat counts......Page 221
9.12.2 Data edit descriptors......Page 222
9.12.4 Control edit descriptors......Page 226
9.13 Unformatted I/O......Page 229
9.14 Direct-access files......Page 230
9.15 Execution of a data transfer statement......Page 231
9.16 Summary......Page 232
10.1 Introduction......Page 234
10.2.2 The rewind statement......Page 235
10.2.4 Data transfer statements......Page 236
10.3 The open statement......Page 237
10.4 The close statement......Page 239
10.5 The inquire statement......Page 240
10.6 Summary......Page 243
11.1 Introduction......Page 244
11.2 The IEEE standard......Page 245
11.3 Access to the features......Page 246
11.4 The Fortran flags......Page 248
11.6 The rounding mode......Page 249
11.8.1 Derived types......Page 250
11.8.3 Subroutines for the flags and halting modes......Page 251
11.8.4 Subroutines for the whole of the floating-point status......Page 252
11.9.2 Inquiry functions for IEEE arithmetic......Page 253
11.9.3 Elemental functions......Page 255
11.9.4 Non-elemental subroutines......Page 256
11.9.5 Transformational function for kind value......Page 257
11.10.2 Calling alternative procedures......Page 258
11.10.4 Reliable hypotenuse function......Page 259
11.10.5 Access to IEEE arithmetic values......Page 260
12.2 Interoperability of intrinsic types......Page 264
12.3 Interoperability with C pointer types......Page 266
12.4 Interoperability of derived types......Page 267
12.5 Interoperability of variables......Page 268
12.6 The value attribute......Page 269
12.7 Interoperability of procedures......Page 270
12.8 Interoperability of global data......Page 271
12.9 Invoking a C function from Fortran......Page 272
12.10 Invoking Fortran from C......Page 273
12.11 Enumerations......Page 274
13.2 Deferred type parameters......Page 276
13.4.1 Defining a parameterized derived type......Page 277
13.4.3 Default type parameter values......Page 279
13.5 Abstract interfaces......Page 280
13.6.2 Procedure pointer components......Page 282
13.6.3 The pass attribute......Page 283
14.2 Type extension......Page 286
14.3 Polymorphic entities......Page 288
14.3.1 Establishing the dynamic type......Page 289
14.3.4 Unlimited polymorphic entities......Page 290
14.3.5 Polymorphic entities and generic resolution......Page 291
14.4 The associate construct......Page 292
14.5 The select type construct......Page 293
14.6.1 Specific type-bound procedures......Page 295
14.6.2 Generic type-bound procedures......Page 298
14.6.3 Type extension and type-bound procedures......Page 300
14.7 Deferred bindings and abstract types......Page 301
14.8 Finalization......Page 302
14.9 Procedure encapsulation example......Page 305
14.10 Type inquiry functions......Page 307
15.3 Structure constructors......Page 310
15.4.1 Typed allocation and deferred type parameters......Page 312
15.4.3 Sourced allocation......Page 313
15.5 Allocatable entities......Page 314
15.5.2 Assignment to an allocatable array......Page 315
15.5.3 Transferring an allocation......Page 316
15.7 More control of access from a module......Page 317
15.9 Array constructor syntax......Page 318
15.10 Specification and constant expressions......Page 319
16.3 The volatile attribute......Page 322
16.3.1 Volatile semantics......Page 323
16.3.2 Volatile scoping......Page 324
16.4 The import statement......Page 325
16.5 Intrinsic modules......Page 327
16.6.1 Environment variables......Page 328
16.7 Support for internationalization......Page 329
16.7.2 ASCII character set......Page 330
16.7.4 UTF-8 files......Page 331
16.7.5 Decimal comma for input/output......Page 332
16.9 Binary, octal, and hexadecimal constants......Page 333
16.10 Other changes to intrinsic procedures......Page 334
16.13 Interface block extensions......Page 335
16.14 Public entities of private type......Page 336
17.2 Non-default derived-type input/output......Page 338
17.3 Asynchronous input/output......Page 341
17.4 The asynchronous attribute......Page 343
17.6 Stream access input/output......Page 344
17.9 Comma after a P edit descriptor......Page 345
17.13 Kind type parameters of integer and logical specifiers......Page 346
17.16 Some inquire statement enhancements......Page 347
17.17 Namelist enhancements......Page 348
18.1 Introduction......Page 350
18.2.1 Separate module procedures......Page 351
18.2.3 Submodule entities......Page 352
18.3 The advantages of submodules......Page 353
19.1 Introduction......Page 354
19.2 Referencing images......Page 355
19.3 The properties of coarrays......Page 356
19.4 Accessing coarrays......Page 357
19.5 The sync all statement......Page 358
19.6 Coarrays in procedures......Page 359
19.7 Allocatable coarrays......Page 361
19.8.1 Data components......Page 362
19.9 Coarray components......Page 363
19.13.1 Execution segments......Page 364
19.13.2 The sync images statement......Page 365
19.13.3 The lock and unlock statements......Page 366
19.13.5 The sync memory statement and atomic subroutines......Page 368
19.14 Program termination......Page 369
19.15 Input/output......Page 370
19.16.2 Transformational functions......Page 372
20.1.2 Implied-do loops in data statements......Page 374
20.1.4 Structure constructors......Page 375
20.1.7 Exit from nearly any construct......Page 376
20.3.1 Allocatable components of recursive type......Page 377
20.3.2 Initial pointer association......Page 379
20.4.1 The do concurrent construct......Page 380
20.4.2 The contiguous attribute......Page 382
20.4.3 Simply contiguous array designators......Page 385
20.5.1 Accessing parts of complex variables......Page 386
20.5.3 The block construct......Page 387
20.5.4 Impure elemental procedures......Page 389
20.5.6 Specifying the kind of a forall index variable......Page 391
20.5.7 Generic resolution......Page 392
20.6.1 Enhancements to the allocate statement......Page 393
20.6.3 Elemental subprogram restrictions......Page 394
20.7.2 The newunit= specifier......Page 395
20.7.3 Writing comma-separated values......Page 396
20.9.2 New hyperbolic trigonometic functions......Page 397
20.9.3 New special mathematical functions......Page 398
20.10.1 Bitwise (unsigned) comparison......Page 399
20.10.3 Bitwise reductions......Page 400
20.10.5 Producing bitmasks......Page 401
20.10.7 Additional shift operations......Page 402
20.11.2 Executing another program......Page 403
20.11.5 Logical parity......Page 404
20.11.7 Size of an object in memory......Page 405
20.12.2 Names for common kinds......Page 406
20.12.4 Coarray support facilities......Page 407
20.13.2 The ieee_arithmetic module......Page 408
20.14.2 Automatic pointer targetting......Page 409
20.14.3 Denoting absent arguments......Page 410
A: Intrinsic procedures......Page 414
B.2.1 Storage units......Page 420
B.2.2 The equivalence statement......Page 421
B.2.3 The common block......Page 423
B.2.4 The block data program unit......Page 425
B.3 Shape and character length disagreement......Page 426
B.5.1 The labelled do construct......Page 428
B.6 Double precision real......Page 429
B.7 The dimension, codimension, and parameter statements......Page 430
B.8 Specific names of intrinsic procedures......Page 431
B.9 Non-default mapping for implicit typing......Page 433
B.10.1 The sync memory statement and atomic subroutines......Page 434
B.10.3 Type declarations......Page 437
B.10.5 The end statement......Page 438
B.10.6 Referencing atan2 by the name atan......Page 439
C.1.1 Fixed source form......Page 440
C.1.4 Data statements among executables......Page 441
C.1.5 Statement functions......Page 442
C.1.7 Arithmetic if statement......Page 443
C.1.9 Alternate return......Page 444
C.2 Feature obsolescent in Fortran 2008: Entry statement......Page 445
C.3 Feature deleted in Fortran 2003: Carriage control......Page 447
C.4 Features deleted in Fortran 95......Page 448
D: Avoiding compilation cascades......Page 450
E: Object-oriented list example......Page 454
F: Fortran terms......Page 462
G: Solutions to exercises......Page 474
A......Page 496
C......Page 497
D......Page 499
E......Page 500
I......Page 501
L......Page 503
N......Page 504
P......Page 505
S......Page 506
V......Page 508
Z......Page 509