ISO IEC 1539-1 Fortran base language

ISO IEC 1539-1 adalah Standar Internasional mengenai teknologi informasi tentang bahasa pemrograman, khususnya tentang bahasa dasar Fortran.

Standar versi terbaru yang masih berlaku adalah terbitan tahun 2018 dengan judul berikut :

  • ISO/IEC 1539-1:2018 Information technology — Programming languages — Fortran — Part 1: Base language

Standar ISO/IEC 1539-1:2018

Sebagaimana tercantum dalam “ISO IEC 1539-1:2018 Klausa Scope : Lingkup”, bahwa :

1. Dokumen ISO IEC 1539-1 ini menentukan bentuk dan menetapkan interpretasi program yang diekspresikan dalam bahasa Fortran dasar. Tujuan dari dokumen ini adalah untuk mempromosikan portabilitas, keandalan, pemeliharaan, dan eksekusi program Fortran yang efisien untuk digunakan pada berbagai sistem komputasi.

2. Dokumen ISO IEC 1539-1 ini menentukan :

  • bentuk yang dapat diambil oleh program yang ditulis dalam bahasa Fortran,
  • aturan untuk menafsirkan arti program dan datanya,
  • bentuk data input yang akan diproses oleh program tersebut, dan
  • bentuk data keluaran yang dihasilkan dari penggunaan program semacam itu.

3. Kecuali jika dinyatakan lain, persyaratan dan larangan yang ditentukan oleh dokumen ini berlaku untuk program daripada pemroses.

4. Dokumen ISO IEC 1539-1 ini tidak menentukan :

  • mekanisme di mana program ditransformasikan untuk digunakan pada sistem komputasi,
  • operasi yang diperlukan untuk pengaturan dan kontrol penggunaan program pada sistem komputasi,
  • metode transkripsi program atau data input atau outputnya ke atau dari media penyimpanan,
  • perilaku program dan prosesor ketika dokumen ini gagal menetapkan interpretasi kecuali untuk deteksi prosesor dan persyaratan pelaporan dalam item (2) hingga (10) dari 4.2,
  • jumlah maksimum gambar, atau ukuran atau kompleksitas program dan datanya yang akan melebihi kapasitas sistem komputasi tertentu atau kemampuan prosesor tertentu,
  • mekanisme untuk menentukan jumlah gambar dari suatu program,
  • sifat fisik gambar atau hubungan antara gambar dan elemen komputasi dari sistem komputasi,
  • sifat fisik representasi kuantitas dan metode pembulatan, perkiraan, atau penghitungan nilai numerik pada prosesor tertentu, kecuali dengan mengacu pada ISO/IEC/IEEE 60559:2011 dalam kondisi yang ditentukan dalam Klausul 17,
  • sifat fisik catatan input/output, file, dan unit, atau
  • sifat fisik dan implementasi penyimpanan.

Penerbitan Standar ISO/IEC 1539-1:2018

Standar ini diterbitkan dan dipublikasikan pada November 2018, berupa dokumen edisi 4 dengan jumlah halaman sebanyak 630 lembar.

Disusun oleh :

  • Technical Committee ISO/IEC JTC 1/SC 22 Programming languages, their environments and system software interfaces,
  • atau : Komite Teknis ISO/IEC JTC 1/SC 22 Bahasa pemrograman, lingkungan mereka, dan antarmuka perangkat lunak sistem.

ICS :

  • 35.060 Languages used in information technology, atau : 35.060 Bahasa yang digunakan dalam teknologi informasi

Standar ini berkontribusi pada Tujuan Pembangunan Berkelanjutan atau Sustainable Development Goal berikut:

  • Kota dan masyarakat berkelanjutan
  • Industri, inovasi dan infrastruktur

 Dengan terbitnya standar ini, maka standar sebelumnya dinyatakan tidak berlaku dan ditarik yakni :

  • ISO/IEC 1539-1:2010
  • ISO/IEC 1539-1:2010/COR 1:2012
  • ISO/IEC 1539-1:2010/COR 2:2013
  • ISO/IEC 1539-1:2010/COR 3:2014
  • ISO/IEC 1539-1:2010/COR 4:2016

Sebagaimana standar ISO lainnya, ISO/IEC 1539-1:2018 ini juga ditinjau setiap 5 tahun dan peninjauan sudah mencapai tahap 90,92 (untuk direvisi).

Badan ISO juga menerbitkan perubahan atau corrigenda dari standar ini, yakni ISO/IEC 1539-1:2018/COR 1:2021.

Saat ini, badan ISO tengah melakukan pengembangan standar pengganti yakni ISO/IEC CD 1539-1.

Isi Standar ISO/IEC 1539-1:2018

Berikut adalah kutipan isi Standar ISO/IEC 1539-1:2018 yang diambil dari Online Browsing Platform (OBP) dari situs resmi iso.org.

