Fortran - Fungsi Intrinsik

Fungsi intrinsik adalah beberapa fungsi umum dan penting yang disediakan sebagai bagian dari bahasa Fortran. Kami telah membahas beberapa fungsi ini di bab Array, Karakter, dan String.

Fungsi intrinsik dapat dikategorikan sebagai -

  • Fungsi Numerik
  • Fungsi Matematika
  • Fungsi Pertanyaan Numerik
  • Fungsi Manipulasi Titik Mengambang
  • Fungsi Manipulasi Bit
  • Fungsi Karakter
  • Fungsi Jenis
  • Fungsi Logis
  • Fungsi Array.

Kami telah membahas fungsi array di bab Array. Di bagian berikut kami memberikan deskripsi singkat tentang semua fungsi ini dari kategori lain.

Di kolom nama fungsi,

  • A mewakili semua jenis variabel numerik
  • R mewakili variabel nyata atau integer
  • X dan Y mewakili variabel nyata
  • Z mewakili variabel kompleks
  • W mewakili variabel nyata atau kompleks

Fungsi Numerik

Sr Tidak Deskripsi fungsi
1

ABS (A)

Ini mengembalikan nilai absolut dari A

2

AIMAG (Z)

Ini mengembalikan bagian imajiner dari bilangan kompleks Z

3

AINT (A [, KIND])

Ini memotong bagian pecahan dari A menuju nol, mengembalikan bilangan bulat nyata.

4

ANINT (A [, KIND])

Ini mengembalikan nilai nyata, bilangan bulat terdekat atau bilangan bulat.

5

CEILING (A [, KIND])

Ini mengembalikan bilangan bulat terkecil yang lebih besar dari atau sama dengan angka A.

6

CMPLX (X [, Y, KIND])

Ini mengubah variabel nyata X dan Y menjadi bilangan kompleks X + iY; jika Y tidak ada, 0 digunakan.

7

CONJG (Z)

Ia mengembalikan konjugasi kompleks dari bilangan kompleks Z.

8

DBLE (A)

Ini mengubah A menjadi bilangan real presisi ganda.

9

DIM (X, Y)

Ini mengembalikan perbedaan positif dari X dan Y.

10

DPROD (X, Y)

Ia mengembalikan produk nyata presisi ganda dari X dan Y.

11

FLOOR (A [, KIND])

Ini memberikan bilangan bulat terbesar kurang dari atau sama dengan angka A.

12

INT (A [, KIND])

Ini mengubah angka (real atau integer) menjadi integer, memotong bagian nyata menuju nol.

13

MAX (A1, A2 [, A3,...])

Ini mengembalikan nilai maksimum dari argumen, semuanya berjenis sama.

14

MIN (A1, A2 [, A3,...])

Ini mengembalikan nilai minimum dari argumen, semuanya berjenis sama.

15

MOD (A, P)

Ini mengembalikan sisa A pada pembagian oleh P, kedua argumen memiliki tipe yang sama (A-INT (A / P) * P)

16

MODULO (A, P)

Ini mengembalikan A modulo P: (A-FLOOR (A / P) * P)

17

NINT (A [, KIND])

Ini mengembalikan bilangan bulat terdekat dari angka A.

18

REAL (A [, KIND])

Ini Mengubah menjadi tipe nyata

19

SIGN (A, B)

Ia mengembalikan nilai absolut dari A dikalikan dengan tanda P.Pada dasarnya ia mentransfer tanda dari B ke A.

Contoh

program numericFunctions
implicit none  

   ! define constants  
   ! define variables
   real :: a, b 
   complex :: z
   
   ! values for a, b 
   a = 15.2345
   b = -20.7689
    
   write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b)   
   write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b) 
   write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b)   
   write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b)  
    
   z = cmplx(a, b)
   write(*,*) 'z: ',z   
   
end program numericFunctions

Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -

abs(a): 15.2344999   abs(b): 20.7688999    
aint(a): 15.0000000  aint(b): -20.0000000    
ceiling(a): 16  ceiling(b): -20
floor(a): 15  floor(b): -21
z: (15.2344999, -20.7688999)

Fungsi Matematika

Sr Tidak Deskripsi fungsi
1

ACOS (X)

Ini mengembalikan kosinus terbalik dalam rentang (0, π), dalam radian.

2

ASIN (X)

Ia mengembalikan sinus terbalik dalam rentang (-π / 2, π / 2), dalam radian.

3

ATAN (X)

Ia mengembalikan tangen terbalik dalam rentang (-π / 2, π / 2), dalam radian.

4

ATAN2 (Y, X)

Ia mengembalikan tangen terbalik dalam rentang (-π, π), dalam radian.

5

COS (X)

Ini mengembalikan kosinus argumen dalam radian.

6

COSH (X)

Ini mengembalikan kosinus hiperbolik argumen dalam radian.

7

EXP (X)

Ini mengembalikan nilai eksponensial dari X.

8

LOG (X)

Ini mengembalikan nilai logaritmik alami dari X.

9

LOG10 (X)

Ini mengembalikan nilai logaritmik (basis 10) umum dari X.

10

SIN (X)

Ini mengembalikan sinus argumen dalam radian.

11

SINH (X)

Ini mengembalikan sinus hiperbolik argumen dalam radian.

12

SQRT (X)

Ini mengembalikan akar kuadrat dari X.

13

TAN (X)

Ini mengembalikan tangen argumen dalam radian.

14

TANH (X)

Ini mengembalikan tangen hiperbolik argumen dalam radian.

Contoh

Program berikut menghitung posisi horizontal dan vertikal masing-masing x dan y dari proyektil setelah beberapa saat, t -

Dimana, x = ut cos a dan y = ut sin a - g t2 / 2

program projectileMotion  
implicit none  

   ! define constants  
   real, parameter :: g = 9.8  
   real, parameter :: pi = 3.1415927  
   
   !define variables
   real :: a, t, u, x, y   
   
   !values for a, t, and u 
   a = 45.0
   t = 20.0
   u = 10.0
   
   ! convert angle to radians  
   a = a * pi / 180.0  
   x = u * cos(a) * t   
   y = u * sin(a) * t - 0.5 * g * t * t  
   
   write(*,*) 'x: ',x,'  y: ',y   
   
end program projectileMotion

Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -

x: 141.421356  y: -1818.57861

Fungsi Pertanyaan Numerik

Fungsi-fungsi ini bekerja dengan model aritmatika integer dan floating-point tertentu. Fungsi mengembalikan properti bilangan dengan jenis yang sama seperti variabel X, yang bisa nyata dan dalam beberapa kasus bilangan bulat.

Sr Tidak Deskripsi fungsi
1

DIGITS (X)

Ini mengembalikan jumlah digit signifikan dari model.

2

EPSILON (X)

Ini mengembalikan angka yang hampir dapat diabaikan dibandingkan dengan satu. Dengan kata lain, ini mengembalikan nilai terkecil sehingga REAL (1.0, KIND (X)) + EPSILON (X) tidak sama dengan REAL (1.0, KIND (X)).

3

HUGE (X)

Ini mengembalikan jumlah model terbesar

4

MAXEXPONENT (X)

Ini mengembalikan eksponen maksimum model

5

MINEXPONENT (X)

Ini mengembalikan eksponen minimum model

6

PRECISION (X)

Ini mengembalikan ketepatan desimal

7

RADIX (X)

Ini mengembalikan dasar model

8

RANGE (X)

Ini mengembalikan kisaran eksponen desimal

9

TINY (X)

Ini mengembalikan bilangan positif terkecil dari model

Fungsi Manipulasi Titik Mengambang

Sr Tidak Deskripsi fungsi
1

EXPONENT (X)

Ini mengembalikan bagian eksponen dari nomor model

2

FRACTION (X)

Ini mengembalikan bagian pecahan dari sebuah angka

3

NEAREST (X, S)

