Document ALLOCATED, ANINT, ANY, ASIN; Fix typos.
[gcc.git] / gcc / fortran / intrinsic.texi
1 @ignore
2 Copyright (C) 2005
3 Free Software Foundation, Inc.
4 This is part of the GFORTRAN manual.
5 For copying conditions, see the file gfortran.texi.
6
7 Permission is granted to copy, distribute and/or modify this document
8 under the terms of the GNU Free Documentation License, Version 1.2 or
9 any later version published by the Free Software Foundation; with the
10 Invariant Sections being ``GNU General Public License'' and ``Funding
11 Free Software'', the Front-Cover texts being (a) (see below), and with
12 the Back-Cover Texts being (b) (see below). A copy of the license is
13 included in the gfdl(7) man page.
14
15
16 Some basic guidelines for editing this document:
17
18 (1) The intrinsic procedures are to be listed in alphabetical order.
19 (2) The generic name is to be use.
20 (3) The specific names are included in the function index and in a
21 table at the end of the node (See ABS entry).
22 (4) Try to maintain the same style for each entry.
23
24
25 @end ignore
26
27 @node Intrinsic Procedures
28 @chapter Intrinsic Procedures
29 @cindex Intrinsic Procedures
30
31 This portion of the document is incomplete and undergoing massive expansion
32 and editing. All contributions and corrections are strongly encouraged.
33
34 @menu
35 * Introduction: Introduction
36 * @code{ABORT}: ABORT, Abort the program
37 * @code{ABS}: ABS, Absolute value
38 * @code{ACHAR}: ACHAR, Character in @acronym{ASCII} collating sequence
39 * @code{ACOS}: ACOS, Arccosine function
40 * @code{ADJUSTL}: ADJUSTL, Left adjust a string
41 * @code{ADJUSTR}: ADJUSTR, Right adjust a string
42 * @code{AIMAG}: AIMAG, Imaginary part of complex number
43 * @code{AINT}: AINT, Truncate to a whole number
44 * @code{ALL}: ALL, Determine if all values are true
45 * @code{ALLOCATED}: ALLOCATED, Status of allocatable entity
46 * @code{ANINT}: ANINT, Nearest whole number
47 * @code{ANY}: ANY, Determine if any values are true
48 * @code{ASIN}: ASIN, Arcsine function
49 @end menu
50
51 @node Introduction
52 @section Introduction to intrinsic procedures
53
54 Gfortran provides a rich set of intrinsic procedures that includes all
55 the intrinsic procedures required by the Fortran 95 standard, a set of
56 intrinsic procedures for backwards compatibility with Gnu Fortran 77
57 (i.e., @command{g77}), and a small selection of intrinsic procedures
58 from the Fortran 2003 standard. Any description here, which conflicts with a
59 description in either the Fortran 95 standard or the Fortran 2003 standard,
60 is unintentional and the standard(s) should be considered authoritative.
61
62 The enumeration of the @code{KIND} type parameter is processor defined in
63 the Fortran 95 standard. Gfortran defines the default integer type and
64 default real type by @code{INTEGER(KIND=4)} and @code{REAL(KIND=4)},
65 respectively. The standard mandates that both data types shall have
66 another kind, which have more precision. On typical target architectures
67 supports by @command{gfortran}, this kind type parameter is @code{KIND=8}.
68 Hence, @code{REAL(KIND=8)} and @code{DOUBLE PRECISION} are equivalent.
69 In the description of generic intrinsic procedures, the kind type parameter
70 will be specified by @code{KIND=*}, and in the description of specific
71 names for an intrinsic procedure the kind type parameter will be explicitly
72 given (e.g., @code{REAL(KIND=4)} or @code{REAL(KIND=8)}). Finally, for
73 brevity the optional @code{KIND=} syntax will be omitted.
74
75 Many of the intrinsics procedures take one or more optional arguments.
76 This document follows the convention used in the Fortran 95 standard,
77 and denotes such arguments by square brackets.
78
79 @command{Gfortran} offers the @option{-std=f95} and @option{-std=gnu} options,
80 which can be used to restrict the set of intrinsic procedures to a
81 given standard. By default, @command{gfortran} sets the @option{-std=gnu}
82 option, and so all intrinsic procedures describe here are accepted. There
83 is one caveat. For a select group of intrinsic procedures, @command{g77}
84 implemented both a function and a subroutine. Both classes
85 have been implemented in @command{gfortran} for backwards compatibility
86 with @command{g77}. It is noted here that these functions and subroutines
87 cannot be intermixed in a given subprogram. In the descriptions that follow,
88 the applicable option(s) is noted.
89
90
91
92 @node ABORT
93 @section @code{ABORT} --- Abort the program
94 @findex @code{ABORT}
95 @cindex abort
96
97 @table @asis
98 @item @emph{Description}:
99 @code{ABORT} causes immediate termination of the program. On operating
100 systems that support a core dump, @code{ABORT} will produce a core dump,
101 which is suitable for debugging purposes.
102
103 @item @emph{Option}:
104 gnu
105
106 @item @emph{Type}:
107 non-elemental subroutine
108
109 @item @emph{Syntax}:
110 @code{CALL ABORT}
111
112 @item @emph{Return value}:
113 Does not return.
114
115 @item @emph{Example}:
116 @smallexample
117 program test_abort
118 integer :: i = 1, j = 2
119 if (i /= j) call abort
120 end program test_abort
121 @end smallexample
122 @end table
123
124
125
126 @node ABS
127 @section @code{ABS} --- Absolute value
128 @findex @code{ABS} intrinsic
129 @findex @code{CABS} intrinsic
130 @findex @code{DABS} intrinsic
131 @findex @code{IABS} intrinsic
132 @findex @code{ZABS} intrinsic
133 @findex @code{CDABS} intrinsic
134 @cindex absolute value
135
136 @table @asis
137 @item @emph{Description}:
138 @code{ABS(X)} computes the absolute value of @code{X}.
139
140 @item @emph{Option}:
141 f95, gnu
142
143 @item @emph{Type}:
144 elemental function
145
146 @item @emph{Syntax}:
147 @code{X = ABS(X)}
148
149 @item @emph{Arguments}:
150 @multitable @columnfractions .15 .80
151 @item @var{X} @tab The type of the argument shall be an @code{INTEGER(*)},
152 @code{REAL(*)}, or @code{COMPLEX(*)}.
153 @end multitable
154
155 @item @emph{Return value}:
156 The return value is of the same type and
157 kind as the argument except the return value is @code{REAL(*)} for a
158 @code{COMPLEX(*)} argument.
159
160 @item @emph{Example}:
161 @smallexample
162 program test_abs
163 integer :: i = -1
164 real :: x = -1.e0
165 complex :: z = (-1.e0,0.e0)
166 i = abs(i)
167 x = abs(x)
168 x = abs(z)
169 end program test_abs
170 @end smallexample
171
172 @item @emph{Specific names}:
173 @multitable @columnfractions .24 .24 .24 .24
174 @item Name @tab Argument @tab Return type @tab Option
175 @item @code{CABS(Z)} @tab @code{COMPLEX(4) Z} @tab @code{REAL(4)} @tab f95, gnu
176 @item @code{DABS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
177 @item @code{IABS(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab f95, gnu
178 @item @code{ZABS(Z)} @tab @code{COMPLEX(8) Z} @tab @code{COMPLEX(8)} @tab gnu
179 @item @code{CDABS(Z)} @tab @code{COMPLEX(8) Z} @tab @code{COMPLEX(8)} @tab gnu
180 @end multitable
181 @end table
182
183
184
185 @node ACHAR
186 @section @code{ACHAR} --- Character in @acronym{ASCII} collating sequence
187 @findex @code{ACHAR} intrinsic
188 @cindex @acronym{ASCII} collating sequence
189
190 @table @asis
191 @item @emph{Description}:
192 @code{ACHAR(I)} returns the character located at position @code{I}
193 in the @acronym{ASCII} collating sequence.
194
195 @item @emph{Option}:
196 f95, gnu
197
198 @item @emph{Type}:
199 elemental function
200
201 @item @emph{Syntax}:
202 @code{C = ACHAR(I)}
203
204 @item @emph{Arguments}:
205 @multitable @columnfractions .15 .80
206 @item @var{I} @tab The type shall be an @code{INTEGER(*)}.
207 @end multitable
208
209 @item @emph{Return value}:
210 The return value is of type @code{CHARACTER} with a length of one. The
211 kind type parameter is the same as @code{KIND('A')}.
212
213 @item @emph{Example}:
214 @smallexample
215 program test_achar
216 character c
217 c = achar(32)
218 end program test_achar
219 @end smallexample
220 @end table
221
222
223
224 @node ACOS
225 @section @code{ACOS} --- Arccosine function
226 @findex @code{ACOS} intrinsic
227 @findex @code{DACOS} intrinsic
228 @cindex arccosine
229
230 @table @asis
231 @item @emph{Description}:
232 @code{ACOS(X)} computes the arccosine of its @var{X}.
233
234 @item @emph{Option}:
235 f95, gnu
236
237 @item @emph{Type}:
238 elemental function
239
240 @item @emph{Syntax}:
241 @code{X = ACOS(X)}
242
243 @item @emph{Arguments}:
244 @multitable @columnfractions .15 .80
245 @item @var{X} @tab The type shall be an @code{REAL(*)}, and a magnitude that is
246 less than one.
247 @end multitable
248
249 @item @emph{Return value}:
250 The return value is of type @code{REAL(*)} and it lies in the
251 range @math{ 0 \leq \arccos (x) \leq \pi}. The kind type
252 parameter is the same as @var{X}.
253
254 @item @emph{Example}:
255 @smallexample
256 program test_acos
257 real(8) :: x = 0.866_8
258 x = achar(x)
259 end program test_acos
260 @end smallexample
261
262 @item @emph{Specific names}:
263 @multitable @columnfractions .24 .24 .24 .24
264 @item Name @tab Argument @tab Return type @tab Option
265 @item @code{DACOS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
266 @end multitable
267 @end table
268
269
270
271 @node ADJUSTL
272 @section @code{ADJUSTL} --- Left adjust a string
273 @findex @code{ADJUSTL} intrinsic
274 @cindex adjust string
275
276 @table @asis
277 @item @emph{Description}:
278 @code{ADJUSTL(STR)} will left adjust a string by removing leading spaces.
279 Spaces are inserted at the end of the string as needed.
280
281 @item @emph{Option}:
282 f95, gnu
283
284 @item @emph{Type}:
285 elemental function
286
287 @item @emph{Syntax}:
288 @code{STR = ADJUSTL(STR)}
289
290 @item @emph{Arguments}:
291 @multitable @columnfractions .15 .80
292 @item @var{STR} @tab The type shall be @code{CHARACTER}.
293 @end multitable
294
295 @item @emph{Return value}:
296 The return value is of type @code{CHARACTER} where leading spaces
297 are removed and the same number of spaces are inserted on the end
298 of @var{STR}.
299
300 @item @emph{Example}:
301 @smallexample
302 program test_adjustl
303 character(len=20) :: str = ' gfortran'
304 str = adjustl(str)
305 print *, str
306 end program test_adjustl
307 @end smallexample
308 @end table
309
310
311 @node ADJUSTR
312 @section @code{ADJUSTR} --- Right adjust a string
313 @findex @code{ADJUSTR} intrinsic
314 @cindex adjust string
315
316 @table @asis
317 @item @emph{Description}:
318 @code{ADJUSTR(STR)} will right adjust a string by removing trailing spaces.
319 Spaces are inserted at the start of the string as needed.
320
321 @item @emph{Option}:
322 f95, gnu
323
324 @item @emph{Type}:
325 elemental function
326
327 @item @emph{Syntax}:
328 @code{STR = ADJUSTR(STR)}
329
330 @item @emph{Arguments}:
331 @multitable @columnfractions .15 .80
332 @item @var{STR} @tab The type shall be @code{CHARACTER}.
333 @end multitable
334
335 @item @emph{Return value}:
336 The return value is of type @code{CHARACTER} where trailing spaces
337 are removed and the same number of spaces are inserted at the start
338 of @var{STR}.
339
340 @item @emph{Example}:
341 @smallexample
342 program test_adjustr
343 character(len=20) :: str = 'gfortran'
344 str = adjustr(str)
345 print *, str
346 end program test_adjustr
347 @end smallexample
348 @end table
349
350
351 @node AIMAG
352 @section @code{AIMAG} --- Imaginary part of complex number
353 @findex @code{AIMAG} intrinsic
354 @findex @code{DIMAG} intrinsic
355 @cindex Imaginary part
356
357 @table @asis
358 @item @emph{Description}:
359 @code{AIMAG(Z)} yields the imaginary part of complex argument @code{Z}.
360
361 @item @emph{Option}:
362 f95, gnu
363
364 @item @emph{Type}:
365 elemental function
366
367 @item @emph{Syntax}:
368 @code{X = AIMAG(Z)}
369
370 @item @emph{Arguments}:
371 @multitable @columnfractions .15 .80
372 @item @var{Z} @tab The type of the argument shall be @code{COMPLEX(*)}.
373 @end multitable
374
375 @item @emph{Return value}:
376 The return value is of type real with the
377 kind type parameter of the argument.
378
379 @item @emph{Example}:
380 @smallexample
381 program test_aimag
382 complex(4) z4
383 complex(8) z8
384 z4 = cmplx(1.e0_4, 0.e0_4)
385 z8 = cmplx(0.e0_8, 1.e0_8)
386 print *, aimag(z4), dimag(z8)
387 end program test_aimag
388 @end smallexample
389
390 @item @emph{Specific names}:
391 @multitable @columnfractions .24 .24 .24 .24
392 @item Name @tab Argument @tab Return type @tab Option
393 @item @code{DIMAG(Z)} @tab @code{COMPLEX(8) Z} @tab @code{REAL(8)} @tab f95, gnu
394 @end multitable
395 @end table
396
397
398 @node AINT
399 @section @code{AINT} --- Imaginary part of complex number
400 @findex @code{AINT} intrinsic
401 @findex @code{DINT} intrinsic
402 @cindex whole number
403
404 @table @asis
405 @item @emph{Description}:
406 @code{AINT(X [, KIND])} truncates its argument to a whole number.
407
408 @item @emph{Option}:
409 f95, gnu
410
411 @item @emph{Type}:
412 elemental function
413
414 @item @emph{Syntax}:
415 @code{X = AINT(X)} @*
416 @code{X = AINT(X, KIND)}
417
418 @item @emph{Arguments}:
419 @multitable @columnfractions .15 .80
420 @item @var{X} @tab The type of the argument shall be @code{REAL(*)}.
421 @item @var{KIND} @tab (Optional) @var{KIND} shall be a scalar integer
422 initialization expression.
423 @end multitable
424
425 @item @emph{Return value}:
426 The return value is of type real with the kind type parameter of the
427 argument if the optional @var{KIND} is absence; otherwise, the kind
428 type parameter will be given by @var{KIND}. If the magnitude of
429 @var{X} is less than one, then @code{AINT(X)} returns zero. If the
430 magnitude is equal to or greater than one, then it returns the largest
431 whole number that does not exceed its magnitude. The sign is the same
432 as the sign of @var{X}.
433
434 @item @emph{Example}:
435 @smallexample
436 program test_aint
437 real(4) x4
438 real(8) x8
439 x4 = 1.234E0_4
440 x8 = 4.321_8
441 print *, aint(x4), dint(x8)
442 x8 = aint(x4,8)
443 end program test_aint
444 @end smallexample
445
446 @item @emph{Specific names}:
447 @multitable @columnfractions .24 .24 .24 .24
448 @item Name @tab Argument @tab Return type @tab Option
449 @item @code{DINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
450 @end multitable
451 @end table
452
453
454 @node ALL
455 @section @code{ALL} --- All values in @var{MASK} along @var{DIM} are true
456 @findex @code{ALL} intrinsic
457 @cindex true values
458
459 @table @asis
460 @item @emph{Description}:
461 @code{ALL(MASK [, DIM])} determines if all the values are true in @var{MASK}
462 in the array along dimension @var{DIM}.
463
464 @item @emph{Option}:
465 f95, gnu
466
467 @item @emph{Type}:
468 transformational function
469
470 @item @emph{Syntax}:
471 @code{L = ALL(MASK)} @*
472 @code{L = ALL(MASK, DIM)}
473
474 @item @emph{Arguments}:
475 @multitable @columnfractions .15 .80
476 @item @var{MASK} @tab The type of the argument shall be @code{LOGICAL(*)} and
477 it shall not be scalar.
478 @item @var{DIM} @tab (Optional) @var{DIM} shall be a scalar integer
479 with a value that lies between one and the rank of @var{MASK}.
480 @end multitable
481
482 @item @emph{Return value}:
483 @code{ALL(MASK)} returns a scalar value of type @code{LOGICAL(*)} where
484 the kind type parameter is the same as the kind type parameter of
485 @var{MASK}. If @var{DIM} is present, then @code{ALL(MASK, DIM)} returns
486 an array with the rank of @var{MASK} minus 1. The shape is determined from
487 the shape of @var{MASK} where the @var{DIM} dimension is elided.
488
489 @table @asis
490 @item (A)
491 @code{ALL(MASK)} is true if all elements of @var{MASK} are true.
492 It also is true if @var{MASK} has zero size; otherwise, it is false.
493 @item (B)
494 If the rank of @var{MASK} is one, then @code{ALL(MASK,DIM)} is equivalent
495 to @code{ALL(MASK)}. If the rank is greater than one, then @code{ALL(MASK,DIM)}
496 is determined by applying @code{ALL} to the array sections.
497 @end table
498
499 @item @emph{Example}:
500 @smallexample
501 program test_all
502 logical l
503 l = all((/.true., .true., .true./))
504 print *, l
505 call section
506 contains
507 subroutine section
508 integer a(2,3), b(2,3)
509 a = 1
510 b = 1
511 b(2,2) = 2
512 print *, all(a .eq. b, 1)
513 print *, all(a .eq. b, 2)
514 end subroutine section
515 end program test_all
516 @end smallexample
517 @end table
518
519
520 @node ALLOCATED
521 @section @code{ALLOCATED} --- Status of an allocatable entity
522 @findex @code{ALLOCATED} intrinsic
523 @cindex allocation status
524
525 @table @asis
526 @item @emph{Description}:
527 @code{ALLOCATED(X)} checks the status of wether @var{X} is allocated.
528
529 @item @emph{Option}:
530 f95, gnu
531
532 @item @emph{Type}:
533 inquiry function
534
535 @item @emph{Syntax}:
536 @code{L = ALLOCATED(X)}
537
538 @item @emph{Arguments}:
539 @multitable @columnfractions .15 .80
540 @item @var{X} @tab The argument shall be an @code{ALLOCATABLE} array.
541 @end multitable
542
543 @item @emph{Return value}:
544 The return value is a scalar @code{LOGICAL} with the default logical
545 kind type parameter. If @var{X} is allocated, @code{ALLOCATED(X)}
546 is @code{.TRUE.}; otherwise, it returns the @code{.TRUE.}
547
548 @item @emph{Example}:
549 @smallexample
550 program test_allocated
551 integer :: i = 4
552 real(4), allocatable :: x(:)
553 if (allocated(x) .eqv. .false.) allocate(x(i)
554 end program test_allocated
555 @end smallexample
556 @end table
557
558
559 @node ANINT
560 @section @code{ANINT} --- Imaginary part of complex number
561 @findex @code{ANINT} intrinsic
562 @findex @code{DNINT} intrinsic
563 @cindex whole number
564
565 @table @asis
566 @item @emph{Description}:
567 @code{ANINT(X [, KIND])} rounds its argument to the nearest whole number.
568
569 @item @emph{Option}:
570 f95, gnu
571
572 @item @emph{Type}:
573 elemental function
574
575 @item @emph{Syntax}:
576 @code{X = ANINT(X)} @*
577 @code{X = ANINT(X, KIND)}
578
579 @item @emph{Arguments}:
580 @multitable @columnfractions .15 .80
581 @item @var{X} @tab The type of the argument shall be @code{REAL(*)}.
582 @item @var{KIND} @tab (Optional) @var{KIND} shall be a scalar integer
583 initialization expression.
584 @end multitable
585
586 @item @emph{Return value}:
587 The return value is of type real with the kind type parameter of the
588 argument if the optional @var{KIND} is absence; otherwise, the kind
589 type parameter will be given by @var{KIND}. If @var{X} is greater than
590 zero, then @code{ANINT(X)} returns @code{AINT(X+0.5)}. If @var{X} is
591 less than or equal to zero, then return @code{AINT(X-0.5)}.
592
593 @item @emph{Example}:
594 @smallexample
595 program test_anint
596 real(4) x4
597 real(8) x8
598 x4 = 1.234E0_4
599 x8 = 4.321_8
600 print *, anint(x4), dnint(x8)
601 x8 = anint(x4,8)
602 end program test_anint
603 @end smallexample
604
605 @item @emph{Specific names}:
606 @multitable @columnfractions .24 .24 .24 .24
607 @item Name @tab Argument @tab Return type @tab Option
608 @item @code{DNINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
609 @end multitable
610 @end table
611
612
613 @node ANY
614 @section @code{ANY} --- Any value in @var{MASK} along @var{DIM} is true
615 @findex @code{ANY} intrinsic
616 @cindex true values
617
618 @table @asis
619 @item @emph{Description}:
620 @code{ANY(MASK [, DIM])} determines if any of the values is true in @var{MASK}
621 in the array along dimension @var{DIM}.
622
623 @item @emph{Option}:
624 f95, gnu
625
626 @item @emph{Type}:
627 transformational function
628
629 @item @emph{Syntax}:
630 @code{L = ANY(MASK)} @*
631 @code{L = ANY(MASK, DIM)}
632
633 @item @emph{Arguments}:
634 @multitable @columnfractions .15 .80
635 @item @var{MASK} @tab The type of the argument shall be @code{LOGICAL(*)} and
636 it shall not be scalar.
637 @item @var{DIM} @tab (Optional) @var{DIM} shall be a scalar integer
638 with a value that lies between one and the rank of @var{MASK}.
639 @end multitable
640
641 @item @emph{Return value}:
642 @code{ANY(MASK)} returns a scalar value of type @code{LOGICAL(*)} where
643 the kind type parameter is the same as the kind type parameter of
644 @var{MASK}. If @var{DIM} is present, then @code{ANY(MASK, DIM)} returns
645 an array with the rank of @var{MASK} minus 1. The shape is determined from
646 the shape of @var{MASK} where the @var{DIM} dimension is elided.
647
648 @table @asis
649 @item (A)
650 @code{ANY(MASK)} is true if any element of @var{MASK} is true;
651 otherwise, it is false. It also is false if @var{MASK} has zero size.
652 @item (B)
653 If the rank of @var{MASK} is one, then @code{ANY(MASK,DIM)} is equivalent
654 to @code{ANY(MASK)}. If the rank is greater than one, then @code{ANY(MASK,DIM)}
655 is determined by applying @code{ANY} to the array sections.
656 @end table
657
658 @item @emph{Example}:
659 @smallexample
660 program test_any
661 logical l
662 l = any((/.true., .true., .true./))
663 print *, l
664 call section
665 contains
666 subroutine section
667 integer a(2,3), b(2,3)
668 a = 1
669 b = 1
670 b(2,2) = 2
671 print *, any(a .eq. b, 1)
672 print *, any(a .eq. b, 2)
673 end subroutine section
674 end program test_any
675 @end smallexample
676 @end table
677
678
679 @node ASIN
680 @section @code{ASIN} --- Arcsine function
681 @findex @code{ASIN} intrinsic
682 @findex @code{DASIN} intrinsic
683 @cindex arcsine
684
685 @table @asis
686 @item @emph{Description}:
687 @code{ASIN(X)} computes the arcsine of its @var{X}.
688
689 @item @emph{Option}:
690 f95, gnu
691
692 @item @emph{Type}:
693 elemental function
694
695 @item @emph{Syntax}:
696 @code{X = ASIN(X)}
697
698 @item @emph{Arguments}:
699 @multitable @columnfractions .15 .80
700 @item @var{X} @tab The type shall be an @code{REAL(*)}, and a magnitude that is
701 less than one.
702 @end multitable
703
704 @item @emph{Return value}:
705 The return value is of type @code{REAL(*)} and it lies in the
706 range @math{ \pi / 2 \leq \arccos (x) \leq \pi / 2}. The kind type
707 parameter is the same as @var{X}.
708
709 @item @emph{Example}:
710 @smallexample
711 program test_asin
712 real(8) :: x = 0.866_8
713 x = asin(x)
714 end program test_asin
715 @end smallexample
716
717 @item @emph{Specific names}:
718 @multitable @columnfractions .24 .24 .24 .24
719 @item Name @tab Argument @tab Return type @tab Option
720 @item @code{DASIN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
721 @end multitable
722 @end table
723
724
725
726
727
728 @comment gen associated
729 @comment
730 @comment gen atan
731 @comment datan
732 @comment
733 @comment gen atan2
734 @comment datan2
735 @comment
736 @comment gen besj0
737 @comment dbesj0
738 @comment
739 @comment gen besj1
740 @comment dbesj1
741 @comment
742 @comment gen besjn
743 @comment dbesjn
744 @comment
745 @comment gen besy0
746 @comment dbesy0
747 @comment
748 @comment gen besy1
749 @comment dbesy1
750 @comment
751 @comment gen besyn
752 @comment dbesyn
753 @comment
754 @comment gen bit_size
755 @comment
756 @comment gen btest
757 @comment
758 @comment gen ceiling
759 @comment
760 @comment gen char
761 @comment
762 @comment gen cmplx
763 @comment
764 @comment gen command_argument_count
765 @comment
766 @comment gen conjg
767 @comment dconjg
768 @comment
769 @comment gen cos
770 @comment dcos
771 @comment ccos
772 @comment zcos,cdcos
773 @comment
774 @comment gen cosh
775 @comment dcosh
776 @comment
777 @comment gen count
778 @comment
779 @comment sub cpu_time
780 @comment
781 @comment gen cshift
782 @comment
783 @comment sub date_and_time
784 @comment
785 @comment gen dble
786 @comment dfloat
787 @comment
788 @comment gen dcmplx
789 @comment
790 @comment gen digits
791 @comment
792 @comment gen dim
793 @comment idim
794 @comment ddim
795 @comment
796 @comment gen dot_product
797 @comment
798 @comment gen dprod
799 @comment
800 @comment gen dreal
801 @comment
802 @comment sub dtime
803 @comment
804 @comment gen eoshift
805 @comment
806 @comment gen epsilon
807 @comment
808 @comment gen erf
809 @comment derf
810 @comment
811 @comment gen erfc
812 @comment derfc
813 @comment
814 @comment gen etime
815 @comment sub etime
816 @comment
817 @comment sub exit
818 @comment
819 @comment gen exp
820 @comment dexp
821 @comment cexp
822 @comment zexp,cdexp
823 @comment
824 @comment gen exponent
825 @comment
826 @comment gen floor
827 @comment
828 @comment sub flush
829 @comment
830 @comment gen fnum
831 @comment
832 @comment gen fraction
833 @comment
834 @comment gen fstat
835 @comment sub fstat
836 @comment
837 @comment sub getarg
838 @comment
839 @comment gen getcwd
840 @comment sub getcwd
841 @comment
842 @comment sub getenv
843 @comment
844 @comment gen getgid
845 @comment
846 @comment gen getpid
847 @comment
848 @comment gen getuid
849 @comment
850 @comment sub get_command
851 @comment
852 @comment sub get_command_argument
853 @comment
854 @comment sub get_environment_variable
855 @comment
856 @comment gen huge
857 @comment
858 @comment gen iachar
859 @comment
860 @comment gen iand
861 @comment
862 @comment gen iargc
863 @comment
864 @comment gen ibclr
865 @comment
866 @comment gen ibits
867 @comment
868 @comment gen ibset
869 @comment
870 @comment gen ichar
871 @comment
872 @comment gen ieor
873 @comment
874 @comment gen index
875 @comment
876 @comment gen int
877 @comment ifix
878 @comment idint
879 @comment
880 @comment gen ior
881 @comment
882 @comment gen irand
883 @comment
884 @comment gen ishft
885 @comment
886 @comment gen ishftc
887 @comment
888 @comment gen kind
889 @comment
890 @comment gen lbound
891 @comment
892 @comment gen len
893 @comment
894 @comment gen len_trim
895 @comment
896 @comment gen lge
897 @comment
898 @comment gen lgt
899 @comment
900 @comment gen lle
901 @comment
902 @comment gen llt
903 @comment
904 @comment gen log
905 @comment alog
906 @comment dlog
907 @comment clog
908 @comment zlog, cdlog
909 @comment
910 @comment gen log10
911 @comment alog10
912 @comment dlog10
913 @comment
914 @comment gen logical
915 @comment
916 @comment gen matmul
917 @comment
918 @comment gen max
919 @comment max0
920 @comment amax0
921 @comment amax1
922 @comment max1
923 @comment dmax1
924 @comment
925 @comment gen maxexponent
926 @comment
927 @comment gen maxloc
928 @comment
929 @comment gen maxval
930 @comment
931 @comment gen merge
932 @comment
933 @comment gen min
934 @comment min0
935 @comment amin0
936 @comment amin1
937 @comment min1
938 @comment dmin1
939 @comment
940 @comment gen minexponent
941 @comment
942 @comment gen minloc
943 @comment
944 @comment gen minval
945 @comment
946 @comment gen mod
947 @comment amod
948 @comment dmod
949 @comment
950 @comment gen modulo
951 @comment
952 @comment sub mvbits
953 @comment
954 @comment gen nearest
955 @comment
956 @comment gen nint
957 @comment idnint
958 @comment
959 @comment gen not
960 @comment
961 @comment gen null
962 @comment
963 @comment gen pack
964 @comment
965 @comment gen precision
966 @comment
967 @comment gen present
968 @comment
969 @comment gen product
970 @comment
971 @comment gen radix
972 @comment
973 @comment gen rand
974 @comment ran
975 @comment
976 @comment sub random_number
977 @comment
978 @comment sub random_seed
979 @comment
980 @comment gen range
981 @comment
982 @comment gen real
983 @comment float
984 @comment sngl
985 @comment
986 @comment gen repeat
987 @comment
988 @comment gen reshape
989 @comment
990 @comment gen rrspacing
991 @comment
992 @comment gen scale
993 @comment
994 @comment gen scan
995 @comment
996 @comment gen second
997 @comment sub second
998 @comment
999 @comment gen selected_int_kind
1000 @comment
1001 @comment gen selected_real_kind
1002 @comment
1003 @comment gen set_exponent
1004 @comment
1005 @comment gen shape
1006 @comment
1007 @comment gen sign
1008 @comment isign
1009 @comment dsign
1010 @comment
1011 @comment gen sin
1012 @comment dsin
1013 @comment csin
1014 @comment zsin,cdsin
1015 @comment
1016 @comment gen sinh
1017 @comment dsinh
1018 @comment
1019 @comment gen size
1020 @comment
1021 @comment gen spacing
1022 @comment
1023 @comment gen spread
1024 @comment
1025 @comment gen sqrt
1026 @comment dsqrt
1027 @comment csqrt
1028 @comment zsqrt,cdsqrt
1029 @comment
1030 @comment sub srand
1031 @comment
1032 @comment gen stat
1033 @comment sub stat
1034 @comment
1035 @comment gen sum
1036 @comment
1037 @comment gen system
1038 @comment sub system
1039 @comment
1040 @comment sub system_clock
1041 @comment
1042 @comment gen tan
1043 @comment dtan
1044 @comment
1045 @comment gen tanh
1046 @comment dtanh
1047 @comment
1048 @comment gen tiny
1049 @comment
1050 @comment gen transfer
1051 @comment
1052 @comment gen transpose
1053 @comment
1054 @comment gen trim
1055 @comment
1056 @comment gen ubound
1057 @comment
1058 @comment gen umask
1059 @comment sub umask
1060 @comment
1061 @comment gen unlink
1062 @comment sub unlink
1063 @comment
1064 @comment gen unpack
1065 @comment
1066 @comment gen verify
1067
1068
1069