Yang ditambah dengan berbagai keterangan dan informasi untuk mempermudah pemahaman pembaca.

Hanya bagian standar yang informatif yang tersedia untuk umum, OBP hanya menampilkan hingga klausa 3 saja.

Oleh karena itu, untuk melihat konten lengkap dari standar ini, maka pembaca harus membeli standar dari ISO ini secara resmi.

Daftar Isi Standar ISO/IEC 1539-1:2018

0-12

  • Table of contents
  • Foreword
  • Introduction
  • 1 Scope
  • 2 Normative references
  • 3 Terms and definitions
  • 4 Notation, conformance, and compatibility
  • 4.1 Notation, symbols and abbreviated terms
  • 4.2 Conformance
  • 4.3 Compatibility
  • 4.4 Deleted and obsolescent features
  • 5 Fortran concepts
  • 5.1 High level syntax
  • 5.2 Program unit concepts
  • 5.3 Execution concepts
  • 5.4 Data concepts
  • 5.5 Fundamental concepts
  • 6 Lexical tokens and source form
  • 6.1 Processor character set
  • 6.2 Low-level syntax
  • 6.3 Source form
  • 6.4 Including source text
  • 7 Types
  • 7.1 Characteristics of types
  • 7.2 Type parameters
  • 7.3 Types, type specifiers, and values
  • 7.4 Intrinsic types
  • 7.5 Derived types
  • 7.6 Enumerations and enumerators
  • 7.7 Binary, octal, and hexadecimal literal constants
  • 7.8 Construction of array values
  • 8 Attribute declarations and specifications
  • 8.1 Attributes of procedures and data objects
  • 8.2 Type declaration statement
  • 8.3 Automatic data objects
  • 8.4 Initialization
  • 8.5 Attributes
  • 8.6 Attribute specification statements
  • 8.7 IMPLICIT statement
  • 8.8 IMPORT statement
  • 8.9 NAMELIST statement
  • 8.10 Storage association of data objects
  • 9 Use of data objects
  • 9.1 Designator
  • 9.2 Variable
  • 9.3 Constants
  • 9.4 Scalars
  • 9.5 Arrays
  • 9.6 Image selectors
  • 9.7 Dynamic association
  • 10 Expressions and assignment
  • 10.1 Expressions
  • 10.2 Assignment
  • 11 Execution control
  • 11.1 Executable constructs containing blocks
  • 11.2 Branching
  • 11.3 CONTINUE statement
  • 11.4 STOP and ERROR STOP statements
  • 11.5 FAIL IMAGE statement
  • 11.6 Image execution control
  • 12 Input/output statements
  • 12.1 Input/output concepts
  • 12.2 Records
  • 12.3 External files
  • 12.4 Internal files
  • 12.5 File connection
  • 12.6 Data transfer statements
  • 12.7 Waiting on pending data transfer
  • 12.8 File positioning statements
  • 12.9 FLUSH statement
  • 12.10 File inquiry statement
  • 12.11 Error, end-of-record, and end-of-file conditions
  • 12.12 Restrictions on input/output statements

13-19

  • 13 Input/output editing
  • 13.1 Format specifications
  • 13.2 Explicit format specification methods
  • 13.3 Form of a format item list
  • 13.4 Interaction between input/output list and format
  • 13.5 Positioning by format control
  • 13.6 Decimal symbol
  • 13.7 Data edit descriptors
  • 13.8 Control edit descriptors
  • 13.9 Character string edit descriptors
  • 13.10 List-directed formatting
  • 13.11 Namelist formatting
  • 14 Program units
  • 14.1 Main program
  • 14.2 Modules
  • 14.3 Block data program units
  • 15 Procedures
  • 15.1 Concepts
  • 15.2 Procedure classifications
  • 15.3 Characteristics
  • 15.4 Procedure interface
  • 15.5 Procedure reference
  • 15.6 Procedure definition
  • 15.7 Pure procedures
  • 15.8 Elemental procedures
  • 16 Intrinsic procedures and modules
  • 16.1 Classes of intrinsic procedures
  • 16.2 Arguments to intrinsic procedures
  • 16.3 Bit model
  • 16.4 Numeric models
  • 16.5 Atomic subroutines
  • 16.6 Collective subroutines
  • 16.7 Standard generic intrinsic procedures
  • 16.8 Specific names for standard intrinsic functions
  • 16.9 Specifications of the standard intrinsic procedures
  • 16.10 Standard intrinsic modules
  • 17 Exceptions and IEEE arithmetic
  • 17.1 Overview of IEEE arithmetic support
  • 17.2 Derived types, constants, and operators defined in the modules
  • 17.3 The exceptions
  • 17.4 The rounding modes
  • 17.5 Underflow mode
  • 17.6 Halting
  • 17.7 The floating-point modes and status
  • 17.8 Exceptional values
  • 17.9 IEEE arithmetic
  • 17.10 Summary of the procedures
  • 17.11 Specifications of the procedures
  • 17.12 Examples
  • 18 Interoperability with C
  • 18.1 General
  • 18.2 The ISO_C_BINDING intrinsic module
  • 18.3 Interoperability between Fortran and C entities
  • 18.4 C descriptors
  • 18.5 The source file ISO_Fortran_binding.h
  • 18.6 Restrictions on C descriptors
  • 18.7 Restrictions on formal parameters
  • 18.8 Restrictions on lifetimes
  • 18.9 Interoperation with C global variables
  • 18.10 Interoperation with C functions
  • 19 Scope, association, and definition
  • 19.1 Scopes, identifiers, and entities
  • 19.2 Global identifiers
  • 19.3 Local identifiers
  • 19.4 Statement and construct entities
  • 19.5 Association
  • 19.6 Definition and undefinition of variables