Ini mengembalikan nomor prosesor berbeda terdekat ke arah tertentu

4

RRSPACING (X)

Ini mengembalikan kebalikan dari jarak relatif nomor model di dekat nomor yang diberikan

5

SCALE (X, I)

Ini mengalikan nyata dengan basisnya menjadi pangkat integer

6

SET_EXPONENT (X, I)

itu mengembalikan bagian eksponen sebuah angka

7

SPACING (X)

Ini mengembalikan jarak absolut dari nomor model di dekat nomor yang diberikan

Fungsi Manipulasi Bit

Sr Tidak Deskripsi fungsi
1

BIT_SIZE (I)

Ini mengembalikan jumlah bit model

2

BTEST (I, POS)

Pengujian bit

3

IAND (I, J)

DAN logis

4

IBCLR (I, POS)

Sedikit jelas

5

IBITS (I, POS, LEN)

Ekstraksi bit

6

IBSET (I, POS)

Setel sedikit

7

IEOR (I, J)

Eksklusif ATAU

8

IOR (I, J)

Inklusif ATAU

9

ISHFT (I, SHIFT)

Pergeseran logis

10

ISHFTC (I, SHIFT [, SIZE])

Pergeseran melingkar

11

NOT (I)

Pelengkap logis

Fungsi Karakter

Sr Tidak Deskripsi fungsi
1

ACHAR (I)

Ini mengembalikan karakter ke-I dalam urutan penyusunan ASCII.

2

ADJUSTL (STRING)

Ini menyesuaikan string yang tersisa dengan menghapus semua bagian kosong di depan dan memasukkan bagian yang kosong

3

ADJUSTR (STRING)

Ini menyesuaikan string dengan benar dengan menghapus trailing blank dan memasukkan awalan kosong.

4

CHAR (I [, KIND])

Ini mengembalikan karakter ke-I dalam urutan penyatuan spesifik mesin

5

IACHAR (C)

Ini mengembalikan posisi karakter dalam urutan penyusunan ASCII.

6

ICHAR (C)

Ini mengembalikan posisi karakter dalam urutan penyusunan khusus mesin (prosesor).

7

INDEX (STRING, SUBSTRING [, BACK])

Ini mengembalikan posisi awal paling kiri (paling kanan jika BACK adalah .TRUE.) Dari SUBSTRING dalam STRING.

8

LEN (STRING)

Ini mengembalikan panjang string.

9

LEN_TRIM (STRING)

Ini mengembalikan panjang string tanpa membuntuti karakter kosong.

10

LGE (STRING_A, STRING_B)

Secara leksikal lebih besar dari atau sama

11

LGT (STRING_A, STRING_B)

Secara leksikal lebih besar dari

12

LLE (STRING_A, STRING_B)

Secara leksikal kurang dari atau sama

13

LLT (STRING_A, STRING_B)

Secara leksikal kurang dari

14

REPEAT (STRING, NCOPIES)

Rangkaian berulang

15

SCAN (STRING, SET [, BACK])

Ini mengembalikan indeks karakter paling kiri (paling kanan jika BACK adalah .TRUE.) Dari STRING yang dimiliki SET, atau 0 jika tidak ada.

16

TRIM (STRING)

Menghapus karakter kosong yang tertinggal

17

VERIFY (STRING, SET [, BACK])

Memverifikasi kumpulan karakter dalam string

Fungsi Jenis

Sr Tidak Deskripsi fungsi
1

KIND (X)

Ini mengembalikan nilai parameter tipe jenis.

2

SELECTED_INT_KIND (R)

Ia mengembalikan jenis parameter tipe untuk kisaran eksponen tertentu.

3

SELECTED_REAL_KIND ([P, R])

Nilai parameter tipe nyata, diberikan presisi dan jangkauan

Fungsi Logis

Sr Tidak Deskripsi fungsi
1

LOGICAL (L [, KIND])

Konversi antara objek bertipe logis dengan parameter tipe yang berbeda