Lampiran

  • Annex A Processor dependencies
  • A.1 Unspecified items
  • A.2 Processor dependencies
  • Annex B Deleted and obsolescent features
  • B.1 Deleted features from Fortran 90
  • B.2 Deleted features from Fortran 2008
  • B.3 Obsolescent features
  • Annex C Extended notes
  • C.1 Fortran 2008 features not mentioned in its Introduction
  • C.2 Clause 7 notes
  • C.3 Clause 8 notes: The VOLATILE attribute (8.5.19)
  • C.4 Clause 9 notes
  • C.5 Clause 10 notes
  • C.6 Clause 11 notes
  • C.7 Clause 12 notes
  • C.8 Clause 13 notes
  • C.9 Clause 14 notes
  • C.10 Clause 15 notes
  • C.11 Clause 16 notes
  • C.12 Clause 18 notes
  • C.13 Clause 19 notes : Examples of host association (19.5.1.4)

Kata pengantar

Sebagaimana tercantum dalam “Klausa 0 Foreword”, bahwa :

ISO (Organisasi Internasional untuk Standardisasi) dan IEC (Komisi Elektroteknik Internasional) membentuk sistem khusus untuk standardisasi di seluruh dunia.

Badan-badan nasional yang menjadi anggota ISO atau IEC berpartisipasi dalam pengembangan Standar Internasional melalui komite teknis yang dibentuk oleh organisasi masing-masing untuk menangani bidang kegiatan teknis tertentu.

Komite teknis ISO dan IEC berkolaborasi dalam bidang yang menjadi kepentingan bersama.

Organisasi internasional lainnya, pemerintah dan non-pemerintah, bekerja sama dengan ISO dan IEC, juga ambil bagian dalam pekerjaan tersebut.

Di bidang teknologi informasi, ISO dan IEC telah membentuk komite teknis bersama, ISO/IEC JTC 1.

Prosedur yang digunakan untuk mengembangkan dokumen ini dan yang dimaksudkan untuk pemeliharaan lebih lanjut dijelaskan dalam Arahan ISO/IEC, Bagian 1.

Secara khusus, kriteria persetujuan yang berbeda yang diperlukan untuk berbagai jenis dokumen harus diperhatikan.

Dokumen ini disusun sesuai dengan aturan editorial Arahan ISO/IEC, Bagian 2 (lihat www.iso.org/directives).

Perhatian diberikan pada kemungkinan bahwa beberapa elemen dari dokumen ini dapat menjadi subyek hak paten.

ISO dan IEC tidak bertanggung jawab untuk mengidentifikasi setiap atau semua hak paten tersebut.

Rincian hak paten apa pun yang diidentifikasi selama pengembangan dokumen akan ada di Pendahuluan dan/atau pada daftar pernyataan paten ISO yang diterima (lihat www.iso.org/patents).

Setiap nama dagang yang digunakan dalam dokumen ini adalah informasi yang diberikan untuk kenyamanan pengguna dan bukan merupakan suatu dukungan.

Tersedia pula halaman www.iso.org/iso/foreword.html untuk :

  • penjelasan tentang arti istilah dan ekspresi khusus ISO yang terkait dengan penilaian kesesuaian,
  • informasi tentang kepatuhan ISO terhadap prinsip-prinsip WTO dalam Technical Barriers to Trade (TBT).

Penyusunan Standar

Dokumen ini disiapkan oleh :

  • Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments and system software interfaces.
  • Atau : Komite Teknis ISO/IEC JTC 1, Teknologi informasi, Subkomite SC 22, Bahasa pemrograman, lingkungan mereka, dan antarmuka perangkat lunak sistem.

Edisi keempat ini membatalkan dan menggantikan edisi ketiga (ISO 1539-1:2010), yang telah direvisi secara teknis.

Ini juga menggabungkan Corrigenda Teknis ISO/IEC 1539-1:2010/Cor. 1:2012, ISO/IEC 1539-1:2010/ Cor. 2:2013, ISO/IEC 1539-1:2010/ Cor. 3:2014, dan ISO/IEC 1539-1:2010/ Cor. 4:2016.

Perubahan utama dibandingkan dengan edisi sebelumnya adalah sebagai berikut:

  • Spesifikasi Teknis ISO/IEC TS 29113:2012 dan ISO/IEC TS 18508:2015 telah dimasukkan.
  • Dukungan untuk aritmatika titik-mengambang IEEE telah diperbarui ke ISO/IEC/IEEE 60559:2011.

Mengenal ISO, IEC, WTO dan TBT Agreement

ISO (International Organization for Standardization) adalah suatu organisasi atau lembaga nirlaba internasional,

Tujuan dari ISO adalah untuk membuat dan memperkenalkan standar dan standardisasi internasional untuk berbagai tujuan.

Sebagaimana ISO, IEC juga merupakan suatu organisasi standardisasi internasional yang menyusun dan menerbitkan standar-standar internasional.

Namun ruang lingkupnya adalah untuk seluruh bidang elektrik, elektronik dan teknologi yang terkait atau bidang teknologi elektro (electrotechnology).

TBT Agreement (Technical Barriers to Trade) adalah perjanjian internasional mengenai hambatan teknis perdagangan di bawah kerangka Organisasi WTO (World Trade Organization).

WTO (World Trade Organization) adalah sebuah organisasi resmi internasional yang mengatur standar sistem perdagangan bebas di dunia.

Lebih jelas mengenai ISO, IEC, WTO dan TBT Agreement dapat dibaca pada artikel lain dari standarku.com berikut :

Pengantar Standar

Sebagaimana tercantum dalam “Klausa 0 Introduction”, bahwa :

Dokumen ini berisi spesifikasi bahasa Fortran dasar, secara informal dikenal sebagai Fortran 2018.

Dengan batasan yang disebutkan dalam 4.3.3, sintaks dan semantik Fortran 2008 terkandung seluruhnya dalam Fortran 2018.

Oleh karena itu, program Fortran 2008 yang sesuai standar tidak terpengaruh oleh keterbatasan tersebut adalah program Fortran 2018 yang sesuai standar.

Fitur-fitur baru Fortran 2018 dapat digabungkan secara kompatibel ke dalam program-program Fortran 2008, dengan pengecualian apa pun yang ditunjukkan dalam teks dokumen ini.

Fortran 2018 berisi beberapa ekstensi ke Fortran 2008; ini tercantum di bawah ini.

• • Deklarasi data:

Properti konstan dari suatu objek yang dideklarasikan dalam entitas-deklnya dapat digunakan dalam inisialisasinya. Pernyataan EQUIVALENCE dan COMMON dan unit program data blok telah redundan sejak Fortran 90 dan sekarang ditetapkan menjadi usang.

Diperlukan diagnosis kemunculan variabel PROTECTED TARGET yang diakses dengan menggunakan asosiasi sebagai target data dalam konstruktor struktur.

• • Penggunaan dan perhitungan data:

Tipe nilai yang dideklarasikan yang disediakan untuk komponen polimorfik yang dapat dialokasikan dalam konstruktor struktur tidak lagi harus sama dengan tipe komponen yang dideklarasikan. FORALL sekarang ditetapkan menjadi usang.

Jenis dan jenis variabel DO tersirat dalam konstruktor array atau pernyataan DATA dapat ditentukan di dalam konstruktor atau pernyataan.

Konstruk SELECT RANK menyediakan akses terstruktur ke elemen array peringkat-berasumsi. Menyelesaikan eksekusi konstruk BLOCK dapat menyebabkan status asosiasi pointer dengan atribut PROTECTED menjadi tidak terdefinisi.

Operasi intrinsik standar <, <=, >, dan >= (juga dikenal sebagai .LT., .LE., .GT., dan .GE.) pada nomor IEEE menyediakan operasi compareSignaling{relation}; operasi = dan /= (juga dikenal sebagai .EQ. dan .NE.) menyediakan operasi compareQuiet{relation}.

 Finalisasi subobjek yang dapat dialokasikan selama penugasan intrinsik telah diklarifikasi. Panjang karakter dalam pernyataan yang dapat dieksekusi tidak lagi diperlukan untuk menjadi ekspresi spesifikasi.

• Input output:

SIZE= specifier dapat digunakan dengan memajukan input.

Tidak lagi dilarang membuka file di lebih dari satu unit. Nilai yang ditetapkan oleh penentu RECL= dalam pernyataan INQUIRE telah distandarisasi.

Nilai yang ditetapkan oleh POS= dan SIZE= penentu dalam pernyataan INQUIRE untuk unit yang memiliki operasi asinkron yang tertunda telah distandarisasi.

Deskriptor edit G0.d dapat digunakan untuk item daftar tipe Integer, Logical, dan Character. Deskriptor edit D, E, EN, dan ES dapat memiliki lebar bidang nol, analog dengan deskriptor edit F. Lebar eksponen e dalam deskriptor edit data bisa nol, analog dengan lebar bidang nol.

Input berformat titik-mengambang menerima angka signifikan dan heksadesimal yang sesuai dengan ISO/IEC/IEEE 60559:2011.

Deskriptor edit EX memberikan output berformat signifikan dan heksadesimal yang sesuai dengan ISO/IEC/IEEE 60559:2011.

 Kondisi kesalahan terjadi jika karakter yang tidak dapat diterima disajikan untuk pengeditan logis atau numerik selama eksekusi pernyataan input yang diformat.

• • Kontrol eksekusi:

Pernyataan IF aritmatika telah dihapus. Loop DO berlabel telah redundan sejak Fortran 90 dan sekarang ditetapkan menjadi usang.

Konstruksi DO nonblok telah dihapus. Lokalitas variabel yang digunakan dalam konstruk DO CONCURRENT dapat ditentukan secara eksplisit.

Kode stop dalam pernyataan STOP atau ERROR STOP bisa tidak konstan.

Output dari kode berhenti dan ringkasan pengecualian dari pernyataan STOP dan ERROR STOP dapat dikontrol.

• • Prosedur dan modul intrinsik:

Dalam referensi ke fungsi intrinsik CMPLX dengan argumen tipe kompleks yang sebenarnya, tidak ada kata kunci yang diperlukan untuk argumen KIND.

Dalam referensi ke fungsi intrinsik ALL, ANY, FINDLOC, IALL, IANY, IPARITY, MAXLOC, MAXVAL, MINLOC, MINVAL, NORM2, PARITY, PRODUCT, SUM, dan THIS_IMAGE, argumen aktual untuk DIM dapat berupa argumen dummy opsional saat ini.

Fungsi intrinsik baru COSHAPE mengembalikan coshape dari coarray.

Fungsi intrinsik baru OUT_OF_RANGE menguji apakah nilai numerik dapat dengan aman dikonversi ke tipe atau jenis yang berbeda.

Subrutin intrinsik baru RANDOM_INIT menetapkan status awal generator nomor pseudorandom yang digunakan oleh RANDOM_NUMBER.

Fungsi intrinsik baru REDUCE melakukan pengurangan array yang ditentukan pengguna.

Sebuah prosesor diharuskan untuk melaporkan penggunaan prosedur intrinsik tidak standar, penggunaan modul intrinsik tidak standar, dan penggunaan prosedur tidak standar dari modul intrinsik standar.

Argumen bilangan bulat dan logis untuk prosedur intrinsik dan prosedur modul intrinsik yang sebelumnya diharuskan menjadi jenis default tidak lagi memiliki persyaratan itu, kecuali untuk RANDOM_SEED. Nama khusus untuk fungsi intrinsik sekarang dianggap usang.

Semua prosedur standar dalam modul intrinsik ISO_C_BINDING, selain C_F_POINTER, sekarang murni. Argumen untuk fungsi intrinsik SIGN bisa berbeda jenisnya.

Argumen penunjuk nonpolimorfik ke fungsi intrinsik EXTENDS_TYPE_OF dan SAME_TYPE_AS tidak perlu memiliki status asosiasi penunjuk yang ditentukan. Efek dari menjalankan prosedur intrinsik COMMAND_ARGUMENT_COUNT, GET_COMMAND, dan GET_COMMAND_ARGUMENT, pada gambar selain gambar satu, tidak lagi bergantung pada prosesor.

Akses ke pesan kesalahan dari subrutin intrinsik GET_COMMAND, GET_COMMAND_ARGUMENT, dan GET_ENVIRONMENT_VARIABLE disediakan oleh argumen ERRMSG opsional. Hasil NORM2 untuk argumen array berukuran nol telah diklarifikasi.

• • Unit dan prosedur program:

Pernyataan IMPORT dapat muncul dalam subprogram atau konstruksi BLOK yang terkandung, dan dapat membatasi akses melalui asosiasi host; diagnosis pelanggaran pembatasan IMPOR diperlukan.

Pernyataan GENERIC dapat digunakan untuk mendeklarasikan antarmuka generik. Jumlah argumen prosedur digunakan dalam resolusi umum.

Dalam sebuah modul, aksesibilitas default entitas yang diakses dari modul lain dapat dikontrol secara terpisah dari aksesibilitas default entitas yang dideklarasikan dalam modul using.

Pernyataan IMPLICIT NONE dapat memerlukan deklarasi eksplisit atribut EKSTERNAL di seluruh unit pelingkupan dan unit pelingkupan yang terkandung di dalamnya.

Operasi yang ditentukan tidak perlu menentukan INTENT (IN) untuk argumen dummy dengan atribut VALUE.

Tugas yang ditentukan tidak perlu menentukan INTENT (IN) untuk argumen dummy kedua jika memiliki atribut VALUE.

 Prosedur yang tidak dideklarasikan dengan nilai-param tipe asterisk, termasuk prosedur ELEMENTAL, dapat dipanggil secara rekursif secara default; kata kunci RECURSIVE hanya sebagai nasihat. Kata kunci NON_RECURSIVE menentukan bahwa prosedur tidak rekursif.

Pernyataan ERROR STOP dapat muncul dalam subprogram murni.

Argumen dummy dari fungsi murni diizinkan dalam konteks definisi variabel, jika memiliki atribut VALUE. Argumen dummy coarray dapat direferensikan atau ditentukan oleh gambar lain.

• • Fitur yang sebelumnya dijelaskan oleh ISO/IEC TS 29113:2012:

Objek data dummy dapat mengasumsikan peringkatnya dari argumen efektifnya.

Objek data dummy dapat mengasumsikan tipe dari argumen efektifnya, tanpa memiliki kemampuan untuk melakukan pemilihan tipe.

Sebuah prosedur interoperable dapat memiliki argumen dummy yang diasumsikan-jenis dan/atau diasumsikan-peringkat.

Prosedur interoperable dapat memiliki objek data dummy yang dapat dialokasikan, diasumsikan-bentuk, opsional, atau pointer.

Panjang karakter objek data dummy dari prosedur yang dapat dioperasikan dapat diasumsikan.

Argumen untuk :

  • C_LOC dapat berupa array yang tidak dapat dioperasikan.
  • FPTR ke C_F_POINTER dapat berupa penunjuk array yang tidak dapat dioperasikan. Argumen untuk C_FUNLOC dapat berupa prosedur yang tidak dapat dioperasikan.
  • FPTR ke C_F_PROCPOINTER dapat menjadi penunjuk prosedur yang tidak dapat dioperasikan. Ada konstanta bernama C_PTRDIFF_T baru untuk menyediakan interoperabilitas dengan tipe C ptrdiff_t.

Selain ISO/IEC TS 29113:2012, argumen aktual skalar dapat dikaitkan dengan argumen dummy ukuran asumsi tipe asumsi, objek data dummy peringkat asumsi yang tidak terkait dengan array ukuran asumsi dapat digunakan sebagai argumen ke fungsi C_SIZEOF dari modul intrinsik ISO_C_BINDING, dan argumen tipe ke CFI_establish dapat memiliki nilai positif yang sesuai dengan tipe C yang dapat dioperasikan.

• • Perubahan pada modul intrinsik IEEE_ARITHMETIC, IEEE_EXCEPTIONS, dan IEEE_FEATURES untuk kesesuaian dengan ISO/IEC/IEEE 60559:2011:

Ada mode pembulatan opsional baru IEEE_AWAY. Tipe baru IEEE_MODES_TYPE merangkum semua mode floating-point. Fitur yang terkait dengan bilangan subnormal dapat diakses dengan fungsi dan tipe bernama . . . DI BAWAH NORMAL. . . (yang lama… DENORMAL… tetap ada nama).

Fungsi baru :

  • IEEE_FMA melakukan operasi perkalian-tambahan yang menyatu. IEEE_INT melakukan konversi bulat ke tipe integer.
  • IEEE_MAX_NUM, IEEE_MAX_NUM_MAG, IEEE_MIN_NUM, dan IEEE_MIN_NUM_MAG menghitung nilai numerik maksimum dan minimum.
  • IEEE_NEXT_DOWN dan IEEE_NEXT_UP mengembalikan nomor mesin yang berdekatan.
  • IEEE_QUIET_EQ, IEEE_QUIET_GE, IEEE_QUIET_GT, IEEE_QUIET_LE, IEEE_QUIET_LT, dan IEEE_QUIET_NE melakukan perbandingan yang tenang.
  • IEEE_SIGNALING_EQ, IEEE_SIGNALING_GE, IEEE_SIGNALING_GT, IEEE_SIGNALING_GE, IEEE_SIGNALING_LE, IEEE_SIGNALING_LT, dan IEEE_SIGNALING_NE melakukan perbandingan sinyal.

Mode pembulatan desimal dapat ditanyakan dan diatur secara independen dari mode pembulatan biner, menggunakan argumen RADIX ke IEEE_GET_ROUNDING_MODE dan IEEE_SET_ROUNDING_MODE.

Fungsi baru :

  • IEEE_REAL melakukan konversi bulat ke tipe nyata. IEEE_REM sekarang membutuhkan argumennya untuk memiliki radix yang sama.
  • IEEE_RINT sekarang memiliki argumen ROUND untuk melakukan pembulatan tertentu.
  • Fungsi baru IEEE_SIGNBIT menguji bit tanda nomor IEEE.

• • Fitur yang sebelumnya dijelaskan oleh ISO/IEC TS 18508:2015:

Pernyataan CRITICAL memiliki penentu ERRMSG= dan STAT= opsional. Subrutin intrinsik ATOMIC_DEFINE dan ATOMIC_REF memiliki argumen STAT opsional. Subrutin intrinsik baru ATOMIC_ADD, ATOMIC_AND, ATOMIC_CAS, ATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR, ATOMIC_FETCH_XOR, ATOMIC_OR, dan ATOMIC_XOR melakukan operasi atom.

Fungsi intrinsik baru FAILED_IMAGES dan STOPPED_IMAGES mengembalikan indeks gambar yang diketahui gagal atau berhenti masing-masing.

Fungsi intrinsik baru IMAGE_STATUS mengembalikan status eksekusi gambar dari suatu gambar. Subrutin intrinsik MOVE_ALLOC memiliki argumen ERRMSG dan STAT opsional.

Fungsi intrinsik IMAGE_INDEX dan NUM_IMAGES memiliki bentuk tambahan dengan argumen TEAM atau TEAM_NUMBER. Fungsi intrinsik THIS_IMAGE memiliki argumen TEAM opsional.

Pernyataan EVENT POST dan EVENT WAIT, EVENT_QUERY subrutin intrinsik, dan tipe EVENT_TYPE menyediakan fasilitas acara untuk pemesanan segmen satu sisi.

Konstruk CHANGE TEAM, pernyataan tipe turunan TEAM_TYPE, FORM TEAM dan SYNC TEAM, fungsi intrinsik GET_TEAM dan TEAM_NUMBER, dan TEAM= dan TEAM_NUMBER= penentu pada pemilih gambar, menyediakan fasilitas tim untuk subset dari gambar program untuk bertindak bersama sebagai jika itu adalah kumpulan semua gambar.

 Fasilitas tim ini memungkinkan coarray yang dapat dialokasikan untuk dialokasikan atau tidak dialokasikan pada subset gambar.

Subrutin intrinsik baru CO_BROADCAST, CO_MAX, CO_MIN, CO_REDUCE, dan CO_SUM melakukan operasi pengurangan kolektif pada citra tim saat ini.

Konsep gambar gagal, pernyataan FAIL IMAGE, penentu STAT= pada pemilih gambar, dan konstanta bernama STAT_FAILED_IMAGE dari modul intrinsik ISO_FORTRAN_ENV memberikan dukungan untuk eksekusi paralel yang toleran terhadap kesalahan.

• • Perubahan pada fitur yang sebelumnya dijelaskan oleh ISO/IEC TS 18508:2015:

Pernyataan CHANGE TEAM dan SYNC TEAM, dan TEAM= specifier pada pemilih gambar, mengizinkan tim untuk ditentukan oleh ekspresi. Fungsi intrinsik FAILED_IMAGES dan STOPPED_IMAGES tidak memiliki batasan pada jenis hasil mereka.

Nama argumen fungsi untuk fungsi intrinsik CO_REDUCE adalah OPERATION bukan OPERATOR; argumen ini tidak harus bersifat komutatif. Konstanta bernama STAT_UNLOCKED_FAILED_IMAGE dari modul intrinsik ISO_FORTRAN_ENV menunjukkan bahwa variabel kunci dikunci oleh gambar yang gagal. Nomor tim untuk tim awal dapat digunakan di pemilih gambar, dan dalam fungsi intrinsik NUM_IMAGES dan IMAGE_INDEX.

Variabel tim yang muncul dalam pernyataan CHANGE TEAM tidak dapat lagi didefinisikan atau menjadi tidak terdefinisi selama pelaksanaan konstruksi CHANGE TEAM.

 Semua gambar dari tim saat ini tidak lagi diperlukan untuk menjalankan pernyataan CHANGE TEAM yang sama. Variabel tipe TEAM_TYPE dari modul intrinsik ISO_FORTRAN_ENV tidak diizinkan menjadi coarray. Variabel bertipe TEAM_TYPE dari modul intrinsik ISO_FORTRAN_ENV dapat memiliki komponen penunjuk, dan variabel tim menjadi tidak terdefinisi jika diberi nilai dari gambar lain.

Fungsi intrinsik UCOBOUND menghasilkan nilai untuk kobound atas akhir yang selalu relatif terhadap tim saat ini.

Pernyataan EXIT dapat digunakan untuk menyelesaikan eksekusi dari CHANGE TEAM atau CRITICAL construct.

Dokumen ini disusun dalam 19 klausa, berurusan dengan 8 area konseptual.

8 area ini, dan klausa di mana mereka diperlakukan, adalah:

High/low level conceptsClauses 4, 5, 6
Data conceptsClauses 7, 8, 9
ComputationsClauses 10, 16, 17
Execution controlClause 11
Input/outputClauses 12, 13
Program unitsClauses 14, 15
Interoperability with CClause 18
Scoping and association rulesClause 19

Ini juga berisi materi nonnormatif berikut:

Processor dependenciesAnnex A
Deleted and obsolescent featuresAnnex B
Extended notesAnnex C
IndexIndex

ISO/IEC 1539-1:2018 Klausa 1-3

1 Scope : Lingkup

Bagian ini sudah tercantum di bagian awal artikel ini, pada paragraf “Standar ISO/IEC 1539-1:2018”.

2 Normative references : Referensi normatif

Dokumen-dokumen berikut dirujuk dalam teks sedemikian rupa sehingga sebagian atau seluruh isinya merupakan persyaratan dokumen ini.

Untuk referensi bertanggal, hanya edisi yang dikutip yang berlaku.

Untuk acuan yang tidak bertanggal, berlaku edisi terakhir dari dokumen acuan (termasuk setiap amandemennya).

  • ISO/IEC 646:1991 (Versi Referensi Internasional), Teknologi informasi—set karakter berkode ISO 7-bit untuk pertukaran informasi
  • ISO/IEC 9899:2011, Bahasa pemrograman—C
  • ISO/IEC 10646, Teknologi informasi—Universal Multiple-Octet Coded Character Set (UCS)
  • ISO/IEC/IEEE 60559:2011, Teknologi informasi — Sistem Mikroprosesor — Aritmatika Floating-Point

3 Terms and definitions : Istilah dan definisi

Untuk tujuan dokumen ini, istilah dan definisi berikut berlaku.

ISO dan IEC memelihara database terminologi untuk digunakan dalam standardisasi di alamat berikut:

Klausa 3.1 – 3.6

3.1 actual argument : argumen yang sebenarnya

entitas (R1524) yang muncul dalam referensi prosedur

3.2 allocatable : dapat dialokasikan

memiliki atribut ALLOCATABLE (8.5.3)

3.3 array : Himpunan

kumpulan data skalar, semua parameter tipe dan tipe yang sama, yang elemen individualnya disusun dalam pola persegi panjang (8.5.8, 9.5)

3.3.1 array element : elemen larik

elemen individu skalar dari array

3.3.2 array pointer : penunjuk array

larik dengan atribut POINTER (8.5.14)

3.3.3 array section : bagian susunan

subobjek larik yang ditunjuk oleh bagian-array, dan yang merupakan larik itu sendiri (9.5.3.3)

3.3.4 assumed-shape array : array berbentuk asumsi

array argumen dummy nonpointer nonallocatable yang mengambil bentuknya dari argumen efektifnya (8.5.8.3)

3.3.5 assumed-size array : array ukuran diasumsikan

array argumen dummy yang ukurannya diasumsikan dari argumen efektifnya (8.5.8.5)

3.3.6 deferred-shape array : array bentuk ditangguhkan

array yang dapat dialokasikan atau penunjuk array, dideklarasikan dengan daftar spesifikasi bentuk yang ditangguhkan (8.5.8.4)

3.3.7 explicit-shape array : array bentuk eksplisit

array dideklarasikan dengan daftar spesifikasi-bentuk-eksplisit, yang menetapkan nilai eksplisit untuk batas di setiap dimensi array (8.5.8.2)

3.4 ASCII character : karakter ASCII

karakter yang metode representasinya sesuai dengan ISO/IEC 646:1991 (Versi Referensi Internasional)

3.5 associate name : nama asosiasi

nama entitas konstruk yang terkait dengan pemilih konstruk ASSOCIATE, CHANGE TEAM, SELECT RANK, atau SELECT TYPE (11.1.3, 11.1.5, 11.1.10, 11.1.11)

3.6 associating entity : entitas asosiasi

entitas yang tidak ada sebelum pendirian asosiasi (19.5.5)

Klausa 3.7 – 3.156

Dikarenakan banyaknya isi standar ini yang ditampilkan di OBP, maka klausa selanjutnya dapat dibaca di artikel lanjutan dari standarku.com berikut :

  • ISO/IEC 1539-1:2018 Klausa 3.7 – 3.156

Penutup ISO

Demikian artikel dari standarku.com mengenai Standar ISO/IEC 1539-1:2018.

Mohon saran dari pembaca untuk kelengkapan isi artikel ini, silahkan saran tersebut dapat disampaikan melalui kolom komentar.

Baca artikel lain :

Sumber referensi :

Leave a Comment