From a752872e714d4009b61ffa4843ca813faae3ab09 Mon Sep 17 00:00:00 2001 From: gnikit Date: Sat, 23 Apr 2022 15:37:45 +0100 Subject: [PATCH] Merge intrinsics into a single json Fixes #424 --- .prettierrc | 2 +- CHANGELOG.md | 2 + doc/intrinsics/ABORT.json | 4 - doc/intrinsics/ABS.json | 4 - doc/intrinsics/ACCESS.json | 4 - doc/intrinsics/ACHAR.json | 4 - doc/intrinsics/ACOS.json | 4 - doc/intrinsics/ACOSD.json | 4 - doc/intrinsics/ACOSH.json | 4 - doc/intrinsics/ADJUSTL.json | 4 - doc/intrinsics/ADJUSTR.json | 4 - doc/intrinsics/AIMAG.json | 4 - doc/intrinsics/AINT.json | 4 - doc/intrinsics/ALARM.json | 4 - doc/intrinsics/ALL.json | 4 - doc/intrinsics/ALLOCATED.json | 4 - doc/intrinsics/AND.json | 4 - doc/intrinsics/ANINT.json | 4 - doc/intrinsics/ANY.json | 4 - doc/intrinsics/ASIN.json | 4 - doc/intrinsics/ASIND.json | 4 - doc/intrinsics/ASINH.json | 4 - doc/intrinsics/ASSOCIATED.json | 4 - doc/intrinsics/ATAN.json | 4 - doc/intrinsics/ATAN2.json | 4 - doc/intrinsics/ATAN2D.json | 4 - doc/intrinsics/ATAND.json | 4 - doc/intrinsics/ATANH.json | 4 - doc/intrinsics/ATOMIC_ADD.json | 4 - doc/intrinsics/ATOMIC_AND.json | 4 - doc/intrinsics/ATOMIC_CAS.json | 4 - doc/intrinsics/ATOMIC_DEFINE.json | 4 - doc/intrinsics/ATOMIC_FETCH_ADD.json | 4 - doc/intrinsics/ATOMIC_FETCH_AND.json | 4 - doc/intrinsics/ATOMIC_FETCH_OR.json | 4 - doc/intrinsics/ATOMIC_FETCH_XOR.json | 4 - doc/intrinsics/ATOMIC_OR.json | 4 - doc/intrinsics/ATOMIC_REF.json | 4 - doc/intrinsics/ATOMIC_XOR.json | 4 - doc/intrinsics/BACKTRACE.json | 4 - doc/intrinsics/BESSEL_J0.json | 4 - doc/intrinsics/BESSEL_J1.json | 4 - doc/intrinsics/BESSEL_JN.json | 4 - doc/intrinsics/BESSEL_Y0.json | 4 - doc/intrinsics/BESSEL_Y1.json | 4 - doc/intrinsics/BESSEL_YN.json | 4 - doc/intrinsics/BGE.json | 4 - doc/intrinsics/BGT.json | 4 - doc/intrinsics/BIT_SIZE.json | 4 - doc/intrinsics/BLE.json | 4 - doc/intrinsics/BLT.json | 4 - doc/intrinsics/BTEST.json | 4 - doc/intrinsics/CEILING.json | 4 - doc/intrinsics/CHAR.json | 4 - doc/intrinsics/CHDIR.json | 4 - doc/intrinsics/CHMOD.json | 4 - doc/intrinsics/CMPLX.json | 4 - doc/intrinsics/COMMAND_ARGUMENT_COUNT.json | 4 - doc/intrinsics/COMPILER_OPTIONS.json | 4 - doc/intrinsics/COMPILER_VERSION.json | 4 - doc/intrinsics/COMPLEX.json | 4 - doc/intrinsics/CONJG.json | 4 - doc/intrinsics/COS.json | 4 - doc/intrinsics/COSD.json | 4 - doc/intrinsics/COSH.json | 4 - doc/intrinsics/COTAN.json | 4 - doc/intrinsics/COTAND.json | 4 - doc/intrinsics/COUNT.json | 4 - doc/intrinsics/CO_BROADCAST.json | 4 - doc/intrinsics/CO_MAX.json | 4 - doc/intrinsics/CO_MIN.json | 4 - doc/intrinsics/CO_REDUCE.json | 4 - doc/intrinsics/CO_SUM.json | 4 - doc/intrinsics/CPU_TIME.json | 4 - doc/intrinsics/CSHIFT.json | 4 - doc/intrinsics/CTIME.json | 4 - doc/intrinsics/C_ASSOCIATED.json | 4 - doc/intrinsics/C_FUNLOC.json | 4 - doc/intrinsics/C_F_POINTER.json | 4 - doc/intrinsics/C_F_PROCPOINTER.json | 4 - doc/intrinsics/C_LOC.json | 4 - doc/intrinsics/C_SIZEOF.json | 4 - doc/intrinsics/DATE_AND_TIME.json | 4 - doc/intrinsics/DBLE.json | 4 - doc/intrinsics/DCMPLX.json | 4 - doc/intrinsics/DIGITS.json | 4 - doc/intrinsics/DIM.json | 4 - doc/intrinsics/DOT_PRODUCT.json | 4 - doc/intrinsics/DPROD.json | 4 - doc/intrinsics/DREAL.json | 4 - doc/intrinsics/DSHIFTL.json | 4 - doc/intrinsics/DSHIFTR.json | 4 - doc/intrinsics/DTIME.json | 4 - doc/intrinsics/EOSHIFT.json | 4 - doc/intrinsics/EPSILON.json | 4 - doc/intrinsics/ERF.json | 4 - doc/intrinsics/ERFC.json | 4 - doc/intrinsics/ERFC_SCALED.json | 4 - doc/intrinsics/ETIME.json | 4 - doc/intrinsics/EVENT_QUERY.json | 4 - doc/intrinsics/EXECUTE_COMMAND_LINE.json | 4 - doc/intrinsics/EXIT.json | 4 - doc/intrinsics/EXP.json | 4 - doc/intrinsics/EXPONENT.json | 4 - doc/intrinsics/EXTENDS_TYPE_OF.json | 4 - doc/intrinsics/FDATE.json | 4 - doc/intrinsics/FGET.json | 4 - doc/intrinsics/FGETC.json | 4 - doc/intrinsics/FINDLOC.json | 4 - doc/intrinsics/FLOOR.json | 4 - doc/intrinsics/FLUSH.json | 4 - doc/intrinsics/FNUM.json | 4 - doc/intrinsics/FPUT.json | 4 - doc/intrinsics/FPUTC.json | 4 - doc/intrinsics/FRACTION.json | 4 - doc/intrinsics/FREE.json | 4 - doc/intrinsics/FSEEK.json | 4 - doc/intrinsics/FSTAT.json | 4 - doc/intrinsics/FTELL.json | 4 - doc/intrinsics/GAMMA.json | 4 - doc/intrinsics/GERROR.json | 4 - doc/intrinsics/GETARG.json | 4 - doc/intrinsics/GETCWD.json | 4 - doc/intrinsics/GETENV.json | 4 - doc/intrinsics/GETGID.json | 4 - doc/intrinsics/GETLOG.json | 4 - doc/intrinsics/GETPID.json | 4 - doc/intrinsics/GETUID.json | 4 - doc/intrinsics/GET_COMMAND.json | 4 - doc/intrinsics/GET_COMMAND_ARGUMENT.json | 4 - doc/intrinsics/GET_ENVIRONMENT_VARIABLE.json | 4 - doc/intrinsics/GMTIME.json | 4 - doc/intrinsics/HOSTNM.json | 4 - doc/intrinsics/HUGE.json | 4 - doc/intrinsics/HYPOT.json | 4 - doc/intrinsics/IACHAR.json | 4 - doc/intrinsics/IALL.json | 4 - doc/intrinsics/IAND.json | 4 - doc/intrinsics/IANY.json | 4 - doc/intrinsics/IARGC.json | 4 - doc/intrinsics/IBCLR.json | 4 - doc/intrinsics/IBITS.json | 4 - doc/intrinsics/IBSET.json | 4 - doc/intrinsics/ICHAR.json | 4 - doc/intrinsics/IDATE.json | 4 - doc/intrinsics/IEOR.json | 4 - doc/intrinsics/IERRNO.json | 4 - doc/intrinsics/IMAGE_INDEX.json | 4 - doc/intrinsics/INDEX.json | 4 - doc/intrinsics/INT.json | 4 - doc/intrinsics/INT2.json | 4 - doc/intrinsics/INT8.json | 4 - doc/intrinsics/IOR.json | 4 - doc/intrinsics/IPARITY.json | 4 - doc/intrinsics/IRAND.json | 4 - doc/intrinsics/ISATTY.json | 4 - doc/intrinsics/ISHFT.json | 4 - doc/intrinsics/ISHFTC.json | 4 - doc/intrinsics/ISNAN.json | 4 - doc/intrinsics/IS_CONTIGUOUS.json | 4 - doc/intrinsics/IS_IOSTAT_END.json | 4 - doc/intrinsics/IS_IOSTAT_EOR.json | 4 - doc/intrinsics/ITIME.json | 4 - doc/intrinsics/KILL.json | 4 - doc/intrinsics/KIND.json | 4 - doc/intrinsics/LBOUND.json | 4 - doc/intrinsics/LCOBOUND.json | 4 - doc/intrinsics/LEADZ.json | 4 - doc/intrinsics/LEN.json | 4 - doc/intrinsics/LEN_TRIM.json | 4 - doc/intrinsics/LGE.json | 4 - doc/intrinsics/LGT.json | 4 - doc/intrinsics/LINK.json | 4 - doc/intrinsics/LLE.json | 4 - doc/intrinsics/LLT.json | 4 - doc/intrinsics/LNBLNK.json | 4 - doc/intrinsics/LOC.json | 4 - doc/intrinsics/LOG.json | 4 - doc/intrinsics/LOG10.json | 4 - doc/intrinsics/LOGICAL.json | 4 - doc/intrinsics/LOG_GAMMA.json | 4 - doc/intrinsics/LONG.json | 4 - doc/intrinsics/LSHIFT.json | 4 - doc/intrinsics/LSTAT.json | 4 - doc/intrinsics/LTIME.json | 4 - doc/intrinsics/MALLOC.json | 4 - doc/intrinsics/MASKL.json | 4 - doc/intrinsics/MASKR.json | 4 - doc/intrinsics/MATMUL.json | 4 - doc/intrinsics/MAX.json | 4 - doc/intrinsics/MAXEXPONENT.json | 4 - doc/intrinsics/MAXLOC.json | 4 - doc/intrinsics/MAXVAL.json | 4 - doc/intrinsics/MCLOCK.json | 4 - doc/intrinsics/MCLOCK8.json | 4 - doc/intrinsics/MERGE.json | 4 - doc/intrinsics/MERGE_BITS.json | 4 - doc/intrinsics/MIN.json | 4 - doc/intrinsics/MINEXPONENT.json | 4 - doc/intrinsics/MINLOC.json | 4 - doc/intrinsics/MINVAL.json | 4 - doc/intrinsics/MOD.json | 4 - doc/intrinsics/MODULO.json | 4 - doc/intrinsics/MOVE_ALLOC.json | 4 - doc/intrinsics/MVBITS.json | 4 - doc/intrinsics/NEAREST.json | 4 - doc/intrinsics/NEW_LINE.json | 4 - doc/intrinsics/NINT.json | 4 - doc/intrinsics/NORM2.json | 4 - doc/intrinsics/NOT.json | 4 - doc/intrinsics/NULL.json | 4 - doc/intrinsics/NUM_IMAGES.json | 4 - doc/intrinsics/OR.json | 4 - doc/intrinsics/PACK.json | 4 - doc/intrinsics/PARITY.json | 4 - doc/intrinsics/PERROR.json | 4 - doc/intrinsics/POPCNT.json | 4 - doc/intrinsics/POPPAR.json | 4 - doc/intrinsics/PRECISION.json | 4 - doc/intrinsics/PRESENT.json | 4 - doc/intrinsics/PRODUCT.json | 4 - doc/intrinsics/RADIX.json | 4 - doc/intrinsics/RAN.json | 4 - doc/intrinsics/RAND.json | 4 - doc/intrinsics/RANDOM_INIT.json | 4 - doc/intrinsics/RANDOM_NUMBER.json | 4 - doc/intrinsics/RANDOM_SEED.json | 4 - doc/intrinsics/RANGE.json | 4 - doc/intrinsics/RANK.json | 4 - doc/intrinsics/REAL.json | 4 - doc/intrinsics/RENAME.json | 4 - doc/intrinsics/REPEAT.json | 4 - doc/intrinsics/RESHAPE.json | 4 - doc/intrinsics/RRSPACING.json | 4 - doc/intrinsics/RSHIFT.json | 4 - doc/intrinsics/SAME_TYPE_AS.json | 4 - doc/intrinsics/SCALE.json | 4 - doc/intrinsics/SCAN.json | 4 - doc/intrinsics/SECNDS.json | 4 - doc/intrinsics/SECOND.json | 4 - doc/intrinsics/SELECTED_CHAR_KIND.json | 4 - doc/intrinsics/SELECTED_INT_KIND.json | 4 - doc/intrinsics/SELECTED_REAL_KIND.json | 4 - doc/intrinsics/SET_EXPONENT.json | 4 - doc/intrinsics/SHAPE.json | 4 - doc/intrinsics/SHIFTA.json | 4 - doc/intrinsics/SHIFTL.json | 4 - doc/intrinsics/SHIFTR.json | 4 - doc/intrinsics/SIGN.json | 4 - doc/intrinsics/SIGNAL.json | 4 - doc/intrinsics/SIN.json | 4 - doc/intrinsics/SIND.json | 4 - doc/intrinsics/SINH.json | 4 - doc/intrinsics/SIZE.json | 4 - doc/intrinsics/SIZEOF.json | 4 - doc/intrinsics/SLEEP.json | 4 - doc/intrinsics/SPACING.json | 4 - doc/intrinsics/SPREAD.json | 4 - doc/intrinsics/SQRT.json | 4 - doc/intrinsics/SRAND.json | 4 - doc/intrinsics/STAT.json | 4 - doc/intrinsics/STORAGE_SIZE.json | 4 - doc/intrinsics/SUM.json | 4 - doc/intrinsics/SYMLNK.json | 4 - doc/intrinsics/SYSTEM.json | 4 - doc/intrinsics/SYSTEM_CLOCK.json | 4 - doc/intrinsics/TAN.json | 4 - doc/intrinsics/TAND.json | 4 - doc/intrinsics/TANH.json | 4 - doc/intrinsics/THIS_IMAGE.json | 4 - doc/intrinsics/TIME.json | 4 - doc/intrinsics/TIME8.json | 4 - doc/intrinsics/TINY.json | 4 - doc/intrinsics/TRAILZ.json | 4 - doc/intrinsics/TRANSFER.json | 4 - doc/intrinsics/TRANSPOSE.json | 4 - doc/intrinsics/TRIM.json | 4 - doc/intrinsics/TTYNAM.json | 4 - doc/intrinsics/UBOUND.json | 4 - doc/intrinsics/UCOBOUND.json | 4 - doc/intrinsics/UMASK.json | 4 - doc/intrinsics/UNLINK.json | 4 - doc/intrinsics/UNPACK.json | 4 - doc/intrinsics/VERIFY.json | 4 - doc/intrinsics/XOR.json | 4 - doc/lang_server_type_autocompletion.gif | Bin 884543 -> 0 bytes doc/symbol_nav.png | Bin 83242 -> 0 bytes src/features/completion-provider.ts | 6 +- src/features/hover-provider.ts | 17 +- src/features/intrinsics.json | 851 +++++++++++++++++++ src/lib/fortran-intrinsics.ts | 287 ------- src/lib/helper.ts | 22 - tsconfig.json | 2 +- 293 files changed, 871 insertions(+), 1450 deletions(-) delete mode 100644 doc/intrinsics/ABORT.json delete mode 100644 doc/intrinsics/ABS.json delete mode 100644 doc/intrinsics/ACCESS.json delete mode 100644 doc/intrinsics/ACHAR.json delete mode 100644 doc/intrinsics/ACOS.json delete mode 100644 doc/intrinsics/ACOSD.json delete mode 100644 doc/intrinsics/ACOSH.json delete mode 100644 doc/intrinsics/ADJUSTL.json delete mode 100644 doc/intrinsics/ADJUSTR.json delete mode 100644 doc/intrinsics/AIMAG.json delete mode 100644 doc/intrinsics/AINT.json delete mode 100644 doc/intrinsics/ALARM.json delete mode 100644 doc/intrinsics/ALL.json delete mode 100644 doc/intrinsics/ALLOCATED.json delete mode 100644 doc/intrinsics/AND.json delete mode 100644 doc/intrinsics/ANINT.json delete mode 100644 doc/intrinsics/ANY.json delete mode 100644 doc/intrinsics/ASIN.json delete mode 100644 doc/intrinsics/ASIND.json delete mode 100644 doc/intrinsics/ASINH.json delete mode 100644 doc/intrinsics/ASSOCIATED.json delete mode 100644 doc/intrinsics/ATAN.json delete mode 100644 doc/intrinsics/ATAN2.json delete mode 100644 doc/intrinsics/ATAN2D.json delete mode 100644 doc/intrinsics/ATAND.json delete mode 100644 doc/intrinsics/ATANH.json delete mode 100644 doc/intrinsics/ATOMIC_ADD.json delete mode 100644 doc/intrinsics/ATOMIC_AND.json delete mode 100644 doc/intrinsics/ATOMIC_CAS.json delete mode 100644 doc/intrinsics/ATOMIC_DEFINE.json delete mode 100644 doc/intrinsics/ATOMIC_FETCH_ADD.json delete mode 100644 doc/intrinsics/ATOMIC_FETCH_AND.json delete mode 100644 doc/intrinsics/ATOMIC_FETCH_OR.json delete mode 100644 doc/intrinsics/ATOMIC_FETCH_XOR.json delete mode 100644 doc/intrinsics/ATOMIC_OR.json delete mode 100644 doc/intrinsics/ATOMIC_REF.json delete mode 100644 doc/intrinsics/ATOMIC_XOR.json delete mode 100644 doc/intrinsics/BACKTRACE.json delete mode 100644 doc/intrinsics/BESSEL_J0.json delete mode 100644 doc/intrinsics/BESSEL_J1.json delete mode 100644 doc/intrinsics/BESSEL_JN.json delete mode 100644 doc/intrinsics/BESSEL_Y0.json delete mode 100644 doc/intrinsics/BESSEL_Y1.json delete mode 100644 doc/intrinsics/BESSEL_YN.json delete mode 100644 doc/intrinsics/BGE.json delete mode 100644 doc/intrinsics/BGT.json delete mode 100644 doc/intrinsics/BIT_SIZE.json delete mode 100644 doc/intrinsics/BLE.json delete mode 100644 doc/intrinsics/BLT.json delete mode 100644 doc/intrinsics/BTEST.json delete mode 100644 doc/intrinsics/CEILING.json delete mode 100644 doc/intrinsics/CHAR.json delete mode 100644 doc/intrinsics/CHDIR.json delete mode 100644 doc/intrinsics/CHMOD.json delete mode 100644 doc/intrinsics/CMPLX.json delete mode 100644 doc/intrinsics/COMMAND_ARGUMENT_COUNT.json delete mode 100644 doc/intrinsics/COMPILER_OPTIONS.json delete mode 100644 doc/intrinsics/COMPILER_VERSION.json delete mode 100644 doc/intrinsics/COMPLEX.json delete mode 100644 doc/intrinsics/CONJG.json delete mode 100644 doc/intrinsics/COS.json delete mode 100644 doc/intrinsics/COSD.json delete mode 100644 doc/intrinsics/COSH.json delete mode 100644 doc/intrinsics/COTAN.json delete mode 100644 doc/intrinsics/COTAND.json delete mode 100644 doc/intrinsics/COUNT.json delete mode 100644 doc/intrinsics/CO_BROADCAST.json delete mode 100644 doc/intrinsics/CO_MAX.json delete mode 100644 doc/intrinsics/CO_MIN.json delete mode 100644 doc/intrinsics/CO_REDUCE.json delete mode 100644 doc/intrinsics/CO_SUM.json delete mode 100644 doc/intrinsics/CPU_TIME.json delete mode 100644 doc/intrinsics/CSHIFT.json delete mode 100644 doc/intrinsics/CTIME.json delete mode 100644 doc/intrinsics/C_ASSOCIATED.json delete mode 100644 doc/intrinsics/C_FUNLOC.json delete mode 100644 doc/intrinsics/C_F_POINTER.json delete mode 100644 doc/intrinsics/C_F_PROCPOINTER.json delete mode 100644 doc/intrinsics/C_LOC.json delete mode 100644 doc/intrinsics/C_SIZEOF.json delete mode 100644 doc/intrinsics/DATE_AND_TIME.json delete mode 100644 doc/intrinsics/DBLE.json delete mode 100644 doc/intrinsics/DCMPLX.json delete mode 100644 doc/intrinsics/DIGITS.json delete mode 100644 doc/intrinsics/DIM.json delete mode 100644 doc/intrinsics/DOT_PRODUCT.json delete mode 100644 doc/intrinsics/DPROD.json delete mode 100644 doc/intrinsics/DREAL.json delete mode 100644 doc/intrinsics/DSHIFTL.json delete mode 100644 doc/intrinsics/DSHIFTR.json delete mode 100644 doc/intrinsics/DTIME.json delete mode 100644 doc/intrinsics/EOSHIFT.json delete mode 100644 doc/intrinsics/EPSILON.json delete mode 100644 doc/intrinsics/ERF.json delete mode 100644 doc/intrinsics/ERFC.json delete mode 100644 doc/intrinsics/ERFC_SCALED.json delete mode 100644 doc/intrinsics/ETIME.json delete mode 100644 doc/intrinsics/EVENT_QUERY.json delete mode 100644 doc/intrinsics/EXECUTE_COMMAND_LINE.json delete mode 100644 doc/intrinsics/EXIT.json delete mode 100644 doc/intrinsics/EXP.json delete mode 100644 doc/intrinsics/EXPONENT.json delete mode 100644 doc/intrinsics/EXTENDS_TYPE_OF.json delete mode 100644 doc/intrinsics/FDATE.json delete mode 100644 doc/intrinsics/FGET.json delete mode 100644 doc/intrinsics/FGETC.json delete mode 100644 doc/intrinsics/FINDLOC.json delete mode 100644 doc/intrinsics/FLOOR.json delete mode 100644 doc/intrinsics/FLUSH.json delete mode 100644 doc/intrinsics/FNUM.json delete mode 100644 doc/intrinsics/FPUT.json delete mode 100644 doc/intrinsics/FPUTC.json delete mode 100644 doc/intrinsics/FRACTION.json delete mode 100644 doc/intrinsics/FREE.json delete mode 100644 doc/intrinsics/FSEEK.json delete mode 100644 doc/intrinsics/FSTAT.json delete mode 100644 doc/intrinsics/FTELL.json delete mode 100644 doc/intrinsics/GAMMA.json delete mode 100644 doc/intrinsics/GERROR.json delete mode 100644 doc/intrinsics/GETARG.json delete mode 100644 doc/intrinsics/GETCWD.json delete mode 100644 doc/intrinsics/GETENV.json delete mode 100644 doc/intrinsics/GETGID.json delete mode 100644 doc/intrinsics/GETLOG.json delete mode 100644 doc/intrinsics/GETPID.json delete mode 100644 doc/intrinsics/GETUID.json delete mode 100644 doc/intrinsics/GET_COMMAND.json delete mode 100644 doc/intrinsics/GET_COMMAND_ARGUMENT.json delete mode 100644 doc/intrinsics/GET_ENVIRONMENT_VARIABLE.json delete mode 100644 doc/intrinsics/GMTIME.json delete mode 100644 doc/intrinsics/HOSTNM.json delete mode 100644 doc/intrinsics/HUGE.json delete mode 100644 doc/intrinsics/HYPOT.json delete mode 100644 doc/intrinsics/IACHAR.json delete mode 100644 doc/intrinsics/IALL.json delete mode 100644 doc/intrinsics/IAND.json delete mode 100644 doc/intrinsics/IANY.json delete mode 100644 doc/intrinsics/IARGC.json delete mode 100644 doc/intrinsics/IBCLR.json delete mode 100644 doc/intrinsics/IBITS.json delete mode 100644 doc/intrinsics/IBSET.json delete mode 100644 doc/intrinsics/ICHAR.json delete mode 100644 doc/intrinsics/IDATE.json delete mode 100644 doc/intrinsics/IEOR.json delete mode 100644 doc/intrinsics/IERRNO.json delete mode 100644 doc/intrinsics/IMAGE_INDEX.json delete mode 100644 doc/intrinsics/INDEX.json delete mode 100644 doc/intrinsics/INT.json delete mode 100644 doc/intrinsics/INT2.json delete mode 100644 doc/intrinsics/INT8.json delete mode 100644 doc/intrinsics/IOR.json delete mode 100644 doc/intrinsics/IPARITY.json delete mode 100644 doc/intrinsics/IRAND.json delete mode 100644 doc/intrinsics/ISATTY.json delete mode 100644 doc/intrinsics/ISHFT.json delete mode 100644 doc/intrinsics/ISHFTC.json delete mode 100644 doc/intrinsics/ISNAN.json delete mode 100644 doc/intrinsics/IS_CONTIGUOUS.json delete mode 100644 doc/intrinsics/IS_IOSTAT_END.json delete mode 100644 doc/intrinsics/IS_IOSTAT_EOR.json delete mode 100644 doc/intrinsics/ITIME.json delete mode 100644 doc/intrinsics/KILL.json delete mode 100644 doc/intrinsics/KIND.json delete mode 100644 doc/intrinsics/LBOUND.json delete mode 100644 doc/intrinsics/LCOBOUND.json delete mode 100644 doc/intrinsics/LEADZ.json delete mode 100644 doc/intrinsics/LEN.json delete mode 100644 doc/intrinsics/LEN_TRIM.json delete mode 100644 doc/intrinsics/LGE.json delete mode 100644 doc/intrinsics/LGT.json delete mode 100644 doc/intrinsics/LINK.json delete mode 100644 doc/intrinsics/LLE.json delete mode 100644 doc/intrinsics/LLT.json delete mode 100644 doc/intrinsics/LNBLNK.json delete mode 100644 doc/intrinsics/LOC.json delete mode 100644 doc/intrinsics/LOG.json delete mode 100644 doc/intrinsics/LOG10.json delete mode 100644 doc/intrinsics/LOGICAL.json delete mode 100644 doc/intrinsics/LOG_GAMMA.json delete mode 100644 doc/intrinsics/LONG.json delete mode 100644 doc/intrinsics/LSHIFT.json delete mode 100644 doc/intrinsics/LSTAT.json delete mode 100644 doc/intrinsics/LTIME.json delete mode 100644 doc/intrinsics/MALLOC.json delete mode 100644 doc/intrinsics/MASKL.json delete mode 100644 doc/intrinsics/MASKR.json delete mode 100644 doc/intrinsics/MATMUL.json delete mode 100644 doc/intrinsics/MAX.json delete mode 100644 doc/intrinsics/MAXEXPONENT.json delete mode 100644 doc/intrinsics/MAXLOC.json delete mode 100644 doc/intrinsics/MAXVAL.json delete mode 100644 doc/intrinsics/MCLOCK.json delete mode 100644 doc/intrinsics/MCLOCK8.json delete mode 100644 doc/intrinsics/MERGE.json delete mode 100644 doc/intrinsics/MERGE_BITS.json delete mode 100644 doc/intrinsics/MIN.json delete mode 100644 doc/intrinsics/MINEXPONENT.json delete mode 100644 doc/intrinsics/MINLOC.json delete mode 100644 doc/intrinsics/MINVAL.json delete mode 100644 doc/intrinsics/MOD.json delete mode 100644 doc/intrinsics/MODULO.json delete mode 100644 doc/intrinsics/MOVE_ALLOC.json delete mode 100644 doc/intrinsics/MVBITS.json delete mode 100644 doc/intrinsics/NEAREST.json delete mode 100644 doc/intrinsics/NEW_LINE.json delete mode 100644 doc/intrinsics/NINT.json delete mode 100644 doc/intrinsics/NORM2.json delete mode 100644 doc/intrinsics/NOT.json delete mode 100644 doc/intrinsics/NULL.json delete mode 100644 doc/intrinsics/NUM_IMAGES.json delete mode 100644 doc/intrinsics/OR.json delete mode 100644 doc/intrinsics/PACK.json delete mode 100644 doc/intrinsics/PARITY.json delete mode 100644 doc/intrinsics/PERROR.json delete mode 100644 doc/intrinsics/POPCNT.json delete mode 100644 doc/intrinsics/POPPAR.json delete mode 100644 doc/intrinsics/PRECISION.json delete mode 100644 doc/intrinsics/PRESENT.json delete mode 100644 doc/intrinsics/PRODUCT.json delete mode 100644 doc/intrinsics/RADIX.json delete mode 100644 doc/intrinsics/RAN.json delete mode 100644 doc/intrinsics/RAND.json delete mode 100644 doc/intrinsics/RANDOM_INIT.json delete mode 100644 doc/intrinsics/RANDOM_NUMBER.json delete mode 100644 doc/intrinsics/RANDOM_SEED.json delete mode 100644 doc/intrinsics/RANGE.json delete mode 100644 doc/intrinsics/RANK.json delete mode 100644 doc/intrinsics/REAL.json delete mode 100644 doc/intrinsics/RENAME.json delete mode 100644 doc/intrinsics/REPEAT.json delete mode 100644 doc/intrinsics/RESHAPE.json delete mode 100644 doc/intrinsics/RRSPACING.json delete mode 100644 doc/intrinsics/RSHIFT.json delete mode 100644 doc/intrinsics/SAME_TYPE_AS.json delete mode 100644 doc/intrinsics/SCALE.json delete mode 100644 doc/intrinsics/SCAN.json delete mode 100644 doc/intrinsics/SECNDS.json delete mode 100644 doc/intrinsics/SECOND.json delete mode 100644 doc/intrinsics/SELECTED_CHAR_KIND.json delete mode 100644 doc/intrinsics/SELECTED_INT_KIND.json delete mode 100644 doc/intrinsics/SELECTED_REAL_KIND.json delete mode 100644 doc/intrinsics/SET_EXPONENT.json delete mode 100644 doc/intrinsics/SHAPE.json delete mode 100644 doc/intrinsics/SHIFTA.json delete mode 100644 doc/intrinsics/SHIFTL.json delete mode 100644 doc/intrinsics/SHIFTR.json delete mode 100644 doc/intrinsics/SIGN.json delete mode 100644 doc/intrinsics/SIGNAL.json delete mode 100644 doc/intrinsics/SIN.json delete mode 100644 doc/intrinsics/SIND.json delete mode 100644 doc/intrinsics/SINH.json delete mode 100644 doc/intrinsics/SIZE.json delete mode 100644 doc/intrinsics/SIZEOF.json delete mode 100644 doc/intrinsics/SLEEP.json delete mode 100644 doc/intrinsics/SPACING.json delete mode 100644 doc/intrinsics/SPREAD.json delete mode 100644 doc/intrinsics/SQRT.json delete mode 100644 doc/intrinsics/SRAND.json delete mode 100644 doc/intrinsics/STAT.json delete mode 100644 doc/intrinsics/STORAGE_SIZE.json delete mode 100644 doc/intrinsics/SUM.json delete mode 100644 doc/intrinsics/SYMLNK.json delete mode 100644 doc/intrinsics/SYSTEM.json delete mode 100644 doc/intrinsics/SYSTEM_CLOCK.json delete mode 100644 doc/intrinsics/TAN.json delete mode 100644 doc/intrinsics/TAND.json delete mode 100644 doc/intrinsics/TANH.json delete mode 100644 doc/intrinsics/THIS_IMAGE.json delete mode 100644 doc/intrinsics/TIME.json delete mode 100644 doc/intrinsics/TIME8.json delete mode 100644 doc/intrinsics/TINY.json delete mode 100644 doc/intrinsics/TRAILZ.json delete mode 100644 doc/intrinsics/TRANSFER.json delete mode 100644 doc/intrinsics/TRANSPOSE.json delete mode 100644 doc/intrinsics/TRIM.json delete mode 100644 doc/intrinsics/TTYNAM.json delete mode 100644 doc/intrinsics/UBOUND.json delete mode 100644 doc/intrinsics/UCOBOUND.json delete mode 100644 doc/intrinsics/UMASK.json delete mode 100644 doc/intrinsics/UNLINK.json delete mode 100644 doc/intrinsics/UNPACK.json delete mode 100644 doc/intrinsics/VERIFY.json delete mode 100644 doc/intrinsics/XOR.json delete mode 100644 doc/lang_server_type_autocompletion.gif delete mode 100644 doc/symbol_nav.png create mode 100644 src/features/intrinsics.json delete mode 100644 src/lib/fortran-intrinsics.ts diff --git a/.prettierrc b/.prettierrc index e10f5e20..430dd789 100644 --- a/.prettierrc +++ b/.prettierrc @@ -8,7 +8,7 @@ "quoteProps": "consistent", "trailingComma": "es5", "bracketSpacing": true, - "jsxBracketSameLine": false, + "bracketSameLine": false, "arrowParens": "avoid", "endOfLine": "lf", "embeddedLanguageFormatting": "auto" diff --git a/CHANGELOG.md b/CHANGELOG.md index df7e173b..2578a5e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed +- Merged all Fortran intrinsics into a single `json` file + ([#424](https://github.com/fortran-lang/vscode-fortran-support/issues/424)) - Updates `README` text and animations, changes `SECURITY` and updates `package.json` - Changes the interface of the extension to accommodate for the newest features ([#292](https://github.com/krvajal/vscode-fortran-support/issues/292)) diff --git a/doc/intrinsics/ABORT.json b/doc/intrinsics/ABORT.json deleted file mode 100644 index b1f23751..00000000 --- a/doc/intrinsics/ABORT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ABORT", - "docstr": "`ABORT` — Abort the program\n\n### Description\n`ABORT` causes immediate termination of the program. On operating\nsystems that support a core dump, `ABORT` will produce a core dump. \nIt will also print a backtrace, unless `-fno-backtrace` is given.\n\n\n\n### Syntax\n`CALL ABORT`\n\n\n### Return value\nDoes not return.\n\n\n\n### Example\n```\n\n\nprogram test_abort\n\n  integer :: i = 1, j = 2\n\n  if (i /= j) call abort\n\nend program test_abort\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nEXIT, KILL, BACKTRACE\n\n " -} diff --git a/doc/intrinsics/ABS.json b/doc/intrinsics/ABS.json deleted file mode 100644 index 2ed98b3b..00000000 --- a/doc/intrinsics/ABS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ABS", - "docstr": "`ABS` — Absolute value\n\n### Description\n`ABS(A)` computes the absolute value of `A`.\n\n\n\n### Syntax\n`RESULT = ABS(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and\nkind as the argument except the return value is `REAL` for a\n`COMPLEX` argument.\n\n\n\n### Example\n```\n\n\nprogram test_abs\n\n  integer :: i = -1\n\n  real :: x = -1.e0\n\n  complex :: z = (-1.e0,0.e0)\n\n  i = abs(i)\n\n  x = abs(x)\n\n  x = abs(z)\n\nend program test_abs\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ABS(A)` | `REAL(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `CABS(A)` | `COMPLEX(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `DABS(A)` | `REAL(8) A` | `REAL(8)` | Fortran 77 and later\n\n | `IABS(A)` | `INTEGER(4) A` | `INTEGER(4)` | Fortran 77 and later\n\n | `ZABS(A)` | `COMPLEX(8) A` | `COMPLEX(8)` | GNU extension\n\n | `CDABS(A)` | `COMPLEX(8) A` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ACCESS.json b/doc/intrinsics/ACCESS.json deleted file mode 100644 index d7854e1a..00000000 --- a/doc/intrinsics/ACCESS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ACCESS", - "docstr": "`ACCESS` — Checks file access modes\n\n### Description\n`ACCESS(NAME, MODE)` checks whether the file `NAME`\nexists, is readable, writable or executable. Except for the\nexecutable check, `ACCESS` can be replaced by\nFortran 95's `INQUIRE`.\n\n\n\n### Syntax\n`RESULT = ACCESS(NAME, MODE)`\n\n\n### Arguments\n\n \n of default kind with the\nfile name. Tailing blank are ignored unless the character `achar(0)`is present, then all characters up to and excluding `achar(0)` are\nused as file name. \n\n | `MODE` | Scalar `CHARACTER` of default kind with the\nfile access mode, may be any concatenation of `\"r\"` (readable),\n`\"w\"` (writable) and `\"x\"` (executable), or `\" \"` to check\nfor existence.\n\n\n\n\n\n\n### Return value\nReturns a scalar `INTEGER`, which is `0` if the file is\naccessible in the given mode; otherwise or if an invalid argument\nhas been given for `MODE` the value `1` is returned.\n\n\n\n### Example\n```\n\n\nprogram access_test\n\n  implicit none\n\n  character(len=*), parameter :: file = 'test.dat'\n\n  character(len=*), parameter :: file2 = 'test.dat '//achar(0)\n\n  if(access(file,' ') == 0) print *, trim(file),' is exists'\n\n  if(access(file,'r') == 0) print *, trim(file),' is readable'\n\n  if(access(file,'w') == 0) print *, trim(file),' is writable'\n\n  if(access(file,'x') == 0) print *, trim(file),' is executable'\n\n  if(access(file2,'rwx') == 0) &\n\n    print *, trim(file2),' is readable, writable and executable'\n\nend program access_test\n\n```\n\n\n\n### Specific names\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\n\n" -} diff --git a/doc/intrinsics/ACHAR.json b/doc/intrinsics/ACHAR.json deleted file mode 100644 index 977cab07..00000000 --- a/doc/intrinsics/ACHAR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ACHAR", - "docstr": "`ACHAR` — Character in ASCII collating sequence\n\n### Description\n`ACHAR(I)` returns the character located at position `I`in the ASCII collating sequence.\n\n\n\n### Syntax\n`RESULT = ACHAR(I [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER` with a length of one. \nIf the `KIND` argument is present, the return value is of the\nspecified kind and of the default kind otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_achar\n\n  character c\n\n  c = achar(32)\n\nend program test_achar\n\n```\n\n\n\n### Notes\nSee ICHAR for a discussion of converting between numerical values\nand formatted string representations.\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCHAR, IACHAR, ICHAR\n\n " -} diff --git a/doc/intrinsics/ACOS.json b/doc/intrinsics/ACOS.json deleted file mode 100644 index 8413c334..00000000 --- a/doc/intrinsics/ACOS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ACOS", - "docstr": "`ACOS` — Arccosine function\n\n### Description\n`ACOS(X)` computes the arccosine of `X` (inverse of `COS(X)`).\n\n\n\n### Syntax\n`RESULT = ACOS(X)`\n\n\n### Arguments\n\n \n with a magnitude that is\nless than or equal to one - or the type shall be `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe real part of the result is in radians and lies in the range\n0 \\leq \\Re \\acos(x) \\leq \\pi.\n\n\n\n### Example\n```\n\n\nprogram test_acos\n\n  real(8) :: x = 0.866_8\n\n  x = acos(x)\n\nend program test_acos\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ACOS(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DACOS(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: COS\n\n " -} diff --git a/doc/intrinsics/ACOSD.json b/doc/intrinsics/ACOSD.json deleted file mode 100644 index 00b3a41c..00000000 --- a/doc/intrinsics/ACOSD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ACOSD", - "docstr": "`ACOSD` — Arccosine function, degrees\n\n### Description\nACOSD(X) computes the arccosine of X in degrees (inverse of COSD(X)).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ACOSD(X)\n### Arguments\n- X: The type shall either be REAL with a magnitude that is less than or equal to one - or the type shall be COMPLEX.\n### Return value\nThe return value is of the same type and kind as X. The real part of the result is in degrees and lies in the range 0 \\leq \\Re \\acos(x) \\leq 180.\n" -} diff --git a/doc/intrinsics/ACOSH.json b/doc/intrinsics/ACOSH.json deleted file mode 100644 index 164be3ca..00000000 --- a/doc/intrinsics/ACOSH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ACOSH", - "docstr": "`ACOSH` — Inverse hyperbolic cosine function\n\n### Description\n`ACOSH(X)` computes the inverse hyperbolic cosine of `X`.\n\n\n\n### Syntax\n`RESULT = ACOSH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has the same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians and lies between\n 0 \\leq \\Im \\acosh(x) \\leq \\pi.\n\n\n\n### Example\n```\n\n\nPROGRAM test_acosh\n\n  REAL(8), DIMENSION(3) :: x = (/ 1.0, 2.0, 3.0 /)\n\n  WRITE (*,*) ACOSH(x)\n\nEND PROGRAM\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DACOSH(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: COSH\n" -} diff --git a/doc/intrinsics/ADJUSTL.json b/doc/intrinsics/ADJUSTL.json deleted file mode 100644 index 07c42d99..00000000 --- a/doc/intrinsics/ADJUSTL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ADJUSTL", - "docstr": "`ADJUSTL` — Left adjust a string\n\n### Description\n`ADJUSTL(STRING)` will left adjust a string by removing leading spaces. \nSpaces are inserted at the end of the string as needed.\n\n\n\n### Syntax\n`RESULT = ADJUSTL(STRING)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER` and of the same kind as\n`STRING` where leading spaces are removed and the same number of\nspaces are inserted on the end of `STRING`.\n\n\n\n### Example\n```\n\n\nprogram test_adjustl\n\n  character(len=20) :: str = ' gfortran'\n\n  str = adjustl(str)\n\n  print *, str\n\nend program test_adjustl\n\n```\n\n\n\n### Standard\nFortran 90 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nADJUSTR, TRIM\n" -} diff --git a/doc/intrinsics/ADJUSTR.json b/doc/intrinsics/ADJUSTR.json deleted file mode 100644 index 37cc7710..00000000 --- a/doc/intrinsics/ADJUSTR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ADJUSTR", - "docstr": "`ADJUSTR` — Right adjust a string\n\n### Description\n`ADJUSTR(STRING)` will right adjust a string by removing trailing spaces. \nSpaces are inserted at the start of the string as needed.\n\n\n\n### Syntax\n`RESULT = ADJUSTR(STRING)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER` and of the same kind as\n`STRING` where trailing spaces are removed and the same number of\nspaces are inserted at the start of `STRING`.\n\n\n\n### Example\n```\n\n\nprogram test_adjustr\n\n  character(len=20) :: str = 'gfortran'\n\n  str = adjustr(str)\n\n  print *, str\n\nend program test_adjustr\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nADJUSTL, TRIM\n" -} diff --git a/doc/intrinsics/AIMAG.json b/doc/intrinsics/AIMAG.json deleted file mode 100644 index 0c2691bd..00000000 --- a/doc/intrinsics/AIMAG.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "AIMAG", - "docstr": "`AIMAG` — Imaginary part of complex number\n\n### Description\n`AIMAG(Z)` yields the imaginary part of complex argument `Z`. \nThe `IMAG(Z)` and `IMAGPART(Z)` intrinsic functions are provided\nfor compatibility with *g77*, and their use in new code is\nstrongly discouraged.\n\n\n\n### Syntax\n`RESULT = AIMAG(Z)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` with the\nkind type parameter of the argument.\n\n\n\n### Example\n```\n\n\nprogram test_aimag\n\n  complex(4) z4\n\n  complex(8) z8\n\n  z4 = cmplx(1.e0_4, 0.e0_4)\n\n  z8 = cmplx(0.e0_8, 1.e0_8)\n\n  print *, aimag(z4), dimag(z8)\n\nend program test_aimag\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `AIMAG(Z)` | `COMPLEX Z` | `REAL` | GNU extension\n\n | `DIMAG(Z)` | `COMPLEX(8) Z` | `REAL(8)` | GNU extension\n\n | `IMAG(Z)` | `COMPLEX Z` | `REAL` | GNU extension\n\n | `IMAGPART(Z)` | `COMPLEX Z` | `REAL` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/AINT.json b/doc/intrinsics/AINT.json deleted file mode 100644 index 79b71d74..00000000 --- a/doc/intrinsics/AINT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "AINT", - "docstr": "`AINT` — Truncate to a whole number\n\n### Description\n`AINT(A [, KIND])` truncates its argument to a whole number.\n\n\n\n### Syntax\n`RESULT = AINT(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` with the kind type parameter of the\nargument if the optional `KIND` is absent; otherwise, the kind\ntype parameter will be given by `KIND`. If the magnitude of\n`X` is less than one, `AINT(X)` returns zero. If the\nmagnitude is equal to or greater than one then it returns the largest\nwhole number that does not exceed its magnitude. The sign is the same\nas the sign of `X`.\n\n\n\n### Example\n```\n\n\nprogram test_aint\n\n  real(4) x4\n\n  real(8) x8\n\n  x4 = 1.234E0_4\n\n  x8 = 4.321_8\n\n  print *, aint(x4), dint(x8)\n\n  x8 = aint(x4,8)\n\nend program test_aint\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `AINT(A)` | `REAL(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `DINT(A)` | `REAL(8) A` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ALARM.json b/doc/intrinsics/ALARM.json deleted file mode 100644 index 03e6e2cc..00000000 --- a/doc/intrinsics/ALARM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ALARM", - "docstr": "`ALARM` — Execute a routine after a given delay\n\n### Description\n`ALARM(SECONDS, HANDLER [, STATUS])` causes external subroutine `HANDLER`\nto be executed after a delay of `SECONDS` by using `alarm(2)` to\nset up a signal and `signal(2)` to catch it. If `STATUS` is\nsupplied, it will be returned with the number of seconds remaining until\nany previously scheduled alarm was due to be delivered, or zero if there\nwas no previously scheduled alarm.\n\n\n\n### Syntax\n`CALL ALARM(SECONDS, HANDLER [, STATUS])`\n\n\n### Arguments\n\n \n | `SECONDS` | The type of the argument shall be a scalar\n`INTEGER`. It is `INTENT(IN)`. \n\n | `HANDLER` | Signal handler (`INTEGER FUNCTION` or\n`SUBROUTINE`) or dummy/global `INTEGER` scalar. The scalar\nvalues may be either `SIG_IGN=1` to ignore the alarm generated\nor `SIG_DFL=0` to set the default action. It is `INTENT(IN)`. \n\n | `STATUS` | (Optional) `STATUS` shall be a scalar\nvariable of the default `INTEGER` kind. It is `INTENT(OUT)`.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_alarm\n\n  external handler_print\n\n  integer i\n\n  call alarm (3, handler_print, i)\n\n  print *, i\n\n  call sleep(10)\n\nend program test_alarm\n\n```\n\n \nThis will cause the external routine `handler_print` to be called\nafter 3 seconds. \n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" -} diff --git a/doc/intrinsics/ALL.json b/doc/intrinsics/ALL.json deleted file mode 100644 index 0ecdaf45..00000000 --- a/doc/intrinsics/ALL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ALL", - "docstr": "`ALL` — All values in `MASK` along `DIM` are true\n\n### Description\n`ALL(MASK [, DIM])` determines if all the values are true in `MASK`\nin the array along dimension `DIM`.\n\n\n\n### Syntax\n`RESULT = ALL(MASK [, DIM])`\n\n\n### Arguments\n\n \n and\nit shall not be scalar. \n\n | `DIM` | (Optional) `DIM` shall be a scalar integer\nwith a value that lies between one and the rank of `MASK`.\n\n\n\n\n\n\n### Return value\n`ALL(MASK)` returns a scalar value of type `LOGICAL` where\nthe kind type parameter is the same as the kind type parameter of\n`MASK`. If `DIM` is present, then `ALL(MASK, DIM)` returns\nan array with the rank of `MASK` minus 1. The shape is determined from\nthe shape of `MASK` where the `DIM` dimension is elided.\n\n
\n**(A)** `ALL(MASK)` is true if all elements of `MASK` are true. \nIt also is true if `MASK` has zero size; otherwise, it is false. \n\n**(B)** If the rank of `MASK` is one, then `ALL(MASK,DIM)` is equivalent\nto `ALL(MASK)`. If the rank is greater than one, then `ALL(MASK,DIM)`is determined by applying `ALL` to the array sections. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_all\n\n  logical l\n\n  l = all((/.true., .true., .true./))\n\n  print *, l\n\n  call section\n\n  contains\n\n    subroutine section\n\n      integer a(2,3), b(2,3)\n\n      a = 1\n\n      b = 1\n\n      b(2,2) = 2\n\n      print *, all(a .eq. b, 1)\n\n      print *, all(a .eq. b, 2)\n\n    end subroutine section\n\nend program test_all\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/ALLOCATED.json b/doc/intrinsics/ALLOCATED.json deleted file mode 100644 index 892c76e5..00000000 --- a/doc/intrinsics/ALLOCATED.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ALLOCATED", - "docstr": "`ALLOCATED` — Status of an allocatable entity\n\n### Description\n`ALLOCATED(ARRAY)` and `ALLOCATED(SCALAR)` check the allocation\nstatus of `ARRAY` and `SCALAR`, respectively.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = ALLOCATED(SCALAR)`
\n\n\n\n\n\n### Arguments\n\n \n array. \n\n | `SCALAR` | The argument shall be an `ALLOCATABLE` scalar.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar `LOGICAL` with the default logical\nkind type parameter. If the argument is allocated, then the result is\n`.TRUE.`; otherwise, it returns `.FALSE.`\n\n\n### Example\n```\n\n\nprogram test_allocated\n\n  integer :: i = 4\n\n  real(4), allocatable :: x(:)\n\n  if (.not. allocated(x)) allocate(x(i))\n\nend program test_allocated\n\n```\n\n \n\n### Standard\nFortran 95 and later. Note, the `SCALAR=` keyword and allocatable\nscalar entities are available in Fortran 2003 and later.\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/AND.json b/doc/intrinsics/AND.json deleted file mode 100644 index d07dc646..00000000 --- a/doc/intrinsics/AND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "AND", - "docstr": "`AND` — Bitwise logical AND\n\n### Description\nBitwise logical `AND`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. For integer arguments, programmers should consider\nthe use of the IAND intrinsic defined by the Fortran standard.\n\n\n\n\n### Syntax\n`RESULT = AND(I, J)`\n\n\n### Arguments\n\n \n\ntype or a scalar `LOGICAL` type. \n\n | `J` | The type shall be the same as the type of `I`.\n\n\n\n\n\n\n### Return value\nThe return type is either a scalar `INTEGER` or a scalar\n`LOGICAL`. If the kind type parameters differ, then the\nsmaller kind type is implicitly converted to larger kind, and the\nreturn has the larger kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_and\n\n  LOGICAL :: T = .TRUE., F = .FALSE.\n\n  INTEGER :: a, b\n\n  DATA a / Z'F' /, b / Z'3' /\n\n\n  WRITE (*,*) AND(T, T), AND(T, F), AND(F, T), AND(F, F)\n\n  WRITE (*,*) AND(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFortran 95 elemental function: IAND\n" -} diff --git a/doc/intrinsics/ANINT.json b/doc/intrinsics/ANINT.json deleted file mode 100644 index c12f1efc..00000000 --- a/doc/intrinsics/ANINT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ANINT", - "docstr": "`ANINT` — Nearest whole number\n\n### Description\n`ANINT(A [, KIND])` rounds its argument to the nearest whole number.\n\n\n\n### Syntax\n`RESULT = ANINT(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type real with the kind type parameter of the\nargument if the optional `KIND` is absent; otherwise, the kind\ntype parameter will be given by `KIND`. If `A` is greater than\nzero, `ANINT(A)` returns `AINT(X+0.5)`. If `A` is\nless than or equal to zero then it returns `AINT(X-0.5)`.\n\n\n\n### Example\n```\n\n\nprogram test_anint\n\n  real(4) x4\n\n  real(8) x8\n\n  x4 = 1.234E0_4\n\n  x8 = 4.321_8\n\n  print *, anint(x4), dnint(x8)\n\n  x8 = anint(x4,8)\n\nend program test_anint\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `AINT(A)` | `REAL(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `DNINT(A)` | `REAL(8) A` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ANY.json b/doc/intrinsics/ANY.json deleted file mode 100644 index 136afca6..00000000 --- a/doc/intrinsics/ANY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ANY", - "docstr": "`ANY` — Any value in `MASK` along `DIM` is true\n\n### Description\n`ANY(MASK [, DIM])` determines if any of the values in the logical array\n`MASK` along dimension `DIM` are `.TRUE.`.\n\n\n\n### Syntax\n`RESULT = ANY(MASK [, DIM])`\n\n\n### Arguments\n\n \n and\nit shall not be scalar. \n\n | `DIM` | (Optional) `DIM` shall be a scalar integer\nwith a value that lies between one and the rank of `MASK`.\n\n\n\n\n\n\n### Return value\n`ANY(MASK)` returns a scalar value of type `LOGICAL` where\nthe kind type parameter is the same as the kind type parameter of\n`MASK`. If `DIM` is present, then `ANY(MASK, DIM)` returns\nan array with the rank of `MASK` minus 1. The shape is determined from\nthe shape of `MASK` where the `DIM` dimension is elided.\n\n
\n**(A)** `ANY(MASK)` is true if any element of `MASK` is true;\notherwise, it is false. It also is false if `MASK` has zero size. \n\n**(B)** If the rank of `MASK` is one, then `ANY(MASK,DIM)` is equivalent\nto `ANY(MASK)`. If the rank is greater than one, then `ANY(MASK,DIM)`is determined by applying `ANY` to the array sections. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_any\n\n  logical l\n\n  l = any((/.true., .true., .true./))\n\n  print *, l\n\n  call section\n\n  contains\n\n    subroutine section\n\n      integer a(2,3), b(2,3)\n\n      a = 1\n\n      b = 1\n\n      b(2,2) = 2\n\n      print *, any(a .eq. b, 1)\n\n      print *, any(a .eq. b, 2)\n\n    end subroutine section\n\nend program test_any\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/ASIN.json b/doc/intrinsics/ASIN.json deleted file mode 100644 index c5d7a7b3..00000000 --- a/doc/intrinsics/ASIN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ASIN", - "docstr": "`ASIN` — Arcsine function\n\n### Description\n`ASIN(X)` computes the arcsine of its `X` (inverse of `SIN(X)`).\n\n\n\n### Syntax\n`RESULT = ASIN(X)`\n\n\n### Arguments\n\n \n and a magnitude that is\nless than or equal to one - or be `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe real part of the result is in radians and lies in the range\n-\\pi/2 \\leq \\Re \\asin(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nprogram test_asin\n\n  real(8) :: x = 0.866_8\n\n  x = asin(x)\n\nend program test_asin\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ASIN(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DASIN(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: SIN\n\n " -} diff --git a/doc/intrinsics/ASIND.json b/doc/intrinsics/ASIND.json deleted file mode 100644 index a7f39c9d..00000000 --- a/doc/intrinsics/ASIND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ASIND", - "docstr": "`ASIND` — Arcsine function, degrees\n\n### Description\nASIND(X) computes the arcsine of its X in degrees (inverse of SIND(X)).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ASIND(X)\n### Arguments\n- X: The type shall be either REAL and a magnitude that is less than or equal to one - or be COMPLEX.\n### Return value\nThe return value is of the same type and kind as X. The real part of the result is in degrees and lies in the range -90 \\leq \\Re \\asin(x) \\leq 90.\n" -} diff --git a/doc/intrinsics/ASINH.json b/doc/intrinsics/ASINH.json deleted file mode 100644 index 45700d77..00000000 --- a/doc/intrinsics/ASINH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ASINH", - "docstr": "`ASINH` — Inverse hyperbolic sine function\n\n### Description\n`ASINH(X)` computes the inverse hyperbolic sine of `X`.\n\n\n\n### Syntax\n`RESULT = ASINH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians and lies between\n-\\pi/2 \\leq \\Im \\asinh(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nPROGRAM test_asinh\n\n  REAL(8), DIMENSION(3) :: x = (/ -1.0, 0.0, 1.0 /)\n\n  WRITE (*,*) ASINH(x)\n\nEND PROGRAM\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DASINH(X)` | `REAL(8) X` | `REAL(8)` | GNU extension.\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: SINH\n" -} diff --git a/doc/intrinsics/ASSOCIATED.json b/doc/intrinsics/ASSOCIATED.json deleted file mode 100644 index 83e2aae2..00000000 --- a/doc/intrinsics/ASSOCIATED.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ASSOCIATED", - "docstr": "`ASSOCIATED` — Status of a pointer or pointer/target pair\n\n### Description\n`ASSOCIATED(POINTER [, TARGET])` determines the status of the pointer\n`POINTER` or if `POINTER` is associated with the target `TARGET`.\n\n\n\n### Syntax\n`RESULT = ASSOCIATED(POINTER [, TARGET])`\n\n\n### Arguments\n\n \n attribute\nand it can be of any type. \n\n | `TARGET` | (Optional) `TARGET` shall be a pointer or\na target. It must have the same type, kind type parameter, and\narray rank as `POINTER`.\n\n\nThe association status of neither `POINTER` nor `TARGET` shall be\nundefined.\n\n\n\n\n### Return value\n`ASSOCIATED(POINTER)` returns a scalar value of type `LOGICAL(4)`. \nThere are several cases:\n
\n**(A) When the optional `TARGET` is not present then** `ASSOCIATED(POINTER)` is true if `POINTER` is associated with a target; otherwise, it returns false. \n\n**(B) If `TARGET` is present and a scalar target, the result is true if** `TARGET` is not a zero-sized storage sequence and the target associated with `POINTER` occupies the same storage units. If `POINTER` is\ndisassociated, the result is false. \n\n**(C) If `TARGET` is present and an array target, the result is true if** `TARGET` and `POINTER` have the same shape, are not zero-sized arrays,\nare arrays whose elements are not zero-sized storage sequences, and\n`TARGET` and `POINTER` occupy the same storage units in array element\norder. \nAs in case(B), the result is false, if `POINTER` is disassociated. \n\n**(D) If `TARGET` is present and an scalar pointer, the result is true** if `TARGET` is associated with `POINTER`, the target associated with\n`TARGET` are not zero-sized storage sequences and occupy the same storage\nunits. \nThe result is false, if either `TARGET` or `POINTER` is disassociated. \n\n**(E) If `TARGET` is present and an array pointer, the result is true if** target associated with `POINTER` and the target associated with `TARGET`\nhave the same shape, are not zero-sized arrays, are arrays whose elements are\nnot zero-sized storage sequences, and `TARGET` and `POINTER` occupy\nthe same storage units in array element order. \nThe result is false, if either `TARGET` or `POINTER` is disassociated. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_associated\n\n   implicit none\n\n   real, target :: tgt(2) = (/1., 2./)\n\n   real, pointer :: ptr(:)\n\n   ptr => tgt\n\n   if (associated(ptr) .eqv. .false.) call abort\n\n   if (associated(ptr,tgt) .eqv. .false.) call abort\n\nend program test_associated\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nNULL\n" -} diff --git a/doc/intrinsics/ATAN.json b/doc/intrinsics/ATAN.json deleted file mode 100644 index 0c42e003..00000000 --- a/doc/intrinsics/ATAN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATAN", - "docstr": "`ATAN` — Arctangent function\n\n### Description\n`ATAN(X)` computes the arctangent of `X`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = ATAN(Y, X)`
\n\n\n\n\n\n### Arguments\n\n \n;\nif `Y` is present, `X` shall be REAL. \n\n | `Y` shall be of the same type and kind as `X`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nIf `Y` is present, the result is identical to `ATAN2(Y,X)`. \nOtherwise, it the arcus tangent of `X`, where the real part of\nthe result is in radians and lies in the range\n-\\pi/2 \\leq \\Re \\atan(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nprogram test_atan\n\n  real(8) :: x = 2.866_8\n\n  x = atan(x)\n\nend program test_atan\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ATAN(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DATAN(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument and for two arguments\nFortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: TAN\n\n " -} diff --git a/doc/intrinsics/ATAN2.json b/doc/intrinsics/ATAN2.json deleted file mode 100644 index 2badc071..00000000 --- a/doc/intrinsics/ATAN2.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATAN2", - "docstr": "`ATAN2` — Arctangent function\n\n### Description\n`ATAN2(Y, X)` computes the principal value of the argument\nfunction of the complex number X + i Y. This function can\nbe used to transform from Cartesian into polar coordinates and\nallows to determine the angle in the correct quadrant.\n\n\n\n### Syntax\n`RESULT = ATAN2(Y, X)`\n\n\n### Arguments\n\n \n. \n\n | `X` | The type and kind type parameter shall be the same as `Y`. \nIf `Y` is zero, then `X` must be nonzero.\n\n\n\n\n\n\n### Return value\nThe return value has the same type and kind type parameter as `Y`. It\nis the principal value of the complex number X + i Y. If `X`\nis nonzero, then it lies in the range -\\pi \\le \\atan (x) \\leq \\pi. \nThe sign is positive if `Y` is positive. If `Y` is zero, then\nthe return value is zero if `X` is strictly positive, \\pi if\n`X` is negative and `Y` is positive zero (or the processor does\nnot handle signed zeros), and -\\pi if `X` is negative and\n`Y` is negative zero. Finally, if `X` is zero, then the\nmagnitude of the result is \\pi/2.\n\n\n\n### Example\n```\n\n\nprogram test_atan2\n\n  real(4) :: x = 1.e0_4, y = 0.5e0_4\n\n  x = atan2(y,x)\n\nend program test_atan2\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ATAN2(X, Y)` | `REAL(4) X, Y` | `REAL(4)` | Fortran 77 and later\n\n | `DATAN2(X, Y)` | `REAL(8) X, Y` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ATAN2D.json b/doc/intrinsics/ATAN2D.json deleted file mode 100644 index 4627ae8b..00000000 --- a/doc/intrinsics/ATAN2D.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATAN2D", - "docstr": "`ATAN2D` — Arctangent function, degrees\n\n### Description\nATAN2D(Y, X) computes the principal value of the argument function of the complex number X + i Y in degrees. This function can be used to transform from Cartesian into polar coordinates and allows to determine the angle in the correct quadrant.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ATAN2D(Y, X)\n### Arguments\n- Y: The type shall be REAL.\n- X: The type and kind type parameter shall be the same as Y. If Y is zero, then X must be nonzero.\n### Return value\nThe return value has the same type and kind type parameter as Y. It is the principal value of the complex number X + i Y. If X is nonzero, then it lies in the range -180 \\le \\atan (x) \\leq 180. The sign is positive if Y is positive. If Y is zero, then the return value is zero if X is strictly positive, 180 if X is negative and Y is positive zero (or the processor does not handle signed zeros), and -180 if X is negative and Y is negative zero. Finally, if X is zero, then the magnitude of the result is 90.\n" -} diff --git a/doc/intrinsics/ATAND.json b/doc/intrinsics/ATAND.json deleted file mode 100644 index b2e15f4b..00000000 --- a/doc/intrinsics/ATAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATAND", - "docstr": "`ATAND` — Arctangent function, degrees\n\n### Description\nATAND(X) computes the arctangent of X in degrees (inverse of TAND).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ATAND(X)\nRESULT = ATAND(Y, X)\n### Arguments\n- X: The type shall be REAL or COMPLEX; if Y is present, X shall be REAL.- Y: Shall be of the same type and kind as X.\n### Return value\nThe return value is of the same type and kind as X. If Y is present, the result is identical to ATAND2(Y,X). Otherwise, it is the arcus tangent of X, where the real part of the result is in degrees and lies in the range -90 \\leq \\Re \\atand(x) \\leq 90." -} diff --git a/doc/intrinsics/ATANH.json b/doc/intrinsics/ATANH.json deleted file mode 100644 index da8c9c5e..00000000 --- a/doc/intrinsics/ATANH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATANH", - "docstr": "`ATANH` — Inverse hyperbolic tangent function\n\n### Description\n`ATANH(X)` computes the inverse hyperbolic tangent of `X`.\n\n\n\n### Syntax\n`RESULT = ATANH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians and lies between\n-\\pi/2 \\leq \\Im \\atanh(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nPROGRAM test_atanh\n\n  REAL, DIMENSION(3) :: x = (/ -1.0, 0.0, 1.0 /)\n\n  WRITE (*,*) ATANH(x)\n\nEND PROGRAM\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DATANH(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: TANH\n" -} diff --git a/doc/intrinsics/ATOMIC_ADD.json b/doc/intrinsics/ATOMIC_ADD.json deleted file mode 100644 index b8114daa..00000000 --- a/doc/intrinsics/ATOMIC_ADD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_ADD", - "docstr": "`ATOMIC_ADD` — Atomic ADD operation\n\n### Description\n`ATOMIC_ADD(ATOM, VALUE)` atomically adds the value of `VAR` to the\nvariable `ATOM`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_ADD (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*]\n\n  call atomic_add (atom[1], this_image())\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_ADD, ISO_FORTRAN_ENV,\nATOMIC_AND, ATOMIC_OR, ATOMIC_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_AND.json b/doc/intrinsics/ATOMIC_AND.json deleted file mode 100644 index c5873963..00000000 --- a/doc/intrinsics/ATOMIC_AND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_AND", - "docstr": "`ATOMIC_AND` — Atomic bitwise AND operation\n\n### Description\n`ATOMIC_AND(ATOM, VALUE)` atomically defines `ATOM` with the bitwise\nAND between the values of `ATOM` and `VALUE`. When `STAT` is present\nand the invokation was successful, it is assigned the value 0. If it is present\nand the invokation has failed, it is assigned a positive value; in particular,\nfor a coindexed `ATOM`, if the remote image has stopped, it is assigned the\nvalue of `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote\nimage has failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_AND (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*]\n\n  call atomic_and (atom[1], int(b'10100011101'))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_AND, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_OR, ATOMIC_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_CAS.json b/doc/intrinsics/ATOMIC_CAS.json deleted file mode 100644 index 2598f2dd..00000000 --- a/doc/intrinsics/ATOMIC_CAS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_CAS", - "docstr": "`ATOMIC_CAS` — Atomic compare and swap\n\n### Description\n`ATOMIC_CAS` compares the variable `ATOM` with the value of\n`COMPARE`; if the value is the same, `ATOM` is set to the value\nof `NEW`. Additionally, `OLD` is set to the value of `ATOM`\nthat was used for the comparison. When `STAT` is present and the invokation\nwas successful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_CAS (ATOM, OLD, COMPARE, NEW [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of either integer\ntype with `ATOMIC_INT_KIND` kind or logical type with\n`ATOMIC_LOGICAL_KIND` kind. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `COMPARE` | Scalar variable of the same type and kind as\n`ATOM`. \n\n | `NEW` | Scalar variable of the same type as `ATOM`. If kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  logical(atomic_logical_kind) :: atom[*], prev\n\n  call atomic_cas (atom[1], prev, .false., .true.))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_REF, ISO_FORTRAN_ENV\n" -} diff --git a/doc/intrinsics/ATOMIC_DEFINE.json b/doc/intrinsics/ATOMIC_DEFINE.json deleted file mode 100644 index aa074608..00000000 --- a/doc/intrinsics/ATOMIC_DEFINE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_DEFINE", - "docstr": "`ATOMIC_DEFINE` — Setting a variable atomically\n\n### Description\n`ATOMIC_DEFINE(ATOM, VALUE)` defines the variable `ATOM` with the value\n`VALUE` atomically. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_DEFINE (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of either integer\ntype with `ATOMIC_INT_KIND` kind or logical type with\n`ATOMIC_LOGICAL_KIND` kind.\n\n \n\n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*]\n\n  call atomic_define (atom[1], this_image())\n\nend program atomic\n\n```\n\n\n\n### Standard\nFortran 2008 and later; with `STAT`, TS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_REF, ATOMIC_CAS, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_AND, ATOMIC_OR, ATOMIC_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_FETCH_ADD.json b/doc/intrinsics/ATOMIC_FETCH_ADD.json deleted file mode 100644 index 6bb2da52..00000000 --- a/doc/intrinsics/ATOMIC_FETCH_ADD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_FETCH_ADD", - "docstr": "`ATOMIC_FETCH_ADD` — Atomic ADD operation with prior fetch\n\n### Description\n`ATOMIC_FETCH_ADD(ATOM, VALUE, OLD)` atomically stores the value of\n`ATOM` in `OLD` and adds the value of `VAR` to the\nvariable `ATOM`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_ADD (ATOM, VALUE, old [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n`ATOMIC_LOGICAL_KIND` kind.\n\n \n\n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*], old\n\n  call atomic_add (atom[1], this_image(), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_ADD, ISO_FORTRAN_ENV,\nATOMIC_FETCH_AND, ATOMIC_FETCH_OR, ATOMIC_FETCH_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_FETCH_AND.json b/doc/intrinsics/ATOMIC_FETCH_AND.json deleted file mode 100644 index eddac75d..00000000 --- a/doc/intrinsics/ATOMIC_FETCH_AND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_FETCH_AND", - "docstr": "`ATOMIC_FETCH_AND` — Atomic bitwise AND operation with prior fetch\n\n### Description\n`ATOMIC_AND(ATOM, VALUE)` atomically stores the value of `ATOM` in\n`OLD` and defines `ATOM` with the bitwise AND between the values of\n`ATOM` and `VALUE`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation has\nfailed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_AND (ATOM, VALUE, OLD [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*], old\n\n  call atomic_fetch_and (atom[1], int(b'10100011101'), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_AND, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_OR, ATOMIC_FETCH_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_FETCH_OR.json b/doc/intrinsics/ATOMIC_FETCH_OR.json deleted file mode 100644 index 74279036..00000000 --- a/doc/intrinsics/ATOMIC_FETCH_OR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_FETCH_OR", - "docstr": "`ATOMIC_FETCH_OR` — Atomic bitwise OR operation with prior fetch\n\n### Description\n`ATOMIC_OR(ATOM, VALUE)` atomically stores the value of `ATOM` in\n`OLD` and defines `ATOM` with the bitwise OR between the values of\n`ATOM` and `VALUE`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation has\nfailed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_OR (ATOM, VALUE, OLD [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*], old\n\n  call atomic_fetch_or (atom[1], int(b'10100011101'), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_OR, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_FETCH_XOR.json b/doc/intrinsics/ATOMIC_FETCH_XOR.json deleted file mode 100644 index 0e992125..00000000 --- a/doc/intrinsics/ATOMIC_FETCH_XOR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_FETCH_XOR", - "docstr": "`ATOMIC_FETCH_XOR` — Atomic bitwise XOR operation with prior fetch\n\n### Description\n`ATOMIC_XOR(ATOM, VALUE)` atomically stores the value of `ATOM` in\n`OLD` and defines `ATOM` with the bitwise XOR between the values of\n`ATOM` and `VALUE`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation has\nfailed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_XOR (ATOM, VALUE, OLD [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*], old\n\n  call atomic_fetch_xor (atom[1], int(b'10100011101'), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_XOR, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR\n" -} diff --git a/doc/intrinsics/ATOMIC_OR.json b/doc/intrinsics/ATOMIC_OR.json deleted file mode 100644 index 5caad138..00000000 --- a/doc/intrinsics/ATOMIC_OR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_OR", - "docstr": "`ATOMIC_OR` — Atomic bitwise OR operation\n\n### Description\n`ATOMIC_OR(ATOM, VALUE)` atomically defines `ATOM` with the bitwise\nAND between the values of `ATOM` and `VALUE`. When `STAT` is present\nand the invokation was successful, it is assigned the value 0. If it is present\nand the invokation has failed, it is assigned a positive value; in particular,\nfor a coindexed `ATOM`, if the remote image has stopped, it is assigned the\nvalue of `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote\nimage has failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_OR (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*]\n\n  call atomic_or (atom[1], int(b'10100011101'))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_OR, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_OR, ATOMIC_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_REF.json b/doc/intrinsics/ATOMIC_REF.json deleted file mode 100644 index 013a3451..00000000 --- a/doc/intrinsics/ATOMIC_REF.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_REF", - "docstr": "`ATOMIC_REF` — Obtaining the value of a variable atomically\n\n### Description\n`ATOMIC_DEFINE(ATOM, VALUE)` atomically assigns the value of the\nvariable `ATOM` to `VALUE`. When `STAT` is present and the\ninvokation was successful, it is assigned the value 0. If it is present and the\ninvokation has failed, it is assigned a positive value; in particular, for a\ncoindexed `ATOM`, if the remote image has stopped, it is assigned the value\nof `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image\nhas failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_REF(VALUE, ATOM [, STAT])`\n\n\n### Arguments\n\n \n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `ATOM` | Scalar coarray or coindexed variable of either integer\ntype with `ATOMIC_INT_KIND` kind or logical type with\n`ATOMIC_LOGICAL_KIND` kind. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  logical(atomic_logical_kind) :: atom[*]\n\n  logical :: val\n\n  call atomic_ref (atom, .false.)\n\n  ! ...\n\n  call atomic_ref (atom, val)\n\n  if (val) then\n\n    print *, \"Obtained\"\n\n  end if\n\nend program atomic\n\n```\n\n\n\n### Standard\nFortran 2008 and later; with `STAT`, TS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_CAS, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR,\nATOMIC_FETCH_XOR\n" -} diff --git a/doc/intrinsics/ATOMIC_XOR.json b/doc/intrinsics/ATOMIC_XOR.json deleted file mode 100644 index 7ada3e9e..00000000 --- a/doc/intrinsics/ATOMIC_XOR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ATOMIC_XOR", - "docstr": "`ATOMIC_XOR` — Atomic bitwise OR operation\n\n### Description\n`ATOMIC_AND(ATOM, VALUE)` atomically defines `ATOM` with the bitwise\nXOR between the values of `ATOM` and `VALUE`. When `STAT` is present\nand the invokation was successful, it is assigned the value 0. If it is present\nand the invokation has failed, it is assigned a positive value; in particular,\nfor a coindexed `ATOM`, if the remote image has stopped, it is assigned the\nvalue of `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote\nimage has failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_XOR (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  integer(atomic_int_kind) :: atom[*]\n\n  call atomic_xor (atom[1], int(b'10100011101'))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_XOR, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_OR, ATOMIC_XOR\n" -} diff --git a/doc/intrinsics/BACKTRACE.json b/doc/intrinsics/BACKTRACE.json deleted file mode 100644 index c2112557..00000000 --- a/doc/intrinsics/BACKTRACE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BACKTRACE", - "docstr": "`BACKTRACE` — Show a backtrace\n\n### Description\n`BACKTRACE` shows a backtrace at an arbitrary place in user code. Program\nexecution continues normally afterwards. The backtrace information is printed\nto the unit corresponding to `ERROR_UNIT` in `ISO_FORTRAN_ENV`.\n\n\n\n### Syntax\n`CALL BACKTRACE`\n\n\n### Arguments\nNone\n\n\n\n### Standard\nGNU Extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nABORT\n" -} diff --git a/doc/intrinsics/BESSEL_J0.json b/doc/intrinsics/BESSEL_J0.json deleted file mode 100644 index 717e1551..00000000 --- a/doc/intrinsics/BESSEL_J0.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BESSEL_J0", - "docstr": "`BESSEL_J0` — Bessel function of the first kind of order 0\n\n### Description\n`BESSEL_J0(X)` computes the Bessel function of the first kind of\norder 0 of `X`. This function is available under the name\n`BESJ0` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_J0(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and lies in the\nrange - 0.4027... \\leq Bessel (0,x) \\leq 1. It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besj0\n\n  real(8) :: x = 0.0_8\n\n  x = bessel_j0(x)\n\nend program test_besj0\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESJ0(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/BESSEL_J1.json b/doc/intrinsics/BESSEL_J1.json deleted file mode 100644 index 86812b61..00000000 --- a/doc/intrinsics/BESSEL_J1.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BESSEL_J1", - "docstr": "`BESSEL_J1` — Bessel function of the first kind of order 1\n\n### Description\n`BESSEL_J1(X)` computes the Bessel function of the first kind of\norder 1 of `X`. This function is available under the name\n`BESJ1` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_J1(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and lies in the\nrange - 0.5818... \\leq Bessel (0,x) \\leq 0.5818 . It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besj1\n\n  real(8) :: x = 1.0_8\n\n  x = bessel_j1(x)\n\nend program test_besj1\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESJ1(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/BESSEL_JN.json b/doc/intrinsics/BESSEL_JN.json deleted file mode 100644 index d475df2b..00000000 --- a/doc/intrinsics/BESSEL_JN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BESSEL_JN", - "docstr": "`BESSEL_JN` — Bessel function of the first kind\n\n### Description\n`BESSEL_JN(N, X)` computes the Bessel function of the first kind of\norder `N` of `X`. This function is available under the name\n`BESJN` as a GNU extension. If `N` and `X` are arrays,\ntheir ranks and shapes shall conform.\n\n \n`BESSEL_JN(N1, N2, X)` returns an array with the Bessel functions\nof the first kind of the orders `N1` to `N2`.\n\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = BESSEL_JN(N1, N2, X)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `N1` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `N2` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `X` | Shall be a scalar or an array of type `REAL`;\nfor `BESSEL_JN(N1, N2, X)` it shall be scalar.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `REAL`. It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besjn\n\n  real(8) :: x = 1.0_8\n\n  x = bessel_jn(5,x)\n\nend program test_besjn\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESJN(N, X)` | `INTEGER N` | `REAL(8)` | GNU extension\n\n | `REAL(8) X` | \n\n\n\n\n\n### Notes\nThe transformational function uses a recurrence algorithm which might,\nfor some values of `X`, lead to different results than calls to\nthe elemental function.\n\n\n\n### Standard\nFortran 2008 and later, negative `N` is allowed as GNU extension\n\n\n\n### Class\nElemental function, except for the transformational function\n`BESSEL_JN(N1, N2, X)`\n\n" -} diff --git a/doc/intrinsics/BESSEL_Y0.json b/doc/intrinsics/BESSEL_Y0.json deleted file mode 100644 index 507b3340..00000000 --- a/doc/intrinsics/BESSEL_Y0.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BESSEL_Y0", - "docstr": "`BESSEL_Y0` — Bessel function of the second kind of order 0\n\n### Description\n`BESSEL_Y0(X)` computes the Bessel function of the second kind of\norder 0 of `X`. This function is available under the name\n`BESY0` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_Y0(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL`. It has the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besy0\n\n  real(8) :: x = 0.0_8\n\n  x = bessel_y0(x)\n\nend program test_besy0\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESY0(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/BESSEL_Y1.json b/doc/intrinsics/BESSEL_Y1.json deleted file mode 100644 index b7ac7622..00000000 --- a/doc/intrinsics/BESSEL_Y1.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BESSEL_Y1", - "docstr": "`BESSEL_Y1` — Bessel function of the second kind of order 1\n\n### Description\n`BESSEL_Y1(X)` computes the Bessel function of the second kind of\norder 1 of `X`. This function is available under the name\n`BESY1` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_Y1(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL`. It has the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besy1\n\n  real(8) :: x = 1.0_8\n\n  x = bessel_y1(x)\n\nend program test_besy1\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESY1(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/BESSEL_YN.json b/doc/intrinsics/BESSEL_YN.json deleted file mode 100644 index 91d9bd42..00000000 --- a/doc/intrinsics/BESSEL_YN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BESSEL_YN", - "docstr": "`BESSEL_YN` — Bessel function of the second kind\n\n### Description\n`BESSEL_YN(N, X)` computes the Bessel function of the second kind of\norder `N` of `X`. This function is available under the name\n`BESYN` as a GNU extension. If `N` and `X` are arrays,\ntheir ranks and shapes shall conform.\n\n \n`BESSEL_YN(N1, N2, X)` returns an array with the Bessel functions\nof the first kind of the orders `N1` to `N2`.\n\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = BESSEL_YN(N1, N2, X)`
\n\n\n\n\n\n### Arguments\n\n \n . \n\n | `N1` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `N2` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `X` | Shall be a scalar or an array of type `REAL`;\nfor `BESSEL_YN(N1, N2, X)` it shall be scalar.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `REAL`. It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besyn\n\n  real(8) :: x = 1.0_8\n\n  x = bessel_yn(5,x)\n\nend program test_besyn\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESYN(N,X)` | `INTEGER N` | `REAL(8)` | GNU extension\n\n | `REAL(8) X` | \n\n\n\n\n\n### Notes\nThe transformational function uses a recurrence algorithm which might,\nfor some values of `X`, lead to different results than calls to\nthe elemental function.\n\n\n\n### Standard\nFortran 2008 and later, negative `N` is allowed as GNU extension\n\n\n\n### Class\nElemental function, except for the transformational function\n`BESSEL_YN(N1, N2, X)`\n\n" -} diff --git a/doc/intrinsics/BGE.json b/doc/intrinsics/BGE.json deleted file mode 100644 index eb31e632..00000000 --- a/doc/intrinsics/BGE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BGE", - "docstr": "`BGE` — Bitwise greater than or equal to\n\n### Description\nDetermines whether an integral is a bitwise greater than or equal to\nanother.\n\n\n\n### Syntax\n`RESULT = BGE(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBGT, BLE, BLT\n" -} diff --git a/doc/intrinsics/BGT.json b/doc/intrinsics/BGT.json deleted file mode 100644 index 156715e3..00000000 --- a/doc/intrinsics/BGT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BGT", - "docstr": "`BGT` — Bitwise greater than\n\n### Description\nDetermines whether an integral is a bitwise greater than another.\n\n\n\n### Syntax\n`RESULT = BGT(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBGE, BLE, BLT\n" -} diff --git a/doc/intrinsics/BIT_SIZE.json b/doc/intrinsics/BIT_SIZE.json deleted file mode 100644 index 5a091632..00000000 --- a/doc/intrinsics/BIT_SIZE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BIT_SIZE", - "docstr": "`BIT_SIZE` — Bit size inquiry function\n\n### Description\n`BIT_SIZE(I)` returns the number of bits (integer precision plus sign bit)\nrepresented by the type of `I`. The result of `BIT_SIZE(I)` is\nindependent of the actual value of `I`.\n\n\n\n### Syntax\n`RESULT = BIT_SIZE(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`\n\n\n### Example\n```\n\n\nprogram test_bit_size\n\n    integer :: i = 123\n\n    integer :: size\n\n    size = bit_size(i)\n\n    print *, size\n\nend program test_bit_size\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/BLE.json b/doc/intrinsics/BLE.json deleted file mode 100644 index d85a67a7..00000000 --- a/doc/intrinsics/BLE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BLE", - "docstr": "`BLE` — Bitwise less than or equal to\n\n### Description\nDetermines whether an integral is a bitwise less than or equal to\nanother.\n\n\n\n### Syntax\n`RESULT = BLE(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBGT, BGE, BLT\n" -} diff --git a/doc/intrinsics/BLT.json b/doc/intrinsics/BLT.json deleted file mode 100644 index 090c92d4..00000000 --- a/doc/intrinsics/BLT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BLT", - "docstr": "`BLT` — Bitwise less than\n\n### Description\nDetermines whether an integral is a bitwise less than another.\n\n\n\n### Syntax\n`RESULT = BLT(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBGE, BGT, BLE\n" -} diff --git a/doc/intrinsics/BTEST.json b/doc/intrinsics/BTEST.json deleted file mode 100644 index 5d3e2c8c..00000000 --- a/doc/intrinsics/BTEST.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "BTEST", - "docstr": "`BTEST` — Bit test function\n\n### Description\n`BTEST(I,POS)` returns logical `.TRUE.` if the bit at `POS`\nin `I` is set. The counting of the bits starts at 0.\n\n\n\n### Syntax\n`RESULT = BTEST(I, POS)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL`\n\n\n### Example\n```\n\n\nprogram test_btest\n\n    integer :: i = 32768 + 1024 + 64\n\n    integer :: pos\n\n    logical :: bool\n\n    do pos=0,16\n\n        bool = btest(i, pos)\n\n        print *, pos, bool\n\n    end do\n\nend program test_btest\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/CEILING.json b/doc/intrinsics/CEILING.json deleted file mode 100644 index 43c41226..00000000 --- a/doc/intrinsics/CEILING.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CEILING", - "docstr": "`CEILING` — Integer ceiling function\n\n### Description\n`CEILING(A)` returns the least integer greater than or equal to `A`.\n\n\n\n### Syntax\n`RESULT = CEILING(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER(KIND)` if `KIND` is present\nand a default-kind `INTEGER` otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_ceiling\n\n    real :: x = 63.29\n\n    real :: y = -63.59\n\n    print *, ceiling(x) ! returns 64\n\n    print *, ceiling(y) ! returns -63\n\nend program test_ceiling\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nFLOOR, NINT\n\n " -} diff --git a/doc/intrinsics/CHAR.json b/doc/intrinsics/CHAR.json deleted file mode 100644 index f68d4cde..00000000 --- a/doc/intrinsics/CHAR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CHAR", - "docstr": "`CHAR` — Character conversion function\n\n### Description\n`CHAR(I [, KIND])` returns the character represented by the integer `I`.\n\n\n\n### Syntax\n`RESULT = CHAR(I [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER(1)`\n\n\n### Example\n```\n\n\nprogram test_char\n\n    integer :: i = 74\n\n    character(1) :: c\n\n    c = char(i)\n\n    print *, i, c ! returns 'J'\n\nend program test_char\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `CHAR(I)` | `INTEGER I` | `CHARACTER(LEN=1)` | F77 and later\n\n\n\n\n\n\n### Notes\nSee ICHAR for a discussion of converting between numerical values\nand formatted string representations.\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nACHAR, IACHAR, ICHAR\n\n " -} diff --git a/doc/intrinsics/CHDIR.json b/doc/intrinsics/CHDIR.json deleted file mode 100644 index 07d9cc4f..00000000 --- a/doc/intrinsics/CHDIR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CHDIR", - "docstr": "`CHDIR` — Change working directory\n\n### Description\nChange current working directory to a specified path.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = CHDIR(NAME)`
\n\n\n\n\n\n### Arguments\n\n \n of default\nkind and shall specify a valid path within the file system. \n\n | `STATUS` | (Optional) `INTEGER` status flag of the default\nkind. Returns 0 on success, and a system specific and nonzero error code\notherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_chdir\n\n  CHARACTER(len=255) :: path\n\n  CALL getcwd(path)\n\n  WRITE(*,*) TRIM(path)\n\n  CALL chdir(\"/tmp\")\n\n  CALL getcwd(path)\n\n  WRITE(*,*) TRIM(path)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nGETCWD\n" -} diff --git a/doc/intrinsics/CHMOD.json b/doc/intrinsics/CHMOD.json deleted file mode 100644 index bfc8bebe..00000000 --- a/doc/intrinsics/CHMOD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CHMOD", - "docstr": "`CHMOD` — Change access permissions of files\n\n### Description\n`CHMOD` changes the permissions of a file.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = CHMOD(NAME, MODE)`
\n\n\n\n\n\n### Arguments\n\n \n\n | `NAME` | Scalar `CHARACTER` of default kind with the\nfile name. Trailing blanks are ignored unless the character\n`achar(0)` is present, then all characters up to and excluding\n`achar(0)` are used as the file name.\n\n \n\n\n | `MODE` | Scalar `CHARACTER` of default kind giving the\nfile permission. `MODE` uses the same syntax as the `chmod` utility\nas defined by the POSIX standard. The argument shall either be a string of\na nonnegative octal number or a symbolic mode.\n\n \n\n\n | `STATUS` | (optional) scalar `INTEGER`, which is\n`0` on success and nonzero otherwise.\n\n\n\n\n\n\n### Return value\nIn either syntax, `STATUS` is set to `0` on success and nonzero\notherwise.\n\n\n\n### Example\n`CHMOD` as subroutine\n```\n\n\nprogram chmod_test\n\n  implicit none\n\n  integer :: status\n\n  call chmod('test.dat','u+x',status)\n\n  print *, 'Status: ', status\n\nend program chmod_test\n\n```\n\n \n`CHMOD` as function:\n \n
          program chmod_test\n            implicit none\n            integer :: status\n            status = chmod('test.dat','u+x')\n            print *, 'Status: ', status\n          end program chmod_test\n
\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" -} diff --git a/doc/intrinsics/CMPLX.json b/doc/intrinsics/CMPLX.json deleted file mode 100644 index fd080701..00000000 --- a/doc/intrinsics/CMPLX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CMPLX", - "docstr": "`CMPLX` — Complex conversion function\n\n### Description\n`CMPLX(X [, Y [, KIND]])` returns a complex number where `X` is converted to\nthe real component. If `Y` is present it is converted to the imaginary\ncomponent. If `Y` is not present then the imaginary component is set to\n0.0. If `X` is complex then `Y` must not be present.\n\n\n\n### Syntax\n`RESULT = CMPLX(X [, Y [, KIND]])`\n\n\n### Arguments\n\n \n,\nor `COMPLEX`. \n\n | `Y` | (Optional; only allowed if `X` is not\n`COMPLEX`.) May be `INTEGER` or `REAL`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of `COMPLEX` type, with a kind equal to\n`KIND` if it is specified. If `KIND` is not specified, the\nresult is of the default `COMPLEX` kind, regardless of the kinds of\n`X` and `Y`.\n\n\n\n### Example\n```\n\n\nprogram test_cmplx\n\n    integer :: i = 42\n\n    real :: x = 3.14\n\n    complex :: z\n\n    z = cmplx(i, x)\n\n    print *, z, cmplx(x)\n\nend program test_cmplx\n\n```\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCOMPLEX\n" -} diff --git a/doc/intrinsics/COMMAND_ARGUMENT_COUNT.json b/doc/intrinsics/COMMAND_ARGUMENT_COUNT.json deleted file mode 100644 index c063e839..00000000 --- a/doc/intrinsics/COMMAND_ARGUMENT_COUNT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COMMAND_ARGUMENT_COUNT", - "docstr": "`COMMAND_ARGUMENT_COUNT` — Get number of command line arguments\n\n### Description\n`COMMAND_ARGUMENT_COUNT` returns the number of arguments passed on the\ncommand line when the containing program was invoked.\n\n\n\n### Syntax\n`RESULT = COMMAND_ARGUMENT_COUNT()`\n\n\n### Arguments\n\n \n | None\n\n\n\n\n\n\n### Return value\nThe return value is an `INTEGER` of default kind.\n\n\n\n### Example\n```\n\n\nprogram test_command_argument_count\n\n    integer :: count\n\n    count = command_argument_count()\n\n    print *, count\n\nend program test_command_argument_count\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nGET_COMMAND, GET_COMMAND_ARGUMENT\n" -} diff --git a/doc/intrinsics/COMPILER_OPTIONS.json b/doc/intrinsics/COMPILER_OPTIONS.json deleted file mode 100644 index 746961c1..00000000 --- a/doc/intrinsics/COMPILER_OPTIONS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COMPILER_OPTIONS", - "docstr": "`COMPILER_OPTIONS` — Options passed to the compiler\n\n### Description\n`COMPILER_OPTIONS` returns a string with the options used for\ncompiling.\n\n\n\n### Syntax\n`STR = COMPILER_OPTIONS()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe return value is a default-kind string with system-dependent length. \nIt contains the compiler flags used to compile the file, which called\nthe `COMPILER_OPTIONS` intrinsic.\n\n\n\n### Example\n```\n\n\nuse iso_fortran_env\n\nprint '(4a)', 'This file was compiled by ', &\n\n              compiler_version(), ' using the options ', &\n\n              compiler_options()\n\nend\n\n```\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nInquiry function of the module `ISO_FORTRAN_ENV`\n\n\n### See also\nCOMPILER_VERSION, ISO_FORTRAN_ENV\n" -} diff --git a/doc/intrinsics/COMPILER_VERSION.json b/doc/intrinsics/COMPILER_VERSION.json deleted file mode 100644 index 24e41d1e..00000000 --- a/doc/intrinsics/COMPILER_VERSION.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COMPILER_VERSION", - "docstr": "`COMPILER_VERSION` — Compiler version string\n\n### Description\n`COMPILER_VERSION` returns a string with the name and the\nversion of the compiler.\n\n\n\n### Syntax\n`STR = COMPILER_VERSION()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe return value is a default-kind string with system-dependent length. \nIt contains the name of the compiler and its version number.\n\n\n\n### Example\n```\n\n\nuse iso_fortran_env\n\nprint '(4a)', 'This file was compiled by ', &\n\n              compiler_version(), ' using the options ', &\n\n              compiler_options()\n\nend\n\n```\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nInquiry function of the module `ISO_FORTRAN_ENV`\n\n\n### See also\nCOMPILER_OPTIONS, ISO_FORTRAN_ENV\n" -} diff --git a/doc/intrinsics/COMPLEX.json b/doc/intrinsics/COMPLEX.json deleted file mode 100644 index d2bf507b..00000000 --- a/doc/intrinsics/COMPLEX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COMPLEX", - "docstr": "`COMPLEX` — Complex conversion function\n\n### Description\n`COMPLEX(X, Y)` returns a complex number where `X` is converted\nto the real component and `Y` is converted to the imaginary\ncomponent.\n\n\n\n### Syntax\n`RESULT = COMPLEX(X, Y)`\n\n\n### Arguments\n\n \n. \n\n | `Y` | The type may be `INTEGER` or `REAL`.\n\n\n\n\n\n\n### Return value\nIf `X` and `Y` are both of `INTEGER` type, then the return\nvalue is of default `COMPLEX` type.\n\n \nIf `X` and `Y` are of `REAL` type, or one is of `REAL`type and one is of `INTEGER` type, then the return value is of\n`COMPLEX` type with a kind equal to that of the `REAL`argument with the highest precision.\n\n\n\n\n### Example\n```\n\n\nprogram test_complex\n\n    integer :: i = 42\n\n    real :: x = 3.14\n\n    print *, complex(i, x)\n\nend program test_complex\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCMPLX\n" -} diff --git a/doc/intrinsics/CONJG.json b/doc/intrinsics/CONJG.json deleted file mode 100644 index 487d6384..00000000 --- a/doc/intrinsics/CONJG.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CONJG", - "docstr": "`CONJG` — Complex conjugate function\n\n### Description\n`CONJG(Z)` returns the conjugate of `Z`. If `Z` is `(x, y)`then the result is `(x, -y)`\n\n\n### Syntax\n`Z = CONJG(Z)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `COMPLEX`.\n\n\n\n### Example\n```\n\n\nprogram test_conjg\n\n    complex :: z = (2.0, 3.0)\n\n    complex(8) :: dz = (2.71_8, -3.14_8)\n\n    z= conjg(z)\n\n    print *, z\n\n    dz = dconjg(dz)\n\n    print *, dz\n\nend program test_conjg\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `CONJG(Z)` | `COMPLEX Z` | `COMPLEX` | GNU extension\n\n | `DCONJG(Z)` | `COMPLEX(8) Z` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/COS.json b/doc/intrinsics/COS.json deleted file mode 100644 index 63b9acf4..00000000 --- a/doc/intrinsics/COS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COS", - "docstr": "`COS` — Cosine function\n\n### Description\n`COS(X)` computes the cosine of `X`.\n\n\n\n### Syntax\n`RESULT = COS(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. The real part\nof the result is in radians. If `X` is of the type `REAL`,\nthe return value lies in the range -1 \\leq \\cos (x) \\leq 1.\n\n\n\n### Example\n```\n\n\nprogram test_cos\n\n  real :: x = 0.0\n\n  x = cos(x)\n\nend program test_cos\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `COS(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DCOS(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n | `CCOS(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | Fortran 77 and later\n\n | `ZCOS(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n | `CDCOS(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: ACOS\n\n " -} diff --git a/doc/intrinsics/COSD.json b/doc/intrinsics/COSD.json deleted file mode 100644 index 43900d59..00000000 --- a/doc/intrinsics/COSD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COSD", - "docstr": "`COSD` — Cosine function, degrees\n\n### Description\nCOSD(X) computes the cosine of X in degrees.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = COSD(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value is of the same type and kind as X. The real part of the result is in degrees. If X is of the type REAL, the return value lies in the range -1 \\leq \\cosd (x) \\leq 1.\n" -} diff --git a/doc/intrinsics/COSH.json b/doc/intrinsics/COSH.json deleted file mode 100644 index 8832d7f6..00000000 --- a/doc/intrinsics/COSH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COSH", - "docstr": "`COSH` — Hyperbolic cosine function\n\n### Description\n`COSH(X)` computes the hyperbolic cosine of `X`.\n\n\n\n### Syntax\n`X = COSH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians. If `X`\nis `REAL`, the return value has a lower bound of one,\n\\cosh (x) \\geq 1.\n\n\n\n### Example\n```\n\n\nprogram test_cosh\n\n  real(8) :: x = 1.0_8\n\n  x = cosh(x)\n\nend program test_cosh\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `COSH(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DCOSH(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: ACOSH\n\n " -} diff --git a/doc/intrinsics/COTAN.json b/doc/intrinsics/COTAN.json deleted file mode 100644 index 469e5345..00000000 --- a/doc/intrinsics/COTAN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COTAN", - "docstr": "`COTAN` — Cotangent function\n\n### Description\nCOTAN(X) computes the cotangent of X. Equivalent to COS(x) divided by SIN(x), or 1 / TAN(x).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = COTAN(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value has same type and kind as X, and its value is in radians.\n" -} diff --git a/doc/intrinsics/COTAND.json b/doc/intrinsics/COTAND.json deleted file mode 100644 index 274bab6f..00000000 --- a/doc/intrinsics/COTAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COTAND", - "docstr": "`COTAND` — Cotangent function, degrees\n\n### Description\nCOTAND(X) computes the cotangent of X in degrees. Equivalent to COSD(x) divided by SIND(x), or 1 / TAND(x).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = COTAND(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value has same type and kind as X, and its value is in degrees.\n" -} diff --git a/doc/intrinsics/COUNT.json b/doc/intrinsics/COUNT.json deleted file mode 100644 index 0d76789b..00000000 --- a/doc/intrinsics/COUNT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "COUNT", - "docstr": "`COUNT` — Count function\n\n### Description\n\nCounts the number of `.TRUE.` elements in a logical `MASK`,\nor, if the `DIM` argument is supplied, counts the number of\nelements along each row of the array in the `DIM` direction. \nIf the array has zero size, or all of the elements of `MASK` are\n`.FALSE.`, then the result is `0`.\n\n\n\n### Syntax\n`RESULT = COUNT(MASK [, DIM, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `DIM` | (Optional) The type shall be `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is present, the result is an array with a rank one less\nthan the rank of `ARRAY`, and a size corresponding to the shape\nof `ARRAY` with the `DIM` dimension removed.\n\n\n\n### Example\n```\n\n\nprogram test_count\n\n    integer, dimension(2,3) :: a, b\n\n    logical, dimension(2,3) :: mask\n\n    a = reshape( (/ 1, 2, 3, 4, 5, 6 /), (/ 2, 3 /))\n\n    b = reshape( (/ 0, 7, 3, 4, 5, 8 /), (/ 2, 3 /))\n\n    print '(3i3)', a(1,:)\n\n    print '(3i3)', a(2,:)\n\n    print *\n\n    print '(3i3)', b(1,:)\n\n    print '(3i3)', b(2,:)\n\n    print *\n\n    mask = a.ne.b\n\n    print '(3l3)', mask(1,:)\n\n    print '(3l3)', mask(2,:)\n\n    print *\n\n    print '(3i3)', count(mask)\n\n    print *\n\n    print '(3i3)', count(mask, 1)\n\n    print *\n\n    print '(3i3)', count(mask, 2)\n\nend program test_count\n\n```\n\n \n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/CO_BROADCAST.json b/doc/intrinsics/CO_BROADCAST.json deleted file mode 100644 index 312a157a..00000000 --- a/doc/intrinsics/CO_BROADCAST.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CO_BROADCAST", - "docstr": "`CO_BROADCAST` — Copy a value to all images the current set of images\n\n### Description\n`CO_BROADCAST` copies the value of argument `A` on the image with\nimage index `SOURCE_IMAGE` to all images in the current team. `A`\nbecomes defined as if by intrinsic assignment. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_BROADCAST(A, SOURCE_IMAGE [, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | INTENT(INOUT) argument; shall have the same\ndynamic type and type paramters on all images of the current team. If it\nis an array, it shall have the same shape on all images. \n\n | `SOURCE_IMAGE` | a scalar integer expression. \nIt shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n  integer :: val(3)\n\n  if (this_image() == 1) then\n\n    val = [1, 5, 3]\n\n  end if\n\n  call co_broadcast (val, source_image=1)\n\n  print *, this_image, \":\", val\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MAX, CO_MIN, CO_SUM, CO_REDUCE\n" -} diff --git a/doc/intrinsics/CO_MAX.json b/doc/intrinsics/CO_MAX.json deleted file mode 100644 index 1028f873..00000000 --- a/doc/intrinsics/CO_MAX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CO_MAX", - "docstr": "`CO_MAX` — Maximal value on the current set of images\n\n### Description\n`CO_MAX` determines element-wise the maximal value of `A` on all\nimages of the current team. If `RESULT_IMAGE` is present, the maximum\nvalues are returned in `A` on the specified image only and the value\nof `A` on the other images become undefined. If `RESULT_IMAGE` is\nnot present, the value is returned on all images. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_MAX(A [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | shall be an integer, real or character variable,\nwhich has the same type and type parameters on all images of the team. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n  integer :: val\n\n  val = this_image ()\n\n  call co_max (val, result_image=1)\n\n  if (this_image() == 1) then\n\n    write(*,*) \"Maximal value\", val ! prints num_images()\n\n  end if\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MIN, CO_SUM, CO_REDUCE, CO_BROADCAST\n" -} diff --git a/doc/intrinsics/CO_MIN.json b/doc/intrinsics/CO_MIN.json deleted file mode 100644 index a4580767..00000000 --- a/doc/intrinsics/CO_MIN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CO_MIN", - "docstr": "`CO_MIN` — Minimal value on the current set of images\n\n### Description\n`CO_MIN` determines element-wise the minimal value of `A` on all\nimages of the current team. If `RESULT_IMAGE` is present, the minimal\nvalues are returned in `A` on the specified image only and the value\nof `A` on the other images become undefined. If `RESULT_IMAGE` is\nnot present, the value is returned on all images. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_MIN(A [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | shall be an integer, real or character variable,\nwhich has the same type and type parameters on all images of the team. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n  integer :: val\n\n  val = this_image ()\n\n  call co_min (val, result_image=1)\n\n  if (this_image() == 1) then\n\n    write(*,*) \"Minimal value\", val ! prints 1\n\n  end if\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MAX, CO_SUM, CO_REDUCE, CO_BROADCAST\n" -} diff --git a/doc/intrinsics/CO_REDUCE.json b/doc/intrinsics/CO_REDUCE.json deleted file mode 100644 index 2fabb51c..00000000 --- a/doc/intrinsics/CO_REDUCE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CO_REDUCE", - "docstr": "`CO_REDUCE` — Reduction of values on the current set of images\n\n### Description\n`CO_REDUCE` determines element-wise the reduction of the value of `A`\non all images of the current team. The pure function passed as `OPERATOR`\nis used to pairwise reduce the values of `A` by passing either the value\nof `A` of different images or the result values of such a reduction as\nargument. If `A` is an array, the deduction is done element wise. If\n`RESULT_IMAGE` is present, the result values are returned in `A` on\nthe specified image only and the value of `A` on the other images become\nundefined. If `RESULT_IMAGE` is not present, the value is returned on all\nimages. If the execution was successful and `STAT` is present, it is\nassigned the value zero. If the execution failed, `STAT` gets assigned\na nonzero value and, if present, `ERRMSG` gets assigned a value describing\nthe occurred error.\n\n\n\n### Syntax\n`CALL CO_REDUCE(A, OPERATOR, [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n argument and shall be\nnonpolymorphic. If it is allocatable, it shall be allocated; if it is a pointer,\nit shall be associated. `A` shall have the same type and type parameters on\nall images of the team; if it is an array, it shall have the same shape on all\nimages. \n\n | `OPERATOR` | pure function with two scalar nonallocatable\narguments, which shall be nonpolymorphic and have the same type and type\nparameters as `A`. The function shall return a nonallocatable scalar of\nthe same type and type parameters as `A`. The function shall be the same on\nall images and with regards to the arguments mathematically commutative and\nassociative. Note that `OPERATOR` may not be an elemental function, unless\nit is an intrisic function. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n  integer :: val\n\n  val = this_image ()\n\n  call co_reduce (val, result_image=1, operator=myprod)\n\n  if (this_image() == 1) then\n\n    write(*,*) \"Product value\", val ! prints num_images() factorial\n\n  end if\n\ncontains\n\n  pure function myprod(a, b)\n\n    integer, value :: a, b\n\n    integer :: myprod\n\n    myprod = a * b\n\n  end function myprod\n\nend program test\n\n```\n\n\n\n### Notes\nWhile the rules permit in principle an intrinsic function, none of the\nintrinsics in the standard fulfill the criteria of having a specific\nfunction, which takes two arguments of the same type and returning that\ntype as result.\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MIN, CO_MAX, CO_SUM, CO_BROADCAST\n" -} diff --git a/doc/intrinsics/CO_SUM.json b/doc/intrinsics/CO_SUM.json deleted file mode 100644 index 8b126fbf..00000000 --- a/doc/intrinsics/CO_SUM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CO_SUM", - "docstr": "`CO_SUM` — Sum of values on the current set of images\n\n### Description\n`CO_SUM` sums up the values of each element of `A` on all\nimages of the current team. If `RESULT_IMAGE` is present, the summed-up\nvalues are returned in `A` on the specified image only and the value\nof `A` on the other images become undefined. If `RESULT_IMAGE` is\nnot present, the value is returned on all images. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_MIN(A [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | shall be an integer, real or complex variable,\nwhich has the same type and type parameters on all images of the team. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n  integer :: val\n\n  val = this_image ()\n\n  call co_sum (val, result_image=1)\n\n  if (this_image() == 1) then\n\n    write(*,*) \"The sum is \", val ! prints (n**2 + n)/2, with n = num_images()\n\n  end if\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MAX, CO_MIN, CO_REDUCE, CO_BROADCAST\n" -} diff --git a/doc/intrinsics/CPU_TIME.json b/doc/intrinsics/CPU_TIME.json deleted file mode 100644 index ad81c171..00000000 --- a/doc/intrinsics/CPU_TIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CPU_TIME", - "docstr": "`CPU_TIME` — CPU elapsed time in seconds\n\n### Description\nReturns a `REAL` value representing the elapsed CPU time in\nseconds. This is useful for testing segments of code to determine\nexecution time.\n\n \nIf a time source is available, time will be reported with microsecond\nresolution. If no time source is available, `TIME` is set to\n`-1.0`.\n\n \n\nNote that `TIME` may contain a, system dependent, arbitrary offset\nand may not start with `0.0`. For `CPU_TIME`, the absolute\nvalue is meaningless, only differences between subsequent calls to\nthis subroutine, as shown in the example below, should be used.\n\n\n\n\n### Syntax\n`CALL CPU_TIME(TIME)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_cpu_time\n\n    real :: start, finish\n\n    call cpu_time(start)\n\n        ! put code to test here\n\n    call cpu_time(finish)\n\n    print '(\"Time = \",f6.3,\" seconds.\")',finish-start\n\nend program test_cpu_time\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nSYSTEM_CLOCK, DATE_AND_TIME\n" -} diff --git a/doc/intrinsics/CSHIFT.json b/doc/intrinsics/CSHIFT.json deleted file mode 100644 index 4444426c..00000000 --- a/doc/intrinsics/CSHIFT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CSHIFT", - "docstr": "`CSHIFT` — Circular shift elements of an array\n\n### Description\n`CSHIFT(ARRAY, SHIFT [, DIM])` performs a circular shift on elements of\n`ARRAY` along the dimension of `DIM`. If `DIM` is omitted it is\ntaken to be `1`. `DIM` is a scalar of type `INTEGER` in the\nrange of 1 \\leq DIM \\leq n) where n is the rank of `ARRAY`. \nIf the rank of `ARRAY` is one, then all elements of `ARRAY` are shifted\nby `SHIFT` places. If rank is greater than one, then all complete rank one\nsections of `ARRAY` along the given dimension are shifted. Elements\nshifted out one end of each rank one section are shifted back in the other end.\n\n\n\n### Syntax\n`RESULT = CSHIFT(ARRAY, SHIFT [, DIM])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array of any type. \n\n | `SHIFT` | The type shall be `INTEGER`. \n\n | `DIM` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nReturns an array of same type and rank as the `ARRAY` argument.\n\n\n\n### Example\n```\n\n\nprogram test_cshift\n\n    integer, dimension(3,3) :: a\n\n    a = reshape( (/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), (/ 3, 3 /))\n\n    print '(3i3)', a(1,:)\n\n    print '(3i3)', a(2,:)\n\n    print '(3i3)', a(3,:)\n\n    a = cshift(a, SHIFT=(/1, 2, -1/), DIM=2)\n\n    print *\n\n    print '(3i3)', a(1,:)\n\n    print '(3i3)', a(2,:)\n\n    print '(3i3)', a(3,:)\n\nend program test_cshift\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/CTIME.json b/doc/intrinsics/CTIME.json deleted file mode 100644 index 5401792e..00000000 --- a/doc/intrinsics/CTIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "CTIME", - "docstr": "`CTIME` — Convert a time into a string\n\n### Description\n`CTIME` converts a system time value, such as returned by\n`TIME8`, to a string. The output will be of the form ‘Sat\nAug 19 18:13:14 1995’.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n. \n\n | `RESULT = CTIME(TIME)`.\n\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `RESULT` | The type shall be of type `CHARACTER` and\nof default kind. It is an `INTENT(OUT)` argument. If the length\nof this variable is too short for the time and date string to fit\ncompletely, it will be blank on procedure return.\n\n\n\n\n\n\n### Return value\nThe converted date and time as a string.\n\n\n\n### Example\n```\n\n\nprogram test_ctime\n\n    integer(8) :: i\n\n    character(len=30) :: date\n\n    i = time8()\n\n\n    ! Do something, main part of the program\n\n\n    call ctime(i,date)\n\n    print *, 'Program was started on ', date\n\nend program test_ctime\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nDATE_AND_TIME, GMTIME, LTIME, TIME, TIME8\n" -} diff --git a/doc/intrinsics/C_ASSOCIATED.json b/doc/intrinsics/C_ASSOCIATED.json deleted file mode 100644 index 640db87e..00000000 --- a/doc/intrinsics/C_ASSOCIATED.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "C_ASSOCIATED", - "docstr": "`C_ASSOCIATED` — Status of a C pointer\n\n### Description\n`C_ASSOCIATED(c_ptr_1[, c_ptr_2])` determines the status of the C pointer\n`c_ptr_1` or if `c_ptr_1` is associated with the target `c_ptr_2`.\n\n\n\n### Syntax\n`RESULT = C_ASSOCIATED(c_ptr_1[, c_ptr_2])`\n\n\n### Arguments\n\n \n. \n\n | `c_ptr_2` | (Optional) Scalar of the same type as `c_ptr_1`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL`; it is `.false.` if either\n`c_ptr_1` is a C NULL pointer or if `c_ptr1` and `c_ptr_2`\npoint to different addresses.\n\n\n\n### Example\n```\n\n\nsubroutine association_test(a,b)\n\n  use iso_c_binding, only: c_associated, c_loc, c_ptr\n\n  implicit none\n\n  real, pointer :: a\n\n  type(c_ptr) :: b\n\n  if(c_associated(b, c_loc(a))) &\n\n     stop 'b and a do not point to same target'\n\nend subroutine association_test\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_LOC, C_FUNLOC\n" -} diff --git a/doc/intrinsics/C_FUNLOC.json b/doc/intrinsics/C_FUNLOC.json deleted file mode 100644 index c471fb71..00000000 --- a/doc/intrinsics/C_FUNLOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "C_FUNLOC", - "docstr": "`C_FUNLOC` — Obtain the C address of a procedure\n\n### Description\n`C_FUNLOC(x)` determines the C address of the argument.\n\n\n\n### Syntax\n`RESULT = C_FUNLOC(x)`\n\n\n### Arguments\n\n \n | `x` | Interoperable function or pointer to such function.\n\n\n\n\n\n\n### Return value\nThe return value is of type `C_FUNPTR` and contains the C address\nof the argument.\n\n\n\n### Example\n```\n\n\nmodule x\n\n  use iso_c_binding\n\n  implicit none\n\ncontains\n\n  subroutine sub(a) bind(c)\n\n    real(c_float) :: a\n\n    a = sqrt(a)+5.0\n\n  end subroutine sub\n\nend module x\n\nprogram main\n\n  use iso_c_binding\n\n  use x\n\n  implicit none\n\n  interface\n\n    subroutine my_routine(p) bind(c,name='myC_func')\n\n      import :: c_funptr\n\n      type(c_funptr), intent(in) :: p\n\n    end subroutine\n\n  end interface\n\n  call my_routine(c_funloc(sub))\n\nend program main\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_ASSOCIATED, C_LOC, C_F_POINTER, C_F_PROCPOINTER\n" -} diff --git a/doc/intrinsics/C_F_POINTER.json b/doc/intrinsics/C_F_POINTER.json deleted file mode 100644 index 1079b4e3..00000000 --- a/doc/intrinsics/C_F_POINTER.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "C_F_POINTER", - "docstr": "`C_F_POINTER` — Convert C into Fortran pointer\n\n### Description\n`C_F_POINTER(CPTR, FPTR[, SHAPE])` assigns the target of the C pointer\n`CPTR` to the Fortran pointer `FPTR` and specifies its shape.\n\n\n\n### Syntax\n`CALL C_F_POINTER(CPTR, FPTR[, SHAPE])`\n\n\n### Arguments\n\n \n. It is\n`INTENT(IN)`. \n\n | `FPTR` | pointer interoperable with `cptr`. It is\n`INTENT(OUT)`. \n\n | `SHAPE` | (Optional) Rank-one array of type `INTEGER`with `INTENT(IN)`. It shall be present\nif and only if `fptr` is an array. The size\nmust be equal to the rank of `fptr`.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram main\n\n  use iso_c_binding\n\n  implicit none\n\n  interface\n\n    subroutine my_routine(p) bind(c,name='myC_func')\n\n      import :: c_ptr\n\n      type(c_ptr), intent(out) :: p\n\n    end subroutine\n\n  end interface\n\n  type(c_ptr) :: cptr\n\n  real,pointer :: a(:)\n\n  call my_routine(cptr)\n\n  call c_f_pointer(cptr, a, [12])\n\nend program main\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nC_LOC, C_F_PROCPOINTER\n" -} diff --git a/doc/intrinsics/C_F_PROCPOINTER.json b/doc/intrinsics/C_F_PROCPOINTER.json deleted file mode 100644 index b466c937..00000000 --- a/doc/intrinsics/C_F_PROCPOINTER.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "C_F_PROCPOINTER", - "docstr": "`C_F_PROCPOINTER` — Convert C into Fortran procedure pointer\n\n### Description\n`C_F_PROCPOINTER(CPTR, FPTR)` Assign the target of the C function pointer\n`CPTR` to the Fortran procedure pointer `FPTR`.\n\n\n\n### Syntax\n`CALL C_F_PROCPOINTER(cptr, fptr)`\n\n\n### Arguments\n\n \n. It is\n`INTENT(IN)`. \n\n | `FPTR` | procedure pointer interoperable with `cptr`. It is\n`INTENT(OUT)`.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram main\n\n  use iso_c_binding\n\n  implicit none\n\n  abstract interface\n\n    function func(a)\n\n      import :: c_float\n\n      real(c_float), intent(in) :: a\n\n      real(c_float) :: func\n\n    end function\n\n  end interface\n\n  interface\n\n     function getIterFunc() bind(c,name=\"getIterFunc\")\n\n       import :: c_funptr\n\n       type(c_funptr) :: getIterFunc\n\n     end function\n\n  end interface\n\n  type(c_funptr) :: cfunptr\n\n  procedure(func), pointer :: myFunc\n\n  cfunptr = getIterFunc()\n\n  call c_f_procpointer(cfunptr, myFunc)\n\nend program main\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nC_LOC, C_F_POINTER\n" -} diff --git a/doc/intrinsics/C_LOC.json b/doc/intrinsics/C_LOC.json deleted file mode 100644 index 41d13f79..00000000 --- a/doc/intrinsics/C_LOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "C_LOC", - "docstr": "`C_LOC` — Obtain the C address of an object\n\n### Description\n`C_LOC(X)` determines the C address of the argument.\n\n\n\n### Syntax\n`RESULT = C_LOC(X)`\n\n\n### Arguments\n\n \n | `X` | Shall have either the POINTER or TARGET attribute. It shall not be a coindexed object. It shall either be a variable with interoperable type and kind type parameters, or be a scalar, nonpolymorphic variable with no length type parameters.\n\n\n\n\n\n\n\n### Return value\nThe return value is of type `C_PTR` and contains the C address\nof the argument.\n\n\n\n### Example\n```\n\n\nsubroutine association_test(a,b)\n\n  use iso_c_binding, only: c_associated, c_loc, c_ptr\n\n  implicit none\n\n  real, pointer :: a\n\n  type(c_ptr) :: b\n\n  if(c_associated(b, c_loc(a))) &\n\n     stop 'b and a do not point to same target'\n\nend subroutine association_test\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_ASSOCIATED, C_FUNLOC, C_F_POINTER, C_F_PROCPOINTER\n" -} diff --git a/doc/intrinsics/C_SIZEOF.json b/doc/intrinsics/C_SIZEOF.json deleted file mode 100644 index 5bff0ced..00000000 --- a/doc/intrinsics/C_SIZEOF.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "C_SIZEOF", - "docstr": "`C_SIZEOF` — Size in bytes of an expression\n\n### Description\n`C_SIZEOF(X)` calculates the number of bytes of storage the\nexpression `X` occupies.\n\n\n\n### Syntax\n`N = C_SIZEOF(X)`\n\n\n### Arguments\n\n \n | `X` | The argument shall be an interoperable data entity.\n\n\n\n\n\n\n### Return value\nThe return value is of type integer and of the system-dependent kind\n`C_SIZE_T` (from the `ISO_C_BINDING` module). Its value is the\nnumber of bytes occupied by the argument. If the argument has the\n`POINTER` attribute, the number of bytes of the storage area pointed\nto is returned. If the argument is of a derived type with `POINTER`or `ALLOCATABLE` components, the return value does not account for\nthe sizes of the data pointed to by these components.\n\n\n\n### Example\n```\n\n\nuse iso_c_binding\n\ninteger(c_int) :: i\n\nreal(c_float) :: r, s(5)\n\nprint *, (c_sizeof(s)/c_sizeof(r) == 5)\n\nend\n\n```\n\n \nThe example will print `.TRUE.` unless you are using a platform\nwhere default `REAL` variables are unusually padded.\n\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nInquiry function of the module `ISO_C_BINDING`\n\n\n### See also\nSIZEOF, STORAGE_SIZE\n" -} diff --git a/doc/intrinsics/DATE_AND_TIME.json b/doc/intrinsics/DATE_AND_TIME.json deleted file mode 100644 index 6300445f..00000000 --- a/doc/intrinsics/DATE_AND_TIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DATE_AND_TIME", - "docstr": "`DATE_AND_TIME` — Date and time subroutine\n\n### Description\n`DATE_AND_TIME(DATE, TIME, ZONE, VALUES)` gets the corresponding date and\ntime information from the real-time system clock. `DATE` is\n`INTENT(OUT)` and has form ccyymmdd. `TIME` is `INTENT(OUT)` and\nhas form hhmmss.sss. `ZONE` is `INTENT(OUT)` and has form (+-)hhmm,\nrepresenting the difference with respect to Coordinated Universal Time (UTC). \nUnavailable time and date parameters return blanks.\n\n \n`VALUES` is `INTENT(OUT)` and provides the following:\n\n \n\n: | The year\n\n | `VALUE(2)`: | The month\n\n | `VALUE(3)`: | The day of the month\n\n | `VALUE(4)`: | Time difference with UTC in minutes\n\n | `VALUE(5)`: | The hour of the day\n\n | `VALUE(6)`: | The minutes of the hour\n\n | `VALUE(7)`: | The seconds of the minute\n\n | `VALUE(8)`: | The milliseconds of the second\n\n\n\n\n\n\n### Syntax\n`CALL DATE_AND_TIME([DATE, TIME, ZONE, VALUES])`\n\n\n### Arguments\n\n \n\nor larger, and of default kind. \n\n | `TIME` | (Optional) The type shall be `CHARACTER(LEN=10)`or larger, and of default kind. \n\n | `ZONE` | (Optional) The type shall be `CHARACTER(LEN=5)`or larger, and of default kind. \n\n | `VALUES` | (Optional) The type shall be `INTEGER(8)`.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_time_and_date\n\n    character(8) :: date\n\n    character(10) :: time\n\n    character(5) :: zone\n\n    integer,dimension(8) :: values\n\n    ! using keyword arguments\n\n    call date_and_time(date,time,zone,values)\n\n    call date_and_time(DATE=date,ZONE=zone)\n\n    call date_and_time(TIME=time)\n\n    call date_and_time(VALUES=values)\n\n    print '(a,2x,a,2x,a)', date, time, zone\n\n    print '(8i5)', values\n\nend program test_time_and_date\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nCPU_TIME, SYSTEM_CLOCK\n" -} diff --git a/doc/intrinsics/DBLE.json b/doc/intrinsics/DBLE.json deleted file mode 100644 index eb95ac8c..00000000 --- a/doc/intrinsics/DBLE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DBLE", - "docstr": "`DBLE` — Double conversion function\n\n### Description\n`DBLE(A)` Converts `A` to double precision real type.\n\n\n\n### Syntax\n`RESULT = DBLE(A)`\n\n\n### Arguments\n\n \n,\nor `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type double precision real.\n\n\n\n### Example\n```\n\n\nprogram test_dble\n\n    real :: x = 2.18\n\n    integer :: i = 5\n\n    complex :: z = (2.3,1.14)\n\n    print *, dble(x), dble(i), dble(z)\n\nend program test_dble\n\n```\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nREAL\n" -} diff --git a/doc/intrinsics/DCMPLX.json b/doc/intrinsics/DCMPLX.json deleted file mode 100644 index 9734b100..00000000 --- a/doc/intrinsics/DCMPLX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DCMPLX", - "docstr": "`DCMPLX` — Double complex conversion function\n\n### Description\n`DCMPLX(X [,Y])` returns a double complex number where `X` is\nconverted to the real component. If `Y` is present it is converted to the\nimaginary component. If `Y` is not present then the imaginary component is\nset to 0.0. If `X` is complex then `Y` must not be present.\n\n\n\n### Syntax\n`RESULT = DCMPLX(X [, Y])`\n\n\n### Arguments\n\n \n,\nor `COMPLEX`. \n\n | `Y` | (Optional if `X` is not `COMPLEX`.) May be\n`INTEGER` or `REAL`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `COMPLEX(8)`\n\n\n### Example\n```\n\n\nprogram test_dcmplx\n\n    integer :: i = 42\n\n    real :: x = 3.14\n\n    complex :: z\n\n    z = cmplx(i, x)\n\n    print *, dcmplx(i)\n\n    print *, dcmplx(x)\n\n    print *, dcmplx(z)\n\n    print *, dcmplx(x,i)\n\nend program test_dcmplx\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/DIGITS.json b/doc/intrinsics/DIGITS.json deleted file mode 100644 index e5a6742c..00000000 --- a/doc/intrinsics/DIGITS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DIGITS", - "docstr": "`DIGITS` — Significant binary digits function\n\n### Description\n`DIGITS(X)` returns the number of significant binary digits of the internal\nmodel representation of `X`. For example, on a system using a 32-bit\nfloating point representation, a default real number would likely return 24.\n\n\n\n### Syntax\n`RESULT = DIGITS(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`.\n\n\n\n### Example\n```\n\n\nprogram test_digits\n\n    integer :: i = 12345\n\n    real :: x = 3.143\n\n    real(8) :: y = 2.33\n\n    print *, digits(i)\n\n    print *, digits(x)\n\n    print *, digits(y)\n\nend program test_digits\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/DIM.json b/doc/intrinsics/DIM.json deleted file mode 100644 index 3fcbfffb..00000000 --- a/doc/intrinsics/DIM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DIM", - "docstr": "`DIM` — Positive difference\n\n### Description\n`DIM(X,Y)` returns the difference `X-Y` if the result is positive;\notherwise returns zero.\n\n\n\n### Syntax\n`RESULT = DIM(X, Y)`\n\n\n### Arguments\n\n \n\n\n | `Y` | The type shall be the same type and kind as `X`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` or `REAL`.\n\n\n\n### Example\n```\n\n\nprogram test_dim\n\n    integer :: i\n\n    real(8) :: x\n\n    i = dim(4, 15)\n\n    x = dim(4.345_8, 2.111_8)\n\n    print *, i\n\n    print *, x\n\nend program test_dim\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DIM(X,Y)` | `REAL(4) X, Y` | `REAL(4)` | Fortran 77 and later\n\n | `IDIM(X,Y)` | `INTEGER(4) X, Y` | `INTEGER(4)` | Fortran 77 and later\n\n | `DDIM(X,Y)` | `REAL(8) X, Y` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/DOT_PRODUCT.json b/doc/intrinsics/DOT_PRODUCT.json deleted file mode 100644 index d41c1c76..00000000 --- a/doc/intrinsics/DOT_PRODUCT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DOT_PRODUCT", - "docstr": "`DOT_PRODUCT` — Dot product function\n\n### Description\n`DOT_PRODUCT(VECTOR_A, VECTOR_B)` computes the dot product multiplication\nof two vectors `VECTOR_A` and `VECTOR_B`. The two vectors may be\neither numeric or logical and must be arrays of rank one and of equal size. If\nthe vectors are `INTEGER` or `REAL`, the result is\n`SUM(VECTOR_A*VECTOR_B)`. If the vectors are `COMPLEX`, the result\nis `SUM(CONJG(VECTOR_A)*VECTOR_B)`. If the vectors are `LOGICAL`,\nthe result is `ANY(VECTOR_A .AND. VECTOR_B)`.\n\n\n\n### Syntax\n`RESULT = DOT_PRODUCT(VECTOR_A, VECTOR_B)`\n\n\n### Arguments\n\n \n, rank 1. \n\n | `VECTOR_B` | The type shall be numeric if `VECTOR_A` is of numeric type or `LOGICAL` if `VECTOR_A` is of type `LOGICAL`. `VECTOR_B` shall be a rank-one array.\n\n\n\n\n\n\n### Return value\nIf the arguments are numeric, the return value is a scalar of numeric type,\n`INTEGER`, `REAL`, or `COMPLEX`. If the arguments are\n`LOGICAL`, the return value is `.TRUE.` or `.FALSE.`.\n\n\n\n### Example\n```\n\n\nprogram test_dot_prod\n\n    integer, dimension(3) :: a, b\n\n    a = (/ 1, 2, 3 /)\n\n    b = (/ 4, 5, 6 /)\n\n    print '(3i3)', a\n\n    print *\n\n    print '(3i3)', b\n\n    print *\n\n    print *, dot_product(a,b)\n\nend program test_dot_prod\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/DPROD.json b/doc/intrinsics/DPROD.json deleted file mode 100644 index c7a2d9bf..00000000 --- a/doc/intrinsics/DPROD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DPROD", - "docstr": "`DPROD` — Double product function\n\n### Description\n`DPROD(X,Y)` returns the product `X*Y`.\n\n\n\n### Syntax\n`RESULT = DPROD(X, Y)`\n\n\n### Arguments\n\n \n. \n\n | `Y` | The type shall be `REAL`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL(8)`.\n\n\n\n### Example\n```\n\n\nprogram test_dprod\n\n    real :: x = 5.2\n\n    real :: y = 2.3\n\n    real(8) :: d\n\n    d = dprod(x,y)\n\n    print *, d\n\nend program test_dprod\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DPROD(X,Y)` | `REAL(4) X, Y` | `REAL(8)` | Fortran 77 and later\n\n\n\n \n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/DREAL.json b/doc/intrinsics/DREAL.json deleted file mode 100644 index 74f2ecec..00000000 --- a/doc/intrinsics/DREAL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DREAL", - "docstr": "`DREAL` — Double real part function\n\n### Description\n`DREAL(Z)` returns the real part of complex variable `Z`.\n\n\n\n### Syntax\n`RESULT = DREAL(A)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL(8)`.\n\n\n\n### Example\n```\n\n\nprogram test_dreal\n\n    complex(8) :: z = (1.3_8,7.2_8)\n\n    print *, dreal(z)\n\nend program test_dreal\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nAIMAG\n\n " -} diff --git a/doc/intrinsics/DSHIFTL.json b/doc/intrinsics/DSHIFTL.json deleted file mode 100644 index 6ea5e634..00000000 --- a/doc/intrinsics/DSHIFTL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DSHIFTL", - "docstr": "`DSHIFTL` — Combined left shift\n\n### Description\n`DSHIFTL(I, J, SHIFT)` combines bits of `I` and `J`. The\nrightmost `SHIFT` bits of the result are the leftmost `SHIFT`\nbits of `J`, and the remaining bits are the rightmost bits of\n`I`.\n\n\n\n### Syntax\n`RESULT = DSHIFTL(I, J, SHIFT)`\n\n\n### Arguments\n\n \n or a BOZ constant. \n\n | `J` | Shall be of type `INTEGER` or a BOZ constant. \nIf both `I` and `J` have integer type, then they shall have\nthe same kind type parameter. `I` and `J` shall not both be\nBOZ constants. \n\n | `SHIFT` | Shall be of type `INTEGER`. It shall\nbe nonnegative. If `I` is not a BOZ constant, then `SHIFT`\nshall be less than or equal to `BIT_SIZE(I)`; otherwise,\n`SHIFT` shall be less than or equal to `BIT_SIZE(J)`.\n\n\n\n\n\n\n### Return value\nIf either `I` or `J` is a BOZ constant, it is first converted\nas if by the intrinsic function `INT` to an integer type with the\nkind type parameter of the other.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nDSHIFTR\n" -} diff --git a/doc/intrinsics/DSHIFTR.json b/doc/intrinsics/DSHIFTR.json deleted file mode 100644 index 477f972e..00000000 --- a/doc/intrinsics/DSHIFTR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DSHIFTR", - "docstr": "`DSHIFTR` — Combined right shift\n\n### Description\n`DSHIFTR(I, J, SHIFT)` combines bits of `I` and `J`. The\nleftmost `SHIFT` bits of the result are the rightmost `SHIFT`\nbits of `I`, and the remaining bits are the leftmost bits of\n`J`.\n\n\n\n### Syntax\n`RESULT = DSHIFTR(I, J, SHIFT)`\n\n\n### Arguments\n\n \n or a BOZ constant. \n\n | `J` | Shall be of type `INTEGER` or a BOZ constant. \nIf both `I` and `J` have integer type, then they shall have\nthe same kind type parameter. `I` and `J` shall not both be\nBOZ constants. \n\n | `SHIFT` | Shall be of type `INTEGER`. It shall\nbe nonnegative. If `I` is not a BOZ constant, then `SHIFT`\nshall be less than or equal to `BIT_SIZE(I)`; otherwise,\n`SHIFT` shall be less than or equal to `BIT_SIZE(J)`.\n\n\n\n\n\n\n### Return value\nIf either `I` or `J` is a BOZ constant, it is first converted\nas if by the intrinsic function `INT` to an integer type with the\nkind type parameter of the other.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nDSHIFTL\n" -} diff --git a/doc/intrinsics/DTIME.json b/doc/intrinsics/DTIME.json deleted file mode 100644 index 4e3ef1b8..00000000 --- a/doc/intrinsics/DTIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "DTIME", - "docstr": "`DTIME` — Execution time subroutine (or function)\n\n### Description\n`DTIME(VALUES, TIME)` initially returns the number of seconds of runtime\nsince the start of the process's execution in `TIME`. `VALUES`\nreturns the user and system components of this time in `VALUES(1)` and\n`VALUES(2)` respectively. `TIME` is equal to VALUES(1) +\nVALUES(2).\n\n \nSubsequent invocations of `DTIME` return values accumulated since the\nprevious invocation.\n\n \n\nOn some systems, the underlying timings are represented using types with\nsufficiently small limits that overflows (wrap around) are possible, such as\n32-bit types. Therefore, the values returned by this intrinsic might be, or\nbecome, negative, or numerically less than previous values, during a single\nrun of the compiled program.\n\n \n\nPlease note, that this implementation is thread safe if used within OpenMP\ndirectives, i.e., its state will be consistent while called from multiple\nthreads. However, if `DTIME` is called from multiple threads, the result\nis still the time since the last invocation. This may not give the intended\nresults. If possible, use `CPU_TIME` instead.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\n`VALUES` and `TIME` are `INTENT(OUT)` and provide the following:\n\n \n\n: | User time in seconds. \n\n | `VALUES(2)`: | System time in seconds. \n\n | `TIME`: | Run time since start in seconds.\n\n\n\n\n\n\n### Syntax\n\n \n. \n\n | `TIME = DTIME(VALUES)`, (not recommended).\n\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `TIME` | The type shall be `REAL(4)`.\n\n\n\n\n\n\n### Return value\nElapsed time in seconds since the last invocation or since the start of program\nexecution if not called before.\n\n\n\n### Example\n```\n\n\nprogram test_dtime\n\n    integer(8) :: i, j\n\n    real, dimension(2) :: tarray\n\n    real :: result\n\n    call dtime(tarray, result)\n\n    print *, result\n\n    print *, tarray(1)\n\n    print *, tarray(2)\n\n    do i=1,100000000 ! Just a delay\n\n        j = i * i - i\n\n    end do\n\n    call dtime(tarray, result)\n\n    print *, result\n\n    print *, tarray(1)\n\n    print *, tarray(2)\n\nend program test_dtime\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCPU_TIME\n\n " -} diff --git a/doc/intrinsics/EOSHIFT.json b/doc/intrinsics/EOSHIFT.json deleted file mode 100644 index ceb940b1..00000000 --- a/doc/intrinsics/EOSHIFT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EOSHIFT", - "docstr": "`EOSHIFT` — End-off shift elements of an array\n\n### Description\n`EOSHIFT(ARRAY, SHIFT[, BOUNDARY, DIM])` performs an end-off shift on\nelements of `ARRAY` along the dimension of `DIM`. If `DIM` is\nomitted it is taken to be `1`. `DIM` is a scalar of type\n`INTEGER` in the range of 1 \\leq DIM \\leq n) where n is the\nrank of `ARRAY`. If the rank of `ARRAY` is one, then all elements of\n`ARRAY` are shifted by `SHIFT` places. If rank is greater than one,\nthen all complete rank one sections of `ARRAY` along the given dimension are\nshifted. Elements shifted out one end of each rank one section are dropped. If\n`BOUNDARY` is present then the corresponding value of from `BOUNDARY`\nis copied back in the other end. If `BOUNDARY` is not present then the\nfollowing are copied in depending on the type of `ARRAY`.\n\n \n\n\n | Numeric | 0 of the type and kind of `ARRAY`. \n\n | Logical | `.FALSE.`. \n\n | Character(`len`) | `len` blanks.\n\n\n\n\n\n\n### Syntax\n`RESULT = EOSHIFT(ARRAY, SHIFT [, BOUNDARY, DIM])`\n\n\n### Arguments\n\n \n | `ARRAY` | May be any type, not scalar. \n\n | `SHIFT` | The type shall be `INTEGER`. \n\n | `BOUNDARY` | Same type as `ARRAY`. \n\n | `DIM` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nReturns an array of same type and rank as the `ARRAY` argument.\n\n\n\n### Example\n```\n\n\nprogram test_eoshift\n\n    integer, dimension(3,3) :: a\n\n    a = reshape( (/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), (/ 3, 3 /))\n\n    print '(3i3)', a(1,:)\n\n    print '(3i3)', a(2,:)\n\n    print '(3i3)', a(3,:)\n\n    a = EOSHIFT(a, SHIFT=(/1, 2, 1/), BOUNDARY=-5, DIM=2)\n\n    print *\n\n    print '(3i3)', a(1,:)\n\n    print '(3i3)', a(2,:)\n\n    print '(3i3)', a(3,:)\n\nend program test_eoshift\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/EPSILON.json b/doc/intrinsics/EPSILON.json deleted file mode 100644 index 4218905d..00000000 --- a/doc/intrinsics/EPSILON.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EPSILON", - "docstr": "`EPSILON` — Epsilon function\n\n### Description\n`EPSILON(X)` returns the smallest number `E` of the same kind\nas `X` such that 1 + E > 1.\n\n\n\n### Syntax\n`RESULT = EPSILON(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of same type as the argument.\n\n\n\n### Example\n```\n\n\nprogram test_epsilon\n\n    real :: x = 3.143\n\n    real(8) :: y = 2.33\n\n    print *, EPSILON(x)\n\n    print *, EPSILON(y)\n\nend program test_epsilon\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/ERF.json b/doc/intrinsics/ERF.json deleted file mode 100644 index d26f802e..00000000 --- a/doc/intrinsics/ERF.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ERF", - "docstr": "`ERF` — Error function\n\n### Description\n`ERF(X)` computes the error function of `X`.\n\n\n\n### Syntax\n`RESULT = ERF(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL`, of the same kind as\n`X` and lies in the range -1 \\leq erf (x) \\leq 1 .\n\n\n\n### Example\n```\n\n\nprogram test_erf\n\n  real(8) :: x = 0.17_8\n\n  x = erf(x)\n\nend program test_erf\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DERF(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ERFC.json b/doc/intrinsics/ERFC.json deleted file mode 100644 index bf24835e..00000000 --- a/doc/intrinsics/ERFC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ERFC", - "docstr": "`ERFC` — Error function\n\n### Description\n`ERFC(X)` computes the complementary error function of `X`.\n\n\n\n### Syntax\n`RESULT = ERFC(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and of the same kind as `X`. \nIt lies in the range 0 \\leq erfc (x) \\leq 2 .\n\n\n\n### Example\n```\n\n\nprogram test_erfc\n\n  real(8) :: x = 0.17_8\n\n  x = erfc(x)\n\nend program test_erfc\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DERFC(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ERFC_SCALED.json b/doc/intrinsics/ERFC_SCALED.json deleted file mode 100644 index 58884946..00000000 --- a/doc/intrinsics/ERFC_SCALED.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ERFC_SCALED", - "docstr": "`ERFC_SCALED` — Error function\n\n### Description\n`ERFC_SCALED(X)` computes the exponentially-scaled complementary\nerror function of `X`.\n\n\n\n### Syntax\n`RESULT = ERFC_SCALED(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and of the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_erfc_scaled\n\n  real(8) :: x = 0.17_8\n\n  x = erfc_scaled(x)\n\nend program test_erfc_scaled\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ETIME.json b/doc/intrinsics/ETIME.json deleted file mode 100644 index a5f64b63..00000000 --- a/doc/intrinsics/ETIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ETIME", - "docstr": "`ETIME` — Execution time subroutine (or function)\n\n### Description\n`ETIME(VALUES, TIME)` returns the number of seconds of runtime\nsince the start of the process's execution in `TIME`. `VALUES`\nreturns the user and system components of this time in `VALUES(1)` and\n`VALUES(2)` respectively. `TIME` is equal to `VALUES(1) + VALUES(2)`.\n\n \nOn some systems, the underlying timings are represented using types with\nsufficiently small limits that overflows (wrap around) are possible, such as\n32-bit types. Therefore, the values returned by this intrinsic might be, or\nbecome, negative, or numerically less than previous values, during a single\nrun of the compiled program.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\n`VALUES` and `TIME` are `INTENT(OUT)` and provide the following:\n\n \n\n: | User time in seconds. \n\n | `VALUES(2)`: | System time in seconds. \n\n | `TIME`: | Run time since start in seconds.\n\n\n\n\n\n\n### Syntax\n\n \n. \n\n | `TIME = ETIME(VALUES)`, (not recommended).\n\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `TIME` | The type shall be `REAL(4)`.\n\n\n\n\n\n\n### Return value\nElapsed time in seconds since the start of program execution.\n\n\n\n### Example\n```\n\n\nprogram test_etime\n\n    integer(8) :: i, j\n\n    real, dimension(2) :: tarray\n\n    real :: result\n\n    call ETIME(tarray, result)\n\n    print *, result\n\n    print *, tarray(1)\n\n    print *, tarray(2)\n\n    do i=1,100000000 ! Just a delay\n\n        j = i * i - i\n\n    end do\n\n    call ETIME(tarray, result)\n\n    print *, result\n\n    print *, tarray(1)\n\n    print *, tarray(2)\n\nend program test_etime\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCPU_TIME\n\n " -} diff --git a/doc/intrinsics/EVENT_QUERY.json b/doc/intrinsics/EVENT_QUERY.json deleted file mode 100644 index e83405e5..00000000 --- a/doc/intrinsics/EVENT_QUERY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EVENT_QUERY", - "docstr": "`EVENT_QUERY` — Query whether a coarray event has occurred\n\n### Description\n`EVENT_QUERY` assignes the number of events to `COUNT` which have been\nposted to the `EVENT` variable and not yet been removed by calling\n`EVENT WAIT`. When `STAT` is present and the invokation was successful,\nit is assigned the value 0. If it is present and the invokation has failed,\nit is assigned a positive value and `COUNT` is assigned the value -1.\n\n\n\n### Syntax\n`CALL EVENT_QUERY (EVENT, COUNT [, STAT])`\n\n\n### Arguments\n\n \n,\ndefined in `ISO_FORTRAN_ENV`; shall not be coindexed. \n\n | `COUNT` | (intent(out))Scalar integer with at least the\nprecision of default integer. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n  use iso_fortran_env\n\n  implicit none\n\n  type(event_type) :: event_value_has_been_set[*]\n\n  integer :: cnt\n\n  if (this_image() == 1) then\n\n    call event_query (event_value_has_been_set, cnt)\n\n    if (cnt > 0) write(*,*) \"Value has been set\"\n\n  elseif (this_image() == 2) then\n\n    event post (event_value_has_been_set[1])\n\n  end if\n\nend program atomic\n\n```\n\n \n\n### Standard\nTS 18508 or later\n\n\n\n### Class\n subroutine\n\n\n" -} diff --git a/doc/intrinsics/EXECUTE_COMMAND_LINE.json b/doc/intrinsics/EXECUTE_COMMAND_LINE.json deleted file mode 100644 index 164a8d98..00000000 --- a/doc/intrinsics/EXECUTE_COMMAND_LINE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EXECUTE_COMMAND_LINE", - "docstr": "`EXECUTE_COMMAND_LINE` — Execute a shell command\n\n### Description\n`EXECUTE_COMMAND_LINE` runs a shell command, synchronously or\nasynchronously.\n\n \nThe `COMMAND` argument is passed to the shell and executed, using\nthe C library's `system` call. (The shell is `sh` on Unix\nsystems, and `cmd.exe` on Windows.) If `WAIT` is present\nand has the value false, the execution of the command is asynchronous\nif the system supports it; otherwise, the command is executed\nsynchronously.\n\n \n\nThe three last arguments allow the user to get status information. After\nsynchronous execution, `EXITSTAT` contains the integer exit code of\nthe command, as returned by `system`. `CMDSTAT` is set to zero\nif the command line was executed (whatever its exit status was). \n`CMDMSG` is assigned an error message if an error has occurred.\n\n \n\nNote that the `system` function need not be thread-safe. It is\nthe responsibility of the user to ensure that `system` is not\ncalled concurrently.\n\n\n\n\n### Syntax\n`CALL EXECUTE_COMMAND_LINE(COMMAND [, WAIT, EXITSTAT, CMDSTAT, CMDMSG ])`\n\n\n### Arguments\n\n \n scalar. \n\n | `WAIT` | (Optional) Shall be a default `LOGICAL` scalar. \n\n | `EXITSTAT` | (Optional) Shall be an `INTEGER` of the\ndefault kind. \n\n | `CMDSTAT` | (Optional) Shall be an `INTEGER` of the\ndefault kind. \n\n | `CMDMSG` | (Optional) Shall be an `CHARACTER` scalar of the\ndefault kind.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_exec\n\n  integer :: i\n\n\n  call execute_command_line (\"external_prog.exe\", exitstat=i)\n\n  print *, \"Exit status of external_prog.exe was \", i\n\n\n  call execute_command_line (\"reindex_files.exe\", wait=.false.)\n\n  print *, \"Now reindexing files in the background\"\n\n\nend program test_exec\n\n```\n\n\n\n### Notes\n\nBecause this intrinsic is implemented in terms of the `system`function call, its behavior with respect to signaling is processor\ndependent. In particular, on POSIX-compliant systems, the SIGINT and\nSIGQUIT signals will be ignored, and the SIGCHLD will be blocked. As\nsuch, if the parent process is terminated, the child process might not be\nterminated alongside.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nSYSTEM\n" -} diff --git a/doc/intrinsics/EXIT.json b/doc/intrinsics/EXIT.json deleted file mode 100644 index ca3711dc..00000000 --- a/doc/intrinsics/EXIT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EXIT", - "docstr": "`EXIT` — Exit the program with status.\n\n### Description\n`EXIT` causes immediate termination of the program with status. If status\nis omitted it returns the canonical success for the system. All Fortran\nI/O units are closed.\n\n\n\n### Syntax\n`CALL EXIT([STATUS])`\n\n\n### Arguments\n\n \n of the default kind.\n\n\n\n\n\n\n### Return value\n`STATUS` is passed to the parent process on exit.\n\n\n\n### Example\n```\n\n\nprogram test_exit\n\n  integer :: STATUS = 0\n\n  print *, 'This program is going to exit.'\n\n  call EXIT(STATUS)\n\nend program test_exit\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nABORT, KILL\n" -} diff --git a/doc/intrinsics/EXP.json b/doc/intrinsics/EXP.json deleted file mode 100644 index 3cd7506a..00000000 --- a/doc/intrinsics/EXP.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EXP", - "docstr": "`EXP` — Exponential function\n\n### Description\n`EXP(X)` computes the base e exponential of `X`.\n\n\n\n### Syntax\n`RESULT = EXP(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_exp\n\n  real :: x = 1.0\n\n  x = exp(x)\n\nend program test_exp\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `EXP(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DEXP(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n | `CEXP(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | Fortran 77 and later\n\n | `ZEXP(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n | `CDEXP(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/EXPONENT.json b/doc/intrinsics/EXPONENT.json deleted file mode 100644 index adb65340..00000000 --- a/doc/intrinsics/EXPONENT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EXPONENT", - "docstr": "`EXPONENT` — Exponent function\n\n### Description\n`EXPONENT(X)` returns the value of the exponent part of `X`. If `X`\nis zero the value returned is zero.\n\n\n\n### Syntax\n`RESULT = EXPONENT(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type default `INTEGER`.\n\n\n\n### Example\n```\n\n\nprogram test_exponent\n\n  real :: x = 1.0\n\n  integer :: i\n\n  i = exponent(x)\n\n  print *, i\n\n  print *, exponent(0.0)\n\nend program test_exponent\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/EXTENDS_TYPE_OF.json b/doc/intrinsics/EXTENDS_TYPE_OF.json deleted file mode 100644 index 24f216ca..00000000 --- a/doc/intrinsics/EXTENDS_TYPE_OF.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "EXTENDS_TYPE_OF", - "docstr": "`EXTENDS_TYPE_OF` — Query dynamic type for extension\n\n### Description\nQuery dynamic type for extension.\n\n\n\n### Syntax\n`RESULT = EXTENDS_TYPE_OF(A, MOLD)`\n\n\n### Arguments\n\n \n | `A` | Shall be an object of extensible declared type or\nunlimited polymorphic. \n\n | `MOLD` | Shall be an object of extensible declared type or\nunlimited polymorphic.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type default logical. It is true if and only if\nthe dynamic type of A is an extension type of the dynamic type of MOLD.\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSAME_TYPE_AS\n" -} diff --git a/doc/intrinsics/FDATE.json b/doc/intrinsics/FDATE.json deleted file mode 100644 index 097f679a..00000000 --- a/doc/intrinsics/FDATE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FDATE", - "docstr": "`FDATE` — Get the current time as a string\n\n### Description\n`FDATE(DATE)` returns the current date (using the same format as\n`CTIME`) in `DATE`. It is equivalent to CALL CTIME(DATE,\nTIME()).\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n. \n\n | `DATE = FDATE()`.\n\n\n\n\n\n\n### Arguments\n\n \n of the\ndefault kind. It is an `INTENT(OUT)` argument. If the length of\nthis variable is too short for the date and time string to fit\ncompletely, it will be blank on procedure return.\n\n\n\n\n\n\n### Return value\nThe current date and time as a string.\n\n\n\n### Example\n```\n\n\nprogram test_fdate\n\n    integer(8) :: i, j\n\n    character(len=30) :: date\n\n    call fdate(date)\n\n    print *, 'Program started on ', date\n\n    do i = 1, 100000000 ! Just a delay\n\n        j = i * i - i\n\n    end do\n\n    call fdate(date)\n\n    print *, 'Program ended on ', date\n\nend program test_fdate\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nDATE_AND_TIME, CTIME\n" -} diff --git a/doc/intrinsics/FGET.json b/doc/intrinsics/FGET.json deleted file mode 100644 index 1fda27eb..00000000 --- a/doc/intrinsics/FGET.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FGET", - "docstr": "`FGET` — Read a single character in stream mode from stdin\n\n### Description\nRead a single character in stream mode from stdin by bypassing normal\nformatted output. Stream I/O should not be mixed with normal record-oriented\n(formatted or unformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility with\n*g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FGET(C)`
\n\n\n\n\n\n### Arguments\n\n \n and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file, and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fget\n\n  INTEGER, PARAMETER :: strlen = 100\n\n  INTEGER :: status, i = 1\n\n  CHARACTER(len=strlen) :: str = \"\"\n\n\n  WRITE (*,*) 'Enter text:'\n\n  DO\n\n    CALL fget(str(i:i), status)\n\n    if (status /= 0 .OR. i > strlen) exit\n\n    i = i + 1\n\n  END DO\n\n  WRITE (*,*) TRIM(str)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFGETC, FPUT, FPUTC\n" -} diff --git a/doc/intrinsics/FGETC.json b/doc/intrinsics/FGETC.json deleted file mode 100644 index 3fd30125..00000000 --- a/doc/intrinsics/FGETC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FGETC", - "docstr": "`FGETC` — Read a single character in stream mode\n\n### Description\nRead a single character in stream mode by bypassing normal formatted output. \nStream I/O should not be mixed with normal record-oriented (formatted or\nunformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility\nwith *g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FGETC(UNIT, C)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `C` | The type shall be `CHARACTER` and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fgetc\n\n  INTEGER :: fd = 42, status\n\n  CHARACTER :: c\n\n\n  OPEN(UNIT=fd, FILE=\"/etc/passwd\", ACTION=\"READ\", STATUS = \"OLD\")\n\n  DO\n\n    CALL fgetc(fd, c, status)\n\n    IF (status /= 0) EXIT\n\n    call fput(c)\n\n  END DO\n\n  CLOSE(UNIT=fd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFGET, FPUT, FPUTC\n" -} diff --git a/doc/intrinsics/FINDLOC.json b/doc/intrinsics/FINDLOC.json deleted file mode 100644 index 589659e4..00000000 --- a/doc/intrinsics/FINDLOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FINDLOC", - "docstr": "`FINDLOC` — Search an array for a value\n\n### Description\nDetermines the location of the element in the array with the value given in the VALUE argument, or, if the DIM argument is supplied, determines the locations of the maximum element along each row of the array in the DIM direction. If MASK is present, only the elements for which MASK is .TRUE. are considered. If more than one element in the array has the value VALUE, the location returned is that of the first such element in array element order if the BACK is not present or if it is .FALSE.. If BACK is true, the location returned is that of the last such element. If the array has zero size, or all of the elements of MASK are .FALSE., then the result is an array of zeroes. Similarly, if DIM is supplied and all of the elements of MASK along a given row are zero, the result value for that row is zero.\n### Standard\nFortran 2008 and later.\n### Class\nTransformational function\n### Syntax\nRESULT = FINDLOC(ARRAY, VALUE, DIM [, MASK] [,KIND] [,BACK])\nRESULT = FINDLOC(ARRAY, VALUE, [, MASK] [,KIND] [,BACK])\n### Arguments\n- ARRAY: Shall be an array of intrinsic type.\n- VALUE: A scalar of intrinsic type which is in type conformance with ARRAY.\n- DIM: (Optional) Shall be a scalar of type INTEGER, with a value between one and the rank of ARRAY, inclusive. It may not be an optional dummy argument.\n- KIND: (Optional) An INTEGER initialization expression indicating the kind parameter of the result.\n- BACK: (Optional) A scalar of type LOGICAL.\n### Return value\nIf DIM is absent, the result is a rank-one array with a length equal to the rank of ARRAY. If DIM is present, the result is an array with a rank one less than the rank of ARRAY, and a size corresponding to the size of ARRAY with the DIM dimension removed. If DIM is present and ARRAY has a rank of one, the result is a scalar. If the optional argument KIND is present, the result is an integer of kind KIND, otherwise it is of default kind.\n" -} diff --git a/doc/intrinsics/FLOOR.json b/doc/intrinsics/FLOOR.json deleted file mode 100644 index 61fcf940..00000000 --- a/doc/intrinsics/FLOOR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FLOOR", - "docstr": "`FLOOR` — Integer floor function\n\n### Description\n`FLOOR(A)` returns the greatest integer less than or equal to `X`.\n\n\n\n### Syntax\n`RESULT = FLOOR(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER(KIND)` if `KIND` is present\nand of default-kind `INTEGER` otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_floor\n\n    real :: x = 63.29\n\n    real :: y = -63.59\n\n    print *, floor(x) ! returns 63\n\n    print *, floor(y) ! returns -64\n\nend program test_floor\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCEILING, NINT\n\n " -} diff --git a/doc/intrinsics/FLUSH.json b/doc/intrinsics/FLUSH.json deleted file mode 100644 index 32ba8e5d..00000000 --- a/doc/intrinsics/FLUSH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FLUSH", - "docstr": "`FLUSH` — Flush I/O unit(s)\n\n### Description\nFlushes Fortran unit(s) currently open for output. Without the optional\nargument, all units are flushed, otherwise just the unit specified.\n\n\n\n### Syntax\n`CALL FLUSH(UNIT)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Notes\nBeginning with the Fortran 2003 standard, there is a `FLUSH`statement that should be preferred over the `FLUSH` intrinsic.\n\n \nThe `FLUSH` intrinsic and the Fortran 2003 `FLUSH` statement\nhave identical effect: they flush the runtime library's I/O buffer so\nthat the data becomes visible to other processes. This does not guarantee\nthat the data is committed to disk.\n\n \n\nOn POSIX systems, you can request that all data is transferred to the\nstorage device by calling the `fsync` function, with the POSIX file\ndescriptor of the I/O unit as argument (retrieved with GNU intrinsic\n`FNUM`). The following example shows how:\n\n \n
            ! Declare the interface for POSIX fsync function\n            interface\n              function fsync (fd) bind(c,name=\"fsync\")\n              use iso_c_binding, only: c_int\n                integer(c_int), value :: fd\n                integer(c_int) :: fsync\n              end function fsync\n            end interface\n          \n            ! Variable declaration\n            integer :: ret\n          \n            ! Opening unit 10\n            open (10,file=\"foo\")\n          \n            ! ...\n            ! Perform I/O on unit 10\n            ! ...\n          \n            ! Flush and sync\n            flush(10)\n            ret = fsync(fnum(10))\n          \n            ! Handle possible error\n            if (ret /= 0) stop \"Error calling FSYNC\"\n
\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" -} diff --git a/doc/intrinsics/FNUM.json b/doc/intrinsics/FNUM.json deleted file mode 100644 index ebaec3cf..00000000 --- a/doc/intrinsics/FNUM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FNUM", - "docstr": "`FNUM` — File number function\n\n### Description\n`FNUM(UNIT)` returns the POSIX file descriptor number corresponding to the\nopen Fortran I/O unit `UNIT`.\n\n\n\n### Syntax\n`RESULT = FNUM(UNIT)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`\n\n\n### Example\n```\n\n\nprogram test_fnum\n\n  integer :: i\n\n  open (unit=10, status = \"scratch\")\n\n  i = fnum(10)\n\n  print *, i\n\n  close (10)\n\nend program test_fnum\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n" -} diff --git a/doc/intrinsics/FPUT.json b/doc/intrinsics/FPUT.json deleted file mode 100644 index 831c66a2..00000000 --- a/doc/intrinsics/FPUT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FPUT", - "docstr": "`FPUT` — Write a single character in stream mode to stdout\n\n### Description\nWrite a single character in stream mode to stdout by bypassing normal\nformatted output. Stream I/O should not be mixed with normal record-oriented\n(formatted or unformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility with\n*g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FPUT(C)`
\n\n\n\n\n\n### Arguments\n\n \n and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fput\n\n  CHARACTER(len=10) :: str = \"gfortran\"\n\n  INTEGER :: i\n\n  DO i = 1, len_trim(str)\n\n    CALL fput(str(i:i))\n\n  END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFPUTC, FGET, FGETC\n" -} diff --git a/doc/intrinsics/FPUTC.json b/doc/intrinsics/FPUTC.json deleted file mode 100644 index 4c0a6cf4..00000000 --- a/doc/intrinsics/FPUTC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FPUTC", - "docstr": "`FPUTC` — Write a single character in stream mode\n\n### Description\nWrite a single character in stream mode by bypassing normal formatted\noutput. Stream I/O should not be mixed with normal record-oriented\n(formatted or unformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility with\n*g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FPUTC(UNIT, C)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `C` | The type shall be `CHARACTER` and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fputc\n\n  CHARACTER(len=10) :: str = \"gfortran\"\n\n  INTEGER :: fd = 42, i\n\n\n  OPEN(UNIT = fd, FILE = \"out\", ACTION = \"WRITE\", STATUS=\"NEW\")\n\n  DO i = 1, len_trim(str)\n\n    CALL fputc(fd, str(i:i))\n\n  END DO\n\n  CLOSE(fd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFPUT, FGET, FGETC\n" -} diff --git a/doc/intrinsics/FRACTION.json b/doc/intrinsics/FRACTION.json deleted file mode 100644 index a1e4ee65..00000000 --- a/doc/intrinsics/FRACTION.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FRACTION", - "docstr": "`FRACTION` — Fractional part of the model representation\n\n### Description\n`FRACTION(X)` returns the fractional part of the model\nrepresentation of `X`.\n\n\n\n### Syntax\n`Y = FRACTION(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as the argument. \nThe fractional part of the model representation of `X` is returned;\nit is `X * RADIX(X)**(-EXPONENT(X))`.\n\n\n\n### Example\n```\n\n\nprogram test_fraction\n\n  real :: x\n\n  x = 178.1387e-4\n\n  print *, fraction(x), x * radix(x)**(-exponent(x))\n\nend program test_fraction\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/FREE.json b/doc/intrinsics/FREE.json deleted file mode 100644 index c7b3a7b8..00000000 --- a/doc/intrinsics/FREE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FREE", - "docstr": "`FREE` — Frees memory\n\n### Description\nFrees memory previously allocated by `MALLOC`. The `FREE`intrinsic is an extension intended to be used with Cray pointers, and is\nprovided in GNU Fortran to allow user to compile legacy code. For\nnew code using Fortran 95 pointers, the memory de-allocation intrinsic is\n`DEALLOCATE`.\n\n\n\n### Syntax\n`CALL FREE(PTR)`\n\n\n### Arguments\n\n \n. It represents the\nlocation of the memory that should be de-allocated.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\nSee `MALLOC` for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nMALLOC\n" -} diff --git a/doc/intrinsics/FSEEK.json b/doc/intrinsics/FSEEK.json deleted file mode 100644 index b062c165..00000000 --- a/doc/intrinsics/FSEEK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FSEEK", - "docstr": "`FSEEK` — Low level file positioning subroutine\n\n### Description\nMoves `UNIT` to the specified `OFFSET`. If `WHENCE`\nis set to 0, the `OFFSET` is taken as an absolute value `SEEK_SET`,\nif set to 1, `OFFSET` is taken to be relative to the current position\n`SEEK_CUR`, and if set to 2 relative to the end of the file `SEEK_END`. \nOn error, `STATUS` is set to a nonzero value. If `STATUS` the seek\nfails silently.\n\n \nThis intrinsic routine is not fully backwards compatible with *g77*. \nIn *g77*, the `FSEEK` takes a statement label instead of a\n`STATUS` variable. If FSEEK is used in old code, change\n \n
            CALL FSEEK(UNIT, OFFSET, WHENCE, *label)\n
\n \nto\n \n
            INTEGER :: status\n            CALL FSEEK(UNIT, OFFSET, WHENCE, status)\n            IF (status /= 0) GOTO label\n
\n \nPlease note that GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n`CALL FSEEK(UNIT, OFFSET, WHENCE[, STATUS])`\n\n\n### Arguments\n\n \n. \n\n | `OFFSET` | Shall be a scalar of type `INTEGER`. \n\n | `WHENCE` | Shall be a scalar of type `INTEGER`. \nIts value shall be either 0, 1 or 2. \n\n | `STATUS` | (Optional) shall be a scalar of type\n`INTEGER(4)`.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fseek\n\n  INTEGER, PARAMETER :: SEEK_SET = 0, SEEK_CUR = 1, SEEK_END = 2\n\n  INTEGER :: fd, offset, ierr\n\n\n  ierr = 0\n\n  offset = 5\n\n  fd = 10\n\n\n  OPEN(UNIT=fd, FILE=\"fseek.test\")\n\n  CALL FSEEK(fd, offset, SEEK_SET, ierr) ! move to OFFSET\n\n  print *, FTELL(fd), ierr\n\n\n  CALL FSEEK(fd, 0, SEEK_END, ierr) ! move to end\n\n  print *, FTELL(fd), ierr\n\n\n  CALL FSEEK(fd, 0, SEEK_SET, ierr) ! move to beginning\n\n  print *, FTELL(fd), ierr\n\n\n  CLOSE(UNIT=fd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nFTELL\n" -} diff --git a/doc/intrinsics/FSTAT.json b/doc/intrinsics/FSTAT.json deleted file mode 100644 index bb1aca9e..00000000 --- a/doc/intrinsics/FSTAT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FSTAT", - "docstr": "`FSTAT` — Get file status\n\n### Description\n`FSTAT` is identical to STAT, except that information about an\nalready opened file is obtained.\n\n \nThe elements in `VALUES` are the same as described by STAT.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FSTAT(UNIT, VALUES)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `VALUES` | The type shall be `INTEGER(4), DIMENSION(13)`. \n\n | `STATUS` | (Optional) status flag of type `INTEGER(4)`. Returns 0\non success and a system specific error code otherwise.\n\n\n\n\n\n\n### Example\nSee STAT for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nTo stat a link: LSTAT, to stat a file: STAT\n" -} diff --git a/doc/intrinsics/FTELL.json b/doc/intrinsics/FTELL.json deleted file mode 100644 index c90c5811..00000000 --- a/doc/intrinsics/FTELL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "FTELL", - "docstr": "`FTELL` — Current stream position\n\n### Description\nRetrieves the current position within an open file.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `OFFSET = FTELL(UNIT)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `UNIT` | Shall of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nIn either syntax, `OFFSET` is set to the current offset of unit\nnumber `UNIT`, or to -1 if the unit is not currently open.\n\n\n\n### Example\n```\n\n\nPROGRAM test_ftell\n\n  INTEGER :: i\n\n  OPEN(10, FILE=\"temp.dat\")\n\n  CALL ftell(10,i)\n\n  WRITE(*,*) i\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFSEEK\n" -} diff --git a/doc/intrinsics/GAMMA.json b/doc/intrinsics/GAMMA.json deleted file mode 100644 index a38de730..00000000 --- a/doc/intrinsics/GAMMA.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GAMMA", - "docstr": "`GAMMA` — Gamma function\n\n### Description\n`GAMMA(X)` computes Gamma (\\Gamma) of `X`. For positive,\ninteger values of `X` the Gamma function simplifies to the factorial\nfunction \\Gamma(x)=(x-1)!.\n\n\n\n### Syntax\n`X = GAMMA(X)`\n\n\n### Arguments\n\n \n and neither zero\nnor a negative integer.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` of the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_gamma\n\n  real :: x = 1.0\n\n  x = gamma(x) ! returns 1.0\n\nend program test_gamma\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `GAMMA(X)` | `REAL(4) X` | `REAL(4)` | GNU Extension\n\n | `DGAMMA(X)` | `REAL(8) X` | `REAL(8)` | GNU Extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLogarithm of the Gamma function: LOG_GAMMA\n\n " -} diff --git a/doc/intrinsics/GERROR.json b/doc/intrinsics/GERROR.json deleted file mode 100644 index 9e428156..00000000 --- a/doc/intrinsics/GERROR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GERROR", - "docstr": "`GERROR` — Get last system error message\n\n### Description\nReturns the system error message corresponding to the last system error. \nThis resembles the functionality of `strerror(3)` in C.\n\n\n\n### Syntax\n`CALL GERROR(RESULT)`\n\n\n### Arguments\n\n \n and of default\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_gerror\n\n  CHARACTER(len=100) :: msg\n\n  CALL gerror(msg)\n\n  WRITE(*,*) msg\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nIERRNO, PERROR\n" -} diff --git a/doc/intrinsics/GETARG.json b/doc/intrinsics/GETARG.json deleted file mode 100644 index f608035c..00000000 --- a/doc/intrinsics/GETARG.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GETARG", - "docstr": "`GETARG` — Get command line arguments\n\n### Description\nRetrieve the `POS`-th argument that was passed on the\ncommand line when the containing program was invoked.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. In new code, programmers should consider the use of\nthe GET_COMMAND_ARGUMENT intrinsic defined by the Fortran 2003\nstandard.\n\n\n\n\n### Syntax\n`CALL GETARG(POS, VALUE)`\n\n\n### Arguments\n\n \n and not wider than\nthe default integer kind; `POS` \\geq 0\n\n | `VALUE` | Shall be of type `CHARACTER` and of default\nkind. \n\n | `VALUE` | Shall be of type `CHARACTER`.\n\n\n\n\n\n\n### Return value\nAfter `GETARG` returns, the `VALUE` argument holds the\n`POS`th command line argument. If `VALUE` can not hold the\nargument, it is truncated to fit the length of `VALUE`. If there are\nless than `POS` arguments specified at the command line, `VALUE`\nwill be filled with blanks. If `POS` = 0, `VALUE` is set\nto the name of the program (on systems that support this feature).\n\n\n\n### Example\n```\n\n\nPROGRAM test_getarg\n\n  INTEGER :: i\n\n  CHARACTER(len=32) :: arg\n\n\n  DO i = 1, iargc()\n\n    CALL getarg(i, arg)\n\n    WRITE (*,*) arg\n\n  END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGNU Fortran 77 compatibility function: IARGC\n\n \nFortran 2003 functions and subroutines: GET_COMMAND,\nGET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT\n\n" -} diff --git a/doc/intrinsics/GETCWD.json b/doc/intrinsics/GETCWD.json deleted file mode 100644 index 1565b4b2..00000000 --- a/doc/intrinsics/GETCWD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GETCWD", - "docstr": "`GETCWD` — Get current working directory\n\n### Description\nGet current working directory.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = GETCWD(C)`
\n\n\n\n\n\n### Arguments\n\n \n and of default kind. \n\n | `STATUS` | (Optional) status flag. Returns 0 on success,\na system specific and nonzero error code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_getcwd\n\n  CHARACTER(len=255) :: cwd\n\n  CALL getcwd(cwd)\n\n  WRITE(*,*) TRIM(cwd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCHDIR\n" -} diff --git a/doc/intrinsics/GETENV.json b/doc/intrinsics/GETENV.json deleted file mode 100644 index f373bce1..00000000 --- a/doc/intrinsics/GETENV.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GETENV", - "docstr": "`GETENV` — Get an environmental variable\n\n### Description\nGet the `VALUE` of the environmental variable `NAME`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. In new code, programmers should consider the use of\nthe GET_ENVIRONMENT_VARIABLE intrinsic defined by the Fortran\n2003 standard.\n\n \n\nNote that `GETENV` need not be thread-safe. It is the\nresponsibility of the user to ensure that the environment is not being\nupdated concurrently with a call to the `GETENV` intrinsic.\n\n\n\n\n### Syntax\n`CALL GETENV(NAME, VALUE)`\n\n\n### Arguments\n\n \n and of default kind. \n\n | `VALUE` | Shall be of type `CHARACTER` and of default kind.\n\n\n\n\n\n\n### Return value\nStores the value of `NAME` in `VALUE`. If `VALUE` is\nnot large enough to hold the data, it is truncated. If `NAME`\nis not set, `VALUE` will be filled with blanks.\n\n\n\n### Example\n```\n\n\nPROGRAM test_getenv\n\n  CHARACTER(len=255) :: homedir\n\n  CALL getenv(\"HOME\", homedir)\n\n  WRITE (*,*) TRIM(homedir)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGET_ENVIRONMENT_VARIABLE\n" -} diff --git a/doc/intrinsics/GETGID.json b/doc/intrinsics/GETGID.json deleted file mode 100644 index acdd9ffa..00000000 --- a/doc/intrinsics/GETGID.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GETGID", - "docstr": "`GETGID` — Group ID function\n\n### Description\nReturns the numerical group ID of the current process.\n\n\n\n### Syntax\n`RESULT = GETGID()`\n\n\n### Return value\nThe return value of `GETGID` is an `INTEGER` of the default\nkind.\n\n\n\n### Example\nSee `GETPID` for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGETPID, GETUID\n" -} diff --git a/doc/intrinsics/GETLOG.json b/doc/intrinsics/GETLOG.json deleted file mode 100644 index 51843360..00000000 --- a/doc/intrinsics/GETLOG.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GETLOG", - "docstr": "`GETLOG` — Get login name\n\n### Description\nGets the username under which the program is running.\n\n\n\n### Syntax\n`CALL GETLOG(C)`\n\n\n### Arguments\n\n \n and of default kind.\n\n\n\n\n\n\n### Return value\nStores the current user name in `LOGIN`. (On systems where POSIX\nfunctions `geteuid` and `getpwuid` are not available, and\nthe `getlogin` function is not implemented either, this will\nreturn a blank string.)\n\n\n\n### Example\n```\n\n\nPROGRAM TEST_GETLOG\n\n  CHARACTER(32) :: login\n\n  CALL GETLOG(login)\n\n  WRITE(*,*) login\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGETUID\n" -} diff --git a/doc/intrinsics/GETPID.json b/doc/intrinsics/GETPID.json deleted file mode 100644 index fbd0cee6..00000000 --- a/doc/intrinsics/GETPID.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GETPID", - "docstr": "`GETPID` — Process ID function\n\n### Description\nReturns the numerical process identifier of the current process.\n\n\n\n### Syntax\n`RESULT = GETPID()`\n\n\n### Return value\nThe return value of `GETPID` is an `INTEGER` of the default\nkind.\n\n\n\n### Example\n```\n\n\nprogram info\n\n  print *, \"The current process ID is \", getpid()\n\n  print *, \"Your numerical user ID is \", getuid()\n\n  print *, \"Your numerical group ID is \", getgid()\n\nend program info\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGETGID, GETUID\n" -} diff --git a/doc/intrinsics/GETUID.json b/doc/intrinsics/GETUID.json deleted file mode 100644 index bf84db87..00000000 --- a/doc/intrinsics/GETUID.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GETUID", - "docstr": "`GETUID` — User ID function\n\n### Description\nReturns the numerical user ID of the current process.\n\n\n\n### Syntax\n`RESULT = GETUID()`\n\n\n### Return value\nThe return value of `GETUID` is an `INTEGER` of the default\nkind.\n\n\n\n### Example\nSee `GETPID` for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGETPID, GETLOG\n" -} diff --git a/doc/intrinsics/GET_COMMAND.json b/doc/intrinsics/GET_COMMAND.json deleted file mode 100644 index 1edfcda0..00000000 --- a/doc/intrinsics/GET_COMMAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GET_COMMAND", - "docstr": "`GET_COMMAND` — Get the entire command line\n\n### Description\nRetrieve the entire command line that was used to invoke the program.\n\n\n\n### Syntax\n`CALL GET_COMMAND([COMMAND, LENGTH, STATUS])`\n\n\n### Arguments\n\n \n and\nof default kind. \n\n | `LENGTH` | (Optional) Shall be of type `INTEGER` and of\ndefault kind. \n\n | `STATUS` | (Optional) Shall be of type `INTEGER` and of\ndefault kind.\n\n\n\n\n\n\n### Return value\nIf `COMMAND` is present, stores the entire command line that was used\nto invoke the program in `COMMAND`. If `LENGTH` is present, it is\nassigned the length of the command line. If `STATUS` is present, it\nis assigned 0 upon success of the command, -1 if `COMMAND` is too\nshort to store the command line, or a positive value in case of an error.\n\n\n\n### Example\n```\n\n\nPROGRAM test_get_command\n\n  CHARACTER(len=255) :: cmd\n\n  CALL get_command(cmd)\n\n  WRITE (*,*) TRIM(cmd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT\n" -} diff --git a/doc/intrinsics/GET_COMMAND_ARGUMENT.json b/doc/intrinsics/GET_COMMAND_ARGUMENT.json deleted file mode 100644 index 3c33c146..00000000 --- a/doc/intrinsics/GET_COMMAND_ARGUMENT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GET_COMMAND_ARGUMENT", - "docstr": "`GET_COMMAND_ARGUMENT` — Get command line arguments\n\n### Description\nRetrieve the `NUMBER`-th argument that was passed on the\ncommand line when the containing program was invoked.\n\n\n\n### Syntax\n`CALL GET_COMMAND_ARGUMENT(NUMBER [, VALUE, LENGTH, STATUS])`\n\n\n### Arguments\n\n \n and of\ndefault kind, `NUMBER` \\geq 0\n\n | `VALUE` | (Optional) Shall be a scalar of type `CHARACTER`and of default kind. \n\n | `LENGTH` | (Optional) Shall be a scalar of type `INTEGER`and of default kind. \n\n | `STATUS` | (Optional) Shall be a scalar of type `INTEGER`and of default kind.\n\n\n\n\n\n\n### Return value\nAfter `GET_COMMAND_ARGUMENT` returns, the `VALUE` argument holds the\n`NUMBER`-th command line argument. If `VALUE` can not hold the argument, it is\ntruncated to fit the length of `VALUE`. If there are less than `NUMBER`\narguments specified at the command line, `VALUE` will be filled with blanks. \nIf `NUMBER` = 0, `VALUE` is set to the name of the program (on\nsystems that support this feature). The `LENGTH` argument contains the\nlength of the `NUMBER`-th command line argument. If the argument retrieval\nfails, `STATUS` is a positive number; if `VALUE` contains a truncated\ncommand line argument, `STATUS` is -1; and otherwise the `STATUS` is\nzero.\n\n\n\n### Example\n```\n\n\nPROGRAM test_get_command_argument\n\n  INTEGER :: i\n\n  CHARACTER(len=32) :: arg\n\n\n  i = 0\n\n  DO\n\n    CALL get_command_argument(i, arg)\n\n    IF (LEN_TRIM(arg) == 0) EXIT\n\n\n    WRITE (*,*) TRIM(arg)\n\n    i = i+1\n\n  END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGET_COMMAND, COMMAND_ARGUMENT_COUNT\n" -} diff --git a/doc/intrinsics/GET_ENVIRONMENT_VARIABLE.json b/doc/intrinsics/GET_ENVIRONMENT_VARIABLE.json deleted file mode 100644 index 412e9993..00000000 --- a/doc/intrinsics/GET_ENVIRONMENT_VARIABLE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GET_ENVIRONMENT_VARIABLE", - "docstr": "`GET_ENVIRONMENT_VARIABLE` — Get an environmental variable\n\n### Description\nGet the `VALUE` of the environmental variable `NAME`.\n\n \nNote that `GET_ENVIRONMENT_VARIABLE` need not be thread-safe. It\nis the responsibility of the user to ensure that the environment is\nnot being updated concurrently with a call to the\n`GET_ENVIRONMENT_VARIABLE` intrinsic.\n\n\n\n\n### Syntax\n`CALL GET_ENVIRONMENT_VARIABLE(NAME[, VALUE, LENGTH, STATUS, TRIM_NAME)`\n\n\n### Arguments\n\n \n\nand of default kind. \n\n | `VALUE` | (Optional) Shall be a scalar of type `CHARACTER`and of default kind. \n\n | `LENGTH` | (Optional) Shall be a scalar of type `INTEGER`and of default kind. \n\n | `STATUS` | (Optional) Shall be a scalar of type `INTEGER`and of default kind. \n\n | `TRIM_NAME` | (Optional) Shall be a scalar of type `LOGICAL`and of default kind.\n\n\n\n\n\n\n### Return value\nStores the value of `NAME` in `VALUE`. If `VALUE` is\nnot large enough to hold the data, it is truncated. If `NAME`\nis not set, `VALUE` will be filled with blanks. Argument `LENGTH`\ncontains the length needed for storing the environment variable `NAME`\nor zero if it is not present. `STATUS` is -1 if `VALUE` is present\nbut too short for the environment variable; it is 1 if the environment\nvariable does not exist and 2 if the processor does not support environment\nvariables; in all other cases `STATUS` is zero. If `TRIM_NAME` is\npresent with the value `.FALSE.`, the trailing blanks in `NAME`\nare significant; otherwise they are not part of the environment variable\nname.\n\n\n\n### Example\n```\n\n\nPROGRAM test_getenv\n\n  CHARACTER(len=255) :: homedir\n\n  CALL get_environment_variable(\"HOME\", homedir)\n\n  WRITE (*,*) TRIM(homedir)\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n" -} diff --git a/doc/intrinsics/GMTIME.json b/doc/intrinsics/GMTIME.json deleted file mode 100644 index 8d65d5d4..00000000 --- a/doc/intrinsics/GMTIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "GMTIME", - "docstr": "`GMTIME` — Convert time to GMT info\n\n### Description\nGiven a system time value `TIME` (as provided by the `TIME8`intrinsic), fills `VALUES` with values extracted from it appropriate\nto the UTC time zone (Universal Coordinated Time, also known in some\ncountries as GMT, Greenwich Mean Time), using `gmtime(3)`.\n\n\n\n### Syntax\n`CALL GMTIME(TIME, VALUES)`\n\n\n### Arguments\n\n \n scalar expression\ncorresponding to a system time, with `INTENT(IN)`. \n\n | `VALUES` | A default `INTEGER` array with 9 elements,\nwith `INTENT(OUT)`.\n\n\n\n\n\n\n### Return value\nThe elements of `VALUES` are assigned as follows:\n
    \n
  1. Seconds after the minute, range 0–59 or 0–61 to allow for leap\nseconds\n
  2. Minutes after the hour, range 0–59\n
  3. Hours past midnight, range 0–23\n
  4. Day of month, range 0–31\n
  5. Number of months since January, range 0–12\n
  6. Years since 1900\n
  7. Number of days since Sunday, range 0–6\n
  8. Days since January 1\n
  9. Daylight savings indicator: positive if daylight savings is in\neffect, zero if not, and negative if the information is not available.\n
\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nCTIME, LTIME, TIME, TIME8\n\n " -} diff --git a/doc/intrinsics/HOSTNM.json b/doc/intrinsics/HOSTNM.json deleted file mode 100644 index a23ec7ac..00000000 --- a/doc/intrinsics/HOSTNM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "HOSTNM", - "docstr": "`HOSTNM` — Get system host name\n\n### Description\nRetrieves the host name of the system on which the program is running.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = HOSTNM(NAME)`
\n\n\n\n\n\n### Arguments\n\n \n and of default kind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, or a system specific error code otherwise.\n\n\n\n\n\n\n### Return value\nIn either syntax, `NAME` is set to the current hostname if it can\nbe obtained, or to a blank string otherwise.\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" -} diff --git a/doc/intrinsics/HUGE.json b/doc/intrinsics/HUGE.json deleted file mode 100644 index d493261a..00000000 --- a/doc/intrinsics/HUGE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "HUGE", - "docstr": "`HUGE` — Largest number of a kind\n\n### Description\n`HUGE(X)` returns the largest number that is not an infinity in\nthe model of the type of `X`.\n\n\n\n### Syntax\n`RESULT = HUGE(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`\n\n\n\n### Example\n```\n\n\nprogram test_huge_tiny\n\n  print *, huge(0), huge(0.0), huge(0.0d0)\n\n  print *, tiny(0.0), tiny(0.0d0)\n\nend program test_huge_tiny\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/HYPOT.json b/doc/intrinsics/HYPOT.json deleted file mode 100644 index e91e2713..00000000 --- a/doc/intrinsics/HYPOT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "HYPOT", - "docstr": "`HYPOT` — Euclidean distance function\n\n### Description\n`HYPOT(X,Y)` is the Euclidean distance function. It is equal to\n\\sqrtX^2 + Y^2, without undue underflow or overflow.\n\n\n\n### Syntax\n`RESULT = HYPOT(X, Y)`\n\n\n### Arguments\n\n \n. \n\n | `Y` | The type and kind type parameter shall be the same as\n`X`.\n\n\n\n\n\n\n### Return value\nThe return value has the same type and kind type parameter as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_hypot\n\n  real(4) :: x = 1.e0_4, y = 0.5e0_4\n\n  x = hypot(x,y)\n\nend program test_hypot\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/IACHAR.json b/doc/intrinsics/IACHAR.json deleted file mode 100644 index 89210347..00000000 --- a/doc/intrinsics/IACHAR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IACHAR", - "docstr": "`IACHAR` — Code in ASCII collating sequence\n\n### Description\n`IACHAR(C)` returns the code for the ASCII character\nin the first character position of `C`.\n\n\n\n### Syntax\n`RESULT = IACHAR(C [, KIND])`\n\n\n### Arguments\n\n \n\n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nprogram test_iachar\n\n  integer i\n\n  i = iachar(' ')\n\nend program test_iachar\n\n```\n\n\n\n### Notes\nSee ICHAR for a discussion of converting between numerical values\nand formatted string representations.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nACHAR, CHAR, ICHAR\n\n " -} diff --git a/doc/intrinsics/IALL.json b/doc/intrinsics/IALL.json deleted file mode 100644 index f4fbabb7..00000000 --- a/doc/intrinsics/IALL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IALL", - "docstr": "`IALL` — Bitwise AND of array elements\n\n### Description\nReduces with bitwise AND the elements of `ARRAY` along dimension `DIM`\nif the corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = IALL(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the bitwise ALL of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_iall\n\n  INTEGER(1) :: a(2)\n\n\n  a(1) = b'00100100'\n\n  a(2) = b'01101010'\n\n\n  ! prints 00100000\n\n  PRINT '(b8.8)', IALL(a)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nIANY, IPARITY, IAND\n" -} diff --git a/doc/intrinsics/IAND.json b/doc/intrinsics/IAND.json deleted file mode 100644 index ec1afa86..00000000 --- a/doc/intrinsics/IAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IAND", - "docstr": "`IAND` — Bitwise logical and\n\n### Description\nBitwise logical `AND`.\n\n\n\n### Syntax\n`RESULT = IAND(I, J)`\n\n\n### Arguments\n\n \n. \n\n | `J` | The type shall be `INTEGER`, of the same\nkind as `I`. (As a GNU extension, different kinds are also\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\narguments. (If the argument kinds differ, it is of the same kind as\nthe larger argument.)\n\n\n\n### Example\n```\n\n\nPROGRAM test_iand\n\n  INTEGER :: a, b\n\n  DATA a / Z'F' /, b / Z'3' /\n\n  WRITE (*,*) IAND(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIOR, IEOR, IBITS, IBSET, IBCLR, NOT\n\n " -} diff --git a/doc/intrinsics/IANY.json b/doc/intrinsics/IANY.json deleted file mode 100644 index 85268603..00000000 --- a/doc/intrinsics/IANY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IANY", - "docstr": "`IANY` — Bitwise OR of array elements\n\n### Description\nReduces with bitwise OR (inclusive or) the elements of `ARRAY` along\ndimension `DIM` if the corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = IANY(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the bitwise OR of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_iany\n\n  INTEGER(1) :: a(2)\n\n\n  a(1) = b'00100100'\n\n  a(2) = b'01101010'\n\n\n  ! prints 01101110\n\n  PRINT '(b8.8)', IANY(a)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nIPARITY, IALL, IOR\n" -} diff --git a/doc/intrinsics/IARGC.json b/doc/intrinsics/IARGC.json deleted file mode 100644 index e01d7722..00000000 --- a/doc/intrinsics/IARGC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IARGC", - "docstr": "`IARGC` — Get the number of command line arguments\n\n### Description\n`IARGC` returns the number of arguments passed on the\ncommand line when the containing program was invoked.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. In new code, programmers should consider the use of\nthe COMMAND_ARGUMENT_COUNT intrinsic defined by the Fortran 2003\nstandard.\n\n\n\n\n### Syntax\n`RESULT = IARGC()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe number of command line arguments, type `INTEGER(4)`.\n\n\n\n### Example\nSee GETARG\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGNU Fortran 77 compatibility subroutine: GETARG\n\n \nFortran 2003 functions and subroutines: GET_COMMAND,\nGET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT\n\n" -} diff --git a/doc/intrinsics/IBCLR.json b/doc/intrinsics/IBCLR.json deleted file mode 100644 index 6051e573..00000000 --- a/doc/intrinsics/IBCLR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IBCLR", - "docstr": "`IBCLR` — Clear bit\n\n### Description\n`IBCLR` returns the value of `I` with the bit at position\n`POS` set to zero.\n\n\n\n### Syntax\n`RESULT = IBCLR(I, POS)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIBITS, IBSET, IAND, IOR, IEOR, MVBITS\n\n " -} diff --git a/doc/intrinsics/IBITS.json b/doc/intrinsics/IBITS.json deleted file mode 100644 index 6e37fe89..00000000 --- a/doc/intrinsics/IBITS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IBITS", - "docstr": "`IBITS` — Bit extraction\n\n### Description\n`IBITS` extracts a field of length `LEN` from `I`,\nstarting from bit position `POS` and extending left for `LEN`\nbits. The result is right-justified and the remaining bits are\nzeroed. The value of `POS+LEN` must be less than or equal to the\nvalue `BIT_SIZE(I)`.\n\n\n\n### Syntax\n`RESULT = IBITS(I, POS, LEN)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`. \n\n | `LEN` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBIT_SIZE, IBCLR, IBSET, IAND, IOR, IEOR\n" -} diff --git a/doc/intrinsics/IBSET.json b/doc/intrinsics/IBSET.json deleted file mode 100644 index acc1f91a..00000000 --- a/doc/intrinsics/IBSET.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IBSET", - "docstr": "`IBSET` — Set bit\n\n### Description\n`IBSET` returns the value of `I` with the bit at position\n`POS` set to one.\n\n\n\n### Syntax\n`RESULT = IBSET(I, POS)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIBCLR, IBITS, IAND, IOR, IEOR, MVBITS\n\n " -} diff --git a/doc/intrinsics/ICHAR.json b/doc/intrinsics/ICHAR.json deleted file mode 100644 index 1589d040..00000000 --- a/doc/intrinsics/ICHAR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ICHAR", - "docstr": "`ICHAR` — Character-to-integer conversion function\n\n### Description\n`ICHAR(C)` returns the code for the character in the first character\nposition of `C` in the system's native character set. \nThe correspondence between characters and their codes is not necessarily\nthe same across different GNU Fortran implementations.\n\n\n\n### Syntax\n`RESULT = ICHAR(C [, KIND])`\n\n\n### Arguments\n\n \n\n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nprogram test_ichar\n\n  integer i\n\n  i = ichar(' ')\n\nend program test_ichar\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ICHAR(C)` | `CHARACTER C` | `INTEGER(4)` | Fortran 77 and later\n\n\n\n\n\n\n### Notes\nNo intrinsic exists to convert between a numeric value and a formatted\ncharacter string representation – for instance, given the\n`CHARACTER` value `'154'`, obtaining an `INTEGER` or\n`REAL` value with the value 154, or vice versa. Instead, this\nfunctionality is provided by internal-file I/O, as in the following\nexample:\n
          program read_val\n            integer value\n            character(len=10) string, string2\n            string = '154'\n          \n            ! Convert a string to a numeric value\n            read (string,'(I10)') value\n            print *, value\n          \n            ! Convert a value to a formatted string\n            write (string2,'(I10)') value\n            print *, string2\n          end program read_val\n
\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nACHAR, CHAR, IACHAR\n\n " -} diff --git a/doc/intrinsics/IDATE.json b/doc/intrinsics/IDATE.json deleted file mode 100644 index 34822828..00000000 --- a/doc/intrinsics/IDATE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IDATE", - "docstr": "`IDATE` — Get current local time subroutine (day/month/year)\n\n### Description\n`IDATE(VALUES)` Fills `VALUES` with the numerical values at the\ncurrent local time. The day (in the range 1-31), month (in the range 1-12),\nand year appear in elements 1, 2, and 3 of `VALUES`, respectively. \nThe year has four significant digits.\n\n\n\n### Syntax\n`CALL IDATE(VALUES)`\n\n\n### Arguments\n\n \n and\nthe kind shall be the default integer kind.\n\n\n\n\n\n\n### Return value\nDoes not return anything.\n\n\n\n### Example\n```\n\n\nprogram test_idate\n\n  integer, dimension(3) :: tarray\n\n  call idate(tarray)\n\n  print *, tarray(1)\n\n  print *, tarray(2)\n\n  print *, tarray(3)\n\nend program test_idate\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" -} diff --git a/doc/intrinsics/IEOR.json b/doc/intrinsics/IEOR.json deleted file mode 100644 index 020fa2da..00000000 --- a/doc/intrinsics/IEOR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IEOR", - "docstr": "`IEOR` — Bitwise logical exclusive or\n\n### Description\n`IEOR` returns the bitwise Boolean exclusive-OR of `I` and\n`J`.\n\n\n\n### Syntax\n`RESULT = IEOR(I, J)`\n\n\n### Arguments\n\n \n. \n\n | `J` | The type shall be `INTEGER`, of the same\nkind as `I`. (As a GNU extension, different kinds are also\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\narguments. (If the argument kinds differ, it is of the same kind as\nthe larger argument.)\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIOR, IAND, IBITS, IBSET, IBCLR, NOT\n" -} diff --git a/doc/intrinsics/IERRNO.json b/doc/intrinsics/IERRNO.json deleted file mode 100644 index e908e581..00000000 --- a/doc/intrinsics/IERRNO.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IERRNO", - "docstr": "`IERRNO` — Get the last system error number\n\n### Description\nReturns the last system error number, as given by the C `errno`variable.\n\n\n\n### Syntax\n`RESULT = IERRNO()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nPERROR\n" -} diff --git a/doc/intrinsics/IMAGE_INDEX.json b/doc/intrinsics/IMAGE_INDEX.json deleted file mode 100644 index 3985dfe8..00000000 --- a/doc/intrinsics/IMAGE_INDEX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IMAGE_INDEX", - "docstr": "`IMAGE_INDEX` — Function that converts a cosubscript to an image index\n\n### Description\nReturns the image index belonging to a cosubscript.\n\n\n\n### Syntax\n`RESULT = IMAGE_INDEX(COARRAY, SUB)`\n\n\n### Return value\nScalar default integer with the value of the image index which corresponds\nto the cosubscripts. For invalid cosubscripts the result is zero.\n\n\n\n### Example\n```\n\n\nINTEGER :: array[2,-1:4,8,*]\n\n! Writes 28 (or 0 if there are fewer than 28 images)\n\nWRITE (*,*) IMAGE_INDEX (array, [2,0,3,1])\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nInquiry function.\n\n\n\n### See also\nTHIS_IMAGE, NUM_IMAGES\n" -} diff --git a/doc/intrinsics/INDEX.json b/doc/intrinsics/INDEX.json deleted file mode 100644 index b386874a..00000000 --- a/doc/intrinsics/INDEX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "INDEX", - "docstr": "`INDEX` — Position of a substring within a string\n\n### Description\nReturns the position of the start of the first occurrence of string\n`SUBSTRING` as a substring in `STRING`, counting from one. If\n`SUBSTRING` is not present in `STRING`, zero is returned. If\nthe `BACK` argument is present and true, the return value is the\nstart of the last occurrence rather than the first.\n\n\n\n### Syntax\n`RESULT = INDEX(STRING, SUBSTRING [, BACK [, KIND]])`\n\n\n### Arguments\n\n \n, with\n`INTENT(IN)`
\n | `SUBSTRING` | Shall be a scalar `CHARACTER`, with\n`INTENT(IN)`
\n | `BACK` | (Optional) Shall be a scalar `LOGICAL`, with\n`INTENT(IN)`
\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `INDEX(STRING, SUBSTRING)` | `CHARACTER` | `INTEGER(4)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSCAN, VERIFY\n" -} diff --git a/doc/intrinsics/INT.json b/doc/intrinsics/INT.json deleted file mode 100644 index 34562eb4..00000000 --- a/doc/intrinsics/INT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "INT", - "docstr": "`INT` — Convert to integer type\n\n### Description\nConvert to integer type\n\n\n\n### Syntax\n`RESULT = INT(A [, KIND))`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThese functions return a `INTEGER` variable or array under\nthe following rules:\n\n
\n**(A)** If `A` is of type `INTEGER`, `INT(A) = A`\n**(B)** If `A` is of type `REAL` and |A| < 1, `INT(A)`equals `0`. If |A| \\geq 1, then `INT(A)` is the integer\nwhose magnitude is the largest integer that does not exceed the magnitude\nof `A` and whose sign is the same as the sign of `A`. \n\n**(C)** If `A` is of type `COMPLEX`, rule B is applied to the real part of `A`. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_int\n\n  integer :: i = 42\n\n  complex :: z = (-3.7, 1.0)\n\n  print *, int(i)\n\n  print *, int(z), int(z,8)\n\nend program\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `INT(A)` | `REAL(4) A` | `INTEGER` | Fortran 77 and later\n\n | `IFIX(A)` | `REAL(4) A` | `INTEGER` | Fortran 77 and later\n\n | `IDINT(A)` | `REAL(8) A` | `INTEGER` | Fortran 77 and later\n\n\n\n \n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/INT2.json b/doc/intrinsics/INT2.json deleted file mode 100644 index c9860103..00000000 --- a/doc/intrinsics/INT2.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "INT2", - "docstr": "`INT2` — Convert to 16-bit integer type\n\n### Description\nConvert to a `KIND=2` integer type. This is equivalent to the\nstandard `INT` intrinsic with an optional argument of\n`KIND=2`, and is only included for backwards compatibility.\n\n \nThe `SHORT` intrinsic is equivalent to `INT2`.\n\n\n\n\n### Syntax\n`RESULT = INT2(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is a `INTEGER(2)` variable.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, INT8, LONG\n" -} diff --git a/doc/intrinsics/INT8.json b/doc/intrinsics/INT8.json deleted file mode 100644 index d21e500a..00000000 --- a/doc/intrinsics/INT8.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "INT8", - "docstr": "`INT8` — Convert to 64-bit integer type\n\n### Description\nConvert to a `KIND=8` integer type. This is equivalent to the\nstandard `INT` intrinsic with an optional argument of\n`KIND=8`, and is only included for backwards compatibility.\n\n\n\n### Syntax\n`RESULT = INT8(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is a `INTEGER(8)` variable.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, INT2, LONG\n" -} diff --git a/doc/intrinsics/IOR.json b/doc/intrinsics/IOR.json deleted file mode 100644 index aaf59c82..00000000 --- a/doc/intrinsics/IOR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IOR", - "docstr": "`IOR` — Bitwise logical or\n\n### Description\n`IOR` returns the bitwise Boolean inclusive-OR of `I` and\n`J`.\n\n\n\n### Syntax\n`RESULT = IOR(I, J)`\n\n\n### Arguments\n\n \n. \n\n | `J` | The type shall be `INTEGER`, of the same\nkind as `I`. (As a GNU extension, different kinds are also\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\narguments. (If the argument kinds differ, it is of the same kind as\nthe larger argument.)\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIEOR, IAND, IBITS, IBSET, IBCLR, NOT\n" -} diff --git a/doc/intrinsics/IPARITY.json b/doc/intrinsics/IPARITY.json deleted file mode 100644 index 7b394dc9..00000000 --- a/doc/intrinsics/IPARITY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IPARITY", - "docstr": "`IPARITY` — Bitwise XOR of array elements\n\n### Description\nReduces with bitwise XOR (exclusive or) the elements of `ARRAY` along\ndimension `DIM` if the corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = IPARITY(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the bitwise XOR of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_iparity\n\n  INTEGER(1) :: a(2)\n\n\n  a(1) = b'00100100'\n\n  a(2) = b'01101010'\n\n\n  ! prints 01001110\n\n  PRINT '(b8.8)', IPARITY(a)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nIANY, IALL, IEOR, PARITY\n" -} diff --git a/doc/intrinsics/IRAND.json b/doc/intrinsics/IRAND.json deleted file mode 100644 index 0b6dd7a3..00000000 --- a/doc/intrinsics/IRAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IRAND", - "docstr": "`IRAND` — Integer pseudo-random number\n\n### Description\n`IRAND(FLAG)` returns a pseudo-random number from a uniform\ndistribution between 0 and a system-dependent limit (which is in most\ncases 2147483647). If `FLAG` is 0, the next number\nin the current sequence is returned; if `FLAG` is 1, the generator\nis restarted by `CALL SRAND(0)`; if `FLAG` has any other value,\nit is used as a new seed with `SRAND`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. It implements a simple modulo generator as provided\nby *g77*. For new code, one should consider the use of\nRANDOM_NUMBER as it implements a superior algorithm.\n\n\n\n\n### Syntax\n`RESULT = IRAND(I)`\n\n\n### Arguments\n\n \n of kind 4.\n\n\n\n\n\n\n### Return value\nThe return value is of `INTEGER(kind=4)` type.\n\n\n\n### Example\n```\n\n\nprogram test_irand\n\n  integer,parameter :: seed = 86456\n\n\n  call srand(seed)\n\n  print *, irand(), irand(), irand(), irand()\n\n  print *, irand(seed), irand(), irand(), irand()\n\nend program test_irand\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n" -} diff --git a/doc/intrinsics/ISATTY.json b/doc/intrinsics/ISATTY.json deleted file mode 100644 index e8d91ec7..00000000 --- a/doc/intrinsics/ISATTY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ISATTY", - "docstr": "`ISATTY` — Whether a unit is a terminal device.\n\n### Description\nDetermine whether a unit is connected to a terminal device.\n\n\n\n### Syntax\n`RESULT = ISATTY(UNIT)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if the `UNIT` is connected to a terminal\ndevice, `.FALSE.` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM test_isatty\n\n  INTEGER(kind=1) :: unit\n\n  DO unit = 1, 10\n\n    write(*,*) isatty(unit=unit)\n\n  END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nTTYNAM\n" -} diff --git a/doc/intrinsics/ISHFT.json b/doc/intrinsics/ISHFT.json deleted file mode 100644 index d7561c08..00000000 --- a/doc/intrinsics/ISHFT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ISHFT", - "docstr": "`ISHFT` — Shift bits\n\n### Description\n`ISHFT` returns a value corresponding to `I` with all of the\nbits shifted `SHIFT` places. A value of `SHIFT` greater than\nzero corresponds to a left shift, a value of zero corresponds to no\nshift, and a value less than zero corresponds to a right shift. If the\nabsolute value of `SHIFT` is greater than `BIT_SIZE(I)`, the\nvalue is undefined. Bits shifted out from the left end or right end are\nlost; zeros are shifted in from the opposite end.\n\n\n\n### Syntax\n`RESULT = ISHFT(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFTC\n" -} diff --git a/doc/intrinsics/ISHFTC.json b/doc/intrinsics/ISHFTC.json deleted file mode 100644 index ef42a04e..00000000 --- a/doc/intrinsics/ISHFTC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ISHFTC", - "docstr": "`ISHFTC` — Shift bits circularly\n\n### Description\n`ISHFTC` returns a value corresponding to `I` with the\nrightmost `SIZE` bits shifted circularly `SHIFT` places; that\nis, bits shifted out one end are shifted into the opposite end. A value\nof `SHIFT` greater than zero corresponds to a left shift, a value of\nzero corresponds to no shift, and a value less than zero corresponds to\na right shift. The absolute value of `SHIFT` must be less than\n`SIZE`. If the `SIZE` argument is omitted, it is taken to be\nequivalent to `BIT_SIZE(I)`.\n\n\n\n### Syntax\n`RESULT = ISHFTC(I, SHIFT [, SIZE])`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`. \n\n | `SIZE` | (Optional) The type shall be `INTEGER`;\nthe value must be greater than zero and less than or equal to\n`BIT_SIZE(I)`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFT\n" -} diff --git a/doc/intrinsics/ISNAN.json b/doc/intrinsics/ISNAN.json deleted file mode 100644 index b7bcd47a..00000000 --- a/doc/intrinsics/ISNAN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ISNAN", - "docstr": "`ISNAN` — Test for a NaN\n\n### Description\n`ISNAN` tests whether a floating-point value is an IEEE\nNot-a-Number (NaN). \n\n\n### Syntax\n`ISNAN(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n\n### Return value\nReturns a default-kind `LOGICAL`. The returned value is `TRUE`if `X` is a NaN and `FALSE` otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_nan\n\n  implicit none\n\n  real :: x\n\n  x = -1.0\n\n  x = sqrt(x)\n\n  if (isnan(x)) stop '\"x\" is a NaN'\n\nend program test_nan\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/IS_CONTIGUOUS.json b/doc/intrinsics/IS_CONTIGUOUS.json deleted file mode 100644 index 25a165ac..00000000 --- a/doc/intrinsics/IS_CONTIGUOUS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IS_CONTIGUOUS", - "docstr": "`IS_CONTIGUOUS` — Test whether an array is contiguous\n\n### Description\nIS_CONTIGUOUS tests whether an array is contiguous.\n### Standard\nFortran 2008 and later.\n### Class\nInquiry function\n### Syntax\nRESULT = IS_CONTIGUOUS(ARRAY)\n### Arguments\n- ARRAY: Shall be an array of any type.\n### Return value\nReturns a LOGICAL of the default kind, which .TRUE. if ARRAY is contiguous and false otherwise.\n" -} diff --git a/doc/intrinsics/IS_IOSTAT_END.json b/doc/intrinsics/IS_IOSTAT_END.json deleted file mode 100644 index 59e169c8..00000000 --- a/doc/intrinsics/IS_IOSTAT_END.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IS_IOSTAT_END", - "docstr": "`IS_IOSTAT_END` — Test for end-of-file value\n\n### Description\n`IS_IOSTAT_END` tests whether an variable has the value of the I/O\nstatus “end of file”. The function is equivalent to comparing the variable\nwith the `IOSTAT_END` parameter of the intrinsic module\n`ISO_FORTRAN_ENV`.\n\n\n\n### Syntax\n`RESULT = IS_IOSTAT_END(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nReturns a `LOGICAL` of the default kind, which `.TRUE.` if\n`I` has the value which indicates an end of file condition for\n`IOSTAT=` specifiers, and is `.FALSE.` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM iostat\n\n  IMPLICIT NONE\n\n  INTEGER :: stat, i\n\n  OPEN(88, FILE='test.dat')\n\n  READ(88, *, IOSTAT=stat) i\n\n  IF(IS_IOSTAT_END(stat)) STOP 'END OF FILE'\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/IS_IOSTAT_EOR.json b/doc/intrinsics/IS_IOSTAT_EOR.json deleted file mode 100644 index 138b57af..00000000 --- a/doc/intrinsics/IS_IOSTAT_EOR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "IS_IOSTAT_EOR", - "docstr": "`IS_IOSTAT_EOR` — Test for end-of-record value\n\n### Description\n`IS_IOSTAT_EOR` tests whether an variable has the value of the I/O\nstatus “end of record”. The function is equivalent to comparing the\nvariable with the `IOSTAT_EOR` parameter of the intrinsic module\n`ISO_FORTRAN_ENV`.\n\n\n\n### Syntax\n`RESULT = IS_IOSTAT_EOR(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nReturns a `LOGICAL` of the default kind, which `.TRUE.` if\n`I` has the value which indicates an end of file condition for\n`IOSTAT=` specifiers, and is `.FALSE.` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM iostat\n\n  IMPLICIT NONE\n\n  INTEGER :: stat, i(50)\n\n  OPEN(88, FILE='test.dat', FORM='UNFORMATTED')\n\n  READ(88, IOSTAT=stat) i\n\n  IF(IS_IOSTAT_EOR(stat)) STOP 'END OF RECORD'\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/ITIME.json b/doc/intrinsics/ITIME.json deleted file mode 100644 index add060aa..00000000 --- a/doc/intrinsics/ITIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "ITIME", - "docstr": "`ITIME` — Get current local time subroutine (hour/minutes/seconds)\n\n### Description\n`IDATE(VALUES)` Fills `VALUES` with the numerical values at the\ncurrent local time. The hour (in the range 1-24), minute (in the range 1-60),\nand seconds (in the range 1-60) appear in elements 1, 2, and 3 of `VALUES`,\nrespectively.\n\n\n\n### Syntax\n`CALL ITIME(VALUES)`\n\n\n### Arguments\n\n \n\nand the kind shall be the default integer kind.\n\n\n\n\n\n\n### Return value\nDoes not return anything.\n\n\n\n### Example\n```\n\n\nprogram test_itime\n\n  integer, dimension(3) :: tarray\n\n  call itime(tarray)\n\n  print *, tarray(1)\n\n  print *, tarray(2)\n\n  print *, tarray(3)\n\nend program test_itime\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" -} diff --git a/doc/intrinsics/KILL.json b/doc/intrinsics/KILL.json deleted file mode 100644 index 03b465e0..00000000 --- a/doc/intrinsics/KILL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "KILL", - "docstr": "`KILL` — Send a signal to a process\n\n### Description\nSends the signal specified by `SIGNAL` to the process `PID`. \nSee `kill(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = KILL(C, VALUE)`
\n\n\n\n\n\n### Arguments\n\n \n, with\n`INTENT(IN)`
\n | `VALUE` | Shall be a scalar `INTEGER`, with\n`INTENT(IN)`
\n | `STATUS` | (Optional) status flag of type `INTEGER(4)` or\n`INTEGER(8)`. Returns 0 on success, or a system-specific error code\notherwise.\n\n\n\n\n\n\n### Standard\nSends the signal specified by `SIGNAL` to the process `PID`. \nSee `kill(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nABORT, EXIT\n" -} diff --git a/doc/intrinsics/KIND.json b/doc/intrinsics/KIND.json deleted file mode 100644 index 405a5166..00000000 --- a/doc/intrinsics/KIND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "KIND", - "docstr": "`KIND` — Kind of an entity\n\n### Description\n`KIND(X)` returns the kind value of the entity `X`.\n\n\n\n### Syntax\n`K = KIND(X)`\n\n\n### Arguments\n\n \n,\n`REAL`, `COMPLEX` or `CHARACTER`.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `INTEGER` and of the default\ninteger kind.\n\n\n\n### Example\n```\n\n\nprogram test_kind\n\n  integer,parameter :: kc = kind(' ')\n\n  integer,parameter :: kl = kind(.true.)\n\n\n  print *, \"The default character kind is \", kc\n\n  print *, \"The default logical kind is \", kl\n\nend program test_kind\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/LBOUND.json b/doc/intrinsics/LBOUND.json deleted file mode 100644 index 18b81cb5..00000000 --- a/doc/intrinsics/LBOUND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LBOUND", - "docstr": "`LBOUND` — Lower dimension bounds of an array\n\n### Description\nReturns the lower bounds of an array, or a single lower bound\nalong the `DIM` dimension. \n\n\n### Syntax\n`RESULT = LBOUND(ARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the lower bounds of\n`ARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the lower bound of the array along that dimension. If\n`ARRAY` is an expression rather than a whole array or array\nstructure component, or if it has a zero extent along the relevant\ndimension, the lower bound is taken to be 1.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nUBOUND, LCOBOUND\n" -} diff --git a/doc/intrinsics/LCOBOUND.json b/doc/intrinsics/LCOBOUND.json deleted file mode 100644 index 4ac8b183..00000000 --- a/doc/intrinsics/LCOBOUND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LCOBOUND", - "docstr": "`LCOBOUND` — Lower codimension bounds of an array\n\n### Description\nReturns the lower bounds of a coarray, or a single lower cobound\nalong the `DIM` codimension. \n\n\n### Syntax\n`RESULT = LCOBOUND(COARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an coarray, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the lower cobounds of\n`COARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the lower cobound of the array along that codimension.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nUCOBOUND, LBOUND\n" -} diff --git a/doc/intrinsics/LEADZ.json b/doc/intrinsics/LEADZ.json deleted file mode 100644 index 720e2799..00000000 --- a/doc/intrinsics/LEADZ.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LEADZ", - "docstr": "`LEADZ` — Number of leading zero bits of an integer\n\n### Description\n`LEADZ` returns the number of leading zero bits of an integer.\n\n\n\n### Syntax\n`RESULT = LEADZ(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe type of the return value is the default `INTEGER`. \nIf all the bits of `I` are zero, the result value is `BIT_SIZE(I)`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_leadz\n\n  WRITE (*,*) BIT_SIZE(1) ! prints 32\n\n  WRITE (*,*) LEADZ(1) ! prints 31\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBIT_SIZE, TRAILZ, POPCNT, POPPAR\n" -} diff --git a/doc/intrinsics/LEN.json b/doc/intrinsics/LEN.json deleted file mode 100644 index 45688fb8..00000000 --- a/doc/intrinsics/LEN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LEN", - "docstr": "`LEN` — Length of a character entity\n\n### Description\nReturns the length of a character string. If `STRING` is an array,\nthe length of an element of `STRING` is returned. Note that\n`STRING` need not be defined when this intrinsic is invoked, since\nonly the length, not the content, of `STRING` is needed.\n\n\n\n### Syntax\n`L = LEN(STRING [, KIND])`\n\n\n### Arguments\n\n \n | `STRING` | Shall be a scalar or array of type\n`CHARACTER`, with `INTENT(IN)`
\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LEN(STRING)` | `CHARACTER` | `INTEGER` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nLEN_TRIM, ADJUSTL, ADJUSTR\n" -} diff --git a/doc/intrinsics/LEN_TRIM.json b/doc/intrinsics/LEN_TRIM.json deleted file mode 100644 index 0ba076ea..00000000 --- a/doc/intrinsics/LEN_TRIM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LEN_TRIM", - "docstr": "`LEN_TRIM` — Length of a character entity without trailing blank characters\n\n### Description\nReturns the length of a character string, ignoring any trailing blanks.\n\n\n\n### Syntax\n`RESULT = LEN_TRIM(STRING [, KIND])`\n\n\n### Arguments\n\n \n,\nwith `INTENT(IN)`
\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLEN, ADJUSTL, ADJUSTR\n" -} diff --git a/doc/intrinsics/LGE.json b/doc/intrinsics/LGE.json deleted file mode 100644 index 8ee1bb38..00000000 --- a/doc/intrinsics/LGE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LGE", - "docstr": "`LGE` — Lexical greater than or equal\n\n### Description\nDetermines whether one string is lexically greater than or equal to\nanother string, where the two strings are interpreted as containing\nASCII character codes. If the String A and String B are not the same\nlength, the shorter is compared as if spaces were appended to it to form\na value that has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LGE(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A >= STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LGE(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGT, LLE, LLT\n" -} diff --git a/doc/intrinsics/LGT.json b/doc/intrinsics/LGT.json deleted file mode 100644 index 354dc05b..00000000 --- a/doc/intrinsics/LGT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LGT", - "docstr": "`LGT` — Lexical greater than\n\n### Description\nDetermines whether one string is lexically greater than another string,\nwhere the two strings are interpreted as containing ASCII character\ncodes. If the String A and String B are not the same length, the\nshorter is compared as if spaces were appended to it to form a value\nthat has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LGT(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A > STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LGT(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGE, LLE, LLT\n" -} diff --git a/doc/intrinsics/LINK.json b/doc/intrinsics/LINK.json deleted file mode 100644 index a6747629..00000000 --- a/doc/intrinsics/LINK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LINK", - "docstr": "`LINK` — Create a hard link\n\n### Description\nMakes a (hard) link from file `PATH1` to `PATH2`. A null\ncharacter (`CHAR(0)`) can be used to mark the end of the names in\n`PATH1` and `PATH2`; otherwise, trailing blanks in the file\nnames are ignored. If the `STATUS` argument is supplied, it\ncontains 0 on success or a nonzero error code upon return; see\n`link(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = LINK(PATH1, PATH2)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `PATH2` | Shall be of default `CHARACTER` type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nSYMLNK, UNLINK\n" -} diff --git a/doc/intrinsics/LLE.json b/doc/intrinsics/LLE.json deleted file mode 100644 index 36e5b367..00000000 --- a/doc/intrinsics/LLE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LLE", - "docstr": "`LLE` — Lexical less than or equal\n\n### Description\nDetermines whether one string is lexically less than or equal to another\nstring, where the two strings are interpreted as containing ASCII\ncharacter codes. If the String A and String B are not the same length,\nthe shorter is compared as if spaces were appended to it to form a value\nthat has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LLE(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A <= STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LLE(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGE, LGT, LLT\n" -} diff --git a/doc/intrinsics/LLT.json b/doc/intrinsics/LLT.json deleted file mode 100644 index 1b2a40c4..00000000 --- a/doc/intrinsics/LLT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LLT", - "docstr": "`LLT` — Lexical less than\n\n### Description\nDetermines whether one string is lexically less than another string,\nwhere the two strings are interpreted as containing ASCII character\ncodes. If the String A and String B are not the same length, the\nshorter is compared as if spaces were appended to it to form a value\nthat has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LLT(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A < STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LLT(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGE, LGT, LLE\n" -} diff --git a/doc/intrinsics/LNBLNK.json b/doc/intrinsics/LNBLNK.json deleted file mode 100644 index 01a68828..00000000 --- a/doc/intrinsics/LNBLNK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LNBLNK", - "docstr": "`LNBLNK` — Index of the last non-blank character in a string\n\n### Description\nReturns the length of a character string, ignoring any trailing blanks. \nThis is identical to the standard `LEN_TRIM` intrinsic, and is only\nincluded for backwards compatibility.\n\n\n\n### Syntax\n`RESULT = LNBLNK(STRING)`\n\n\n### Arguments\n\n \n,\nwith `INTENT(IN)`
\n\n\n\n\n\n### Return value\nThe return value is of `INTEGER(kind=4)` type.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINDEX intrinsic, LEN_TRIM\n" -} diff --git a/doc/intrinsics/LOC.json b/doc/intrinsics/LOC.json deleted file mode 100644 index aee2866d..00000000 --- a/doc/intrinsics/LOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LOC", - "docstr": "`LOC` — Returns the address of a variable\n\n### Description\n`LOC(X)` returns the address of `X` as an integer.\n\n\n\n### Syntax\n`RESULT = LOC(X)`\n\n\n### Arguments\n\n \n | `X` | Variable of any type.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`, with a `KIND`corresponding to the size (in bytes) of a memory address on the target\nmachine.\n\n\n\n### Example\n```\n\n\nprogram test_loc\n\n  integer :: i\n\n  real :: r\n\n  i = loc(r)\n\n  print *, i\n\nend program test_loc\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/LOG.json b/doc/intrinsics/LOG.json deleted file mode 100644 index e67fea82..00000000 --- a/doc/intrinsics/LOG.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LOG", - "docstr": "`LOG` — Natural logarithm function\n\n### Description\n`LOG(X)` computes the natural logarithm of `X`, i.e. the\nlogarithm to the base e.\n\n\n\n### Syntax\n`RESULT = LOG(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` or `COMPLEX`. \nThe kind type parameter is the same as `X`. \nIf `X` is `COMPLEX`, the imaginary part \\omega is in the range\n-\\pi < \\omega \\leq \\pi.\n\n\n\n### Example\n```\n\n\nprogram test_log\n\n  real(8) :: x = 2.7182818284590451_8\n\n  complex :: z = (1.0, 2.0)\n\n  x = log(x) ! will yield (approximately) 1\n\n  z = log(z)\n\nend program test_log\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ALOG(X)` | `REAL(4) X` | `REAL(4)` | f95, gnu\n\n | `DLOG(X)` | `REAL(8) X` | `REAL(8)` | f95, gnu\n\n | `CLOG(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | f95, gnu\n\n | `ZLOG(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n | `CDLOG(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/LOG10.json b/doc/intrinsics/LOG10.json deleted file mode 100644 index 505f774d..00000000 --- a/doc/intrinsics/LOG10.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LOG10", - "docstr": "`LOG10` — Base 10 logarithm function\n\n### Description\n`LOG10(X)` computes the base 10 logarithm of `X`.\n\n\n\n### Syntax\n`RESULT = LOG10(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` or `COMPLEX`. \nThe kind type parameter is the same as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_log10\n\n  real(8) :: x = 10.0_8\n\n  x = log10(x)\n\nend program test_log10\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ALOG10(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DLOG10(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/LOGICAL.json b/doc/intrinsics/LOGICAL.json deleted file mode 100644 index a62e16e4..00000000 --- a/doc/intrinsics/LOGICAL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LOGICAL", - "docstr": "`LOGICAL` — Convert to logical type\n\n### Description\nConverts one kind of `LOGICAL` variable to another.\n\n\n\n### Syntax\n`RESULT = LOGICAL(L [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is a `LOGICAL` value equal to `L`, with a\nkind corresponding to `KIND`, or of the default logical kind if\n`KIND` is not given.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, REAL, CMPLX\n" -} diff --git a/doc/intrinsics/LOG_GAMMA.json b/doc/intrinsics/LOG_GAMMA.json deleted file mode 100644 index 61ca6394..00000000 --- a/doc/intrinsics/LOG_GAMMA.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LOG_GAMMA", - "docstr": "`LOG_GAMMA` — Logarithm of the Gamma function\n\n### Description\n`LOG_GAMMA(X)` computes the natural logarithm of the absolute value\nof the Gamma (\\Gamma) function.\n\n\n\n### Syntax\n`X = LOG_GAMMA(X)`\n\n\n### Arguments\n\n \n and neither zero\nnor a negative integer.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` of the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_log_gamma\n\n  real :: x = 1.0\n\n  x = lgamma(x) ! returns 0.0\n\nend program test_log_gamma\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LGAMMA(X)` | `REAL(4) X` | `REAL(4)` | GNU Extension\n\n | `ALGAMA(X)` | `REAL(4) X` | `REAL(4)` | GNU Extension\n\n | `DLGAMA(X)` | `REAL(8) X` | `REAL(8)` | GNU Extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nGamma function: GAMMA\n\n " -} diff --git a/doc/intrinsics/LONG.json b/doc/intrinsics/LONG.json deleted file mode 100644 index c2cebc1b..00000000 --- a/doc/intrinsics/LONG.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LONG", - "docstr": "`LONG` — Convert to integer type\n\n### Description\nConvert to a `KIND=4` integer type, which is the same size as a C\n`long` integer. This is equivalent to the standard `INT`intrinsic with an optional argument of `KIND=4`, and is only\nincluded for backwards compatibility.\n\n\n\n### Syntax\n`RESULT = LONG(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is a `INTEGER(4)` variable.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, INT2, INT8\n" -} diff --git a/doc/intrinsics/LSHIFT.json b/doc/intrinsics/LSHIFT.json deleted file mode 100644 index c0f7ad62..00000000 --- a/doc/intrinsics/LSHIFT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LSHIFT", - "docstr": "`LSHIFT` — Left shift bits\n\n### Description\n`LSHIFT` returns a value corresponding to `I` with all of the\nbits shifted left by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the left end are lost; zeros are shifted in from\nthe opposite end.\n\n \nThis function has been superseded by the `ISHFT` intrinsic, which\nis standard in Fortran 95 and later, and the `SHIFTL` intrinsic,\nwhich is standard in Fortran 2008 and later.\n\n\n\n\n### Syntax\n`RESULT = LSHIFT(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFT, ISHFTC, RSHIFT, SHIFTA, SHIFTL,\nSHIFTR\n\n " -} diff --git a/doc/intrinsics/LSTAT.json b/doc/intrinsics/LSTAT.json deleted file mode 100644 index 85e551ca..00000000 --- a/doc/intrinsics/LSTAT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LSTAT", - "docstr": "`LSTAT` — Get file status\n\n### Description\n`LSTAT` is identical to STAT, except that if path is a\nsymbolic link, then the link itself is statted, not the file that it\nrefers to.\n\n \nThe elements in `VALUES` are the same as described by STAT.\n\n \n\nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = LSTAT(NAME, VALUES)`
\n\n\n\n\n\n### Arguments\n\n \n of the default\nkind, a valid path within the file system. \n\n | `VALUES` | The type shall be `INTEGER(4), DIMENSION(13)`. \n\n | `STATUS` | (Optional) status flag of type `INTEGER(4)`. \nReturns 0 on success and a system specific error code otherwise.\n\n\n\n\n\n\n### Example\nSee STAT for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nTo stat an open file: FSTAT, to stat a file: STAT\n" -} diff --git a/doc/intrinsics/LTIME.json b/doc/intrinsics/LTIME.json deleted file mode 100644 index 529db386..00000000 --- a/doc/intrinsics/LTIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "LTIME", - "docstr": "`LTIME` — Convert time to local time info\n\n### Description\nGiven a system time value `TIME` (as provided by the `TIME8`intrinsic), fills `VALUES` with values extracted from it appropriate\nto the local time zone using `localtime(3)`.\n\n\n\n### Syntax\n`CALL LTIME(TIME, VALUES)`\n\n\n### Arguments\n\n \n scalar expression\ncorresponding to a system time, with `INTENT(IN)`. \n\n | `VALUES` | A default `INTEGER` array with 9 elements,\nwith `INTENT(OUT)`.\n\n\n\n\n\n\n### Return value\nThe elements of `VALUES` are assigned as follows:\n
    \n
  1. Seconds after the minute, range 0–59 or 0–61 to allow for leap\nseconds\n
  2. Minutes after the hour, range 0–59\n
  3. Hours past midnight, range 0–23\n
  4. Day of month, range 0–31\n
  5. Number of months since January, range 0–12\n
  6. Years since 1900\n
  7. Number of days since Sunday, range 0–6\n
  8. Days since January 1\n
  9. Daylight savings indicator: positive if daylight savings is in\neffect, zero if not, and negative if the information is not available.\n
\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nCTIME, GMTIME, TIME, TIME8\n\n " -} diff --git a/doc/intrinsics/MALLOC.json b/doc/intrinsics/MALLOC.json deleted file mode 100644 index d9265ef6..00000000 --- a/doc/intrinsics/MALLOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MALLOC", - "docstr": "`MALLOC` — Allocate dynamic memory\n\n### Description\n`MALLOC(SIZE)` allocates `SIZE` bytes of dynamic memory and\nreturns the address of the allocated memory. The `MALLOC` intrinsic\nis an extension intended to be used with Cray pointers, and is provided\nin GNU Fortran to allow the user to compile legacy code. For new code\nusing Fortran 95 pointers, the memory allocation intrinsic is\n`ALLOCATE`.\n\n\n\n### Syntax\n`PTR = MALLOC(SIZE)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER(K)`, with `K` such that\nvariables of type `INTEGER(K)` have the same size as\nC pointers (`sizeof(void *)`).\n\n\n\n### Example\nThe following example demonstrates the use of `MALLOC` and\n`FREE` with Cray pointers.\n\n```\n\n\nprogram test_malloc\n\n  implicit none\n\n  integer i\n\n  real*8 x(*), z\n\n  pointer(ptr_x,x)\n\n\n  ptr_x = malloc(20*8)\n\n  do i = 1, 20\n\n    x(i) = sqrt(1.0d0 / i)\n\n  end do\n\n  z = 0\n\n  do i = 1, 20\n\n    z = z + x(i)\n\n    print *, z\n\n  end do\n\n  call free(ptr_x)\n\nend program test_malloc\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFREE\n" -} diff --git a/doc/intrinsics/MASKL.json b/doc/intrinsics/MASKL.json deleted file mode 100644 index f9f13f57..00000000 --- a/doc/intrinsics/MASKL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MASKL", - "docstr": "`MASKL` — Left justified mask\n\n### Description\n`MASKL(I[, KIND])` has its leftmost `I` bits set to 1, and the\nremaining bits set to 0.\n\n\n\n### Syntax\n`RESULT = MASKL(I[, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | Shall be a scalar constant expression of type\n`INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`. If `KIND` is present, it\nspecifies the kind value of the return type; otherwise, it is of the\ndefault integer kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMASKR\n" -} diff --git a/doc/intrinsics/MASKR.json b/doc/intrinsics/MASKR.json deleted file mode 100644 index 0190e419..00000000 --- a/doc/intrinsics/MASKR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MASKR", - "docstr": "`MASKR` — Right justified mask\n\n### Description\n`MASKL(I[, KIND])` has its rightmost `I` bits set to 1, and the\nremaining bits set to 0.\n\n\n\n### Syntax\n`RESULT = MASKR(I[, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | Shall be a scalar constant expression of type\n`INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`. If `KIND` is present, it\nspecifies the kind value of the return type; otherwise, it is of the\ndefault integer kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMASKL\n" -} diff --git a/doc/intrinsics/MATMUL.json b/doc/intrinsics/MATMUL.json deleted file mode 100644 index fb39248e..00000000 --- a/doc/intrinsics/MATMUL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MATMUL", - "docstr": "`MATMUL` — matrix multiplication\n\n### Description\nPerforms a matrix multiplication on numeric or logical arguments.\n\n\n\n### Syntax\n`RESULT = MATMUL(MATRIX_A, MATRIX_B)`\n\n\n### Arguments\n\n \n,\n`REAL`, `COMPLEX`, or `LOGICAL` type, with a rank of\none or two. \n\n | `MATRIX_B` | An array of `INTEGER`,\n`REAL`, or `COMPLEX` type if `MATRIX_A` is of a numeric\ntype; otherwise, an array of `LOGICAL` type. The rank shall be one\nor two, and the first (or only) dimension of `MATRIX_B` shall be\nequal to the last (or only) dimension of `MATRIX_A`.\n\n\n\n\n\n\n### Return value\nThe matrix product of `MATRIX_A` and `MATRIX_B`. The type and\nkind of the result follow the usual type and kind promotion rules, as\nfor the `*` or `.AND.` operators.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\n" -} diff --git a/doc/intrinsics/MAX.json b/doc/intrinsics/MAX.json deleted file mode 100644 index bb320f58..00000000 --- a/doc/intrinsics/MAX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MAX", - "docstr": "`MAX` — Maximum value of an argument list\n\n### Description\nReturns the argument with the largest (most positive) value.\n\n\n\n### Syntax\n`RESULT = MAX(A1, A2 [, A3 [, ...]])`\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `A2`, `A3`, ... | An expression of the same type and kind\nas `A1`. (As a GNU extension, arguments of different kinds are\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return value corresponds to the maximum value among the arguments,\nand has the same type and kind as the first argument.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `MAX0(A1)` | `INTEGER(4) A1` | `INTEGER(4)` | Fortran 77 and later\n\n | `AMAX0(A1)` | `INTEGER(4) A1` | `REAL(MAX(X))` | Fortran 77 and later\n\n | `MAX1(A1)` | `REAL A1` | `INT(MAX(X))` | Fortran 77 and later\n\n | `AMAX1(A1)` | `REAL(4) A1` | `REAL(4)` | Fortran 77 and later\n\n | `DMAX1(A1)` | `REAL(8) A1` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMAXLOC MAXVAL, MIN\n\n " -} diff --git a/doc/intrinsics/MAXEXPONENT.json b/doc/intrinsics/MAXEXPONENT.json deleted file mode 100644 index 6b683d9f..00000000 --- a/doc/intrinsics/MAXEXPONENT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MAXEXPONENT", - "docstr": "`MAXEXPONENT` — Maximum exponent of a real kind\n\n### Description\n`MAXEXPONENT(X)` returns the maximum exponent in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = MAXEXPONENT(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram exponents\n\n  real(kind=4) :: x\n\n  real(kind=8) :: y\n\n\n  print *, minexponent(x), maxexponent(x)\n\n  print *, minexponent(y), maxexponent(y)\n\nend program exponents\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/MAXLOC.json b/doc/intrinsics/MAXLOC.json deleted file mode 100644 index 0fdd4620..00000000 --- a/doc/intrinsics/MAXLOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MAXLOC", - "docstr": "`MAXLOC` — Location of the maximum value within an array\n\n### Description\nDetermines the location of the element in the array with the maximum\nvalue, or, if the `DIM` argument is supplied, determines the\nlocations of the maximum element along each row of the array in the\n`DIM` direction. If `MASK` is present, only the elements for\nwhich `MASK` is `.TRUE.` are considered. If more than one\nelement in the array has the maximum value, the location returned is\nthat of the first such element in array element order. If the array has\nzero size, or all of the elements of `MASK` are `.FALSE.`, then\nthe result is an array of zeroes. Similarly, if `DIM` is supplied\nand all of the elements of `MASK` along a given row are zero, the\nresult value for that row is zero.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MAXLOC(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, the result is a rank-one array with a length\nequal to the rank of `ARRAY`. If `DIM` is present, the result\nis an array with a rank one less than the rank of `ARRAY`, and a\nsize corresponding to the size of `ARRAY` with the `DIM`\ndimension removed. If `DIM` is present and `ARRAY` has a rank\nof one, the result is a scalar. In all cases, the result is of default\n`INTEGER` type.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMAX, MAXVAL\n\n " -} diff --git a/doc/intrinsics/MAXVAL.json b/doc/intrinsics/MAXVAL.json deleted file mode 100644 index c2e1ff71..00000000 --- a/doc/intrinsics/MAXVAL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MAXVAL", - "docstr": "`MAXVAL` — Maximum value of an array\n\n### Description\nDetermines the maximum value of the elements in an array value, or, if\nthe `DIM` argument is supplied, determines the maximum value along\neach row of the array in the `DIM` direction. If `MASK` is\npresent, only the elements for which `MASK` is `.TRUE.` are\nconsidered. If the array has zero size, or all of the elements of\n`MASK` are `.FALSE.`, then the result is `-HUGE(ARRAY)`if `ARRAY` is numeric, or a string of nulls if `ARRAY` is of character\ntype.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MAXVAL(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, or if `ARRAY` has a rank of one, the result\nis a scalar. If `DIM` is present, the result is an array with a\nrank one less than the rank of `ARRAY`, and a size corresponding to\nthe size of `ARRAY` with the `DIM` dimension removed. In all\ncases, the result is of the same type and kind as `ARRAY`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMAX, MAXLOC\n" -} diff --git a/doc/intrinsics/MCLOCK.json b/doc/intrinsics/MCLOCK.json deleted file mode 100644 index 017c8da7..00000000 --- a/doc/intrinsics/MCLOCK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MCLOCK", - "docstr": "`MCLOCK` — Time function\n\n### Description\nReturns the number of clock ticks since the start of the process, based\non the function `clock(3)` in the C standard library.\n\n \nThis intrinsic is not fully portable, such as to systems with 32-bit\n`INTEGER` types but supporting times wider than 32 bits. Therefore,\nthe values returned by this intrinsic might be, or become, negative, or\nnumerically less than previous values, during a single run of the\ncompiled program.\n\n\n\n\n### Syntax\n`RESULT = MCLOCK()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(4)`, equal to the\nnumber of clock ticks since the start of the process, or `-1` if\nthe system does not support `clock(3)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK, TIME\n\n " -} diff --git a/doc/intrinsics/MCLOCK8.json b/doc/intrinsics/MCLOCK8.json deleted file mode 100644 index bde727a6..00000000 --- a/doc/intrinsics/MCLOCK8.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MCLOCK8", - "docstr": "`MCLOCK8` — Time function (64-bit)\n\n### Description\nReturns the number of clock ticks since the start of the process, based\non the function `clock(3)` in the C standard library.\n\n \nWarning: this intrinsic does not increase the range of the timing\nvalues over that returned by `clock(3)`. On a system with a 32-bit\n`clock(3)`, `MCLOCK8` will return a 32-bit value, even though\nit is converted to a 64-bit `INTEGER(8)` value. That means\noverflows of the 32-bit value can still occur. Therefore, the values\nreturned by this intrinsic might be or become negative or numerically\nless than previous values during a single run of the compiled program.\n\n\n\n\n### Syntax\n`RESULT = MCLOCK8()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(8)`, equal to the\nnumber of clock ticks since the start of the process, or `-1` if\nthe system does not support `clock(3)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK, TIME8\n\n " -} diff --git a/doc/intrinsics/MERGE.json b/doc/intrinsics/MERGE.json deleted file mode 100644 index 325970fa..00000000 --- a/doc/intrinsics/MERGE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MERGE", - "docstr": "`MERGE` — Merge variables\n\n### Description\nSelect values from two arrays according to a logical mask. The result\nis equal to `TSOURCE` if `MASK` is `.TRUE.`, or equal to\n`FSOURCE` if it is `.FALSE.`.\n\n\n\n### Syntax\n`RESULT = MERGE(TSOURCE, FSOURCE, MASK)`\n\n\n### Arguments\n\n \n | `TSOURCE` | May be of any type. \n\n | `FSOURCE` | Shall be of the same type and type parameters\nas `TSOURCE`. \n\n | `MASK` | Shall be of type `LOGICAL`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type and type parameters as `TSOURCE`.\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/MERGE_BITS.json b/doc/intrinsics/MERGE_BITS.json deleted file mode 100644 index 9dae7f79..00000000 --- a/doc/intrinsics/MERGE_BITS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MERGE_BITS", - "docstr": "`MERGE_BITS` — Merge of bits under mask\n\n### Description\n`MERGE_BITS(I, J, MASK)` merges the bits of `I` and `J`\nas determined by the mask. The i-th bit of the result is equal to the\ni-th bit of `I` if the i-th bit of `MASK` is 1; it is equal to\nthe i-th bit of `J` otherwise.\n\n\n\n### Syntax\n`RESULT = MERGE_BITS(I, J, MASK)`\n\n\n### Arguments\n\n \n. \n\n | `J` | Shall be of type `INTEGER` and of the same\nkind as `I`. \n\n | `MASK` | Shall be of type `INTEGER` and of the same\nkind as `I`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type and kind as `I`.\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/MIN.json b/doc/intrinsics/MIN.json deleted file mode 100644 index e8056129..00000000 --- a/doc/intrinsics/MIN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MIN", - "docstr": "`MIN` — Minimum value of an argument list\n\n### Description\nReturns the argument with the smallest (most negative) value.\n\n\n\n### Syntax\n`RESULT = MIN(A1, A2 [, A3, ...])`\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `A2`, `A3`, ... | An expression of the same type and kind\nas `A1`. (As a GNU extension, arguments of different kinds are\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return value corresponds to the maximum value among the arguments,\nand has the same type and kind as the first argument.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `MIN0(A1)` | `INTEGER(4) A1` | `INTEGER(4)` | Fortran 77 and later\n\n | `AMIN0(A1)` | `INTEGER(4) A1` | `REAL(4)` | Fortran 77 and later\n\n | `MIN1(A1)` | `REAL A1` | `INTEGER(4)` | Fortran 77 and later\n\n | `AMIN1(A1)` | `REAL(4) A1` | `REAL(4)` | Fortran 77 and later\n\n | `DMIN1(A1)` | `REAL(8) A1` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMAX, MINLOC, MINVAL\n" -} diff --git a/doc/intrinsics/MINEXPONENT.json b/doc/intrinsics/MINEXPONENT.json deleted file mode 100644 index be614611..00000000 --- a/doc/intrinsics/MINEXPONENT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MINEXPONENT", - "docstr": "`MINEXPONENT` — Minimum exponent of a real kind\n\n### Description\n`MINEXPONENT(X)` returns the minimum exponent in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = MINEXPONENT(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\nSee `MAXEXPONENT` for an example. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/MINLOC.json b/doc/intrinsics/MINLOC.json deleted file mode 100644 index 4941aee5..00000000 --- a/doc/intrinsics/MINLOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MINLOC", - "docstr": "`MINLOC` — Location of the minimum value within an array\n\n### Description\nDetermines the location of the element in the array with the minimum\nvalue, or, if the `DIM` argument is supplied, determines the\nlocations of the minimum element along each row of the array in the\n`DIM` direction. If `MASK` is present, only the elements for\nwhich `MASK` is `.TRUE.` are considered. If more than one\nelement in the array has the minimum value, the location returned is\nthat of the first such element in array element order. If the array has\nzero size, or all of the elements of `MASK` are `.FALSE.`, then\nthe result is an array of zeroes. Similarly, if `DIM` is supplied\nand all of the elements of `MASK` along a given row are zero, the\nresult value for that row is zero.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MINLOC(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, the result is a rank-one array with a length\nequal to the rank of `ARRAY`. If `DIM` is present, the result\nis an array with a rank one less than the rank of `ARRAY`, and a\nsize corresponding to the size of `ARRAY` with the `DIM`\ndimension removed. If `DIM` is present and `ARRAY` has a rank\nof one, the result is a scalar. In all cases, the result is of default\n`INTEGER` type.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMIN, MINVAL\n\n " -} diff --git a/doc/intrinsics/MINVAL.json b/doc/intrinsics/MINVAL.json deleted file mode 100644 index f7a8a82d..00000000 --- a/doc/intrinsics/MINVAL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MINVAL", - "docstr": "`MINVAL` — Minimum value of an array\n\n### Description\nDetermines the minimum value of the elements in an array value, or, if\nthe `DIM` argument is supplied, determines the minimum value along\neach row of the array in the `DIM` direction. If `MASK` is\npresent, only the elements for which `MASK` is `.TRUE.` are\nconsidered. If the array has zero size, or all of the elements of\n`MASK` are `.FALSE.`, then the result is `HUGE(ARRAY)` if\n`ARRAY` is numeric, or a string of `CHAR(255)` characters if\n`ARRAY` is of character type.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MINVAL(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, or if `ARRAY` has a rank of one, the result\nis a scalar. If `DIM` is present, the result is an array with a\nrank one less than the rank of `ARRAY`, and a size corresponding to\nthe size of `ARRAY` with the `DIM` dimension removed. In all\ncases, the result is of the same type and kind as `ARRAY`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMIN, MINLOC\n\n " -} diff --git a/doc/intrinsics/MOD.json b/doc/intrinsics/MOD.json deleted file mode 100644 index 024d9ceb..00000000 --- a/doc/intrinsics/MOD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MOD", - "docstr": "`MOD` — Remainder function\n\n### Description\n`MOD(A,P)` computes the remainder of the division of A by P.\n\n\n\n### Syntax\n`RESULT = MOD(A, P)`\n\n\n### Arguments\n\n \n. \n\n | `P` | Shall be a scalar of the same type and kind as `A`\nand not equal to zero.\n\n\n\n\n\n\n### Return value\nThe return value is the result of `A - (INT(A/P) * P)`. The type\nand kind of the return value is the same as that of the arguments. The\nreturned value has the same sign as A and a magnitude less than the\nmagnitude of P.\n\n\n\n### Example\n```\n\n\nprogram test_mod\n\n  print *, mod(17,3)\n\n  print *, mod(17.5,5.5)\n\n  print *, mod(17.5d0,5.5)\n\n  print *, mod(17.5,5.5d0)\n\n\n  print *, mod(-17,3)\n\n  print *, mod(-17.5,5.5)\n\n  print *, mod(-17.5d0,5.5)\n\n  print *, mod(-17.5,5.5d0)\n\n\n  print *, mod(17,-3)\n\n  print *, mod(17.5,-5.5)\n\n  print *, mod(17.5d0,-5.5)\n\n  print *, mod(17.5,-5.5d0)\n\nend program test_mod\n\n```\n\n\n\n### Specific names\n\n \n | Name | Arguments | Return type | Standard\n\n | `MOD(A,P)` | `INTEGER A,P` | `INTEGER` | Fortran 95 and later\n\n | `AMOD(A,P)` | `REAL(4) A,P` | `REAL(4)` | Fortran 95 and later\n\n | `DMOD(A,P)` | `REAL(8) A,P` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMODULO\n\n " -} diff --git a/doc/intrinsics/MODULO.json b/doc/intrinsics/MODULO.json deleted file mode 100644 index 848ab2da..00000000 --- a/doc/intrinsics/MODULO.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MODULO", - "docstr": "`MODULO` — Modulo function\n\n### Description\n`MODULO(A,P)` computes the `A` modulo `P`.\n\n\n\n### Syntax\n`RESULT = MODULO(A, P)`\n\n\n### Arguments\n\n \n. \n\n | `P` | Shall be a scalar of the same type and kind as `A`. \nIt shall not be zero.\n\n\n\n\n\n\n### Return value\nThe type and kind of the result are those of the arguments.\n
\n**If `A` and `P` are of type `INTEGER`:** `MODULO(A,P)` has the value `R` such that `A=Q*P+R`, where\n`Q` is an integer and `R` is between 0 (inclusive) and `P`\n(exclusive). \n\n**If `A` and `P` are of type `REAL`:** `MODULO(A,P)` has the value of `A - FLOOR (A / P) * P`. \n\n
\n The returned value has the same sign as P and a magnitude less than\nthe magnitude of P.\n\n\n\n### Example\n```\n\n\nprogram test_modulo\n\n  print *, modulo(17,3)\n\n  print *, modulo(17.5,5.5)\n\n\n  print *, modulo(-17,3)\n\n  print *, modulo(-17.5,5.5)\n\n\n  print *, modulo(17,-3)\n\n  print *, modulo(17.5,-5.5)\n\nend program\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMOD\n\n " -} diff --git a/doc/intrinsics/MOVE_ALLOC.json b/doc/intrinsics/MOVE_ALLOC.json deleted file mode 100644 index 9ceccf98..00000000 --- a/doc/intrinsics/MOVE_ALLOC.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MOVE_ALLOC", - "docstr": "`MOVE_ALLOC` — Move allocation from one object to another\n\n### Description\n`MOVE_ALLOC(FROM, TO)` moves the allocation from `FROM` to\n`TO`. `FROM` will become deallocated in the process.\n\n\n\n### Syntax\n`CALL MOVE_ALLOC(FROM, TO)`\n\n\n### Arguments\n\n \n, may be\nof any type and kind. \n\n | `TO` | `ALLOCATABLE`, `INTENT(OUT)`, shall be\nof the same type, kind and rank as `FROM`.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_move_alloc\n\n    integer, allocatable :: a(:), b(:)\n\n\n    allocate(a(3))\n\n    a = [ 1, 2, 3 ]\n\n    call move_alloc(a, b)\n\n    print *, allocated(a), allocated(b)\n\n    print *, b\n\nend program test_move_alloc\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nPure subroutine\n\n\n" -} diff --git a/doc/intrinsics/MVBITS.json b/doc/intrinsics/MVBITS.json deleted file mode 100644 index 4a499b39..00000000 --- a/doc/intrinsics/MVBITS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "MVBITS", - "docstr": "`MVBITS` — Move bits from one integer to another\n\n### Description\nMoves `LEN` bits from positions `FROMPOS` through\n`FROMPOS+LEN-1` of `FROM` to positions `TOPOS` through\n`TOPOS+LEN-1` of `TO`. The portion of argument `TO` not\naffected by the movement of bits is unchanged. The values of\n`FROMPOS+LEN-1` and `TOPOS+LEN-1` must be less than\n`BIT_SIZE(FROM)`.\n\n\n\n### Syntax\n`CALL MVBITS(FROM, FROMPOS, LEN, TO, TOPOS)`\n\n\n### Arguments\n\n \n. \n\n | `FROMPOS` | The type shall be `INTEGER`. \n\n | `LEN` | The type shall be `INTEGER`. \n\n | `TO` | The type shall be `INTEGER`, of the\nsame kind as `FROM`. \n\n | `TOPOS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental subroutine\n\n\n\n### See also\nIBCLR, IBSET, IBITS, IAND, IOR, IEOR\n" -} diff --git a/doc/intrinsics/NEAREST.json b/doc/intrinsics/NEAREST.json deleted file mode 100644 index 6fb2b21b..00000000 --- a/doc/intrinsics/NEAREST.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "NEAREST", - "docstr": "`NEAREST` — Nearest representable number\n\n### Description\n`NEAREST(X, S)` returns the processor-representable number nearest\nto `X` in the direction indicated by the sign of `S`.\n\n\n\n### Syntax\n`RESULT = NEAREST(X, S)`\n\n\n### Arguments\n\n \n. \n\n | `S` | Shall be of type `REAL` and\nnot equal to zero.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type as `X`. If `S` is\npositive, `NEAREST` returns the processor-representable number\ngreater than `X` and nearest to it. If `S` is negative,\n`NEAREST` returns the processor-representable number smaller than\n`X` and nearest to it.\n\n\n\n### Example\n```\n\n\nprogram test_nearest\n\n  real :: x, y\n\n  x = nearest(42.0, 1.0)\n\n  y = nearest(42.0, -1.0)\n\n  write (*,\"(3(G20.15))\") x, y, x - y\n\nend program test_nearest\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/NEW_LINE.json b/doc/intrinsics/NEW_LINE.json deleted file mode 100644 index 31ddfcd7..00000000 --- a/doc/intrinsics/NEW_LINE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "NEW_LINE", - "docstr": "`NEW_LINE` — New line character\n\n### Description\n`NEW_LINE(C)` returns the new-line character.\n\n\n\n### Syntax\n`RESULT = NEW_LINE(C)`\n\n\n### Arguments\n\n \n | `C` | The argument shall be a scalar or array of the\ntype `CHARACTER`.\n\n\n\n\n\n\n### Return value\nReturns a `CHARACTER` scalar of length one with the new-line character of\nthe same kind as parameter `C`.\n\n\n\n### Example\n```\n\n\nprogram newline\n\n  implicit none\n\n  write(*,'(A)') 'This is record 1.'//NEW_LINE('A')//'This is record 2.'\n\nend program newline\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/NINT.json b/doc/intrinsics/NINT.json deleted file mode 100644 index 69d97bcc..00000000 --- a/doc/intrinsics/NINT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "NINT", - "docstr": "`NINT` — Nearest whole number\n\n### Description\n`NINT(A)` rounds its argument to the nearest whole number.\n\n\n\n### Syntax\n`RESULT = NINT(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nReturns `A` with the fractional portion of its magnitude eliminated by\nrounding to the nearest whole number and with its sign preserved,\nconverted to an `INTEGER` of the default kind.\n\n\n\n### Example\n```\n\n\nprogram test_nint\n\n  real(4) x4\n\n  real(8) x8\n\n  x4 = 1.234E0_4\n\n  x8 = 4.321_8\n\n  print *, nint(x4), idnint(x8)\n\nend program test_nint\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return Type | Standard\n\n | `NINT(A)` | `REAL(4) A` | `INTEGER` | Fortran 95 and later\n\n | `IDNINT(A)` | `REAL(8) A` | `INTEGER` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 90 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCEILING, FLOOR\n\n " -} diff --git a/doc/intrinsics/NORM2.json b/doc/intrinsics/NORM2.json deleted file mode 100644 index 83d2a911..00000000 --- a/doc/intrinsics/NORM2.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "NORM2", - "docstr": "`NORM2` — Euclidean vector norms\n\n### Description\nCalculates the Euclidean vector norm (L_2 norm) of\nof `ARRAY` along dimension `DIM`.\n\n\n\n### Syntax\n\n \n\n\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the square root of the sum of all\nelements in `ARRAY` squared is returned. Otherwise, an array of\nrank n-1, where n equals the rank of `ARRAY`, and a\nshape similar to that of `ARRAY` with dimension `DIM` dropped\nis returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_sum\n\n  REAL :: x(5) = [ real :: 1, 2, 3, 4, 5 ]\n\n  print *, NORM2(x) ! = sqrt(55.) ~ 7.416\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/NOT.json b/doc/intrinsics/NOT.json deleted file mode 100644 index 4abeb419..00000000 --- a/doc/intrinsics/NOT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "NOT", - "docstr": "`NOT` — Logical negation\n\n### Description\n`NOT` returns the bitwise Boolean inverse of `I`.\n\n\n\n### Syntax\n`RESULT = NOT(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\nargument.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIAND, IEOR, IOR, IBITS, IBSET, IBCLR\n\n " -} diff --git a/doc/intrinsics/NULL.json b/doc/intrinsics/NULL.json deleted file mode 100644 index 07f8b539..00000000 --- a/doc/intrinsics/NULL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "NULL", - "docstr": "`NULL` — Function that returns an disassociated pointer\n\n### Description\nReturns a disassociated pointer.\n\n \nIf `MOLD` is present, a disassociated pointer of the same type is\nreturned, otherwise the type is determined by context.\n\n \n\nIn Fortran 95, `MOLD` is optional. Please note that Fortran 2003\nincludes cases where it is required.\n\n\n\n\n### Syntax\n`PTR => NULL([MOLD])`\n\n\n### Arguments\n\n \n | `MOLD` | (Optional) shall be a pointer of any association\nstatus and of any type.\n\n\n\n\n\n\n### Return value\nA disassociated pointer.\n\n\n\n### Example\n```\n\n\nREAL, POINTER, DIMENSION(:) :: VEC => NULL ()\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nASSOCIATED\n" -} diff --git a/doc/intrinsics/NUM_IMAGES.json b/doc/intrinsics/NUM_IMAGES.json deleted file mode 100644 index ac0a1631..00000000 --- a/doc/intrinsics/NUM_IMAGES.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "NUM_IMAGES", - "docstr": "`NUM_IMAGES` — Function that returns the number of images\n\n### Description\nReturns the number of images.\n\n\n\n### Syntax\n`RESULT = NUM_IMAGES(DISTANCE, FAILED)`\n\n\n### Arguments\n\n \n | `DISTANCE` | (optional, intent(in)) Nonnegative scalar integer\n\n | `FAILED` | (optional, intent(in)) Scalar logical expression\n\n\n\n\n\n\n### Return value\nScalar default-kind integer. If `DISTANCE` is not present or has value 0,\nthe number of images in the current team is returned. For values smaller or\nequal distance to the initial team, it returns the number of images index\non the ancestor team which has a distance of `DISTANCE` from the invoking\nteam. If `DISTANCE` is larger than the distance to the initial team, the\nnumber of images of the initial team is returned. If `FAILED` is not present\nthe total number of images is returned; if it has the value `.TRUE.`,\nthe number of failed images is returned, otherwise, the number of images which\ndo have not the failed status.\n\n\n\n### Example\n```\n\n\nINTEGER :: value[*]\n\nINTEGER :: i\n\nvalue = THIS_IMAGE()\n\nSYNC ALL\n\nIF (THIS_IMAGE() == 1) THEN\n\n  DO i = 1, NUM_IMAGES()\n\n    WRITE(*,'(2(a,i0))') 'value[', i, '] is ', value[i]\n\n  END DO\n\nEND IF\n\n```\n\n\n\n### Standard\nFortran 2008 and later. With `DISTANCE` or `FAILED` argument,\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nTHIS_IMAGE, IMAGE_INDEX\n" -} diff --git a/doc/intrinsics/OR.json b/doc/intrinsics/OR.json deleted file mode 100644 index b2283e69..00000000 --- a/doc/intrinsics/OR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "OR", - "docstr": "`OR` — Bitwise logical OR\n\n### Description\nBitwise logical `OR`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. For integer arguments, programmers should consider\nthe use of the IOR intrinsic defined by the Fortran standard.\n\n\n\n\n### Syntax\n`RESULT = OR(I, J)`\n\n\n### Arguments\n\n \n\ntype or a scalar `LOGICAL` type. \n\n | `J` | The type shall be the same as the type of `J`.\n\n\n\n\n\n\n### Return value\nThe return type is either a scalar `INTEGER` or a scalar\n`LOGICAL`. If the kind type parameters differ, then the\nsmaller kind type is implicitly converted to larger kind, and the\nreturn has the larger kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_or\n\n  LOGICAL :: T = .TRUE., F = .FALSE.\n\n  INTEGER :: a, b\n\n  DATA a / Z'F' /, b / Z'3' /\n\n\n  WRITE (*,*) OR(T, T), OR(T, F), OR(F, T), OR(F, F)\n\n  WRITE (*,*) OR(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFortran 95 elemental function: IOR\n" -} diff --git a/doc/intrinsics/PACK.json b/doc/intrinsics/PACK.json deleted file mode 100644 index 08287b2d..00000000 --- a/doc/intrinsics/PACK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "PACK", - "docstr": "`PACK` — Pack an array into an array of rank one\n\n### Description\nStores the elements of `ARRAY` in an array of rank one.\n\n \nThe beginning of the resulting array is made up of elements whose `MASK`\nequals `TRUE`. Afterwards, positions are filled with elements taken from\n`VECTOR`.\n\n\n\n\n### Syntax\n`RESULT = PACK(ARRAY, MASK[,VECTOR])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array of any type. \n\n | `MASK` | Shall be an array of type `LOGICAL` and\nof the same size as `ARRAY`. Alternatively, it may be a `LOGICAL`scalar. \n\n | `VECTOR` | (Optional) shall be an array of the same type\nas `ARRAY` and of rank one. If present, the number of elements in\n`VECTOR` shall be equal to or greater than the number of true elements\nin `MASK`. If `MASK` is scalar, the number of elements in\n`VECTOR` shall be equal to or greater than the number of elements in\n`ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is an array of rank one and the same type as that of `ARRAY`. \nIf `VECTOR` is present, the result size is that of `VECTOR`, the\nnumber of `TRUE` values in `MASK` otherwise.\n\n\n\n### Example\nGathering nonzero elements from an array:\n```\n\n\nPROGRAM test_pack_1\n\n  INTEGER :: m(6)\n\n  m = (/ 1, 0, 0, 0, 5, 0 /)\n\n  WRITE(*, FMT=\"(6(I0, ' '))\") pack(m, m /= 0) ! \"1 5\"\n\nEND PROGRAM\n\n```\n\n \nGathering nonzero elements from an array and appending elements from `VECTOR`:\n \n
          PROGRAM test_pack_2\n            INTEGER :: m(4)\n            m = (/ 1, 0, 0, 2 /)\n            WRITE(*, FMT=\"(4(I0, ' '))\") pack(m, m /= 0, (/ 0, 0, 3, 4 /))  ! \"1 2 3 4\"\n          END PROGRAM\n
\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nUNPACK\n" -} diff --git a/doc/intrinsics/PARITY.json b/doc/intrinsics/PARITY.json deleted file mode 100644 index b111c9d6..00000000 --- a/doc/intrinsics/PARITY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "PARITY", - "docstr": "`PARITY` — Reduction with exclusive OR\n\n### Description\nCalculates the parity, i.e. the reduction using `.XOR.`,\nof `MASK` along dimension `DIM`.\n\n\n\n### Syntax\n\n \n\n\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `MASK`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `MASK`.\n\n \nIf `DIM` is absent, a scalar with the parity of all elements in\n`MASK` is returned, i.e. true if an odd number of elements is\n`.true.` and false otherwise. If `DIM` is present, an array\nof rank n-1, where n equals the rank of `ARRAY`,\nand a shape similar to that of `MASK` with dimension `DIM`\ndropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_sum\n\n  LOGICAL :: x(2) = [ .true., .false. ]\n\n  print *, PARITY(x) ! prints \"T\" (true).\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/PERROR.json b/doc/intrinsics/PERROR.json deleted file mode 100644 index d07f48c8..00000000 --- a/doc/intrinsics/PERROR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "PERROR", - "docstr": "`PERROR` — Print system error message\n\n### Description\nPrints (on the C `stderr` stream) a newline-terminated error\nmessage corresponding to the last system error. This is prefixed by\n`STRING`, a colon and a space. See `perror(3)`.\n\n\n\n### Syntax\n`CALL PERROR(STRING)`\n\n\n### Arguments\n\n \n and of the\ndefault kind.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nIERRNO\n" -} diff --git a/doc/intrinsics/POPCNT.json b/doc/intrinsics/POPCNT.json deleted file mode 100644 index cfec65c0..00000000 --- a/doc/intrinsics/POPCNT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "POPCNT", - "docstr": "`POPCNT` — Number of bits set\n\n### Description\n`POPCNT(I)` returns the number of bits set ('1' bits) in the binary\nrepresentation of `I`.\n\n\n\n### Syntax\n`RESULT = POPCNT(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram test_population\n\n  print *, popcnt(127), poppar(127)\n\n  print *, popcnt(huge(0_4)), poppar(huge(0_4))\n\n  print *, popcnt(huge(0_8)), poppar(huge(0_8))\n\nend program test_population\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nPOPPAR, LEADZ, TRAILZ\n\n\n" -} diff --git a/doc/intrinsics/POPPAR.json b/doc/intrinsics/POPPAR.json deleted file mode 100644 index 048293d7..00000000 --- a/doc/intrinsics/POPPAR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "POPPAR", - "docstr": "`POPPAR` — Parity of the number of bits set\n\n### Description\n`POPPAR(I)` returns parity of the integer `I`, i.e. the parity\nof the number of bits set ('1' bits) in the binary representation of\n`I`. It is equal to 0 if `I` has an even number of bits set,\nand 1 for an odd number of '1' bits.\n\n\n\n### Syntax\n`RESULT = POPPAR(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram test_population\n\n  print *, popcnt(127), poppar(127)\n\n  print *, popcnt(huge(0_4)), poppar(huge(0_4))\n\n  print *, popcnt(huge(0_8)), poppar(huge(0_8))\n\nend program test_population\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nPOPCNT, LEADZ, TRAILZ\n\n\n" -} diff --git a/doc/intrinsics/PRECISION.json b/doc/intrinsics/PRECISION.json deleted file mode 100644 index 9c872f87..00000000 --- a/doc/intrinsics/PRECISION.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "PRECISION", - "docstr": "`PRECISION` — Decimal precision of a real kind\n\n### Description\n`PRECISION(X)` returns the decimal precision in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = PRECISION(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram prec_and_range\n\n  real(kind=4) :: x(2)\n\n  complex(kind=8) :: y\n\n\n  print *, precision(x), range(x)\n\n  print *, precision(y), range(y)\n\nend program prec_and_range\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSELECTED_REAL_KIND, RANGE\n\n\n" -} diff --git a/doc/intrinsics/PRESENT.json b/doc/intrinsics/PRESENT.json deleted file mode 100644 index 0c368914..00000000 --- a/doc/intrinsics/PRESENT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "PRESENT", - "docstr": "`PRESENT` — Determine whether an optional dummy argument is specified\n\n### Description\nDetermines whether an optional dummy argument is present.\n\n\n\n### Syntax\n`RESULT = PRESENT(A)`\n\n\n### Arguments\n\n \n | `A` | May be of any type and may be a pointer, scalar or array\nvalue, or a dummy procedure. It shall be the name of an optional dummy argument\naccessible within the current subroutine or function.\n\n\n\n\n\n\n### Return value\nReturns either `TRUE` if the optional argument `A` is present, or\n`FALSE` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM test_present\n\n  WRITE(*,*) f(), f(42) ! \"F T\"\n\nCONTAINS\n\n  LOGICAL FUNCTION f(x)\n\n    INTEGER, INTENT(IN), OPTIONAL :: x\n\n    f = PRESENT(x)\n\n  END FUNCTION\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/PRODUCT.json b/doc/intrinsics/PRODUCT.json deleted file mode 100644 index 58d5e307..00000000 --- a/doc/intrinsics/PRODUCT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "PRODUCT", - "docstr": "`PRODUCT` — Product of array elements\n\n### Description\nMultiplies the elements of `ARRAY` along dimension `DIM` if\nthe corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = PRODUCT(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n,\n`REAL` or `COMPLEX`. \n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the product of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_product\n\n  INTEGER :: x(5) = (/ 1, 2, 3, 4 ,5 /)\n\n  print *, PRODUCT(x) ! all elements, product = 120\n\n  print *, PRODUCT(x, MASK=MOD(x, 2)==1) ! odd elements, product = 15\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nSUM\n" -} diff --git a/doc/intrinsics/RADIX.json b/doc/intrinsics/RADIX.json deleted file mode 100644 index 09f357fe..00000000 --- a/doc/intrinsics/RADIX.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RADIX", - "docstr": "`RADIX` — Base of a model number\n\n### Description\n`RADIX(X)` returns the base of the model representing the entity `X`.\n\n\n\n### Syntax\n`RESULT = RADIX(X)`\n\n\n### Arguments\n\n \n\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `INTEGER` and of the default\ninteger kind.\n\n\n\n### Example\n```\n\n\nprogram test_radix\n\n  print *, \"The radix for the default integer kind is\", radix(0)\n\n  print *, \"The radix for the default real kind is\", radix(0.0)\n\nend program test_radix\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSELECTED_REAL_KIND\n\n\n" -} diff --git a/doc/intrinsics/RAN.json b/doc/intrinsics/RAN.json deleted file mode 100644 index 92bb59f8..00000000 --- a/doc/intrinsics/RAN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RAN", - "docstr": "`RAN` — Real pseudo-random number\n\n### Description\nFor compatibility with HP FORTRAN 77/iX, the `RAN` intrinsic is\nprovided as an alias for `RAND`. See RAND for complete\ndocumentation.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nRAND, RANDOM_NUMBER\n" -} diff --git a/doc/intrinsics/RAND.json b/doc/intrinsics/RAND.json deleted file mode 100644 index 430dd2af..00000000 --- a/doc/intrinsics/RAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RAND", - "docstr": "`RAND` — Real pseudo-random number\n\n### Description\n`RAND(FLAG)` returns a pseudo-random number from a uniform\ndistribution between 0 and 1. If `FLAG` is 0, the next number\nin the current sequence is returned; if `FLAG` is 1, the generator\nis restarted by `CALL SRAND(0)`; if `FLAG` has any other value,\nit is used as a new seed with `SRAND`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. It implements a simple modulo generator as provided\nby *g77*. For new code, one should consider the use of\nRANDOM_NUMBER as it implements a superior algorithm.\n\n\n\n\n### Syntax\n`RESULT = RAND(I)`\n\n\n### Arguments\n\n \n of kind 4.\n\n\n\n\n\n\n### Return value\nThe return value is of `REAL` type and the default kind.\n\n\n\n### Example\n```\n\n\nprogram test_rand\n\n  integer,parameter :: seed = 86456\n\n\n  call srand(seed)\n\n  print *, rand(), rand(), rand(), rand()\n\n  print *, rand(seed), rand(), rand(), rand()\n\nend program test_rand\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nSRAND, RANDOM_NUMBER\n\n " -} diff --git a/doc/intrinsics/RANDOM_INIT.json b/doc/intrinsics/RANDOM_INIT.json deleted file mode 100644 index 9e4a0346..00000000 --- a/doc/intrinsics/RANDOM_INIT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RANDOM_INIT", - "docstr": "`RANDOM_INIT` — Initialize a pseudo-random number generator\n\n### Description\nInitializes the state of the pseudorandom number generator used by RANDOM_NUMBER.\n### Standard\nFortran 2018\n### Class\nSubroutine\n### Syntax\nCALL RANDOM_INIT(REPEATABLE, IMAGE_DISTINCT)\n### Arguments\n- REPEATABLE: Shall be a scalar with a LOGICAL type, and it is INTENT(IN). If it is .true., the seed is set to a processor-dependent value that is the same each time RANDOM_INIT is called from the same image. The term “same image” means a single instance of program execution. The sequence of random numbers is different for repeated execution of the program. If it is .false., the seed is set to a processor-dependent value.\n- IMAGE_DISTINCT: Shall be a scalar with a LOGICAL type, and it is INTENT(IN). If it is .true., the seed is set to a processor-dependent value that is distinct from th seed set by a call to RANDOM_INIT in another image. If it is .false., the seed is set value that does depend which image called RANDOM_INIT.\n" -} diff --git a/doc/intrinsics/RANDOM_NUMBER.json b/doc/intrinsics/RANDOM_NUMBER.json deleted file mode 100644 index bf60aba0..00000000 --- a/doc/intrinsics/RANDOM_NUMBER.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RANDOM_NUMBER", - "docstr": "`RANDOM_NUMBER` — Pseudo-random number\n\n### Description\nReturns a single pseudorandom number or an array of pseudorandom numbers\nfrom the uniform distribution over the range 0 \\leq x < 1.\n\n \nThe runtime-library implements George Marsaglia's KISS (Keep It Simple\nStupid) random number generator (RNG). This RNG combines:\n \n
    \n
  1. The congruential generator x(n) = 69069 \\cdot x(n-1) + 1327217885\nwith a period of 2^32,\n
  2. A 3-shift shift-register generator with a period of 2^32 - 1,\n
  3. Two 16-bit multiply-with-carry generators with a period of\n597273182964842497 > 2^59.\n
\nThe overall period exceeds 2^123.\n\n \nPlease note, this RNG is thread safe if used within OpenMP directives,\ni.e., its state will be consistent while called from multiple threads. \nHowever, the KISS generator does not create random numbers in parallel\nfrom multiple sources, but in sequence from a single source. If an\nOpenMP-enabled application heavily relies on random numbers, one should\nconsider employing a dedicated parallel random number generator instead.\n\n\n\n\n### Syntax\n`RANDOM_NUMBER(HARVEST)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_random_number\n\n  REAL :: r(5,5)\n\n  CALL init_random_seed() ! see example of RANDOM_SEED\n\n  CALL RANDOM_NUMBER(r)\n\nend program\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nRANDOM_SEED\n" -} diff --git a/doc/intrinsics/RANDOM_SEED.json b/doc/intrinsics/RANDOM_SEED.json deleted file mode 100644 index 9f77f4a3..00000000 --- a/doc/intrinsics/RANDOM_SEED.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RANDOM_SEED", - "docstr": "`RANDOM_SEED` — Initialize a pseudo-random number sequence\n\n### Description\nRestarts or queries the state of the pseudorandom number generator used by\n`RANDOM_NUMBER`.\n\n \nIf `RANDOM_SEED` is called without arguments, it is initialized\nto a default state. The example below shows how to initialize the\nrandom seed with a varying seed in order to ensure a different random\nnumber sequence for each invocation of the program. Note that setting\nany of the seed values to zero should be avoided as it can result in\npoor quality random numbers being generated.\n\n\n\n\n### Syntax\n`CALL RANDOM_SEED([SIZE, PUT, GET])`\n\n\n### Arguments\n\n \n | `SIZE` | (Optional) Shall be a scalar and of type default\n`INTEGER`, with `INTENT(OUT)`. It specifies the minimum size\nof the arrays used with the `PUT` and `GET` arguments. \n\n | `PUT` | (Optional) Shall be an array of type default\n`INTEGER` and rank one. It is `INTENT(IN)` and the size of\nthe array must be larger than or equal to the number returned by the\n`SIZE` argument. \n\n | `GET` | (Optional) Shall be an array of type default\n`INTEGER` and rank one. It is `INTENT(OUT)` and the size\nof the array must be larger than or equal to the number returned by\nthe `SIZE` argument.\n\n\n\n\n\n\n### Example\n```\n\n\nsubroutine init_random_seed()\n\n  use iso_fortran_env, only: int64\n\n  implicit none\n\n  integer, allocatable :: seed(:)\n\n  integer :: i, n, un, istat, dt(8), pid\n\n  integer(int64) :: t\n\n\n  call random_seed(size = n)\n\n  allocate(seed(n))\n\n  ! First try if the OS provides a random number generator\n\n  open(newunit=un, file=\"/dev/urandom\", access=\"stream\", &\n\n       form=\"unformatted\", action=\"read\", status=\"old\", iostat=istat)\n\n  if (istat == 0) then\n\n     read(un) seed\n\n     close(un)\n\n  else\n\n     ! Fallback to XOR:ing the current time and pid. The PID is\n\n     ! useful in case one launches multiple instances of the same\n\n     ! program in parallel.\n\n     call system_clock(t)\n\n     if (t == 0) then\n\n        call date_and_time(values=dt)\n\n        t = (dt(1) - 1970) * 365_int64 * 24 * 60 * 60 * 1000 &\n\n             + dt(2) * 31_int64 * 24 * 60 * 60 * 1000 &\n\n             + dt(3) * 24_int64 * 60 * 60 * 1000 &\n\n             + dt(5) * 60 * 60 * 1000 &\n\n             + dt(6) * 60 * 1000 + dt(7) * 1000 &\n\n             + dt(8)\n\n     end if\n\n     pid = getpid()\n\n     t = ieor(t, int(pid, kind(t)))\n\n     do i = 1, n\n\n        seed(i) = lcg(t)\n\n     end do\n\n  end if\n\n  call random_seed(put=seed)\n\ncontains\n\n  ! This simple PRNG might not be good enough for real work, but is\n\n  ! sufficient for seeding a better PRNG.\n\n  function lcg(s)\n\n    integer :: lcg\n\n    integer(int64) :: s\n\n    if (s == 0) then\n\n       s = 104729\n\n    else\n\n       s = mod(s, 4294967296_int64)\n\n    end if\n\n    s = mod(s * 279470273_int64, 4294967291_int64)\n\n    lcg = int(mod(s, int(huge(0), int64)), kind(0))\n\n  end function lcg\n\nend subroutine init_random_seed\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nRANDOM_NUMBER\n" -} diff --git a/doc/intrinsics/RANGE.json b/doc/intrinsics/RANGE.json deleted file mode 100644 index b966d1b1..00000000 --- a/doc/intrinsics/RANGE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RANGE", - "docstr": "`RANGE` — Decimal exponent range\n\n### Description\n`RANGE(X)` returns the decimal exponent range in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = RANGE(X)`\n\n\n### Arguments\n\n \n\nor `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\nSee `PRECISION` for an example. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSELECTED_REAL_KIND, PRECISION\n\n\n" -} diff --git a/doc/intrinsics/RANK.json b/doc/intrinsics/RANK.json deleted file mode 100644 index aba19fff..00000000 --- a/doc/intrinsics/RANK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RANK", - "docstr": "`RANK` — Rank of a data object\n\n### Description\n`RANK(A)` returns the rank of a scalar or array data object.\n\n\n\n### Syntax\n`RESULT = RANK(A)`\n\n\n### Arguments\n\n \n | `A` | can be of any type\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind. For arrays, their rank is returned; for scalars zero is returned.\n\n\n\n### Example\n```\n\n\nprogram test_rank\n\n  integer :: a\n\n  real, allocatable :: b(:,:)\n\n\n  print *, rank(a), rank(b) ! Prints: 0 2\n\nend program test_rank\n\n```\n\n \n\n### Standard\nTechnical Specification (TS) 29113\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/REAL.json b/doc/intrinsics/REAL.json deleted file mode 100644 index 5f67faac..00000000 --- a/doc/intrinsics/REAL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "REAL", - "docstr": "`REAL` — Convert to real type\n\n### Description\n`REAL(A [, KIND])` converts its argument `A` to a real type. The\n`REALPART` function is provided for compatibility with *g77*,\nand its use is strongly discouraged.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = REALPART(Z)`
\n\n\n\n\n\n### Arguments\n\n \n, or\n`COMPLEX`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThese functions return a `REAL` variable or array under\nthe following rules:\n\n
\n**(A)** `REAL(A)` is converted to a default real type if `A` is an\ninteger or real variable. \n\n**(B)** `REAL(A)` is converted to a real type with the kind type parameter\nof `A` if `A` is a complex variable. \n\n**(C)** `REAL(A, KIND)` is converted to a real type with kind type\nparameter `KIND` if `A` is a complex, integer, or real\nvariable. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_real\n\n  complex :: x = (1.0, 2.0)\n\n  print *, real(x), real(x,8), realpart(x)\n\nend program test_real\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `FLOAT(A)` | `INTEGER(4)` | `REAL(4)` | Fortran 77 and later\n\n | `DFLOAT(A)` | `INTEGER(4)` | `REAL(8)` | GNU extension\n\n | `SNGL(A)` | `INTEGER(8)` | `REAL(4)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nDBLE\n\n " -} diff --git a/doc/intrinsics/RENAME.json b/doc/intrinsics/RENAME.json deleted file mode 100644 index 7084f1da..00000000 --- a/doc/intrinsics/RENAME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RENAME", - "docstr": "`RENAME` — Rename a file\n\n### Description\nRenames a file from file `PATH1` to `PATH2`. A null\ncharacter (`CHAR(0)`) can be used to mark the end of the names in\n`PATH1` and `PATH2`; otherwise, trailing blanks in the file\nnames are ignored. If the `STATUS` argument is supplied, it\ncontains 0 on success or a nonzero error code upon return; see\n`rename(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = RENAME(PATH1, PATH2)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `PATH2` | Shall be of default `CHARACTER` type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nLINK\n\n " -} diff --git a/doc/intrinsics/REPEAT.json b/doc/intrinsics/REPEAT.json deleted file mode 100644 index 07f6291f..00000000 --- a/doc/intrinsics/REPEAT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "REPEAT", - "docstr": "`REPEAT` — Repeated string concatenation\n\n### Description\nConcatenates `NCOPIES` copies of a string.\n\n\n\n### Syntax\n`RESULT = REPEAT(STRING, NCOPIES)`\n\n\n### Arguments\n\n \n. \n\n | `NCOPIES` | Shall be scalar and of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nA new scalar of type `CHARACTER` built up from `NCOPIES` copies\nof `STRING`.\n\n\n\n### Example\n```\n\n\nprogram test_repeat\n\n  write(*,*) repeat(\"x\", 5) ! \"xxxxx\"\n\nend program\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/RESHAPE.json b/doc/intrinsics/RESHAPE.json deleted file mode 100644 index 6b217cd6..00000000 --- a/doc/intrinsics/RESHAPE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RESHAPE", - "docstr": "`RESHAPE` — Function to reshape an array\n\n### Description\nReshapes `SOURCE` to correspond to `SHAPE`. If necessary,\nthe new array may be padded with elements from `PAD` or permuted\nas defined by `ORDER`.\n\n\n\n### Syntax\n`RESULT = RESHAPE(SOURCE, SHAPE[, PAD, ORDER])`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be an array of any type. \n\n | `SHAPE` | Shall be of type `INTEGER` and an\narray of rank one. Its values must be positive or zero. \n\n | `PAD` | (Optional) shall be an array of the same\ntype as `SOURCE`. \n\n | `ORDER` | (Optional) shall be of type `INTEGER`and an array of the same shape as `SHAPE`. Its values shall\nbe a permutation of the numbers from 1 to n, where n is the size of\n`SHAPE`. If `ORDER` is absent, the natural ordering shall\nbe assumed.\n\n\n\n\n\n\n### Return value\nThe result is an array of shape `SHAPE` with the same type as\n`SOURCE`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_reshape\n\n  INTEGER, DIMENSION(4) :: x\n\n  WRITE(*,*) SHAPE(x) ! prints \"4\"\n\n  WRITE(*,*) SHAPE(RESHAPE(x, (/2, 2/))) ! prints \"2 2\"\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nSHAPE\n" -} diff --git a/doc/intrinsics/RRSPACING.json b/doc/intrinsics/RRSPACING.json deleted file mode 100644 index e90a2d90..00000000 --- a/doc/intrinsics/RRSPACING.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RRSPACING", - "docstr": "`RRSPACING` — Reciprocal of the relative spacing\n\n### Description\n`RRSPACING(X)` returns the reciprocal of the relative spacing of\nmodel numbers near `X`.\n\n\n\n### Syntax\n`RESULT = RRSPACING(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe value returned is equal to\n`ABS(FRACTION(X)) * FLOAT(RADIX(X))**DIGITS(X)`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSPACING\n" -} diff --git a/doc/intrinsics/RSHIFT.json b/doc/intrinsics/RSHIFT.json deleted file mode 100644 index 3674d067..00000000 --- a/doc/intrinsics/RSHIFT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "RSHIFT", - "docstr": "`RSHIFT` — Right shift bits\n\n### Description\n`RSHIFT` returns a value corresponding to `I` with all of the\nbits shifted right by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the right end are lost. The fill is arithmetic: the\nbits shifted in from the left end are equal to the leftmost bit, which in\ntwo's complement representation is the sign bit.\n\n \nThis function has been superseded by the `SHIFTA` intrinsic, which\nis standard in Fortran 2008 and later.\n\n\n\n\n### Syntax\n`RESULT = RSHIFT(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFT, ISHFTC, LSHIFT, SHIFTA, SHIFTR,\nSHIFTL\n\n " -} diff --git a/doc/intrinsics/SAME_TYPE_AS.json b/doc/intrinsics/SAME_TYPE_AS.json deleted file mode 100644 index 2f681dd5..00000000 --- a/doc/intrinsics/SAME_TYPE_AS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SAME_TYPE_AS", - "docstr": "`SAME_TYPE_AS` — Query dynamic types for equality\n\n### Description\nQuery dynamic types for equality.\n\n\n\n### Syntax\n`RESULT = SAME_TYPE_AS(A, B)`\n\n\n### Arguments\n\n \n | `A` | Shall be an object of extensible declared type or\nunlimited polymorphic. \n\n | `B` | Shall be an object of extensible declared type or\nunlimited polymorphic.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type default logical. It is true if and\nonly if the dynamic type of A is the same as the dynamic type of B.\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nEXTENDS_TYPE_OF\n\n " -} diff --git a/doc/intrinsics/SCALE.json b/doc/intrinsics/SCALE.json deleted file mode 100644 index 89893829..00000000 --- a/doc/intrinsics/SCALE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SCALE", - "docstr": "`SCALE` — Scale a real value\n\n### Description\n`SCALE(X,I)` returns `X * RADIX(X)**I`.\n\n\n\n### Syntax\n`RESULT = SCALE(X, I)`\n\n\n### Arguments\n\n \n. \n\n | `I` | The type of the argument shall be a `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nIts value is `X * RADIX(X)**I`.\n\n\n\n### Example\n```\n\n\nprogram test_scale\n\n  real :: x = 178.1387e-4\n\n  integer :: i = 5\n\n  print *, scale(x,i), x*radix(x)**i\n\nend program test_scale\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/SCAN.json b/doc/intrinsics/SCAN.json deleted file mode 100644 index f3bf2ae3..00000000 --- a/doc/intrinsics/SCAN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SCAN", - "docstr": "`SCAN` — Scan a string for the presence of a set of characters\n\n### Description\nScans a `STRING` for any of the characters in a `SET`\nof characters.\n\n \nIf `BACK` is either absent or equals `FALSE`, this function\nreturns the position of the leftmost character of `STRING` that is\nin `SET`. If `BACK` equals `TRUE`, the rightmost position\nis returned. If no character of `SET` is found in `STRING`, the\nresult is zero.\n\n\n\n\n### Syntax\n`RESULT = SCAN(STRING, SET[, BACK [, KIND]])`\n\n\n### Arguments\n\n \n. \n\n | `SET` | Shall be of type `CHARACTER`. \n\n | `BACK` | (Optional) shall be of type `LOGICAL`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_scan\n\n  WRITE(*,*) SCAN(\"FORTRAN\", \"AO\") ! 2, found 'O'\n\n  WRITE(*,*) SCAN(\"FORTRAN\", \"AO\", .TRUE.) ! 6, found 'A'\n\n  WRITE(*,*) SCAN(\"FORTRAN\", \"C++\") ! 0, found none\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINDEX intrinsic, VERIFY\n" -} diff --git a/doc/intrinsics/SECNDS.json b/doc/intrinsics/SECNDS.json deleted file mode 100644 index a4514e58..00000000 --- a/doc/intrinsics/SECNDS.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SECNDS", - "docstr": "`SECNDS` — Time function\n\n### Description\n`SECNDS(X)` gets the time in seconds from the real-time system clock. \n`X` is a reference time, also in seconds. If this is zero, the time in\nseconds from midnight is returned. This function is non-standard and its\nuse is discouraged.\n\n\n\n### Syntax\n`RESULT = SECNDS (X)`\n\n\n### Arguments\n\n \n. \n\n | `X` | Shall be of type `REAL(4)`.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_secnds\n\n    integer :: i\n\n    real(4) :: t1, t2\n\n    print *, secnds (0.0) ! seconds since midnight\n\n    t1 = secnds (0.0) ! reference time\n\n    do i = 1, 10000000 ! do something\n\n    end do\n\n    t2 = secnds (t1) ! elapsed time\n\n    print *, \"Something took \", t2, \" seconds.\"\n\nend program test_secnds\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n" -} diff --git a/doc/intrinsics/SECOND.json b/doc/intrinsics/SECOND.json deleted file mode 100644 index 74009dfe..00000000 --- a/doc/intrinsics/SECOND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SECOND", - "docstr": "`SECOND` — CPU time function\n\n### Description\nReturns a `REAL(4)` value representing the elapsed CPU time in\nseconds. This provides the same functionality as the standard\n`CPU_TIME` intrinsic, and is only included for backwards\ncompatibility.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `TIME = SECOND()`
\n\n\n\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nIn either syntax, `TIME` is set to the process's current runtime in\nseconds.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCPU_TIME\n\n " -} diff --git a/doc/intrinsics/SELECTED_CHAR_KIND.json b/doc/intrinsics/SELECTED_CHAR_KIND.json deleted file mode 100644 index d6e47064..00000000 --- a/doc/intrinsics/SELECTED_CHAR_KIND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SELECTED_CHAR_KIND", - "docstr": "`SELECTED_CHAR_KIND` — Choose character kind\n\n### Description\n\n`SELECTED_CHAR_KIND(NAME)` returns the kind value for the character\nset named `NAME`, if a character set with such a name is supported,\nor -1 otherwise. Currently, supported character sets include\n“ASCII” and “DEFAULT”, which are equivalent, and “ISO_10646”\n(Universal Character Set, UCS-4) which is commonly known as Unicode.\n\n\n\n### Syntax\n`RESULT = SELECTED_CHAR_KIND(NAME)`\n\n\n### Arguments\n\n \n | `NAME` | Shall be a scalar and of the default character type.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram character_kind\n\n  use iso_fortran_env\n\n  implicit none\n\n  integer, parameter :: ascii = selected_char_kind (\"ascii\")\n\n  integer, parameter :: ucs4 = selected_char_kind ('ISO_10646')\n\n\n  character(kind=ascii, len=26) :: alphabet\n\n  character(kind=ucs4, len=30) :: hello_world\n\n\n  alphabet = ascii_\"abcdefghijklmnopqrstuvwxyz\"\n\n  hello_world = ucs4_'Hello World and Ni Hao -- ' &\n\n                // char (int (z'4F60'), ucs4) &\n\n                // char (int (z'597D'), ucs4)\n\n\n  write (*,*) alphabet\n\n\n  open (output_unit, encoding='UTF-8')\n\n  write (*,*) trim (hello_world)\n\nend program character_kind\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/SELECTED_INT_KIND.json b/doc/intrinsics/SELECTED_INT_KIND.json deleted file mode 100644 index a312fbf1..00000000 --- a/doc/intrinsics/SELECTED_INT_KIND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SELECTED_INT_KIND", - "docstr": "`SELECTED_INT_KIND` — Choose integer kind\n\n### Description\n`SELECTED_INT_KIND(R)` return the kind value of the smallest integer\ntype that can represent all values ranging from -10^R (exclusive)\nto 10^R (exclusive). If there is no integer kind that accommodates\nthis range, `SELECTED_INT_KIND` returns -1.\n\n\n\n### Syntax\n`RESULT = SELECTED_INT_KIND(R)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram large_integers\n\n  integer,parameter :: k5 = selected_int_kind(5)\n\n  integer,parameter :: k15 = selected_int_kind(15)\n\n  integer(kind=k5) :: i5\n\n  integer(kind=k15) :: i15\n\n\n  print *, huge(i5), huge(i15)\n\n\n  ! The following inequalities are always true\n\n  print *, huge(i5) >= 10_k5**5-1\n\n  print *, huge(i15) >= 10_k15**15-1\n\nend program large_integers\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/SELECTED_REAL_KIND.json b/doc/intrinsics/SELECTED_REAL_KIND.json deleted file mode 100644 index 69173613..00000000 --- a/doc/intrinsics/SELECTED_REAL_KIND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SELECTED_REAL_KIND", - "docstr": "`SELECTED_REAL_KIND` — Choose real kind\n\n### Description\n`SELECTED_REAL_KIND(P,R)` returns the kind value of a real data type\nwith decimal precision of at least `P` digits, exponent range of\nat least `R`, and with a radix of `RADIX`.\n\n\n\n### Syntax\n`RESULT = SELECTED_REAL_KIND([P, R, RADIX])`\n\n\n### Arguments\n\n \n. \n\n | `R` | (Optional) shall be a scalar and of type `INTEGER`. \n\n | `RADIX` | (Optional) shall be a scalar and of type `INTEGER`.\n\n\nBefore Fortran 2008, at least one of the arguments `R` or `P` shall\nbe present; since Fortran 2008, they are assumed to be zero if absent.\n\n\n\n\n### Return value\n\n`SELECTED_REAL_KIND` returns the value of the kind type parameter of\na real data type with decimal precision of at least `P` digits, a\ndecimal exponent range of at least `R`, and with the requested\n`RADIX`. If the `RADIX` parameter is absent, real kinds with\nany radix can be returned. If more than one real data type meet the\ncriteria, the kind of the data type with the smallest decimal precision\nis returned. If no real data type matches the criteria, the result is\n
\n**-1 if the processor does not support a real data type with a** precision greater than or equal to `P`, but the `R` and\n`RADIX` requirements can be fulfilled\n\n**-2 if the processor does not support a real type with an exponent** range greater than or equal to `R`, but `P` and `RADIX`are fulfillable\n\n**-3 if `RADIX` but not `P` and `R` requirements** are fulfillable\n\n**-4 if `RADIX` and either `P` or `R` requirements** are fulfillable\n\n
-5 if there is no real type with the given `RADIX`
\n\n\n\n### Example\n```\n\n\nprogram real_kinds\n\n  integer,parameter :: p6 = selected_real_kind(6)\n\n  integer,parameter :: p10r100 = selected_real_kind(10,100)\n\n  integer,parameter :: r400 = selected_real_kind(r=400)\n\n  real(kind=p6) :: x\n\n  real(kind=p10r100) :: y\n\n  real(kind=r400) :: z\n\n\n  print *, precision(x), range(x)\n\n  print *, precision(y), range(y)\n\n  print *, precision(z), range(z)\n\nend program real_kinds\n\n```\n\n \n\n### Standard\nFortran 95 and later, with `RADIX` Fortran 2008 or later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nPRECISION, RANGE, RADIX\n\n\n" -} diff --git a/doc/intrinsics/SET_EXPONENT.json b/doc/intrinsics/SET_EXPONENT.json deleted file mode 100644 index fef7bd7e..00000000 --- a/doc/intrinsics/SET_EXPONENT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SET_EXPONENT", - "docstr": "`SET_EXPONENT` — Set the exponent of the model\n\n### Description\n`SET_EXPONENT(X, I)` returns the real number whose fractional part\nis that that of `X` and whose exponent part is `I`.\n\n\n\n### Syntax\n`RESULT = SET_EXPONENT(X, I)`\n\n\n### Arguments\n\n \n. \n\n | `I` | Shall be of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe real number whose fractional part\nis that that of `X` and whose exponent part if `I` is returned;\nit is `FRACTION(X) * RADIX(X)**I`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_setexp\n\n  REAL :: x = 178.1387e-4\n\n  INTEGER :: i = 17\n\n  PRINT *, SET_EXPONENT(x, i), FRACTION(x) * RADIX(x)**i\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/SHAPE.json b/doc/intrinsics/SHAPE.json deleted file mode 100644 index 8be65f82..00000000 --- a/doc/intrinsics/SHAPE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SHAPE", - "docstr": "`SHAPE` — Determine the shape of an array\n\n### Description\nDetermines the shape of an array.\n\n\n\n### Syntax\n`RESULT = SHAPE(SOURCE [, KIND])`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be an array or scalar of any type. \nIf `SOURCE` is a pointer it must be associated and allocatable\narrays must be allocated. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nAn `INTEGER` array of rank one with as many elements as `SOURCE`\nhas dimensions. The elements of the resulting array correspond to the extend\nof `SOURCE` along the respective dimensions. If `SOURCE` is a scalar,\nthe result is the rank one array of size zero. If `KIND` is absent, the\nreturn value has the default integer kind otherwise the specified kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_shape\n\n  INTEGER, DIMENSION(-1:1, -1:2) :: A\n\n  WRITE(*,*) SHAPE(A) ! (/ 3, 4 /)\n\n  WRITE(*,*) SIZE(SHAPE(42)) ! (/ /)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nRESHAPE, SIZE\n" -} diff --git a/doc/intrinsics/SHIFTA.json b/doc/intrinsics/SHIFTA.json deleted file mode 100644 index 6a5acd1a..00000000 --- a/doc/intrinsics/SHIFTA.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SHIFTA", - "docstr": "`SHIFTA` — Right shift with fill\n\n### Description\n`SHIFTA` returns a value corresponding to `I` with all of the\nbits shifted right by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the right end are lost. The fill is arithmetic: the\nbits shifted in from the left end are equal to the leftmost bit, which in\ntwo's complement representation is the sign bit.\n\n\n\n### Syntax\n`RESULT = SHIFTA(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSHIFTL, SHIFTR\n" -} diff --git a/doc/intrinsics/SHIFTL.json b/doc/intrinsics/SHIFTL.json deleted file mode 100644 index de0e042b..00000000 --- a/doc/intrinsics/SHIFTL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SHIFTL", - "docstr": "`SHIFTL` — Left shift\n\n### Description\n`SHIFTL` returns a value corresponding to `I` with all of the\nbits shifted left by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the left end are lost, and bits shifted in from\nthe right end are set to 0.\n\n\n\n### Syntax\n`RESULT = SHIFTL(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSHIFTA, SHIFTR\n" -} diff --git a/doc/intrinsics/SHIFTR.json b/doc/intrinsics/SHIFTR.json deleted file mode 100644 index 055ada6b..00000000 --- a/doc/intrinsics/SHIFTR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SHIFTR", - "docstr": "`SHIFTR` — Right shift\n\n### Description\n`SHIFTR` returns a value corresponding to `I` with all of the\nbits shifted right by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the right end are lost, and bits shifted in from\nthe left end are set to 0.\n\n\n\n### Syntax\n`RESULT = SHIFTR(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSHIFTA, SHIFTL\n" -} diff --git a/doc/intrinsics/SIGN.json b/doc/intrinsics/SIGN.json deleted file mode 100644 index 7bf01fd4..00000000 --- a/doc/intrinsics/SIGN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SIGN", - "docstr": "`SIGN` — Sign copying function\n\n### Description\n`SIGN(A,B)` returns the value of `A` with the sign of `B`.\n\n\n\n### Syntax\n`RESULT = SIGN(A, B)`\n\n\n### Arguments\n\n \n\n\n | `B` | Shall be of the same type and kind as `A`\n\n\n\n\n\n\n### Return value\nThe kind of the return value is that of `A` and `B`. \nIf B\\ge 0 then the result is `ABS(A)`, else\nit is `-ABS(A)`.\n\n\n\n### Example\n```\n\n\nprogram test_sign\n\n  print *, sign(-12,1)\n\n  print *, sign(-12,0)\n\n  print *, sign(-12,-1)\n\n\n  print *, sign(-12.,1.)\n\n  print *, sign(-12.,0.)\n\n  print *, sign(-12.,-1.)\n\nend program test_sign\n\n```\n\n\n\n### Specific names\n\n \n | Name | Arguments | Return type | Standard\n\n | `SIGN(A,B)` | `REAL(4) A, B` | `REAL(4)` | f77, gnu\n\n | `ISIGN(A,B)` | `INTEGER(4) A, B` | `INTEGER(4)` | f77, gnu\n\n | `DSIGN(A,B)` | `REAL(8) A, B` | `REAL(8)` | f77, gnu\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/SIGNAL.json b/doc/intrinsics/SIGNAL.json deleted file mode 100644 index ac933da9..00000000 --- a/doc/intrinsics/SIGNAL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SIGNAL", - "docstr": "`SIGNAL` — Signal handling subroutine (or function)\n\n### Description\n`SIGNAL(NUMBER, HANDLER [, STATUS])` causes external subroutine\n`HANDLER` to be executed with a single integer argument when signal\n`NUMBER` occurs. If `HANDLER` is an integer, it can be used to\nturn off handling of signal `NUMBER` or revert to its default\naction. See `signal(2)`.\n\n \nIf `SIGNAL` is called as a subroutine and the `STATUS` argument\nis supplied, it is set to the value returned by `signal(2)`.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = SIGNAL(NUMBER, HANDLER)`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `HANDLER` | Signal handler (`INTEGER FUNCTION` or\n`SUBROUTINE`) or dummy/global `INTEGER` scalar. \n`INTEGER`. It is `INTENT(IN)`. \n\n | `STATUS` | (Optional) `STATUS` shall be a scalar\ninteger. It has `INTENT(OUT)`.\n\n\n\n\n\n\n\n### Return value\nThe `SIGNAL` function returns the value returned by `signal(2)`.\n\n\n\n### Example\n```\n\n\nprogram test_signal\n\n  intrinsic signal\n\n  external handler_print\n\n\n  call signal (12, handler_print)\n\n  call signal (10, 1)\n\n\n  call sleep (30)\n\nend program test_signal\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" -} diff --git a/doc/intrinsics/SIN.json b/doc/intrinsics/SIN.json deleted file mode 100644 index 602e20cd..00000000 --- a/doc/intrinsics/SIN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SIN", - "docstr": "`SIN` — Sine function\n\n### Description\n`SIN(X)` computes the sine of `X`.\n\n\n\n### Syntax\n`RESULT = SIN(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_sin\n\n  real :: x = 0.0\n\n  x = sin(x)\n\nend program test_sin\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `SIN(X)` | `REAL(4) X` | `REAL(4)` | f77, gnu\n\n | `DSIN(X)` | `REAL(8) X` | `REAL(8)` | f95, gnu\n\n | `CSIN(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | f95, gnu\n\n | `ZSIN(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n | `CDSIN(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nASIN\n" -} diff --git a/doc/intrinsics/SIND.json b/doc/intrinsics/SIND.json deleted file mode 100644 index f89745a0..00000000 --- a/doc/intrinsics/SIND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SIND", - "docstr": "`SIND` — Sine function, degrees\n\n### Description\nIND(X) computes the sine of X in degrees.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = SIND(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n ### Return value\nThe return value has same type and kind as X, and its value is in degrees.\n" -} diff --git a/doc/intrinsics/SINH.json b/doc/intrinsics/SINH.json deleted file mode 100644 index 277dd1ba..00000000 --- a/doc/intrinsics/SINH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SINH", - "docstr": "`SINH` — Hyperbolic sine function\n\n### Description\n`SINH(X)` computes the hyperbolic sine of `X`.\n\n\n\n### Syntax\n`RESULT = SINH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_sinh\n\n  real(8) :: x = - 1.0_8\n\n  x = sinh(x)\n\nend program test_sinh\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `SINH(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DSINH(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 95 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nASINH\n" -} diff --git a/doc/intrinsics/SIZE.json b/doc/intrinsics/SIZE.json deleted file mode 100644 index 42ce4aa2..00000000 --- a/doc/intrinsics/SIZE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SIZE", - "docstr": "`SIZE` — Determine the size of an array\n\n### Description\nDetermine the extent of `ARRAY` along a specified dimension `DIM`,\nor the total number of elements in `ARRAY` if `DIM` is absent.\n\n\n\n### Syntax\n`RESULT = SIZE(ARRAY[, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array of any type. If `ARRAY` is\na pointer it must be associated and allocatable arrays must be allocated. \n\n | `DIM` | (Optional) shall be a scalar of type `INTEGER`and its value shall be in the range from 1 to n, where n equals the rank\nof `ARRAY`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_size\n\n  WRITE(*,*) SIZE((/ 1, 2 /)) ! 2\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSHAPE, RESHAPE\n" -} diff --git a/doc/intrinsics/SIZEOF.json b/doc/intrinsics/SIZEOF.json deleted file mode 100644 index f9557ab5..00000000 --- a/doc/intrinsics/SIZEOF.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SIZEOF", - "docstr": "`SIZEOF` — Size in bytes of an expression\n\n### Description\n`SIZEOF(X)` calculates the number of bytes of storage the\nexpression `X` occupies.\n\n\n\n### Syntax\n`N = SIZEOF(X)`\n\n\n### Arguments\n\n \n | `X` | The argument shall be of any type, rank or shape.\n\n\n\n\n\n\n### Return value\nThe return value is of type integer and of the system-dependent kind\n`C_SIZE_T` (from the `ISO_C_BINDING` module). Its value is the\nnumber of bytes occupied by the argument. If the argument has the\n`POINTER` attribute, the number of bytes of the storage area pointed\nto is returned. If the argument is of a derived type with `POINTER`or `ALLOCATABLE` components, the return value does not account for\nthe sizes of the data pointed to by these components. If the argument is\npolymorphic, the size according to the dynamic type is returned. The argument\nmay not be a procedure or procedure pointer. Note that the code assumes for\narrays that those are contiguous; for contiguous arrays, it returns the\nstorage or an array element multiplied by the size of the array.\n\n\n\n### Example\n```\n\n\ninteger :: i\n\nreal :: r, s(5)\n\nprint *, (sizeof(s)/sizeof(r) == 5)\n\nend\n\n```\n\n \nThe example will print `.TRUE.` unless you are using a platform\nwhere default `REAL` variables are unusually padded.\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_SIZEOF, STORAGE_SIZE\n" -} diff --git a/doc/intrinsics/SLEEP.json b/doc/intrinsics/SLEEP.json deleted file mode 100644 index 1e510692..00000000 --- a/doc/intrinsics/SLEEP.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SLEEP", - "docstr": "`SLEEP` — Sleep for the specified number of seconds\n\n### Description\nCalling this subroutine causes the process to pause for `SECONDS` seconds.\n\n\n\n### Syntax\n`CALL SLEEP(SECONDS)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_sleep\n\n  call sleep(5)\n\nend\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" -} diff --git a/doc/intrinsics/SPACING.json b/doc/intrinsics/SPACING.json deleted file mode 100644 index 84fbec19..00000000 --- a/doc/intrinsics/SPACING.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SPACING", - "docstr": "`SPACING` — Smallest distance between two numbers of a given type\n\n### Description\nDetermines the distance between the argument `X` and the nearest\nadjacent number of the same type.\n\n\n\n### Syntax\n`RESULT = SPACING(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as the input argument `X`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_spacing\n\n  INTEGER, PARAMETER :: SGL = SELECTED_REAL_KIND(p=6, r=37)\n\n  INTEGER, PARAMETER :: DBL = SELECTED_REAL_KIND(p=13, r=200)\n\n\n  WRITE(*,*) spacing(1.0_SGL) ! \"1.1920929E-07\" on i686\n\n  WRITE(*,*) spacing(1.0_DBL) ! \"2.220446049250313E-016\" on i686\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nRRSPACING\n" -} diff --git a/doc/intrinsics/SPREAD.json b/doc/intrinsics/SPREAD.json deleted file mode 100644 index eb49b232..00000000 --- a/doc/intrinsics/SPREAD.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SPREAD", - "docstr": "`SPREAD` — Add a dimension to an array\n\n### Description\nReplicates a `SOURCE` array `NCOPIES` times along a specified\ndimension `DIM`.\n\n\n\n### Syntax\n`RESULT = SPREAD(SOURCE, DIM, NCOPIES)`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be a scalar or an array of any type and\na rank less than seven. \n\n | `DIM` | Shall be a scalar of type `INTEGER` with a\nvalue in the range from 1 to n+1, where n equals the rank of `SOURCE`. \n\n | `NCOPIES` | Shall be a scalar of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe result is an array of the same type as `SOURCE` and has rank n+1\nwhere n equals the rank of `SOURCE`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_spread\n\n  INTEGER :: a = 1, b(2) = (/ 1, 2 /)\n\n  WRITE(*,*) SPREAD(A, 1, 2) ! \"1 1\"\n\n  WRITE(*,*) SPREAD(B, 1, 2) ! \"1 1 2 2\"\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nUNPACK\n" -} diff --git a/doc/intrinsics/SQRT.json b/doc/intrinsics/SQRT.json deleted file mode 100644 index a9ea3159..00000000 --- a/doc/intrinsics/SQRT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SQRT", - "docstr": "`SQRT` — Square-root function\n\n### Description\n`SQRT(X)` computes the square root of `X`.\n\n\n\n### Syntax\n`RESULT = SQRT(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` or `COMPLEX`. \nThe kind type parameter is the same as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_sqrt\n\n  real(8) :: x = 2.0_8\n\n  complex :: z = (1.0, 2.0)\n\n  x = sqrt(x)\n\n  z = sqrt(z)\n\nend program test_sqrt\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `SQRT(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DSQRT(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n | `CSQRT(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | Fortran 95 and later\n\n | `ZSQRT(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n | `CDSQRT(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" -} diff --git a/doc/intrinsics/SRAND.json b/doc/intrinsics/SRAND.json deleted file mode 100644 index d2c732c2..00000000 --- a/doc/intrinsics/SRAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SRAND", - "docstr": "`SRAND` — Reinitialize the random number generator\n\n### Description\n`SRAND` reinitializes the pseudo-random number generator\ncalled by `RAND` and `IRAND`. The new seed used by the\ngenerator is specified by the required argument `SEED`.\n\n\n\n### Syntax\n`CALL SRAND(SEED)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nDoes not return anything.\n\n\n\n### Example\nSee `RAND` and `IRAND` for examples.\n\n\n\n### Notes\nThe Fortran standard specifies the intrinsic subroutines\n`RANDOM_SEED` to initialize the pseudo-random number\ngenerator and `RANDOM_NUMBER` to generate pseudo-random numbers. \nThese subroutines should be used in new codes.\n\n \nPlease note that in GNU Fortran, these two sets of intrinsics (`RAND`,\n`IRAND` and `SRAND` on the one hand, `RANDOM_NUMBER` and\n`RANDOM_SEED` on the other hand) access two independent\npseudo-random number generators.\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nRAND, RANDOM_SEED, RANDOM_NUMBER\n\n " -} diff --git a/doc/intrinsics/STAT.json b/doc/intrinsics/STAT.json deleted file mode 100644 index c48521fd..00000000 --- a/doc/intrinsics/STAT.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "STAT", - "docstr": "`STAT` — Get file status\n\n### Description\nThis function returns information about a file. No permissions are required on\nthe file itself, but execute (search) permission is required on all of the\ndirectories in path that lead to the file.\n\n \nThe elements that are obtained and stored in the array `VALUES`:\n \n\n | Device ID\n\n | `VALUES(2)` | Inode number\n\n | `VALUES(3)` | File mode\n\n | `VALUES(4)` | Number of links\n\n | `VALUES(5)` | Owner's uid\n\n | `VALUES(6)` | Owner's gid\n\n | `VALUES(7)` | ID of device containing directory entry for file (0 if not available)\n\n | `VALUES(8)` | File size (bytes)\n\n | `VALUES(9)` | Last access time\n\n | `VALUES(10)` | Last modification time\n\n | `VALUES(11)` | Last file status change time\n\n | `VALUES(12)` | Preferred I/O block size (-1 if not available)\n\n | `VALUES(13)` | Number of blocks allocated (-1 if not available)\n\n\n\n \n\nNot all these elements are relevant on all systems. \nIf an element is not relevant, it is returned as 0.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = STAT(NAME, VALUES)`
\n\n\n\n\n\n### Arguments\n\n \n, of the\ndefault kind and a valid path within the file system. \n\n | `VALUES` | The type shall be `INTEGER(4), DIMENSION(13)`. \n\n | `STATUS` | (Optional) status flag of type `INTEGER(4)`. Returns 0\non success and a system specific error code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_stat\n\n  INTEGER, DIMENSION(13) :: buff\n\n  INTEGER :: status\n\n\n  CALL STAT(\"/etc/passwd\", buff, status)\n\n\n  IF (status == 0) THEN\n\n    WRITE (*, FMT=\"('Device ID:', T30, I19)\") buff(1)\n\n    WRITE (*, FMT=\"('Inode number:', T30, I19)\") buff(2)\n\n    WRITE (*, FMT=\"('File mode (octal):', T30, O19)\") buff(3)\n\n    WRITE (*, FMT=\"('Number of links:', T30, I19)\") buff(4)\n\n    WRITE (*, FMT=\"('Owner''s uid:', T30, I19)\") buff(5)\n\n    WRITE (*, FMT=\"('Owner''s gid:', T30, I19)\") buff(6)\n\n    WRITE (*, FMT=\"('Device where located:', T30, I19)\") buff(7)\n\n    WRITE (*, FMT=\"('File size:', T30, I19)\") buff(8)\n\n    WRITE (*, FMT=\"('Last access time:', T30, A19)\") CTIME(buff(9))\n\n    WRITE (*, FMT=\"('Last modification time', T30, A19)\") CTIME(buff(10))\n\n    WRITE (*, FMT=\"('Last status change time:', T30, A19)\") CTIME(buff(11))\n\n    WRITE (*, FMT=\"('Preferred block size:', T30, I19)\") buff(12)\n\n    WRITE (*, FMT=\"('No. of blocks allocated:', T30, I19)\") buff(13)\n\n  END IF\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nTo stat an open file: FSTAT, to stat a link: LSTAT\n" -} diff --git a/doc/intrinsics/STORAGE_SIZE.json b/doc/intrinsics/STORAGE_SIZE.json deleted file mode 100644 index b64f74ae..00000000 --- a/doc/intrinsics/STORAGE_SIZE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "STORAGE_SIZE", - "docstr": "`STORAGE_SIZE` — Storage size in bits\n\n### Description\nReturns the storage size of argument `A` in bits. \n\n\n### Syntax\n`RESULT = STORAGE_SIZE(A [, KIND])`\n\n\n### Arguments\n\n \n | `A` | Shall be a scalar or array of any type. \n\n | `KIND` | (Optional) shall be a scalar integer constant expression.\n\n\n\n\n\n\n### Return value\nThe result is a scalar integer with the kind type parameter specified by KIND\n(or default integer type if KIND is missing). The result value is the size\nexpressed in bits for an element of an array that has the dynamic type and type\nparameters of A.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n### Class\nInquiry function\n\n\n### See also\nC_SIZEOF, SIZEOF\n" -} diff --git a/doc/intrinsics/SUM.json b/doc/intrinsics/SUM.json deleted file mode 100644 index 5a257ead..00000000 --- a/doc/intrinsics/SUM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SUM", - "docstr": "`SUM` — Sum of array elements\n\n### Description\nAdds the elements of `ARRAY` along dimension `DIM` if\nthe corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = SUM(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n,\n`REAL` or `COMPLEX`. \n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the sum of all elements in `ARRAY`\nis returned. Otherwise, an array of rank n-1, where n equals the rank of\n`ARRAY`, and a shape similar to that of `ARRAY` with dimension `DIM`\ndropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_sum\n\n  INTEGER :: x(5) = (/ 1, 2, 3, 4 ,5 /)\n\n  print *, SUM(x) ! all elements, sum = 15\n\n  print *, SUM(x, MASK=MOD(x, 2)==1) ! odd elements, sum = 9\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nPRODUCT\n" -} diff --git a/doc/intrinsics/SYMLNK.json b/doc/intrinsics/SYMLNK.json deleted file mode 100644 index 5f4073fb..00000000 --- a/doc/intrinsics/SYMLNK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SYMLNK", - "docstr": "`SYMLNK` — Create a symbolic link\n\n### Description\nMakes a symbolic link from file `PATH1` to `PATH2`. A null\ncharacter (`CHAR(0)`) can be used to mark the end of the names in\n`PATH1` and `PATH2`; otherwise, trailing blanks in the file\nnames are ignored. If the `STATUS` argument is supplied, it\ncontains 0 on success or a nonzero error code upon return; see\n`symlink(2)`. If the system does not supply `symlink(2)`,\n`ENOSYS` is returned.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = SYMLNK(PATH1, PATH2)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `PATH2` | Shall be of default `CHARACTER` type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nLINK, UNLINK\n\n " -} diff --git a/doc/intrinsics/SYSTEM.json b/doc/intrinsics/SYSTEM.json deleted file mode 100644 index 71317240..00000000 --- a/doc/intrinsics/SYSTEM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SYSTEM", - "docstr": "`SYSTEM` — Execute a shell command\n\n### Description\nPasses the command `COMMAND` to a shell (see `system(3)`). If\nargument `STATUS` is present, it contains the value returned by\n`system(3)`, which is presumably 0 if the shell command succeeded. \nNote that which shell is used to invoke the command is system-dependent\nand environment-dependent.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n \n\nNote that the `system` function need not be thread-safe. It is\nthe responsibility of the user to ensure that `system` is not\ncalled concurrently.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = SYSTEM(COMMAND)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nEXECUTE_COMMAND_LINE, which is part of the Fortran 2008 standard\nand should considered in new code for future portability. \n" -} diff --git a/doc/intrinsics/SYSTEM_CLOCK.json b/doc/intrinsics/SYSTEM_CLOCK.json deleted file mode 100644 index 8e4f6325..00000000 --- a/doc/intrinsics/SYSTEM_CLOCK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "SYSTEM_CLOCK", - "docstr": "`SYSTEM_CLOCK` — Time function\n\n### Description\nDetermines the `COUNT` of a processor clock since an unspecified\ntime in the past modulo `COUNT_MAX`, `COUNT_RATE` determines\nthe number of clock ticks per second. If the platform supports a\nmonotonic clock, that clock is used and can, depending on the platform\nclock implementation, provide up to nanosecond resolution. If a\nmonotonic clock is not available, the implementation falls back to a\nrealtime clock.\n\n \n`COUNT_RATE` is system dependent and can vary depending on the kind of\nthe arguments. For `kind=4` arguments (and smaller integer kinds),\n`COUNT` represents milliseconds, while for `kind=8` arguments (and\nlarger integer kinds), `COUNT` typically represents micro- or\nnanoseconds depending on resolution of the underlying platform clock. \n`COUNT_MAX` usually equals `HUGE(COUNT_MAX)`. Note that the\nmillisecond resolution of the `kind=4` version implies that the\n`COUNT` will wrap around in roughly 25 days. In order to avoid issues\nwith the wrap around and for more precise timing, please use the\n`kind=8` version.\n\n \n\nIf there is no clock, or querying the clock fails, `COUNT` is set\nto `-HUGE(COUNT)`, and `COUNT_RATE` and `COUNT_MAX` are\nset to zero.\n\n \n\nWhen running on a platform using the GNU C library (glibc) version\n2.16 or older, or a derivative thereof, the high resolution monotonic\nclock is available only when linking with the `rt` library. This\ncan be done explicitly by adding the `-lrt` flag when linking the\napplication, but is also done implicitly when using OpenMP.\n\n \n\nOn the Windows platform, the version with `kind=4` arguments uses\nthe `GetTickCount` function, whereas the `kind=8` version\nuses `QueryPerformanceCounter` and\n`QueryPerformanceCounterFrequency`. For more information, and\npotential caveats, please see the platform documentation.\n\n\n\n\n### Syntax\n`CALL SYSTEM_CLOCK([COUNT, COUNT_RATE, COUNT_MAX])`\n\n\n### Arguments\n\n \n | `COUNT` | (Optional) shall be a scalar of type\n`INTEGER` with `INTENT(OUT)`. \n\n | `COUNT_RATE` | (Optional) shall be a scalar of type\n`INTEGER` or `REAL`, with `INTENT(OUT)`. \n\n | `COUNT_MAX` | (Optional) shall be a scalar of type\n`INTEGER` with `INTENT(OUT)`.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_system_clock\n\n  INTEGER :: count, count_rate, count_max\n\n  CALL SYSTEM_CLOCK(count, count_rate, count_max)\n\n  WRITE(*,*) count, count_rate, count_max\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nDATE_AND_TIME, CPU_TIME\n" -} diff --git a/doc/intrinsics/TAN.json b/doc/intrinsics/TAN.json deleted file mode 100644 index f6e3734a..00000000 --- a/doc/intrinsics/TAN.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TAN", - "docstr": "`TAN` — Tangent function\n\n### Description\n`TAN(X)` computes the tangent of `X`.\n\n\n\n### Syntax\n`RESULT = TAN(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_tan\n\n  real(8) :: x = 0.165_8\n\n  x = tan(x)\n\nend program test_tan\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `TAN(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DTAN(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nATAN\n" -} diff --git a/doc/intrinsics/TAND.json b/doc/intrinsics/TAND.json deleted file mode 100644 index db31ce78..00000000 --- a/doc/intrinsics/TAND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TAND", - "docstr": "`TAND` — Tangent function, degrees\n\n### Description\nTAND(X) computes the tangent of X in degrees.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = TAND(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value has same type and kind as X, and its value is in degrees.\n" -} diff --git a/doc/intrinsics/TANH.json b/doc/intrinsics/TANH.json deleted file mode 100644 index 5f6683d2..00000000 --- a/doc/intrinsics/TANH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TANH", - "docstr": "`TANH` — Hyperbolic tangent function\n\n### Description\n`TANH(X)` computes the hyperbolic tangent of `X`.\n\n\n\n### Syntax\n`X = TANH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians. If `X`\nis `REAL`, the return value lies in the range\n - 1 \\leq tanh(x) \\leq 1 .\n\n\n\n### Example\n```\n\n\nprogram test_tanh\n\n  real(8) :: x = 2.1_8\n\n  x = tanh(x)\n\nend program test_tanh\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `TANH(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DTANH(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nATANH\n" -} diff --git a/doc/intrinsics/THIS_IMAGE.json b/doc/intrinsics/THIS_IMAGE.json deleted file mode 100644 index a14e4d05..00000000 --- a/doc/intrinsics/THIS_IMAGE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "THIS_IMAGE", - "docstr": "`THIS_IMAGE` — Function that returns the cosubscript index of this image\n\n### Description\nReturns the cosubscript for this image.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = THIS_IMAGE(DISTANCE)`
\n | `RESULT = THIS_IMAGE(COARRAY [, DIM])`
\n\n\n\n\n\n### Arguments\n\n \n | `DISTANCE` | (optional, intent(in)) Nonnegative scalar integer\n(not permitted together with `COARRAY`). \n\n | `COARRAY` | Coarray of any type (optional; if `DIM`\npresent, required). \n\n | `DIM` | default integer scalar (optional). If present,\n`DIM` shall be between one and the corank of `COARRAY`.\n\n\n\n\n\n\n### Return value\nDefault integer. If `COARRAY` is not present, it is scalar; if\n`DISTANCE` is not present or has value 0, its value is the image index on\nthe invoking image for the current team, for values smaller or equal\ndistance to the initial team, it returns the image index on the ancestor team\nwhich has a distance of `DISTANCE` from the invoking team. If\n`DISTANCE` is larger than the distance to the initial team, the image\nindex of the initial team is returned. Otherwise when the `COARRAY` is\npresent, if `DIM` is not present, a rank-1 array with corank elements is\nreturned, containing the cosubscripts for `COARRAY` specifying the invoking\nimage. If `DIM` is present, a scalar is returned, with the value of\nthe `DIM` element of `THIS_IMAGE(COARRAY)`.\n\n\n\n### Example\n```\n\n\nINTEGER :: value[*]\n\nINTEGER :: i\n\nvalue = THIS_IMAGE()\n\nSYNC ALL\n\nIF (THIS_IMAGE() == 1) THEN\n\n  DO i = 1, NUM_IMAGES()\n\n    WRITE(*,'(2(a,i0))') 'value[', i, '] is ', value[i]\n\n  END DO\n\nEND IF\n\n\n! Check whether the current image is the initial image\n\nIF (THIS_IMAGE(HUGE(1)) /= THIS_IMAGE())\n\n  error stop \"something is rotten here\"\n\n```\n\n\n\n### Standard\nFortran 2008 and later. With `DISTANCE` argument,\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nNUM_IMAGES, IMAGE_INDEX\n" -} diff --git a/doc/intrinsics/TIME.json b/doc/intrinsics/TIME.json deleted file mode 100644 index b4f37201..00000000 --- a/doc/intrinsics/TIME.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TIME", - "docstr": "`TIME` — Time function\n\n### Description\nReturns the current time encoded as an integer (in the manner of the\nfunction `time(3)` in the C standard library). This value is\nsuitable for passing to `CTIME`, `GMTIME`, and `LTIME`.\n\n \nThis intrinsic is not fully portable, such as to systems with 32-bit\n`INTEGER` types but supporting times wider than 32 bits. Therefore,\nthe values returned by this intrinsic might be, or become, negative, or\nnumerically less than previous values, during a single run of the\ncompiled program.\n\n \n\nSee TIME8, for information on a similar intrinsic that might be\nportable to more GNU Fortran implementations, though to fewer Fortran\ncompilers.\n\n\n\n\n### Syntax\n`RESULT = TIME()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(4)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK, TIME8\n\n " -} diff --git a/doc/intrinsics/TIME8.json b/doc/intrinsics/TIME8.json deleted file mode 100644 index b59512ff..00000000 --- a/doc/intrinsics/TIME8.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TIME8", - "docstr": "`TIME8` — Time function (64-bit)\n\n### Description\nReturns the current time encoded as an integer (in the manner of the\nfunction `time(3)` in the C standard library). This value is\nsuitable for passing to `CTIME`, `GMTIME`, and `LTIME`.\n\n \nWarning: this intrinsic does not increase the range of the timing\nvalues over that returned by `time(3)`. On a system with a 32-bit\n`time(3)`, `TIME8` will return a 32-bit value, even though\nit is converted to a 64-bit `INTEGER(8)` value. That means\noverflows of the 32-bit value can still occur. Therefore, the values\nreturned by this intrinsic might be or become negative or numerically\nless than previous values during a single run of the compiled program.\n\n\n\n\n### Syntax\n`RESULT = TIME8()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(8)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK8, TIME\n\n " -} diff --git a/doc/intrinsics/TINY.json b/doc/intrinsics/TINY.json deleted file mode 100644 index 3b8bd997..00000000 --- a/doc/intrinsics/TINY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TINY", - "docstr": "`TINY` — Smallest positive number of a real kind\n\n### Description\n`TINY(X)` returns the smallest positive (non zero) number\nin the model of the type of `X`.\n\n\n\n### Syntax\n`RESULT = TINY(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`\n\n\n\n### Example\nSee `HUGE` for an example. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" -} diff --git a/doc/intrinsics/TRAILZ.json b/doc/intrinsics/TRAILZ.json deleted file mode 100644 index cac14d38..00000000 --- a/doc/intrinsics/TRAILZ.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TRAILZ", - "docstr": "`TRAILZ` — Number of trailing zero bits of an integer\n\n### Description\n`TRAILZ` returns the number of trailing zero bits of an integer.\n\n\n\n### Syntax\n`RESULT = TRAILZ(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe type of the return value is the default `INTEGER`. \nIf all the bits of `I` are zero, the result value is `BIT_SIZE(I)`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_trailz\n\n  WRITE (*,*) TRAILZ(8) ! prints 3\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBIT_SIZE, LEADZ, POPPAR, POPCNT\n" -} diff --git a/doc/intrinsics/TRANSFER.json b/doc/intrinsics/TRANSFER.json deleted file mode 100644 index 78e603d9..00000000 --- a/doc/intrinsics/TRANSFER.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TRANSFER", - "docstr": "`TRANSFER` — Transfer bit patterns\n\n### Description\nInterprets the bitwise representation of `SOURCE` in memory as if it\nis the representation of a variable or array of the same type and type\nparameters as `MOLD`.\n\n \nThis is approximately equivalent to the C concept of casting one\ntype to another.\n\n\n\n\n### Syntax\n`RESULT = TRANSFER(SOURCE, MOLD[, SIZE])`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be a scalar or an array of any type. \n\n | `MOLD` | Shall be a scalar or an array of any type. \n\n | `SIZE` | (Optional) shall be a scalar of type\n`INTEGER`.\n\n\n\n\n\n\n### Return value\nThe result has the same type as `MOLD`, with the bit level\nrepresentation of `SOURCE`. If `SIZE` is present, the result is\na one-dimensional array of length `SIZE`. If `SIZE` is absent\nbut `MOLD` is an array (of any size or shape), the result is a one-\ndimensional array of the minimum length needed to contain the entirety\nof the bitwise representation of `SOURCE`. If `SIZE` is absent\nand `MOLD` is a scalar, the result is a scalar.\n\n \nIf the bitwise representation of the result is longer than that of\n`SOURCE`, then the leading bits of the result correspond to those of\n`SOURCE` and any trailing bits are filled arbitrarily.\n\n \n\nWhen the resulting bit representation does not correspond to a valid\nrepresentation of a variable of the same type as `MOLD`, the results\nare undefined, and subsequent operations on the result cannot be\nguaranteed to produce sensible behavior. For example, it is possible to\ncreate `LOGICAL` variables for which `VAR` and\n`.NOT.``VAR` both appear to be true.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_transfer\n\n  integer :: x = 2143289344\n\n  print *, transfer(x, 1.0) ! prints \"NaN\" on i686\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/TRANSPOSE.json b/doc/intrinsics/TRANSPOSE.json deleted file mode 100644 index 1bcddbe1..00000000 --- a/doc/intrinsics/TRANSPOSE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TRANSPOSE", - "docstr": "`TRANSPOSE` — Transpose an array of rank two\n\n### Description\nTranspose an array of rank two. Element (i, j) of the result has the value\n`MATRIX(j, i)`, for all i, j.\n\n\n\n### Syntax\n`RESULT = TRANSPOSE(MATRIX)`\n\n\n### Arguments\n\n \n | `MATRIX` | Shall be an array of any type and have a rank of two.\n\n\n\n\n\n\n### Return value\nThe result has the same type as `MATRIX`, and has shape\n`(/ m, n /)` if `MATRIX` has shape `(/ n, m /)`. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" -} diff --git a/doc/intrinsics/TRIM.json b/doc/intrinsics/TRIM.json deleted file mode 100644 index 04d93619..00000000 --- a/doc/intrinsics/TRIM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TRIM", - "docstr": "`TRIM` — Remove trailing blank characters of a string\n\n### Description\nRemoves trailing blank characters of a string.\n\n\n\n### Syntax\n`RESULT = TRIM(STRING)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nA scalar of type `CHARACTER` which length is that of `STRING`\nless the number of trailing blanks.\n\n\n\n### Example\n```\n\n\nPROGRAM test_trim\n\n  CHARACTER(len=10), PARAMETER :: s = \"GFORTRAN \"\n\n  WRITE(*,*) LEN(s), LEN(TRIM(s)) ! \"10 8\", with/without trailing blanks\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nADJUSTL, ADJUSTR\n" -} diff --git a/doc/intrinsics/TTYNAM.json b/doc/intrinsics/TTYNAM.json deleted file mode 100644 index efb7352a..00000000 --- a/doc/intrinsics/TTYNAM.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "TTYNAM", - "docstr": "`TTYNAM` — Get the name of a terminal device.\n\n### Description\nGet the name of a terminal device. For more information,\nsee `ttyname(3)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `NAME = TTYNAM(UNIT)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `NAME` | Shall be of type `CHARACTER`.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_ttynam\n\n  INTEGER :: unit\n\n  DO unit = 1, 10\n\n    IF (isatty(unit=unit)) write(*,*) ttynam(unit)\n\n  END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nISATTY\n" -} diff --git a/doc/intrinsics/UBOUND.json b/doc/intrinsics/UBOUND.json deleted file mode 100644 index b30e6fe4..00000000 --- a/doc/intrinsics/UBOUND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "UBOUND", - "docstr": "`UBOUND` — Upper dimension bounds of an array\n\n### Description\nReturns the upper bounds of an array, or a single upper bound\nalong the `DIM` dimension. \n\n\n### Syntax\n`RESULT = UBOUND(ARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the upper bounds of\n`ARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the upper bound of the array along that dimension. If\n`ARRAY` is an expression rather than a whole array or array\nstructure component, or if it has a zero extent along the relevant\ndimension, the upper bound is taken to be the number of elements along\nthe relevant dimension.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nLBOUND, LCOBOUND\n" -} diff --git a/doc/intrinsics/UCOBOUND.json b/doc/intrinsics/UCOBOUND.json deleted file mode 100644 index 7ad0ea06..00000000 --- a/doc/intrinsics/UCOBOUND.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "UCOBOUND", - "docstr": "`UCOBOUND` — Upper codimension bounds of an array\n\n### Description\nReturns the upper cobounds of a coarray, or a single upper cobound\nalong the `DIM` codimension. \n\n\n### Syntax\n`RESULT = UCOBOUND(COARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an coarray, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the lower cobounds of\n`COARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the lower cobound of the array along that codimension.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nLCOBOUND, LBOUND\n" -} diff --git a/doc/intrinsics/UMASK.json b/doc/intrinsics/UMASK.json deleted file mode 100644 index 75adc57f..00000000 --- a/doc/intrinsics/UMASK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "UMASK", - "docstr": "`UMASK` — Set the file creation mask\n\n### Description\nSets the file creation mask to `MASK`. If called as a function, it\nreturns the old value. If called as a subroutine and argument `OLD`\nif it is supplied, it is set to the old value. See `umask(2)`.\n\n\n\n### Syntax\n\n \n\n\n | `OLD = UMASK(MASK)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `OLD` | (Optional) Shall be a scalar of type\n`INTEGER`.\n\n\n\n \n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" -} diff --git a/doc/intrinsics/UNLINK.json b/doc/intrinsics/UNLINK.json deleted file mode 100644 index 7e0acda0..00000000 --- a/doc/intrinsics/UNLINK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "UNLINK", - "docstr": "`UNLINK` — Remove a file from the file system\n\n### Description\nUnlinks the file `PATH`. A null character (`CHAR(0)`) can be\nused to mark the end of the name in `PATH`; otherwise, trailing\nblanks in the file name are ignored. If the `STATUS` argument is\nsupplied, it contains 0 on success or a nonzero error code upon return;\nsee `unlink(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = UNLINK(PATH)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nLINK, SYMLNK\n" -} diff --git a/doc/intrinsics/UNPACK.json b/doc/intrinsics/UNPACK.json deleted file mode 100644 index e741c0ce..00000000 --- a/doc/intrinsics/UNPACK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "UNPACK", - "docstr": "`UNPACK` — Unpack an array of rank one into an array\n\n### Description\nStore the elements of `VECTOR` in an array of higher rank.\n\n\n\n### Syntax\n`RESULT = UNPACK(VECTOR, MASK, FIELD)`\n\n\n### Arguments\n\n \n | `VECTOR` | Shall be an array of any type and rank one. It\nshall have at least as many elements as `MASK` has `TRUE` values. \n\n | `MASK` | Shall be an array of type `LOGICAL`. \n\n | `FIELD` | Shall be of the same type as `VECTOR` and have\nthe same shape as `MASK`.\n\n\n\n\n\n\n### Return value\nThe resulting array corresponds to `FIELD` with `TRUE` elements\nof `MASK` replaced by values from `VECTOR` in array element order.\n\n\n\n### Example\n```\n\n\nPROGRAM test_unpack\n\n  integer :: vector(2) = (/1,1/)\n\n  logical :: mask(4) = (/ .TRUE., .FALSE., .FALSE., .TRUE. /)\n\n  integer :: field(2,2) = 0, unity(2,2)\n\n\n  ! result: unity matrix\n\n  unity = unpack(vector, reshape(mask, (/2,2/)), field)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nPACK, SPREAD\n" -} diff --git a/doc/intrinsics/VERIFY.json b/doc/intrinsics/VERIFY.json deleted file mode 100644 index 921e2c39..00000000 --- a/doc/intrinsics/VERIFY.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "VERIFY", - "docstr": "`VERIFY` — Scan a string for characters not a given set\n\n### Description\nVerifies that all the characters in `STRING` belong to the set of\ncharacters in `SET`.\n\n \nIf `BACK` is either absent or equals `FALSE`, this function\nreturns the position of the leftmost character of `STRING` that is\nnot in `SET`. If `BACK` equals `TRUE`, the rightmost\nposition is returned. If all characters of `STRING` are found in\n`SET`, the result is zero.\n\n\n\n\n### Syntax\n`RESULT = VERIFY(STRING, SET[, BACK [, KIND]])`\n\n\n### Arguments\n\n \n. \n\n | `SET` | Shall be of type `CHARACTER`. \n\n | `BACK` | (Optional) shall be of type `LOGICAL`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_verify\n\n  WRITE(*,*) VERIFY(\"FORTRAN\", \"AO\") ! 1, found 'F'\n\n  WRITE(*,*) VERIFY(\"FORTRAN\", \"FOO\") ! 3, found 'R'\n\n  WRITE(*,*) VERIFY(\"FORTRAN\", \"C++\") ! 1, found 'F'\n\n  WRITE(*,*) VERIFY(\"FORTRAN\", \"C++\", .TRUE.) ! 7, found 'N'\n\n  WRITE(*,*) VERIFY(\"FORTRAN\", \"FORTRAN\") ! 0' found none\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSCAN, INDEX intrinsic\n" -} diff --git a/doc/intrinsics/XOR.json b/doc/intrinsics/XOR.json deleted file mode 100644 index f9e44920..00000000 --- a/doc/intrinsics/XOR.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "keyword": "XOR", - "docstr": "`XOR` — Bitwise logical exclusive OR\n\n### Description\nBitwise logical exclusive or.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. For integer arguments, programmers should consider\nthe use of the IEOR intrinsic and for logical arguments the\n`.NEQV.` operator, which are both defined by the Fortran standard.\n\n\n\n\n### Syntax\n`RESULT = XOR(I, J)`\n\n\n### Arguments\n\n \n\ntype or a scalar `LOGICAL` type. \n\n | `J` | The type shall be the same as the type of `I`.\n\n\n\n\n\n\n### Return value\nThe return type is either a scalar `INTEGER` or a scalar\n`LOGICAL`. If the kind type parameters differ, then the\nsmaller kind type is implicitly converted to larger kind, and the\nreturn has the larger kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_xor\n\n  LOGICAL :: T = .TRUE., F = .FALSE.\n\n  INTEGER :: a, b\n\n  DATA a / Z'F' /, b / Z'3' /\n\n\n  WRITE (*,*) XOR(T, T), XOR(T, F), XOR(F, T), XOR(F, F)\n\n  WRITE (*,*) XOR(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFortran 95 elemental function: IEOR\n" -} diff --git a/doc/lang_server_type_autocompletion.gif b/doc/lang_server_type_autocompletion.gif deleted file mode 100644 index 7c187965dcc64bf6ea9920cd3085abd09880093e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884543 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�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μao1MsBh&+FUvhZl0e`;(eJ=>nl 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 z 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ð#6=}T@z^E^ng56xVf*`X6Ex9^0S#iDZJ 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 b?RteBzp=<2WVq~j1O7>h%8676>HGdK2hx5y diff --git a/src/features/completion-provider.ts b/src/features/completion-provider.ts index 2fd6507d..30ecb447 100644 --- a/src/features/completion-provider.ts +++ b/src/features/completion-provider.ts @@ -1,11 +1,11 @@ import { CancellationToken, TextDocument, Position, Hover } from 'vscode'; import * as fs from 'fs'; import * as vscode from 'vscode'; -import { isPositionInString, intrinsics, FORTRAN_KEYWORDS } from '../lib/helper'; +import { isPositionInString, FORTRAN_KEYWORDS } from '../lib/helper'; import { getDeclaredFunctions } from '../lib/functions'; - import { EXTENSION_ID } from '../lib/tools'; import { LoggingService } from '../services/logging-service'; +import intrinsics from './intrinsics.json'; class CaseCoverter { preferredCase: string; @@ -97,7 +97,7 @@ export class FortranCompletionProvider implements vscode.CompletionItemProvider currentWord: string, caseConverter: CaseCoverter ): vscode.CompletionItem[] { - return intrinsics + return Object.keys(intrinsics) .filter(i => i.startsWith(currentWord.toUpperCase())) .map((intrinsic: string) => { return new vscode.CompletionItem( diff --git a/src/features/hover-provider.ts b/src/features/hover-provider.ts index 44f83ddc..6bdf93c6 100644 --- a/src/features/hover-provider.ts +++ b/src/features/hover-provider.ts @@ -1,7 +1,6 @@ import { CancellationToken, TextDocument, Position, Hover } from 'vscode'; - -import { isIntrinsic, loadDocString } from '../lib/helper'; import { LoggingService } from '../services/logging-service'; +import intrinsics from './intrinsics.json'; export class FortranHoverProvider { constructor(private loggingService: LoggingService) {} @@ -13,8 +12,18 @@ export class FortranHoverProvider { const wordRange = document.getWordRangeAtPosition(position); const word = document.getText(wordRange); - if (isIntrinsic(word)) { - return new Hover(loadDocString(word)); + const intrinsicDoc: string = this.isIntrinsic(word); + if (intrinsicDoc) return new Hover(intrinsicDoc); + } + + /** + * Get if a word is a Fortran intrinsic and return the documentation if true. + * @param keyword word to provide hover info for + * @returns if `keyword` is an intrinsic return the documentation for it, otherwise return `undefined` + */ + private isIntrinsic(keyword: string): string { + if (Object.prototype.hasOwnProperty.call(intrinsics, keyword.toUpperCase())) { + return intrinsics[keyword.toUpperCase()].doc; } } } diff --git a/src/features/intrinsics.json b/src/features/intrinsics.json new file mode 100644 index 00000000..d0b605b5 --- /dev/null +++ b/src/features/intrinsics.json @@ -0,0 +1,851 @@ +{ + "SIGNAL": { + "doc": "`SIGNAL` \u2014 Signal handling subroutine (or function)\n\n### Description\n`SIGNAL(NUMBER, HANDLER [, STATUS])` causes external subroutine\n`HANDLER` to be executed with a single integer argument when signal\n`NUMBER` occurs. If `HANDLER` is an integer, it can be used to\nturn off handling of signal `NUMBER` or revert to its default\naction. See `signal(2)`.\n\n \nIf `SIGNAL` is called as a subroutine and the `STATUS` argument\nis supplied, it is set to the value returned by `signal(2)`.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = SIGNAL(NUMBER, HANDLER)`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `HANDLER` | Signal handler (`INTEGER FUNCTION` or\n`SUBROUTINE`) or dummy/global `INTEGER` scalar. \n`INTEGER`. It is `INTENT(IN)`. \n\n | `STATUS` | (Optional) `STATUS` shall be a scalar\ninteger. It has `INTENT(OUT)`.\n\n\n\n\n\n\n\n### Return value\nThe `SIGNAL` function returns the value returned by `signal(2)`.\n\n\n\n### Example\n```\n\n\nprogram test_signal\n\n\u00a0\u00a0intrinsic signal\n\n\u00a0\u00a0external handler_print\n\n\n\u00a0\u00a0call signal (12, handler_print)\n\n\u00a0\u00a0call signal (10, 1)\n\n\n\u00a0\u00a0call sleep (30)\n\nend program test_signal\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" + }, + "BGT": { + "doc": "`BGT` \u2014 Bitwise greater than\n\n### Description\nDetermines whether an integral is a bitwise greater than another.\n\n\n\n### Syntax\n`RESULT = BGT(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\n
BGE, BLE, BLT\n" + }, + "ATANH": { + "doc": "`ATANH` \u2014 Inverse hyperbolic tangent function\n\n### Description\n`ATANH(X)` computes the inverse hyperbolic tangent of `X`.\n\n\n\n### Syntax\n`RESULT = ATANH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians and lies between\n-\\pi/2 \\leq \\Im \\atanh(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nPROGRAM test_atanh\n\n\u00a0\u00a0REAL, DIMENSION(3) :: x = (/ -1.0, 0.0, 1.0 /)\n\n\u00a0\u00a0WRITE (*,*) ATANH(x)\n\nEND PROGRAM\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DATANH(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: TANH\n" + }, + "DSHIFTL": { + "doc": "`DSHIFTL` \u2014 Combined left shift\n\n### Description\n`DSHIFTL(I, J, SHIFT)` combines bits of `I` and `J`. The\nrightmost `SHIFT` bits of the result are the leftmost `SHIFT`\nbits of `J`, and the remaining bits are the rightmost bits of\n`I`.\n\n\n\n### Syntax\n`RESULT = DSHIFTL(I, J, SHIFT)`\n\n\n### Arguments\n\n \n or a BOZ constant. \n\n | `J` | Shall be of type `INTEGER` or a BOZ constant. \nIf both `I` and `J` have integer type, then they shall have\nthe same kind type parameter. `I` and `J` shall not both be\nBOZ constants. \n\n | `SHIFT` | Shall be of type `INTEGER`. It shall\nbe nonnegative. If `I` is not a BOZ constant, then `SHIFT`\nshall be less than or equal to `BIT_SIZE(I)`; otherwise,\n`SHIFT` shall be less than or equal to `BIT_SIZE(J)`.\n\n\n\n\n\n\n### Return value\nIf either `I` or `J` is a BOZ constant, it is first converted\nas if by the intrinsic function `INT` to an integer type with the\nkind type parameter of the other.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nDSHIFTR\n" + }, + "DREAL": { + "doc": "`DREAL` \u2014 Double real part function\n\n### Description\n`DREAL(Z)` returns the real part of complex variable `Z`.\n\n\n\n### Syntax\n`RESULT = DREAL(A)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL(8)`.\n\n\n\n### Example\n```\n\n\nprogram test_dreal\n\n\u00a0\u00a0\u00a0\u00a0complex(8) :: z = (1.3_8,7.2_8)\n\n\u00a0\u00a0\u00a0\u00a0print *, dreal(z)\n\nend program test_dreal\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nAIMAG\n\n " + }, + "MOD": { + "doc": "`MOD` \u2014 Remainder function\n\n### Description\n`MOD(A,P)` computes the remainder of the division of A by P.\n\n\n\n### Syntax\n`RESULT = MOD(A, P)`\n\n\n### Arguments\n\n \n. \n\n | `P` | Shall be a scalar of the same type and kind as `A`\nand not equal to zero.\n\n\n\n\n\n\n### Return value\nThe return value is the result of `A - (INT(A/P) * P)`. The type\nand kind of the return value is the same as that of the arguments. The\nreturned value has the same sign as A and a magnitude less than the\nmagnitude of P.\n\n\n\n### Example\n```\n\n\nprogram test_mod\n\n\u00a0\u00a0print *, mod(17,3)\n\n\u00a0\u00a0print *, mod(17.5,5.5)\n\n\u00a0\u00a0print *, mod(17.5d0,5.5)\n\n\u00a0\u00a0print *, mod(17.5,5.5d0)\n\n\n\u00a0\u00a0print *, mod(-17,3)\n\n\u00a0\u00a0print *, mod(-17.5,5.5)\n\n\u00a0\u00a0print *, mod(-17.5d0,5.5)\n\n\u00a0\u00a0print *, mod(-17.5,5.5d0)\n\n\n\u00a0\u00a0print *, mod(17,-3)\n\n\u00a0\u00a0print *, mod(17.5,-5.5)\n\n\u00a0\u00a0print *, mod(17.5d0,-5.5)\n\n\u00a0\u00a0print *, mod(17.5,-5.5d0)\n\nend program test_mod\n\n```\n\n\n\n### Specific names\n\n \n | Name | Arguments | Return type | Standard\n\n | `MOD(A,P)` | `INTEGER A,P` | `INTEGER` | Fortran 95 and later\n\n | `AMOD(A,P)` | `REAL(4) A,P` | `REAL(4)` | Fortran 95 and later\n\n | `DMOD(A,P)` | `REAL(8) A,P` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMODULO\n\n " + }, + "NOT": { + "doc": "`NOT` \u2014 Logical negation\n\n### Description\n`NOT` returns the bitwise Boolean inverse of `I`.\n\n\n\n### Syntax\n`RESULT = NOT(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\nargument.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIAND, IEOR, IOR, IBITS, IBSET, IBCLR\n\n " + }, + "SPREAD": { + "doc": "`SPREAD` \u2014 Add a dimension to an array\n\n### Description\nReplicates a `SOURCE` array `NCOPIES` times along a specified\ndimension `DIM`.\n\n\n\n### Syntax\n`RESULT = SPREAD(SOURCE, DIM, NCOPIES)`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be a scalar or an array of any type and\na rank less than seven. \n\n | `DIM` | Shall be a scalar of type `INTEGER` with a\nvalue in the range from 1 to n+1, where n equals the rank of `SOURCE`. \n\n | `NCOPIES` | Shall be a scalar of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe result is an array of the same type as `SOURCE` and has rank n+1\nwhere n equals the rank of `SOURCE`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_spread\n\n\u00a0\u00a0INTEGER :: a = 1, b(2) = (/ 1, 2 /)\n\n\u00a0\u00a0WRITE(*,*) SPREAD(A, 1, 2) ! \"1 1\"\n\n\u00a0\u00a0WRITE(*,*) SPREAD(B, 1, 2) ! \"1 1 2 2\"\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nUNPACK\n" + }, + "MVBITS": { + "doc": "`MVBITS` \u2014 Move bits from one integer to another\n\n### Description\nMoves `LEN` bits from positions `FROMPOS` through\n`FROMPOS+LEN-1` of `FROM` to positions `TOPOS` through\n`TOPOS+LEN-1` of `TO`. The portion of argument `TO` not\naffected by the movement of bits is unchanged. The values of\n`FROMPOS+LEN-1` and `TOPOS+LEN-1` must be less than\n`BIT_SIZE(FROM)`.\n\n\n\n### Syntax\n`CALL MVBITS(FROM, FROMPOS, LEN, TO, TOPOS)`\n\n\n### Arguments\n\n \n. \n\n | `FROMPOS` | The type shall be `INTEGER`. \n\n | `LEN` | The type shall be `INTEGER`. \n\n | `TO` | The type shall be `INTEGER`, of the\nsame kind as `FROM`. \n\n | `TOPOS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental subroutine\n\n\n\n### See also\nIBCLR, IBSET, IBITS, IAND, IOR, IEOR\n" + }, + "ATAND": { + "doc": "`ATAND` \u2014 Arctangent function, degrees\n\n### Description\nATAND(X) computes the arctangent of X in degrees (inverse of TAND).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ATAND(X)\nRESULT = ATAND(Y, X)\n### Arguments\n- X: The type shall be REAL or COMPLEX; if Y is present, X shall be REAL.- Y: Shall be of the same type and kind as X.\n### Return value\nThe return value is of the same type and kind as X. If Y is present, the result is identical to ATAND2(Y,X). Otherwise, it is the arcus tangent of X, where the real part of the result is in degrees and lies in the range -90 \\leq \\Re \\atand(x) \\leq 90." + }, + "C_FUNLOC": { + "doc": "`C_FUNLOC` \u2014 Obtain the C address of a procedure\n\n### Description\n`C_FUNLOC(x)` determines the C address of the argument.\n\n\n\n### Syntax\n`RESULT = C_FUNLOC(x)`\n\n\n### Arguments\n\n \n | `x` | Interoperable function or pointer to such function.\n\n\n\n\n\n\n### Return value\nThe return value is of type `C_FUNPTR` and contains the C address\nof the argument.\n\n\n\n### Example\n```\n\n\nmodule x\n\n\u00a0\u00a0use iso_c_binding\n\n\u00a0\u00a0implicit none\n\ncontains\n\n\u00a0\u00a0subroutine sub(a) bind(c)\n\n\u00a0\u00a0\u00a0\u00a0real(c_float) :: a\n\n\u00a0\u00a0\u00a0\u00a0a = sqrt(a)+5.0\n\n\u00a0\u00a0end subroutine sub\n\nend module x\n\nprogram main\n\n\u00a0\u00a0use iso_c_binding\n\n\u00a0\u00a0use x\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0interface\n\n\u00a0\u00a0\u00a0\u00a0subroutine my_routine(p) bind(c,name='myC_func')\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0import :: c_funptr\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type(c_funptr), intent(in) :: p\n\n\u00a0\u00a0\u00a0\u00a0end subroutine\n\n\u00a0\u00a0end interface\n\n\u00a0\u00a0call my_routine(c_funloc(sub))\n\nend program main\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_ASSOCIATED, C_LOC, C_F_POINTER, C_F_PROCPOINTER\n" + }, + "KIND": { + "doc": "`KIND` \u2014 Kind of an entity\n\n### Description\n`KIND(X)` returns the kind value of the entity `X`.\n\n\n\n### Syntax\n`K = KIND(X)`\n\n\n### Arguments\n\n \n,\n`REAL`, `COMPLEX` or `CHARACTER`.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `INTEGER` and of the default\ninteger kind.\n\n\n\n### Example\n```\n\n\nprogram test_kind\n\n\u00a0\u00a0integer,parameter :: kc = kind(' ')\n\n\u00a0\u00a0integer,parameter :: kl = kind(.true.)\n\n\n\u00a0\u00a0print *, \"The default character kind is \", kc\n\n\u00a0\u00a0print *, \"The default logical kind is \", kl\n\nend program test_kind\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "SECNDS": { + "doc": "`SECNDS` \u2014 Time function\n\n### Description\n`SECNDS(X)` gets the time in seconds from the real-time system clock. \n`X` is a reference time, also in seconds. If this is zero, the time in\nseconds from midnight is returned. This function is non-standard and its\nuse is discouraged.\n\n\n\n### Syntax\n`RESULT = SECNDS (X)`\n\n\n### Arguments\n\n \n. \n\n | `X` | Shall be of type `REAL(4)`.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_secnds\n\n\u00a0\u00a0\u00a0\u00a0integer :: i\n\n\u00a0\u00a0\u00a0\u00a0real(4) :: t1, t2\n\n\u00a0\u00a0\u00a0\u00a0print *, secnds (0.0) ! seconds since midnight\n\n\u00a0\u00a0\u00a0\u00a0t1 = secnds (0.0) ! reference time\n\n\u00a0\u00a0\u00a0\u00a0do i = 1, 10000000 ! do something\n\n\u00a0\u00a0\u00a0\u00a0end do\n\n\u00a0\u00a0\u00a0\u00a0t2 = secnds (t1) ! elapsed time\n\n\u00a0\u00a0\u00a0\u00a0print *, \"Something took \", t2, \" seconds.\"\n\nend program test_secnds\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n" + }, + "BLT": { + "doc": "`BLT` \u2014 Bitwise less than\n\n### Description\nDetermines whether an integral is a bitwise less than another.\n\n\n\n### Syntax\n`RESULT = BLT(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBGE, BGT, BLE\n" + }, + "IDATE": { + "doc": "`IDATE` \u2014 Get current local time subroutine (day/month/year)\n\n### Description\n`IDATE(VALUES)` Fills `VALUES` with the numerical values at the\ncurrent local time. The day (in the range 1-31), month (in the range 1-12),\nand year appear in elements 1, 2, and 3 of `VALUES`, respectively. \nThe year has four significant digits.\n\n\n\n### Syntax\n`CALL IDATE(VALUES)`\n\n\n### Arguments\n\n \n and\nthe kind shall be the default integer kind.\n\n\n\n\n\n\n### Return value\nDoes not return anything.\n\n\n\n### Example\n```\n\n\nprogram test_idate\n\n\u00a0\u00a0integer, dimension(3) :: tarray\n\n\u00a0\u00a0call idate(tarray)\n\n\u00a0\u00a0print *, tarray(1)\n\n\u00a0\u00a0print *, tarray(2)\n\n\u00a0\u00a0print *, tarray(3)\n\nend program test_idate\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" + }, + "SYMLNK": { + "doc": "`SYMLNK` \u2014 Create a symbolic link\n\n### Description\nMakes a symbolic link from file `PATH1` to `PATH2`. A null\ncharacter (`CHAR(0)`) can be used to mark the end of the names in\n`PATH1` and `PATH2`; otherwise, trailing blanks in the file\nnames are ignored. If the `STATUS` argument is supplied, it\ncontains 0 on success or a nonzero error code upon return; see\n`symlink(2)`. If the system does not supply `symlink(2)`,\n`ENOSYS` is returned.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = SYMLNK(PATH1, PATH2)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `PATH2` | Shall be of default `CHARACTER` type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nLINK, UNLINK\n\n " + }, + "KILL": { + "doc": "`KILL` \u2014 Send a signal to a process\n\n### Description\nSends the signal specified by `SIGNAL` to the process `PID`. \nSee `kill(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = KILL(C, VALUE)`
\n\n\n\n\n\n### Arguments\n\n \n, with\n`INTENT(IN)`
\n | `VALUE` | Shall be a scalar `INTEGER`, with\n`INTENT(IN)`
\n | `STATUS` | (Optional) status flag of type `INTEGER(4)` or\n`INTEGER(8)`. Returns 0 on success, or a system-specific error code\notherwise.\n\n\n\n\n\n\n### Standard\nSends the signal specified by `SIGNAL` to the process `PID`. \nSee `kill(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nABORT, EXIT\n" + }, + "LLE": { + "doc": "`LLE` \u2014 Lexical less than or equal\n\n### Description\nDetermines whether one string is lexically less than or equal to another\nstring, where the two strings are interpreted as containing ASCII\ncharacter codes. If the String A and String B are not the same length,\nthe shorter is compared as if spaces were appended to it to form a value\nthat has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LLE(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A <= STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LLE(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGE, LGT, LLT\n" + }, + "SET_EXPONENT": { + "doc": "`SET_EXPONENT` \u2014 Set the exponent of the model\n\n### Description\n`SET_EXPONENT(X, I)` returns the real number whose fractional part\nis that that of `X` and whose exponent part is `I`.\n\n\n\n### Syntax\n`RESULT = SET_EXPONENT(X, I)`\n\n\n### Arguments\n\n \n. \n\n | `I` | Shall be of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe real number whose fractional part\nis that that of `X` and whose exponent part if `I` is returned;\nit is `FRACTION(X) * RADIX(X)**I`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_setexp\n\n\u00a0\u00a0REAL :: x = 178.1387e-4\n\n\u00a0\u00a0INTEGER :: i = 17\n\n\u00a0\u00a0PRINT *, SET_EXPONENT(x, i), FRACTION(x) * RADIX(x)**i\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "FDATE": { + "doc": "`FDATE` \u2014 Get the current time as a string\n\n### Description\n`FDATE(DATE)` returns the current date (using the same format as\n`CTIME`) in `DATE`. It is equivalent to CALL CTIME(DATE,\nTIME()).\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n. \n\n | `DATE = FDATE()`.\n\n\n\n\n\n\n### Arguments\n\n \n of the\ndefault kind. It is an `INTENT(OUT)` argument. If the length of\nthis variable is too short for the date and time string to fit\ncompletely, it will be blank on procedure return.\n\n\n\n\n\n\n### Return value\nThe current date and time as a string.\n\n\n\n### Example\n```\n\n\nprogram test_fdate\n\n\u00a0\u00a0\u00a0\u00a0integer(8) :: i, j\n\n\u00a0\u00a0\u00a0\u00a0character(len=30) :: date\n\n\u00a0\u00a0\u00a0\u00a0call fdate(date)\n\n\u00a0\u00a0\u00a0\u00a0print *, 'Program started on ', date\n\n\u00a0\u00a0\u00a0\u00a0do i = 1, 100000000 ! Just a delay\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0j = i * i - i\n\n\u00a0\u00a0\u00a0\u00a0end do\n\n\u00a0\u00a0\u00a0\u00a0call fdate(date)\n\n\u00a0\u00a0\u00a0\u00a0print *, 'Program ended on ', date\n\nend program test_fdate\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nDATE_AND_TIME, CTIME\n" + }, + "SHIFTL": { + "doc": "`SHIFTL` \u2014 Left shift\n\n### Description\n`SHIFTL` returns a value corresponding to `I` with all of the\nbits shifted left by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the left end are lost, and bits shifted in from\nthe right end are set to 0.\n\n\n\n### Syntax\n`RESULT = SHIFTL(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSHIFTA, SHIFTR\n" + }, + "DBLE": { + "doc": "`DBLE` \u2014 Double conversion function\n\n### Description\n`DBLE(A)` Converts `A` to double precision real type.\n\n\n\n### Syntax\n`RESULT = DBLE(A)`\n\n\n### Arguments\n\n \n,\nor `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type double precision real.\n\n\n\n### Example\n```\n\n\nprogram test_dble\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 2.18\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 5\n\n\u00a0\u00a0\u00a0\u00a0complex :: z = (2.3,1.14)\n\n\u00a0\u00a0\u00a0\u00a0print *, dble(x), dble(i), dble(z)\n\nend program test_dble\n\n```\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nREAL\n" + }, + "ATOMIC_XOR": { + "doc": "`ATOMIC_XOR` \u2014 Atomic bitwise OR operation\n\n### Description\n`ATOMIC_AND(ATOM, VALUE)` atomically defines `ATOM` with the bitwise\nXOR between the values of `ATOM` and `VALUE`. When `STAT` is present\nand the invokation was successful, it is assigned the value 0. If it is present\nand the invokation has failed, it is assigned a positive value; in particular,\nfor a coindexed `ATOM`, if the remote image has stopped, it is assigned the\nvalue of `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote\nimage has failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_XOR (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*]\n\n\u00a0\u00a0call atomic_xor (atom[1], int(b'10100011101'))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_XOR, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_OR, ATOMIC_XOR\n" + }, + "DPROD": { + "doc": "`DPROD` \u2014 Double product function\n\n### Description\n`DPROD(X,Y)` returns the product `X*Y`.\n\n\n\n### Syntax\n`RESULT = DPROD(X, Y)`\n\n\n### Arguments\n\n \n. \n\n | `Y` | The type shall be `REAL`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL(8)`.\n\n\n\n### Example\n```\n\n\nprogram test_dprod\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 5.2\n\n\u00a0\u00a0\u00a0\u00a0real :: y = 2.3\n\n\u00a0\u00a0\u00a0\u00a0real(8) :: d\n\n\u00a0\u00a0\u00a0\u00a0d = dprod(x,y)\n\n\u00a0\u00a0\u00a0\u00a0print *, d\n\nend program test_dprod\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DPROD(X,Y)` | `REAL(4) X, Y` | `REAL(8)` | Fortran 77 and later\n\n\n\n \n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "HYPOT": { + "doc": "`HYPOT` \u2014 Euclidean distance function\n\n### Description\n`HYPOT(X,Y)` is the Euclidean distance function. It is equal to\n\\sqrtX^2 + Y^2, without undue underflow or overflow.\n\n\n\n### Syntax\n`RESULT = HYPOT(X, Y)`\n\n\n### Arguments\n\n \n. \n\n | `Y` | The type and kind type parameter shall be the same as\n`X`.\n\n\n\n\n\n\n### Return value\nThe return value has the same type and kind type parameter as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_hypot\n\n\u00a0\u00a0real(4) :: x = 1.e0_4, y = 0.5e0_4\n\n\u00a0\u00a0x = hypot(x,y)\n\nend program test_hypot\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "BESSEL_J0": { + "doc": "`BESSEL_J0` \u2014 Bessel function of the first kind of order 0\n\n### Description\n`BESSEL_J0(X)` computes the Bessel function of the first kind of\norder 0 of `X`. This function is available under the name\n`BESJ0` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_J0(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and lies in the\nrange - 0.4027... \\leq Bessel (0,x) \\leq 1. It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besj0\n\n\u00a0\u00a0real(8) :: x = 0.0_8\n\n\u00a0\u00a0x = bessel_j0(x)\n\nend program test_besj0\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESJ0(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "IRAND": { + "doc": "`IRAND` \u2014 Integer pseudo-random number\n\n### Description\n`IRAND(FLAG)` returns a pseudo-random number from a uniform\ndistribution between 0 and a system-dependent limit (which is in most\ncases 2147483647). If `FLAG` is 0, the next number\nin the current sequence is returned; if `FLAG` is 1, the generator\nis restarted by `CALL SRAND(0)`; if `FLAG` has any other value,\nit is used as a new seed with `SRAND`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. It implements a simple modulo generator as provided\nby *g77*. For new code, one should consider the use of\nRANDOM_NUMBER as it implements a superior algorithm.\n\n\n\n\n### Syntax\n`RESULT = IRAND(I)`\n\n\n### Arguments\n\n \n of kind 4.\n\n\n\n\n\n\n### Return value\nThe return value is of `INTEGER(kind=4)` type.\n\n\n\n### Example\n```\n\n\nprogram test_irand\n\n\u00a0\u00a0integer,parameter :: seed = 86456\n\n\n\u00a0\u00a0call srand(seed)\n\n\u00a0\u00a0print *, irand(), irand(), irand(), irand()\n\n\u00a0\u00a0print *, irand(seed), irand(), irand(), irand()\n\nend program test_irand\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n" + }, + "ADJUSTL": { + "doc": "`ADJUSTL` \u2014 Left adjust a string\n\n### Description\n`ADJUSTL(STRING)` will left adjust a string by removing leading spaces. \nSpaces are inserted at the end of the string as needed.\n\n\n\n### Syntax\n`RESULT = ADJUSTL(STRING)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER` and of the same kind as\n`STRING` where leading spaces are removed and the same number of\nspaces are inserted on the end of `STRING`.\n\n\n\n### Example\n```\n\n\nprogram test_adjustl\n\n\u00a0\u00a0character(len=20) :: str = ' gfortran'\n\n\u00a0\u00a0str = adjustl(str)\n\n\u00a0\u00a0print *, str\n\nend program test_adjustl\n\n```\n\n\n\n### Standard\nFortran 90 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nADJUSTR, TRIM\n" + }, + "PARITY": { + "doc": "`PARITY` \u2014 Reduction with exclusive OR\n\n### Description\nCalculates the parity, i.e. the reduction using `.XOR.`,\nof `MASK` along dimension `DIM`.\n\n\n\n### Syntax\n\n \n\n\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `MASK`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `MASK`.\n\n \nIf `DIM` is absent, a scalar with the parity of all elements in\n`MASK` is returned, i.e. true if an odd number of elements is\n`.true.` and false otherwise. If `DIM` is present, an array\nof rank n-1, where n equals the rank of `ARRAY`,\nand a shape similar to that of `MASK` with dimension `DIM`\ndropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_sum\n\n\u00a0\u00a0LOGICAL :: x(2) = [ .true., .false. ]\n\n\u00a0\u00a0print *, PARITY(x) ! prints \"T\" (true).\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "ATOMIC_FETCH_OR": { + "doc": "`ATOMIC_FETCH_OR` \u2014 Atomic bitwise OR operation with prior fetch\n\n### Description\n`ATOMIC_OR(ATOM, VALUE)` atomically stores the value of `ATOM` in\n`OLD` and defines `ATOM` with the bitwise OR between the values of\n`ATOM` and `VALUE`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation has\nfailed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_OR (ATOM, VALUE, OLD [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*], old\n\n\u00a0\u00a0call atomic_fetch_or (atom[1], int(b'10100011101'), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_OR, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_XOR\n" + }, + "GETARG": { + "doc": "`GETARG` \u2014 Get command line arguments\n\n### Description\nRetrieve the `POS`-th argument that was passed on the\ncommand line when the containing program was invoked.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. In new code, programmers should consider the use of\nthe GET_COMMAND_ARGUMENT intrinsic defined by the Fortran 2003\nstandard.\n\n\n\n\n### Syntax\n`CALL GETARG(POS, VALUE)`\n\n\n### Arguments\n\n \n and not wider than\nthe default integer kind; `POS` \\geq 0\n\n | `VALUE` | Shall be of type `CHARACTER` and of default\nkind. \n\n | `VALUE` | Shall be of type `CHARACTER`.\n\n\n\n\n\n\n### Return value\nAfter `GETARG` returns, the `VALUE` argument holds the\n`POS`th command line argument. If `VALUE` can not hold the\nargument, it is truncated to fit the length of `VALUE`. If there are\nless than `POS` arguments specified at the command line, `VALUE`\nwill be filled with blanks. If `POS` = 0, `VALUE` is set\nto the name of the program (on systems that support this feature).\n\n\n\n### Example\n```\n\n\nPROGRAM test_getarg\n\n\u00a0\u00a0INTEGER :: i\n\n\u00a0\u00a0CHARACTER(len=32) :: arg\n\n\n\u00a0\u00a0DO i = 1, iargc()\n\n\u00a0\u00a0\u00a0\u00a0CALL getarg(i, arg)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*,*) arg\n\n\u00a0\u00a0END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGNU Fortran 77 compatibility function: IARGC\n\n \nFortran 2003 functions and subroutines: GET_COMMAND,\nGET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT\n\n" + }, + "TTYNAM": { + "doc": "`TTYNAM` \u2014 Get the name of a terminal device.\n\n### Description\nGet the name of a terminal device. For more information,\nsee `ttyname(3)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `NAME = TTYNAM(UNIT)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `NAME` | Shall be of type `CHARACTER`.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_ttynam\n\n\u00a0\u00a0INTEGER :: unit\n\n\u00a0\u00a0DO unit = 1, 10\n\n\u00a0\u00a0\u00a0\u00a0IF (isatty(unit=unit)) write(*,*) ttynam(unit)\n\n\u00a0\u00a0END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nISATTY\n" + }, + "GET_COMMAND_ARGUMENT": { + "doc": "`GET_COMMAND_ARGUMENT` \u2014 Get command line arguments\n\n### Description\nRetrieve the `NUMBER`-th argument that was passed on the\ncommand line when the containing program was invoked.\n\n\n\n### Syntax\n`CALL GET_COMMAND_ARGUMENT(NUMBER [, VALUE, LENGTH, STATUS])`\n\n\n### Arguments\n\n \n and of\ndefault kind, `NUMBER` \\geq 0\n\n | `VALUE` | (Optional) Shall be a scalar of type `CHARACTER`and of default kind. \n\n | `LENGTH` | (Optional) Shall be a scalar of type `INTEGER`and of default kind. \n\n | `STATUS` | (Optional) Shall be a scalar of type `INTEGER`and of default kind.\n\n\n\n\n\n\n### Return value\nAfter `GET_COMMAND_ARGUMENT` returns, the `VALUE` argument holds the\n`NUMBER`-th command line argument. If `VALUE` can not hold the argument, it is\ntruncated to fit the length of `VALUE`. If there are less than `NUMBER`\narguments specified at the command line, `VALUE` will be filled with blanks. \nIf `NUMBER` = 0, `VALUE` is set to the name of the program (on\nsystems that support this feature). The `LENGTH` argument contains the\nlength of the `NUMBER`-th command line argument. If the argument retrieval\nfails, `STATUS` is a positive number; if `VALUE` contains a truncated\ncommand line argument, `STATUS` is -1; and otherwise the `STATUS` is\nzero.\n\n\n\n### Example\n```\n\n\nPROGRAM test_get_command_argument\n\n\u00a0\u00a0INTEGER :: i\n\n\u00a0\u00a0CHARACTER(len=32) :: arg\n\n\n\u00a0\u00a0i = 0\n\n\u00a0\u00a0DO\n\n\u00a0\u00a0\u00a0\u00a0CALL get_command_argument(i, arg)\n\n\u00a0\u00a0\u00a0\u00a0IF (LEN_TRIM(arg) == 0) EXIT\n\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*,*) TRIM(arg)\n\n\u00a0\u00a0\u00a0\u00a0i = i+1\n\n\u00a0\u00a0END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGET_COMMAND, COMMAND_ARGUMENT_COUNT\n" + }, + "ETIME": { + "doc": "`ETIME` \u2014 Execution time subroutine (or function)\n\n### Description\n`ETIME(VALUES, TIME)` returns the number of seconds of runtime\nsince the start of the process's execution in `TIME`. `VALUES`\nreturns the user and system components of this time in `VALUES(1)` and\n`VALUES(2)` respectively. `TIME` is equal to `VALUES(1) + VALUES(2)`.\n\n \nOn some systems, the underlying timings are represented using types with\nsufficiently small limits that overflows (wrap around) are possible, such as\n32-bit types. Therefore, the values returned by this intrinsic might be, or\nbecome, negative, or numerically less than previous values, during a single\nrun of the compiled program.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\n`VALUES` and `TIME` are `INTENT(OUT)` and provide the following:\n\n \n\n: | User time in seconds. \n\n | `VALUES(2)`: | System time in seconds. \n\n | `TIME`: | Run time since start in seconds.\n\n\n\n\n\n\n### Syntax\n\n \n. \n\n | `TIME = ETIME(VALUES)`, (not recommended).\n\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `TIME` | The type shall be `REAL(4)`.\n\n\n\n\n\n\n### Return value\nElapsed time in seconds since the start of program execution.\n\n\n\n### Example\n```\n\n\nprogram test_etime\n\n\u00a0\u00a0\u00a0\u00a0integer(8) :: i, j\n\n\u00a0\u00a0\u00a0\u00a0real, dimension(2) :: tarray\n\n\u00a0\u00a0\u00a0\u00a0real :: result\n\n\u00a0\u00a0\u00a0\u00a0call ETIME(tarray, result)\n\n\u00a0\u00a0\u00a0\u00a0print *, result\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(1)\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(2)\n\n\u00a0\u00a0\u00a0\u00a0do i=1,100000000 ! Just a delay\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0j = i * i - i\n\n\u00a0\u00a0\u00a0\u00a0end do\n\n\u00a0\u00a0\u00a0\u00a0call ETIME(tarray, result)\n\n\u00a0\u00a0\u00a0\u00a0print *, result\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(1)\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(2)\n\nend program test_etime\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCPU_TIME\n\n " + }, + "CO_MIN": { + "doc": "`CO_MIN` \u2014 Minimal value on the current set of images\n\n### Description\n`CO_MIN` determines element-wise the minimal value of `A` on all\nimages of the current team. If `RESULT_IMAGE` is present, the minimal\nvalues are returned in `A` on the specified image only and the value\nof `A` on the other images become undefined. If `RESULT_IMAGE` is\nnot present, the value is returned on all images. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_MIN(A [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | shall be an integer, real or character variable,\nwhich has the same type and type parameters on all images of the team. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n\u00a0\u00a0integer :: val\n\n\u00a0\u00a0val = this_image ()\n\n\u00a0\u00a0call co_min (val, result_image=1)\n\n\u00a0\u00a0if (this_image() == 1) then\n\n\u00a0\u00a0\u00a0\u00a0write(*,*) \"Minimal value\", val ! prints 1\n\n\u00a0\u00a0end if\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MAX, CO_SUM, CO_REDUCE, CO_BROADCAST\n" + }, + "EXTENDS_TYPE_OF": { + "doc": "`EXTENDS_TYPE_OF` \u2014 Query dynamic type for extension\n\n### Description\nQuery dynamic type for extension.\n\n\n\n### Syntax\n`RESULT = EXTENDS_TYPE_OF(A, MOLD)`\n\n\n### Arguments\n\n \n | `A` | Shall be an object of extensible declared type or\nunlimited polymorphic. \n\n | `MOLD` | Shall be an object of extensible declared type or\nunlimited polymorphic.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type default logical. It is true if and only if\nthe dynamic type of A is an extension type of the dynamic type of MOLD.\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSAME_TYPE_AS\n" + }, + "RANDOM_NUMBER": { + "doc": "`RANDOM_NUMBER` \u2014 Pseudo-random number\n\n### Description\nReturns a single pseudorandom number or an array of pseudorandom numbers\nfrom the uniform distribution over the range 0 \\leq x < 1.\n\n \nThe runtime-library implements George Marsaglia's KISS (Keep It Simple\nStupid) random number generator (RNG). This RNG combines:\n \n

    \n
  1. The congruential generator x(n) = 69069 \\cdot x(n-1) + 1327217885\nwith a period of 2^32,\n
  2. A 3-shift shift-register generator with a period of 2^32 - 1,\n
  3. Two 16-bit multiply-with-carry generators with a period of\n597273182964842497 > 2^59.\n
\nThe overall period exceeds 2^123.\n\n \nPlease note, this RNG is thread safe if used within OpenMP directives,\ni.e., its state will be consistent while called from multiple threads. \nHowever, the KISS generator does not create random numbers in parallel\nfrom multiple sources, but in sequence from a single source. If an\nOpenMP-enabled application heavily relies on random numbers, one should\nconsider employing a dedicated parallel random number generator instead.\n\n\n\n\n### Syntax\n`RANDOM_NUMBER(HARVEST)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_random_number\n\n\u00a0\u00a0REAL :: r(5,5)\n\n\u00a0\u00a0CALL init_random_seed() ! see example of RANDOM_SEED\n\n\u00a0\u00a0CALL RANDOM_NUMBER(r)\n\nend program\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nRANDOM_SEED\n" + }, + "THIS_IMAGE": { + "doc": "`THIS_IMAGE` \u2014 Function that returns the cosubscript index of this image\n\n### Description\nReturns the cosubscript for this image.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = THIS_IMAGE(DISTANCE)`
\n | `RESULT = THIS_IMAGE(COARRAY [, DIM])`
\n\n\n\n\n\n### Arguments\n\n \n | `DISTANCE` | (optional, intent(in)) Nonnegative scalar integer\n(not permitted together with `COARRAY`). \n\n | `COARRAY` | Coarray of any type (optional; if `DIM`\npresent, required). \n\n | `DIM` | default integer scalar (optional). If present,\n`DIM` shall be between one and the corank of `COARRAY`.\n\n\n\n\n\n\n### Return value\nDefault integer. If `COARRAY` is not present, it is scalar; if\n`DISTANCE` is not present or has value 0, its value is the image index on\nthe invoking image for the current team, for values smaller or equal\ndistance to the initial team, it returns the image index on the ancestor team\nwhich has a distance of `DISTANCE` from the invoking team. If\n`DISTANCE` is larger than the distance to the initial team, the image\nindex of the initial team is returned. Otherwise when the `COARRAY` is\npresent, if `DIM` is not present, a rank-1 array with corank elements is\nreturned, containing the cosubscripts for `COARRAY` specifying the invoking\nimage. If `DIM` is present, a scalar is returned, with the value of\nthe `DIM` element of `THIS_IMAGE(COARRAY)`.\n\n\n\n### Example\n```\n\n\nINTEGER :: value[*]\n\nINTEGER :: i\n\nvalue = THIS_IMAGE()\n\nSYNC ALL\n\nIF (THIS_IMAGE() == 1) THEN\n\n\u00a0\u00a0DO i = 1, NUM_IMAGES()\n\n\u00a0\u00a0\u00a0\u00a0WRITE(*,'(2(a,i0))') 'value[', i, '] is ', value[i]\n\n\u00a0\u00a0END DO\n\nEND IF\n\n\n! Check whether the current image is the initial image\n\nIF (THIS_IMAGE(HUGE(1)) /= THIS_IMAGE())\n\n\u00a0\u00a0error stop \"something is rotten here\"\n\n```\n\n\n\n### Standard\nFortran 2008 and later. With `DISTANCE` argument,\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nNUM_IMAGES, IMAGE_INDEX\n" + }, + "MCLOCK8": { + "doc": "`MCLOCK8` \u2014 Time function (64-bit)\n\n### Description\nReturns the number of clock ticks since the start of the process, based\non the function `clock(3)` in the C standard library.\n\n \nWarning: this intrinsic does not increase the range of the timing\nvalues over that returned by `clock(3)`. On a system with a 32-bit\n`clock(3)`, `MCLOCK8` will return a 32-bit value, even though\nit is converted to a 64-bit `INTEGER(8)` value. That means\noverflows of the 32-bit value can still occur. Therefore, the values\nreturned by this intrinsic might be or become negative or numerically\nless than previous values during a single run of the compiled program.\n\n\n\n\n### Syntax\n`RESULT = MCLOCK8()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(8)`, equal to the\nnumber of clock ticks since the start of the process, or `-1` if\nthe system does not support `clock(3)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK, TIME8\n\n " + }, + "COMPLEX": { + "doc": "`COMPLEX` \u2014 Complex conversion function\n\n### Description\n`COMPLEX(X, Y)` returns a complex number where `X` is converted\nto the real component and `Y` is converted to the imaginary\ncomponent.\n\n\n\n### Syntax\n`RESULT = COMPLEX(X, Y)`\n\n\n### Arguments\n\n \n. \n\n | `Y` | The type may be `INTEGER` or `REAL`.\n\n\n\n\n\n\n### Return value\nIf `X` and `Y` are both of `INTEGER` type, then the return\nvalue is of default `COMPLEX` type.\n\n \nIf `X` and `Y` are of `REAL` type, or one is of `REAL`type and one is of `INTEGER` type, then the return value is of\n`COMPLEX` type with a kind equal to that of the `REAL`argument with the highest precision.\n\n\n\n\n### Example\n```\n\n\nprogram test_complex\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 42\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 3.14\n\n\u00a0\u00a0\u00a0\u00a0print *, complex(i, x)\n\nend program test_complex\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCMPLX\n" + }, + "OR": { + "doc": "`OR` \u2014 Bitwise logical OR\n\n### Description\nBitwise logical `OR`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. For integer arguments, programmers should consider\nthe use of the IOR intrinsic defined by the Fortran standard.\n\n\n\n\n### Syntax\n`RESULT = OR(I, J)`\n\n\n### Arguments\n\n \n\ntype or a scalar `LOGICAL` type. \n\n | `J` | The type shall be the same as the type of `J`.\n\n\n\n\n\n\n### Return value\nThe return type is either a scalar `INTEGER` or a scalar\n`LOGICAL`. If the kind type parameters differ, then the\nsmaller kind type is implicitly converted to larger kind, and the\nreturn has the larger kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_or\n\n\u00a0\u00a0LOGICAL :: T = .TRUE., F = .FALSE.\n\n\u00a0\u00a0INTEGER :: a, b\n\n\u00a0\u00a0DATA a / Z'F' /, b / Z'3' /\n\n\n\u00a0\u00a0WRITE (*,*) OR(T, T), OR(T, F), OR(F, T), OR(F, F)\n\n\u00a0\u00a0WRITE (*,*) OR(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFortran 95 elemental function: IOR\n" + }, + "IEOR": { + "doc": "`IEOR` \u2014 Bitwise logical exclusive or\n\n### Description\n`IEOR` returns the bitwise Boolean exclusive-OR of `I` and\n`J`.\n\n\n\n### Syntax\n`RESULT = IEOR(I, J)`\n\n\n### Arguments\n\n \n. \n\n | `J` | The type shall be `INTEGER`, of the same\nkind as `I`. (As a GNU extension, different kinds are also\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\narguments. (If the argument kinds differ, it is of the same kind as\nthe larger argument.)\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIOR, IAND, IBITS, IBSET, IBCLR, NOT\n" + }, + "RSHIFT": { + "doc": "`RSHIFT` \u2014 Right shift bits\n\n### Description\n`RSHIFT` returns a value corresponding to `I` with all of the\nbits shifted right by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the right end are lost. The fill is arithmetic: the\nbits shifted in from the left end are equal to the leftmost bit, which in\ntwo's complement representation is the sign bit.\n\n \nThis function has been superseded by the `SHIFTA` intrinsic, which\nis standard in Fortran 2008 and later.\n\n\n\n\n### Syntax\n`RESULT = RSHIFT(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFT, ISHFTC, LSHIFT, SHIFTA, SHIFTR,\nSHIFTL\n\n " + }, + "RANGE": { + "doc": "`RANGE` \u2014 Decimal exponent range\n\n### Description\n`RANGE(X)` returns the decimal exponent range in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = RANGE(X)`\n\n\n### Arguments\n\n \n\nor `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\nSee `PRECISION` for an example. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSELECTED_REAL_KIND, PRECISION\n\n\n" + }, + "INDEX": { + "doc": "`INDEX` \u2014 Position of a substring within a string\n\n### Description\nReturns the position of the start of the first occurrence of string\n`SUBSTRING` as a substring in `STRING`, counting from one. If\n`SUBSTRING` is not present in `STRING`, zero is returned. If\nthe `BACK` argument is present and true, the return value is the\nstart of the last occurrence rather than the first.\n\n\n\n### Syntax\n`RESULT = INDEX(STRING, SUBSTRING [, BACK [, KIND]])`\n\n\n### Arguments\n\n \n, with\n`INTENT(IN)`
\n | `SUBSTRING` | Shall be a scalar `CHARACTER`, with\n`INTENT(IN)`
\n | `BACK` | (Optional) Shall be a scalar `LOGICAL`, with\n`INTENT(IN)`
\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `INDEX(STRING, SUBSTRING)` | `CHARACTER` | `INTEGER(4)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSCAN, VERIFY\n" + }, + "FLOOR": { + "doc": "`FLOOR` \u2014 Integer floor function\n\n### Description\n`FLOOR(A)` returns the greatest integer less than or equal to `X`.\n\n\n\n### Syntax\n`RESULT = FLOOR(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER(KIND)` if `KIND` is present\nand of default-kind `INTEGER` otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_floor\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 63.29\n\n\u00a0\u00a0\u00a0\u00a0real :: y = -63.59\n\n\u00a0\u00a0\u00a0\u00a0print *, floor(x) ! returns 63\n\n\u00a0\u00a0\u00a0\u00a0print *, floor(y) ! returns -64\n\nend program test_floor\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCEILING, NINT\n\n " + }, + "BESSEL_J1": { + "doc": "`BESSEL_J1` \u2014 Bessel function of the first kind of order 1\n\n### Description\n`BESSEL_J1(X)` computes the Bessel function of the first kind of\norder 1 of `X`. This function is available under the name\n`BESJ1` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_J1(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and lies in the\nrange - 0.5818... \\leq Bessel (0,x) \\leq 0.5818 . It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besj1\n\n\u00a0\u00a0real(8) :: x = 1.0_8\n\n\u00a0\u00a0x = bessel_j1(x)\n\nend program test_besj1\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESJ1(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nElemental function\n\n\n" + }, + "CHAR": { + "doc": "`CHAR` \u2014 Character conversion function\n\n### Description\n`CHAR(I [, KIND])` returns the character represented by the integer `I`.\n\n\n\n### Syntax\n`RESULT = CHAR(I [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER(1)`\n\n\n### Example\n```\n\n\nprogram test_char\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 74\n\n\u00a0\u00a0\u00a0\u00a0character(1) :: c\n\n\u00a0\u00a0\u00a0\u00a0c = char(i)\n\n\u00a0\u00a0\u00a0\u00a0print *, i, c ! returns 'J'\n\nend program test_char\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `CHAR(I)` | `INTEGER I` | `CHARACTER(LEN=1)` | F77 and later\n\n\n\n\n\n\n### Notes\nSee ICHAR for a discussion of converting between numerical values\nand formatted string representations.\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nACHAR, IACHAR, ICHAR\n\n " + }, + "MASKR": { + "doc": "`MASKR` \u2014 Right justified mask\n\n### Description\n`MASKL(I[, KIND])` has its rightmost `I` bits set to 1, and the\nremaining bits set to 0.\n\n\n\n### Syntax\n`RESULT = MASKR(I[, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | Shall be a scalar constant expression of type\n`INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`. If `KIND` is present, it\nspecifies the kind value of the return type; otherwise, it is of the\ndefault integer kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMASKL\n" + }, + "ABORT": { + "doc": "`ABORT` \u2014 Abort the program\n\n### Description\n`ABORT` causes immediate termination of the program. On operating\nsystems that support a core dump, `ABORT` will produce a core dump. \nIt will also print a backtrace, unless `-fno-backtrace` is given.\n\n\n\n### Syntax\n`CALL ABORT`\n\n\n### Return value\nDoes not return.\n\n\n\n### Example\n```\n\n\nprogram test_abort\n\n\u00a0\u00a0integer :: i = 1, j = 2\n\n\u00a0\u00a0if (i /= j) call abort\n\nend program test_abort\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nEXIT, KILL, BACKTRACE\n\n " + }, + "RRSPACING": { + "doc": "`RRSPACING` \u2014 Reciprocal of the relative spacing\n\n### Description\n`RRSPACING(X)` returns the reciprocal of the relative spacing of\nmodel numbers near `X`.\n\n\n\n### Syntax\n`RESULT = RRSPACING(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe value returned is equal to\n`ABS(FRACTION(X)) * FLOAT(RADIX(X))**DIGITS(X)`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSPACING\n" + }, + "LOG_GAMMA": { + "doc": "`LOG_GAMMA` \u2014 Logarithm of the Gamma function\n\n### Description\n`LOG_GAMMA(X)` computes the natural logarithm of the absolute value\nof the Gamma (\\Gamma) function.\n\n\n\n### Syntax\n`X = LOG_GAMMA(X)`\n\n\n### Arguments\n\n \n and neither zero\nnor a negative integer.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` of the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_log_gamma\n\n\u00a0\u00a0real :: x = 1.0\n\n\u00a0\u00a0x = lgamma(x) ! returns 0.0\n\nend program test_log_gamma\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LGAMMA(X)` | `REAL(4) X` | `REAL(4)` | GNU Extension\n\n | `ALGAMA(X)` | `REAL(4) X` | `REAL(4)` | GNU Extension\n\n | `DLGAMA(X)` | `REAL(8) X` | `REAL(8)` | GNU Extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nGamma function: GAMMA\n\n " + }, + "SIZEOF": { + "doc": "`SIZEOF` \u2014 Size in bytes of an expression\n\n### Description\n`SIZEOF(X)` calculates the number of bytes of storage the\nexpression `X` occupies.\n\n\n\n### Syntax\n`N = SIZEOF(X)`\n\n\n### Arguments\n\n \n | `X` | The argument shall be of any type, rank or shape.\n\n\n\n\n\n\n### Return value\nThe return value is of type integer and of the system-dependent kind\n`C_SIZE_T` (from the `ISO_C_BINDING` module). Its value is the\nnumber of bytes occupied by the argument. If the argument has the\n`POINTER` attribute, the number of bytes of the storage area pointed\nto is returned. If the argument is of a derived type with `POINTER`or `ALLOCATABLE` components, the return value does not account for\nthe sizes of the data pointed to by these components. If the argument is\npolymorphic, the size according to the dynamic type is returned. The argument\nmay not be a procedure or procedure pointer. Note that the code assumes for\narrays that those are contiguous; for contiguous arrays, it returns the\nstorage or an array element multiplied by the size of the array.\n\n\n\n### Example\n```\n\n\ninteger :: i\n\nreal :: r, s(5)\n\nprint *, (sizeof(s)/sizeof(r) == 5)\n\nend\n\n```\n\n \nThe example will print `.TRUE.` unless you are using a platform\nwhere default `REAL` variables are unusually padded.\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_SIZEOF, STORAGE_SIZE\n" + }, + "REAL": { + "doc": "`REAL` \u2014 Convert to real type\n\n### Description\n`REAL(A [, KIND])` converts its argument `A` to a real type. The\n`REALPART` function is provided for compatibility with *g77*,\nand its use is strongly discouraged.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = REALPART(Z)`
\n\n\n\n\n\n### Arguments\n\n \n, or\n`COMPLEX`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThese functions return a `REAL` variable or array under\nthe following rules:\n\n
\n**(A)** `REAL(A)` is converted to a default real type if `A` is an\ninteger or real variable. \n\n**(B)** `REAL(A)` is converted to a real type with the kind type parameter\nof `A` if `A` is a complex variable. \n\n**(C)** `REAL(A, KIND)` is converted to a real type with kind type\nparameter `KIND` if `A` is a complex, integer, or real\nvariable. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_real\n\n\u00a0\u00a0complex :: x = (1.0, 2.0)\n\n\u00a0\u00a0print *, real(x), real(x,8), realpart(x)\n\nend program test_real\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `FLOAT(A)` | `INTEGER(4)` | `REAL(4)` | Fortran 77 and later\n\n | `DFLOAT(A)` | `INTEGER(4)` | `REAL(8)` | GNU extension\n\n | `SNGL(A)` | `INTEGER(8)` | `REAL(4)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nDBLE\n\n " + }, + "LOG10": { + "doc": "`LOG10` \u2014 Base 10 logarithm function\n\n### Description\n`LOG10(X)` computes the base 10 logarithm of `X`.\n\n\n\n### Syntax\n`RESULT = LOG10(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` or `COMPLEX`. \nThe kind type parameter is the same as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_log10\n\n\u00a0\u00a0real(8) :: x = 10.0_8\n\n\u00a0\u00a0x = log10(x)\n\nend program test_log10\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ALOG10(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DLOG10(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "SUM": { + "doc": "`SUM` \u2014 Sum of array elements\n\n### Description\nAdds the elements of `ARRAY` along dimension `DIM` if\nthe corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = SUM(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n,\n`REAL` or `COMPLEX`. \n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the sum of all elements in `ARRAY`\nis returned. Otherwise, an array of rank n-1, where n equals the rank of\n`ARRAY`, and a shape similar to that of `ARRAY` with dimension `DIM`\ndropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_sum\n\n\u00a0\u00a0INTEGER :: x(5) = (/ 1, 2, 3, 4 ,5 /)\n\n\u00a0\u00a0print *, SUM(x) ! all elements, sum = 15\n\n\u00a0\u00a0print *, SUM(x, MASK=MOD(x, 2)==1) ! odd elements, sum = 9\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nPRODUCT\n" + }, + "FNUM": { + "doc": "`FNUM` \u2014 File number function\n\n### Description\n`FNUM(UNIT)` returns the POSIX file descriptor number corresponding to the\nopen Fortran I/O unit `UNIT`.\n\n\n\n### Syntax\n`RESULT = FNUM(UNIT)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`\n\n\n### Example\n```\n\n\nprogram test_fnum\n\n\u00a0\u00a0integer :: i\n\n\u00a0\u00a0open (unit=10, status = \"scratch\")\n\n\u00a0\u00a0i = fnum(10)\n\n\u00a0\u00a0print *, i\n\n\u00a0\u00a0close (10)\n\nend program test_fnum\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n" + }, + "GET_ENVIRONMENT_VARIABLE": { + "doc": "`GET_ENVIRONMENT_VARIABLE` \u2014 Get an environmental variable\n\n### Description\nGet the `VALUE` of the environmental variable `NAME`.\n\n \nNote that `GET_ENVIRONMENT_VARIABLE` need not be thread-safe. It\nis the responsibility of the user to ensure that the environment is\nnot being updated concurrently with a call to the\n`GET_ENVIRONMENT_VARIABLE` intrinsic.\n\n\n\n\n### Syntax\n`CALL GET_ENVIRONMENT_VARIABLE(NAME[, VALUE, LENGTH, STATUS, TRIM_NAME)`\n\n\n### Arguments\n\n \n\nand of default kind. \n\n | `VALUE` | (Optional) Shall be a scalar of type `CHARACTER`and of default kind. \n\n | `LENGTH` | (Optional) Shall be a scalar of type `INTEGER`and of default kind. \n\n | `STATUS` | (Optional) Shall be a scalar of type `INTEGER`and of default kind. \n\n | `TRIM_NAME` | (Optional) Shall be a scalar of type `LOGICAL`and of default kind.\n\n\n\n\n\n\n### Return value\nStores the value of `NAME` in `VALUE`. If `VALUE` is\nnot large enough to hold the data, it is truncated. If `NAME`\nis not set, `VALUE` will be filled with blanks. Argument `LENGTH`\ncontains the length needed for storing the environment variable `NAME`\nor zero if it is not present. `STATUS` is -1 if `VALUE` is present\nbut too short for the environment variable; it is 1 if the environment\nvariable does not exist and 2 if the processor does not support environment\nvariables; in all other cases `STATUS` is zero. If `TRIM_NAME` is\npresent with the value `.FALSE.`, the trailing blanks in `NAME`\nare significant; otherwise they are not part of the environment variable\nname.\n\n\n\n### Example\n```\n\n\nPROGRAM test_getenv\n\n\u00a0\u00a0CHARACTER(len=255) :: homedir\n\n\u00a0\u00a0CALL get_environment_variable(\"HOME\", homedir)\n\n\u00a0\u00a0WRITE (*,*) TRIM(homedir)\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n" + }, + "LSTAT": { + "doc": "`LSTAT` \u2014 Get file status\n\n### Description\n`LSTAT` is identical to STAT, except that if path is a\nsymbolic link, then the link itself is statted, not the file that it\nrefers to.\n\n \nThe elements in `VALUES` are the same as described by STAT.\n\n \n\nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = LSTAT(NAME, VALUES)`
\n\n\n\n\n\n### Arguments\n\n \n of the default\nkind, a valid path within the file system. \n\n | `VALUES` | The type shall be `INTEGER(4), DIMENSION(13)`. \n\n | `STATUS` | (Optional) status flag of type `INTEGER(4)`. \nReturns 0 on success and a system specific error code otherwise.\n\n\n\n\n\n\n### Example\nSee STAT for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nTo stat an open file: FSTAT, to stat a file: STAT\n" + }, + "EOSHIFT": { + "doc": "`EOSHIFT` \u2014 End-off shift elements of an array\n\n### Description\n`EOSHIFT(ARRAY, SHIFT[, BOUNDARY, DIM])` performs an end-off shift on\nelements of `ARRAY` along the dimension of `DIM`. If `DIM` is\nomitted it is taken to be `1`. `DIM` is a scalar of type\n`INTEGER` in the range of 1 \\leq DIM \\leq n) where n is the\nrank of `ARRAY`. If the rank of `ARRAY` is one, then all elements of\n`ARRAY` are shifted by `SHIFT` places. If rank is greater than one,\nthen all complete rank one sections of `ARRAY` along the given dimension are\nshifted. Elements shifted out one end of each rank one section are dropped. If\n`BOUNDARY` is present then the corresponding value of from `BOUNDARY`\nis copied back in the other end. If `BOUNDARY` is not present then the\nfollowing are copied in depending on the type of `ARRAY`.\n\n \n\n\n | Numeric | 0 of the type and kind of `ARRAY`. \n\n | Logical | `.FALSE.`. \n\n | Character(`len`) | `len` blanks.\n\n\n\n\n\n\n### Syntax\n`RESULT = EOSHIFT(ARRAY, SHIFT [, BOUNDARY, DIM])`\n\n\n### Arguments\n\n \n | `ARRAY` | May be any type, not scalar. \n\n | `SHIFT` | The type shall be `INTEGER`. \n\n | `BOUNDARY` | Same type as `ARRAY`. \n\n | `DIM` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nReturns an array of same type and rank as the `ARRAY` argument.\n\n\n\n### Example\n```\n\n\nprogram test_eoshift\n\n\u00a0\u00a0\u00a0\u00a0integer, dimension(3,3) :: a\n\n\u00a0\u00a0\u00a0\u00a0a = reshape( (/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), (/ 3, 3 /))\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(1,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(2,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(3,:)\n\n\u00a0\u00a0\u00a0\u00a0a = EOSHIFT(a, SHIFT=(/1, 2, 1/), BOUNDARY=-5, DIM=2)\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(1,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(2,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(3,:)\n\nend program test_eoshift\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "POPCNT": { + "doc": "`POPCNT` \u2014 Number of bits set\n\n### Description\n`POPCNT(I)` returns the number of bits set ('1' bits) in the binary\nrepresentation of `I`.\n\n\n\n### Syntax\n`RESULT = POPCNT(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram test_population\n\n\u00a0\u00a0print *, popcnt(127), poppar(127)\n\n\u00a0\u00a0print *, popcnt(huge(0_4)), poppar(huge(0_4))\n\n\u00a0\u00a0print *, popcnt(huge(0_8)), poppar(huge(0_8))\n\nend program test_population\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nPOPPAR, LEADZ, TRAILZ\n\n\n" + }, + "COSD": { + "doc": "`COSD` \u2014 Cosine function, degrees\n\n### Description\nCOSD(X) computes the cosine of X in degrees.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = COSD(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value is of the same type and kind as X. The real part of the result is in degrees. If X is of the type REAL, the return value lies in the range -1 \\leq \\cosd (x) \\leq 1.\n" + }, + "ATOMIC_FETCH_ADD": { + "doc": "`ATOMIC_FETCH_ADD` \u2014 Atomic ADD operation with prior fetch\n\n### Description\n`ATOMIC_FETCH_ADD(ATOM, VALUE, OLD)` atomically stores the value of\n`ATOM` in `OLD` and adds the value of `VAR` to the\nvariable `ATOM`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_ADD (ATOM, VALUE, old [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n`ATOMIC_LOGICAL_KIND` kind.\n\n \n\n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*], old\n\n\u00a0\u00a0call atomic_add (atom[1], this_image(), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_ADD, ISO_FORTRAN_ENV,\nATOMIC_FETCH_AND, ATOMIC_FETCH_OR, ATOMIC_FETCH_XOR\n" + }, + "PRESENT": { + "doc": "`PRESENT` \u2014 Determine whether an optional dummy argument is specified\n\n### Description\nDetermines whether an optional dummy argument is present.\n\n\n\n### Syntax\n`RESULT = PRESENT(A)`\n\n\n### Arguments\n\n \n | `A` | May be of any type and may be a pointer, scalar or array\nvalue, or a dummy procedure. It shall be the name of an optional dummy argument\naccessible within the current subroutine or function.\n\n\n\n\n\n\n### Return value\nReturns either `TRUE` if the optional argument `A` is present, or\n`FALSE` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM test_present\n\n\u00a0\u00a0WRITE(*,*) f(), f(42) ! \"F T\"\n\nCONTAINS\n\n\u00a0\u00a0LOGICAL FUNCTION f(x)\n\n\u00a0\u00a0\u00a0\u00a0INTEGER, INTENT(IN), OPTIONAL :: x\n\n\u00a0\u00a0\u00a0\u00a0f = PRESENT(x)\n\n\u00a0\u00a0END FUNCTION\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "LLT": { + "doc": "`LLT` \u2014 Lexical less than\n\n### Description\nDetermines whether one string is lexically less than another string,\nwhere the two strings are interpreted as containing ASCII character\ncodes. If the String A and String B are not the same length, the\nshorter is compared as if spaces were appended to it to form a value\nthat has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LLT(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A < STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LLT(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGE, LGT, LLE\n" + }, + "ATOMIC_FETCH_XOR": { + "doc": "`ATOMIC_FETCH_XOR` \u2014 Atomic bitwise XOR operation with prior fetch\n\n### Description\n`ATOMIC_XOR(ATOM, VALUE)` atomically stores the value of `ATOM` in\n`OLD` and defines `ATOM` with the bitwise XOR between the values of\n`ATOM` and `VALUE`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation has\nfailed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_XOR (ATOM, VALUE, OLD [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*], old\n\n\u00a0\u00a0call atomic_fetch_xor (atom[1], int(b'10100011101'), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_XOR, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR\n" + }, + "SHIFTR": { + "doc": "`SHIFTR` \u2014 Right shift\n\n### Description\n`SHIFTR` returns a value corresponding to `I` with all of the\nbits shifted right by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the right end are lost, and bits shifted in from\nthe left end are set to 0.\n\n\n\n### Syntax\n`RESULT = SHIFTR(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSHIFTA, SHIFTL\n" + }, + "COTAND": { + "doc": "`COTAND` \u2014 Cotangent function, degrees\n\n### Description\nCOTAND(X) computes the cotangent of X in degrees. Equivalent to COSD(x) divided by SIND(x), or 1 / TAND(x).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = COTAND(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value has same type and kind as X, and its value is in degrees.\n" + }, + "LEN": { + "doc": "`LEN` \u2014 Length of a character entity\n\n### Description\nReturns the length of a character string. If `STRING` is an array,\nthe length of an element of `STRING` is returned. Note that\n`STRING` need not be defined when this intrinsic is invoked, since\nonly the length, not the content, of `STRING` is needed.\n\n\n\n### Syntax\n`L = LEN(STRING [, KIND])`\n\n\n### Arguments\n\n \n | `STRING` | Shall be a scalar or array of type\n`CHARACTER`, with `INTENT(IN)`
\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LEN(STRING)` | `CHARACTER` | `INTEGER` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nLEN_TRIM, ADJUSTL, ADJUSTR\n" + }, + "GAMMA": { + "doc": "`GAMMA` \u2014 Gamma function\n\n### Description\n`GAMMA(X)` computes Gamma (\\Gamma) of `X`. For positive,\ninteger values of `X` the Gamma function simplifies to the factorial\nfunction \\Gamma(x)=(x-1)!.\n\n\n\n### Syntax\n`X = GAMMA(X)`\n\n\n### Arguments\n\n \n and neither zero\nnor a negative integer.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` of the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_gamma\n\n\u00a0\u00a0real :: x = 1.0\n\n\u00a0\u00a0x = gamma(x) ! returns 1.0\n\nend program test_gamma\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `GAMMA(X)` | `REAL(4) X` | `REAL(4)` | GNU Extension\n\n | `DGAMMA(X)` | `REAL(8) X` | `REAL(8)` | GNU Extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLogarithm of the Gamma function: LOG_GAMMA\n\n " + }, + "CEILING": { + "doc": "`CEILING` \u2014 Integer ceiling function\n\n### Description\n`CEILING(A)` returns the least integer greater than or equal to `A`.\n\n\n\n### Syntax\n`RESULT = CEILING(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER(KIND)` if `KIND` is present\nand a default-kind `INTEGER` otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_ceiling\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 63.29\n\n\u00a0\u00a0\u00a0\u00a0real :: y = -63.59\n\n\u00a0\u00a0\u00a0\u00a0print *, ceiling(x) ! returns 64\n\n\u00a0\u00a0\u00a0\u00a0print *, ceiling(y) ! returns -63\n\nend program test_ceiling\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nFLOOR, NINT\n\n " + }, + "TRAILZ": { + "doc": "`TRAILZ` \u2014 Number of trailing zero bits of an integer\n\n### Description\n`TRAILZ` returns the number of trailing zero bits of an integer.\n\n\n\n### Syntax\n`RESULT = TRAILZ(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe type of the return value is the default `INTEGER`. \nIf all the bits of `I` are zero, the result value is `BIT_SIZE(I)`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_trailz\n\n\u00a0\u00a0WRITE (*,*) TRAILZ(8) ! prints 3\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBIT_SIZE, LEADZ, POPPAR, POPCNT\n" + }, + "ASINH": { + "doc": "`ASINH` \u2014 Inverse hyperbolic sine function\n\n### Description\n`ASINH(X)` computes the inverse hyperbolic sine of `X`.\n\n\n\n### Syntax\n`RESULT = ASINH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians and lies between\n-\\pi/2 \\leq \\Im \\asinh(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nPROGRAM test_asinh\n\n\u00a0\u00a0REAL(8), DIMENSION(3) :: x = (/ -1.0, 0.0, 1.0 /)\n\n\u00a0\u00a0WRITE (*,*) ASINH(x)\n\nEND PROGRAM\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DASINH(X)` | `REAL(8) X` | `REAL(8)` | GNU extension.\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: SINH\n" + }, + "SCAN": { + "doc": "`SCAN` \u2014 Scan a string for the presence of a set of characters\n\n### Description\nScans a `STRING` for any of the characters in a `SET`\nof characters.\n\n \nIf `BACK` is either absent or equals `FALSE`, this function\nreturns the position of the leftmost character of `STRING` that is\nin `SET`. If `BACK` equals `TRUE`, the rightmost position\nis returned. If no character of `SET` is found in `STRING`, the\nresult is zero.\n\n\n\n\n### Syntax\n`RESULT = SCAN(STRING, SET[, BACK [, KIND]])`\n\n\n### Arguments\n\n \n. \n\n | `SET` | Shall be of type `CHARACTER`. \n\n | `BACK` | (Optional) shall be of type `LOGICAL`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_scan\n\n\u00a0\u00a0WRITE(*,*) SCAN(\"FORTRAN\", \"AO\") ! 2, found 'O'\n\n\u00a0\u00a0WRITE(*,*) SCAN(\"FORTRAN\", \"AO\", .TRUE.) ! 6, found 'A'\n\n\u00a0\u00a0WRITE(*,*) SCAN(\"FORTRAN\", \"C++\") ! 0, found none\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINDEX intrinsic, VERIFY\n" + }, + "COTAN": { + "doc": "`COTAN` \u2014 Cotangent function\n\n### Description\nCOTAN(X) computes the cotangent of X. Equivalent to COS(x) divided by SIN(x), or 1 / TAN(x).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = COTAN(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value has same type and kind as X, and its value is in radians.\n" + }, + "MINVAL": { + "doc": "`MINVAL` \u2014 Minimum value of an array\n\n### Description\nDetermines the minimum value of the elements in an array value, or, if\nthe `DIM` argument is supplied, determines the minimum value along\neach row of the array in the `DIM` direction. If `MASK` is\npresent, only the elements for which `MASK` is `.TRUE.` are\nconsidered. If the array has zero size, or all of the elements of\n`MASK` are `.FALSE.`, then the result is `HUGE(ARRAY)` if\n`ARRAY` is numeric, or a string of `CHAR(255)` characters if\n`ARRAY` is of character type.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MINVAL(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, or if `ARRAY` has a rank of one, the result\nis a scalar. If `DIM` is present, the result is an array with a\nrank one less than the rank of `ARRAY`, and a size corresponding to\nthe size of `ARRAY` with the `DIM` dimension removed. In all\ncases, the result is of the same type and kind as `ARRAY`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMIN, MINLOC\n\n " + }, + "MINEXPONENT": { + "doc": "`MINEXPONENT` \u2014 Minimum exponent of a real kind\n\n### Description\n`MINEXPONENT(X)` returns the minimum exponent in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = MINEXPONENT(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\nSee `MAXEXPONENT` for an example. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "IANY": { + "doc": "`IANY` \u2014 Bitwise OR of array elements\n\n### Description\nReduces with bitwise OR (inclusive or) the elements of `ARRAY` along\ndimension `DIM` if the corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = IANY(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the bitwise OR of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_iany\n\n\u00a0\u00a0INTEGER(1) :: a(2)\n\n\n\u00a0\u00a0a(1) = b'00100100'\n\n\u00a0\u00a0a(2) = b'01101010'\n\n\n\u00a0\u00a0! prints 01101110\n\n\u00a0\u00a0PRINT '(b8.8)', IANY(a)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nIPARITY, IALL, IOR\n" + }, + "ADJUSTR": { + "doc": "`ADJUSTR` \u2014 Right adjust a string\n\n### Description\n`ADJUSTR(STRING)` will right adjust a string by removing trailing spaces. \nSpaces are inserted at the start of the string as needed.\n\n\n\n### Syntax\n`RESULT = ADJUSTR(STRING)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER` and of the same kind as\n`STRING` where trailing spaces are removed and the same number of\nspaces are inserted at the start of `STRING`.\n\n\n\n### Example\n```\n\n\nprogram test_adjustr\n\n\u00a0\u00a0character(len=20) :: str = 'gfortran'\n\n\u00a0\u00a0str = adjustr(str)\n\n\u00a0\u00a0print *, str\n\nend program test_adjustr\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nADJUSTL, TRIM\n" + }, + "EXECUTE_COMMAND_LINE": { + "doc": "`EXECUTE_COMMAND_LINE` \u2014 Execute a shell command\n\n### Description\n`EXECUTE_COMMAND_LINE` runs a shell command, synchronously or\nasynchronously.\n\n \nThe `COMMAND` argument is passed to the shell and executed, using\nthe C library's `system` call. (The shell is `sh` on Unix\nsystems, and `cmd.exe` on Windows.) If `WAIT` is present\nand has the value false, the execution of the command is asynchronous\nif the system supports it; otherwise, the command is executed\nsynchronously.\n\n \n\nThe three last arguments allow the user to get status information. After\nsynchronous execution, `EXITSTAT` contains the integer exit code of\nthe command, as returned by `system`. `CMDSTAT` is set to zero\nif the command line was executed (whatever its exit status was). \n`CMDMSG` is assigned an error message if an error has occurred.\n\n \n\nNote that the `system` function need not be thread-safe. It is\nthe responsibility of the user to ensure that `system` is not\ncalled concurrently.\n\n\n\n\n### Syntax\n`CALL EXECUTE_COMMAND_LINE(COMMAND [, WAIT, EXITSTAT, CMDSTAT, CMDMSG ])`\n\n\n### Arguments\n\n \n scalar. \n\n | `WAIT` | (Optional) Shall be a default `LOGICAL` scalar. \n\n | `EXITSTAT` | (Optional) Shall be an `INTEGER` of the\ndefault kind. \n\n | `CMDSTAT` | (Optional) Shall be an `INTEGER` of the\ndefault kind. \n\n | `CMDMSG` | (Optional) Shall be an `CHARACTER` scalar of the\ndefault kind.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_exec\n\n\u00a0\u00a0integer :: i\n\n\n\u00a0\u00a0call execute_command_line (\"external_prog.exe\", exitstat=i)\n\n\u00a0\u00a0print *, \"Exit status of external_prog.exe was \", i\n\n\n\u00a0\u00a0call execute_command_line (\"reindex_files.exe\", wait=.false.)\n\n\u00a0\u00a0print *, \"Now reindexing files in the background\"\n\n\nend program test_exec\n\n```\n\n\n\n### Notes\n\nBecause this intrinsic is implemented in terms of the `system`function call, its behavior with respect to signaling is processor\ndependent. In particular, on POSIX-compliant systems, the SIGINT and\nSIGQUIT signals will be ignored, and the SIGCHLD will be blocked. As\nsuch, if the parent process is terminated, the child process might not be\nterminated alongside.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nSYSTEM\n" + }, + "SRAND": { + "doc": "`SRAND` \u2014 Reinitialize the random number generator\n\n### Description\n`SRAND` reinitializes the pseudo-random number generator\ncalled by `RAND` and `IRAND`. The new seed used by the\ngenerator is specified by the required argument `SEED`.\n\n\n\n### Syntax\n`CALL SRAND(SEED)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nDoes not return anything.\n\n\n\n### Example\nSee `RAND` and `IRAND` for examples.\n\n\n\n### Notes\nThe Fortran standard specifies the intrinsic subroutines\n`RANDOM_SEED` to initialize the pseudo-random number\ngenerator and `RANDOM_NUMBER` to generate pseudo-random numbers. \nThese subroutines should be used in new codes.\n\n \nPlease note that in GNU Fortran, these two sets of intrinsics (`RAND`,\n`IRAND` and `SRAND` on the one hand, `RANDOM_NUMBER` and\n`RANDOM_SEED` on the other hand) access two independent\npseudo-random number generators.\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nRAND, RANDOM_SEED, RANDOM_NUMBER\n\n " + }, + "EXPONENT": { + "doc": "`EXPONENT` \u2014 Exponent function\n\n### Description\n`EXPONENT(X)` returns the value of the exponent part of `X`. If `X`\nis zero the value returned is zero.\n\n\n\n### Syntax\n`RESULT = EXPONENT(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type default `INTEGER`.\n\n\n\n### Example\n```\n\n\nprogram test_exponent\n\n\u00a0\u00a0real :: x = 1.0\n\n\u00a0\u00a0integer :: i\n\n\u00a0\u00a0i = exponent(x)\n\n\u00a0\u00a0print *, i\n\n\u00a0\u00a0print *, exponent(0.0)\n\nend program test_exponent\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "MERGE_BITS": { + "doc": "`MERGE_BITS` \u2014 Merge of bits under mask\n\n### Description\n`MERGE_BITS(I, J, MASK)` merges the bits of `I` and `J`\nas determined by the mask. The i-th bit of the result is equal to the\ni-th bit of `I` if the i-th bit of `MASK` is 1; it is equal to\nthe i-th bit of `J` otherwise.\n\n\n\n### Syntax\n`RESULT = MERGE_BITS(I, J, MASK)`\n\n\n### Arguments\n\n \n. \n\n | `J` | Shall be of type `INTEGER` and of the same\nkind as `I`. \n\n | `MASK` | Shall be of type `INTEGER` and of the same\nkind as `I`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type and kind as `I`.\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "UMASK": { + "doc": "`UMASK` \u2014 Set the file creation mask\n\n### Description\nSets the file creation mask to `MASK`. If called as a function, it\nreturns the old value. If called as a subroutine and argument `OLD`\nif it is supplied, it is set to the old value. See `umask(2)`.\n\n\n\n### Syntax\n\n \n\n\n | `OLD = UMASK(MASK)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `OLD` | (Optional) Shall be a scalar of type\n`INTEGER`.\n\n\n\n \n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" + }, + "UCOBOUND": { + "doc": "`UCOBOUND` \u2014 Upper codimension bounds of an array\n\n### Description\nReturns the upper cobounds of a coarray, or a single upper cobound\nalong the `DIM` codimension. \n\n\n### Syntax\n`RESULT = UCOBOUND(COARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an coarray, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the lower cobounds of\n`COARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the lower cobound of the array along that codimension.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nLCOBOUND, LBOUND\n" + }, + "ASIND": { + "doc": "`ASIND` \u2014 Arcsine function, degrees\n\n### Description\nASIND(X) computes the arcsine of its X in degrees (inverse of SIND(X)).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ASIND(X)\n### Arguments\n- X: The type shall be either REAL and a magnitude that is less than or equal to one - or be COMPLEX.\n### Return value\nThe return value is of the same type and kind as X. The real part of the result is in degrees and lies in the range -90 \\leq \\Re \\asin(x) \\leq 90.\n" + }, + "HOSTNM": { + "doc": "`HOSTNM` \u2014 Get system host name\n\n### Description\nRetrieves the host name of the system on which the program is running.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = HOSTNM(NAME)`
\n\n\n\n\n\n### Arguments\n\n \n and of default kind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, or a system specific error code otherwise.\n\n\n\n\n\n\n### Return value\nIn either syntax, `NAME` is set to the current hostname if it can\nbe obtained, or to a blank string otherwise.\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" + }, + "C_LOC": { + "doc": "`C_LOC` \u2014 Obtain the C address of an object\n\n### Description\n`C_LOC(X)` determines the C address of the argument.\n\n\n\n### Syntax\n`RESULT = C_LOC(X)`\n\n\n### Arguments\n\n \n | `X` | Shall have either the POINTER or TARGET attribute. It shall not be a coindexed object. It shall either be a variable with interoperable type and kind type parameters, or be a scalar, nonpolymorphic variable with no length type parameters.\n\n\n\n\n\n\n\n### Return value\nThe return value is of type `C_PTR` and contains the C address\nof the argument.\n\n\n\n### Example\n```\n\n\nsubroutine association_test(a,b)\n\n\u00a0\u00a0use iso_c_binding, only: c_associated, c_loc, c_ptr\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0real, pointer :: a\n\n\u00a0\u00a0type(c_ptr) :: b\n\n\u00a0\u00a0if(c_associated(b, c_loc(a))) &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0stop 'b and a do not point to same target'\n\nend subroutine association_test\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_ASSOCIATED, C_FUNLOC, C_F_POINTER, C_F_PROCPOINTER\n" + }, + "TANH": { + "doc": "`TANH` \u2014 Hyperbolic tangent function\n\n### Description\n`TANH(X)` computes the hyperbolic tangent of `X`.\n\n\n\n### Syntax\n`X = TANH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians. If `X`\nis `REAL`, the return value lies in the range\n - 1 \\leq tanh(x) \\leq 1 .\n\n\n\n### Example\n```\n\n\nprogram test_tanh\n\n\u00a0\u00a0real(8) :: x = 2.1_8\n\n\u00a0\u00a0x = tanh(x)\n\nend program test_tanh\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `TANH(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DTANH(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nATANH\n" + }, + "COMMAND_ARGUMENT_COUNT": { + "doc": "`COMMAND_ARGUMENT_COUNT` \u2014 Get number of command line arguments\n\n### Description\n`COMMAND_ARGUMENT_COUNT` returns the number of arguments passed on the\ncommand line when the containing program was invoked.\n\n\n\n### Syntax\n`RESULT = COMMAND_ARGUMENT_COUNT()`\n\n\n### Arguments\n\n \n | None\n\n\n\n\n\n\n### Return value\nThe return value is an `INTEGER` of default kind.\n\n\n\n### Example\n```\n\n\nprogram test_command_argument_count\n\n\u00a0\u00a0\u00a0\u00a0integer :: count\n\n\u00a0\u00a0\u00a0\u00a0count = command_argument_count()\n\n\u00a0\u00a0\u00a0\u00a0print *, count\n\nend program test_command_argument_count\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nGET_COMMAND, GET_COMMAND_ARGUMENT\n" + }, + "INT": { + "doc": "`INT` \u2014 Convert to integer type\n\n### Description\nConvert to integer type\n\n\n\n### Syntax\n`RESULT = INT(A [, KIND))`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThese functions return a `INTEGER` variable or array under\nthe following rules:\n\n
\n**(A)** If `A` is of type `INTEGER`, `INT(A) = A`\n**(B)** If `A` is of type `REAL` and |A| < 1, `INT(A)`equals `0`. If |A| \\geq 1, then `INT(A)` is the integer\nwhose magnitude is the largest integer that does not exceed the magnitude\nof `A` and whose sign is the same as the sign of `A`. \n\n**(C)** If `A` is of type `COMPLEX`, rule B is applied to the real part of `A`. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_int\n\n\u00a0\u00a0integer :: i = 42\n\n\u00a0\u00a0complex :: z = (-3.7, 1.0)\n\n\u00a0\u00a0print *, int(i)\n\n\u00a0\u00a0print *, int(z), int(z,8)\n\nend program\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `INT(A)` | `REAL(4) A` | `INTEGER` | Fortran 77 and later\n\n | `IFIX(A)` | `REAL(4) A` | `INTEGER` | Fortran 77 and later\n\n | `IDINT(A)` | `REAL(8) A` | `INTEGER` | Fortran 77 and later\n\n\n\n \n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "BIT_SIZE": { + "doc": "`BIT_SIZE` \u2014 Bit size inquiry function\n\n### Description\n`BIT_SIZE(I)` returns the number of bits (integer precision plus sign bit)\nrepresented by the type of `I`. The result of `BIT_SIZE(I)` is\nindependent of the actual value of `I`.\n\n\n\n### Syntax\n`RESULT = BIT_SIZE(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`\n\n\n### Example\n```\n\n\nprogram test_bit_size\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 123\n\n\u00a0\u00a0\u00a0\u00a0integer :: size\n\n\u00a0\u00a0\u00a0\u00a0size = bit_size(i)\n\n\u00a0\u00a0\u00a0\u00a0print *, size\n\nend program test_bit_size\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "CO_MAX": { + "doc": "`CO_MAX` \u2014 Maximal value on the current set of images\n\n### Description\n`CO_MAX` determines element-wise the maximal value of `A` on all\nimages of the current team. If `RESULT_IMAGE` is present, the maximum\nvalues are returned in `A` on the specified image only and the value\nof `A` on the other images become undefined. If `RESULT_IMAGE` is\nnot present, the value is returned on all images. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_MAX(A [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | shall be an integer, real or character variable,\nwhich has the same type and type parameters on all images of the team. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n\u00a0\u00a0integer :: val\n\n\u00a0\u00a0val = this_image ()\n\n\u00a0\u00a0call co_max (val, result_image=1)\n\n\u00a0\u00a0if (this_image() == 1) then\n\n\u00a0\u00a0\u00a0\u00a0write(*,*) \"Maximal value\", val ! prints num_images()\n\n\u00a0\u00a0end if\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MIN, CO_SUM, CO_REDUCE, CO_BROADCAST\n" + }, + "CSHIFT": { + "doc": "`CSHIFT` \u2014 Circular shift elements of an array\n\n### Description\n`CSHIFT(ARRAY, SHIFT [, DIM])` performs a circular shift on elements of\n`ARRAY` along the dimension of `DIM`. If `DIM` is omitted it is\ntaken to be `1`. `DIM` is a scalar of type `INTEGER` in the\nrange of 1 \\leq DIM \\leq n) where n is the rank of `ARRAY`. \nIf the rank of `ARRAY` is one, then all elements of `ARRAY` are shifted\nby `SHIFT` places. If rank is greater than one, then all complete rank one\nsections of `ARRAY` along the given dimension are shifted. Elements\nshifted out one end of each rank one section are shifted back in the other end.\n\n\n\n### Syntax\n`RESULT = CSHIFT(ARRAY, SHIFT [, DIM])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array of any type. \n\n | `SHIFT` | The type shall be `INTEGER`. \n\n | `DIM` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nReturns an array of same type and rank as the `ARRAY` argument.\n\n\n\n### Example\n```\n\n\nprogram test_cshift\n\n\u00a0\u00a0\u00a0\u00a0integer, dimension(3,3) :: a\n\n\u00a0\u00a0\u00a0\u00a0a = reshape( (/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), (/ 3, 3 /))\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(1,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(2,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(3,:)\n\n\u00a0\u00a0\u00a0\u00a0a = cshift(a, SHIFT=(/1, 2, -1/), DIM=2)\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(1,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(2,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(3,:)\n\nend program test_cshift\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "COS": { + "doc": "`COS` \u2014 Cosine function\n\n### Description\n`COS(X)` computes the cosine of `X`.\n\n\n\n### Syntax\n`RESULT = COS(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. The real part\nof the result is in radians. If `X` is of the type `REAL`,\nthe return value lies in the range -1 \\leq \\cos (x) \\leq 1.\n\n\n\n### Example\n```\n\n\nprogram test_cos\n\n\u00a0\u00a0real :: x = 0.0\n\n\u00a0\u00a0x = cos(x)\n\nend program test_cos\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `COS(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DCOS(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n | `CCOS(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | Fortran 77 and later\n\n | `ZCOS(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n | `CDCOS(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: ACOS\n\n " + }, + "RAND": { + "doc": "`RAND` \u2014 Real pseudo-random number\n\n### Description\n`RAND(FLAG)` returns a pseudo-random number from a uniform\ndistribution between 0 and 1. If `FLAG` is 0, the next number\nin the current sequence is returned; if `FLAG` is 1, the generator\nis restarted by `CALL SRAND(0)`; if `FLAG` has any other value,\nit is used as a new seed with `SRAND`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. It implements a simple modulo generator as provided\nby *g77*. For new code, one should consider the use of\nRANDOM_NUMBER as it implements a superior algorithm.\n\n\n\n\n### Syntax\n`RESULT = RAND(I)`\n\n\n### Arguments\n\n \n of kind 4.\n\n\n\n\n\n\n### Return value\nThe return value is of `REAL` type and the default kind.\n\n\n\n### Example\n```\n\n\nprogram test_rand\n\n\u00a0\u00a0integer,parameter :: seed = 86456\n\n\n\u00a0\u00a0call srand(seed)\n\n\u00a0\u00a0print *, rand(), rand(), rand(), rand()\n\n\u00a0\u00a0print *, rand(seed), rand(), rand(), rand()\n\nend program test_rand\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nSRAND, RANDOM_NUMBER\n\n " + }, + "SYSTEM_CLOCK": { + "doc": "`SYSTEM_CLOCK` \u2014 Time function\n\n### Description\nDetermines the `COUNT` of a processor clock since an unspecified\ntime in the past modulo `COUNT_MAX`, `COUNT_RATE` determines\nthe number of clock ticks per second. If the platform supports a\nmonotonic clock, that clock is used and can, depending on the platform\nclock implementation, provide up to nanosecond resolution. If a\nmonotonic clock is not available, the implementation falls back to a\nrealtime clock.\n\n \n`COUNT_RATE` is system dependent and can vary depending on the kind of\nthe arguments. For `kind=4` arguments (and smaller integer kinds),\n`COUNT` represents milliseconds, while for `kind=8` arguments (and\nlarger integer kinds), `COUNT` typically represents micro- or\nnanoseconds depending on resolution of the underlying platform clock. \n`COUNT_MAX` usually equals `HUGE(COUNT_MAX)`. Note that the\nmillisecond resolution of the `kind=4` version implies that the\n`COUNT` will wrap around in roughly 25 days. In order to avoid issues\nwith the wrap around and for more precise timing, please use the\n`kind=8` version.\n\n \n\nIf there is no clock, or querying the clock fails, `COUNT` is set\nto `-HUGE(COUNT)`, and `COUNT_RATE` and `COUNT_MAX` are\nset to zero.\n\n \n\nWhen running on a platform using the GNU C library (glibc) version\n2.16 or older, or a derivative thereof, the high resolution monotonic\nclock is available only when linking with the `rt` library. This\ncan be done explicitly by adding the `-lrt` flag when linking the\napplication, but is also done implicitly when using OpenMP.\n\n \n\nOn the Windows platform, the version with `kind=4` arguments uses\nthe `GetTickCount` function, whereas the `kind=8` version\nuses `QueryPerformanceCounter` and\n`QueryPerformanceCounterFrequency`. For more information, and\npotential caveats, please see the platform documentation.\n\n\n\n\n### Syntax\n`CALL SYSTEM_CLOCK([COUNT, COUNT_RATE, COUNT_MAX])`\n\n\n### Arguments\n\n \n | `COUNT` | (Optional) shall be a scalar of type\n`INTEGER` with `INTENT(OUT)`. \n\n | `COUNT_RATE` | (Optional) shall be a scalar of type\n`INTEGER` or `REAL`, with `INTENT(OUT)`. \n\n | `COUNT_MAX` | (Optional) shall be a scalar of type\n`INTEGER` with `INTENT(OUT)`.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_system_clock\n\n\u00a0\u00a0INTEGER :: count, count_rate, count_max\n\n\u00a0\u00a0CALL SYSTEM_CLOCK(count, count_rate, count_max)\n\n\u00a0\u00a0WRITE(*,*) count, count_rate, count_max\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nDATE_AND_TIME, CPU_TIME\n" + }, + "VERIFY": { + "doc": "`VERIFY` \u2014 Scan a string for characters not a given set\n\n### Description\nVerifies that all the characters in `STRING` belong to the set of\ncharacters in `SET`.\n\n \nIf `BACK` is either absent or equals `FALSE`, this function\nreturns the position of the leftmost character of `STRING` that is\nnot in `SET`. If `BACK` equals `TRUE`, the rightmost\nposition is returned. If all characters of `STRING` are found in\n`SET`, the result is zero.\n\n\n\n\n### Syntax\n`RESULT = VERIFY(STRING, SET[, BACK [, KIND]])`\n\n\n### Arguments\n\n \n. \n\n | `SET` | Shall be of type `CHARACTER`. \n\n | `BACK` | (Optional) shall be of type `LOGICAL`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_verify\n\n\u00a0\u00a0WRITE(*,*) VERIFY(\"FORTRAN\", \"AO\") ! 1, found 'F'\n\n\u00a0\u00a0WRITE(*,*) VERIFY(\"FORTRAN\", \"FOO\") ! 3, found 'R'\n\n\u00a0\u00a0WRITE(*,*) VERIFY(\"FORTRAN\", \"C++\") ! 1, found 'F'\n\n\u00a0\u00a0WRITE(*,*) VERIFY(\"FORTRAN\", \"C++\", .TRUE.) ! 7, found 'N'\n\n\u00a0\u00a0WRITE(*,*) VERIFY(\"FORTRAN\", \"FORTRAN\") ! 0' found none\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSCAN, INDEX intrinsic\n" + }, + "LOC": { + "doc": "`LOC` \u2014 Returns the address of a variable\n\n### Description\n`LOC(X)` returns the address of `X` as an integer.\n\n\n\n### Syntax\n`RESULT = LOC(X)`\n\n\n### Arguments\n\n \n | `X` | Variable of any type.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`, with a `KIND`corresponding to the size (in bytes) of a memory address on the target\nmachine.\n\n\n\n### Example\n```\n\n\nprogram test_loc\n\n\u00a0\u00a0integer :: i\n\n\u00a0\u00a0real :: r\n\n\u00a0\u00a0i = loc(r)\n\n\u00a0\u00a0print *, i\n\nend program test_loc\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "LNBLNK": { + "doc": "`LNBLNK` \u2014 Index of the last non-blank character in a string\n\n### Description\nReturns the length of a character string, ignoring any trailing blanks. \nThis is identical to the standard `LEN_TRIM` intrinsic, and is only\nincluded for backwards compatibility.\n\n\n\n### Syntax\n`RESULT = LNBLNK(STRING)`\n\n\n### Arguments\n\n \n,\nwith `INTENT(IN)`
\n\n\n\n\n\n### Return value\nThe return value is of `INTEGER(kind=4)` type.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINDEX intrinsic, LEN_TRIM\n" + }, + "EPSILON": { + "doc": "`EPSILON` \u2014 Epsilon function\n\n### Description\n`EPSILON(X)` returns the smallest number `E` of the same kind\nas `X` such that 1 + E > 1.\n\n\n\n### Syntax\n`RESULT = EPSILON(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of same type as the argument.\n\n\n\n### Example\n```\n\n\nprogram test_epsilon\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 3.143\n\n\u00a0\u00a0\u00a0\u00a0real(8) :: y = 2.33\n\n\u00a0\u00a0\u00a0\u00a0print *, EPSILON(x)\n\n\u00a0\u00a0\u00a0\u00a0print *, EPSILON(y)\n\nend program test_epsilon\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "FGET": { + "doc": "`FGET` \u2014 Read a single character in stream mode from stdin\n\n### Description\nRead a single character in stream mode from stdin by bypassing normal\nformatted output. Stream I/O should not be mixed with normal record-oriented\n(formatted or unformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility with\n*g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FGET(C)`
\n\n\n\n\n\n### Arguments\n\n \n and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file, and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fget\n\n\u00a0\u00a0INTEGER, PARAMETER :: strlen = 100\n\n\u00a0\u00a0INTEGER :: status, i = 1\n\n\u00a0\u00a0CHARACTER(len=strlen) :: str = \"\"\n\n\n\u00a0\u00a0WRITE (*,*) 'Enter text:'\n\n\u00a0\u00a0DO\n\n\u00a0\u00a0\u00a0\u00a0CALL fget(str(i:i), status)\n\n\u00a0\u00a0\u00a0\u00a0if (status /= 0 .OR. i > strlen) exit\n\n\u00a0\u00a0\u00a0\u00a0i = i + 1\n\n\u00a0\u00a0END DO\n\n\u00a0\u00a0WRITE (*,*) TRIM(str)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFGETC, FPUT, FPUTC\n" + }, + "LGT": { + "doc": "`LGT` \u2014 Lexical greater than\n\n### Description\nDetermines whether one string is lexically greater than another string,\nwhere the two strings are interpreted as containing ASCII character\ncodes. If the String A and String B are not the same length, the\nshorter is compared as if spaces were appended to it to form a value\nthat has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LGT(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A > STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LGT(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGE, LLE, LLT\n" + }, + "NEAREST": { + "doc": "`NEAREST` \u2014 Nearest representable number\n\n### Description\n`NEAREST(X, S)` returns the processor-representable number nearest\nto `X` in the direction indicated by the sign of `S`.\n\n\n\n### Syntax\n`RESULT = NEAREST(X, S)`\n\n\n### Arguments\n\n \n. \n\n | `S` | Shall be of type `REAL` and\nnot equal to zero.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type as `X`. If `S` is\npositive, `NEAREST` returns the processor-representable number\ngreater than `X` and nearest to it. If `S` is negative,\n`NEAREST` returns the processor-representable number smaller than\n`X` and nearest to it.\n\n\n\n### Example\n```\n\n\nprogram test_nearest\n\n\u00a0\u00a0real :: x, y\n\n\u00a0\u00a0x = nearest(42.0, 1.0)\n\n\u00a0\u00a0y = nearest(42.0, -1.0)\n\n\u00a0\u00a0write (*,\"(3(G20.15))\") x, y, x - y\n\nend program test_nearest\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "RAN": { + "doc": "`RAN` \u2014 Real pseudo-random number\n\n### Description\nFor compatibility with HP FORTRAN 77/iX, the `RAN` intrinsic is\nprovided as an alias for `RAND`. See RAND for complete\ndocumentation.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nRAND, RANDOM_NUMBER\n" + }, + "ASSOCIATED": { + "doc": "`ASSOCIATED` \u2014 Status of a pointer or pointer/target pair\n\n### Description\n`ASSOCIATED(POINTER [, TARGET])` determines the status of the pointer\n`POINTER` or if `POINTER` is associated with the target `TARGET`.\n\n\n\n### Syntax\n`RESULT = ASSOCIATED(POINTER [, TARGET])`\n\n\n### Arguments\n\n \n attribute\nand it can be of any type. \n\n | `TARGET` | (Optional) `TARGET` shall be a pointer or\na target. It must have the same type, kind type parameter, and\narray rank as `POINTER`.\n\n\nThe association status of neither `POINTER` nor `TARGET` shall be\nundefined.\n\n\n\n\n### Return value\n`ASSOCIATED(POINTER)` returns a scalar value of type `LOGICAL(4)`. \nThere are several cases:\n
\n**(A) When the optional `TARGET` is not present then** `ASSOCIATED(POINTER)` is true if `POINTER` is associated with a target; otherwise, it returns false. \n\n**(B) If `TARGET` is present and a scalar target, the result is true if** `TARGET` is not a zero-sized storage sequence and the target associated with `POINTER` occupies the same storage units. If `POINTER` is\ndisassociated, the result is false. \n\n**(C) If `TARGET` is present and an array target, the result is true if** `TARGET` and `POINTER` have the same shape, are not zero-sized arrays,\nare arrays whose elements are not zero-sized storage sequences, and\n`TARGET` and `POINTER` occupy the same storage units in array element\norder. \nAs in case(B), the result is false, if `POINTER` is disassociated. \n\n**(D) If `TARGET` is present and an scalar pointer, the result is true** if `TARGET` is associated with `POINTER`, the target associated with\n`TARGET` are not zero-sized storage sequences and occupy the same storage\nunits. \nThe result is false, if either `TARGET` or `POINTER` is disassociated. \n\n**(E) If `TARGET` is present and an array pointer, the result is true if** target associated with `POINTER` and the target associated with `TARGET`\nhave the same shape, are not zero-sized arrays, are arrays whose elements are\nnot zero-sized storage sequences, and `TARGET` and `POINTER` occupy\nthe same storage units in array element order. \nThe result is false, if either `TARGET` or `POINTER` is disassociated. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_associated\n\n\u00a0\u00a0\u00a0implicit none\n\n\u00a0\u00a0\u00a0real, target :: tgt(2) = (/1., 2./)\n\n\u00a0\u00a0\u00a0real, pointer :: ptr(:)\n\n\u00a0\u00a0\u00a0ptr => tgt\n\n\u00a0\u00a0\u00a0if (associated(ptr) .eqv. .false.) call abort\n\n\u00a0\u00a0\u00a0if (associated(ptr,tgt) .eqv. .false.) call abort\n\nend program test_associated\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nNULL\n" + }, + "ASIN": { + "doc": "`ASIN` \u2014 Arcsine function\n\n### Description\n`ASIN(X)` computes the arcsine of its `X` (inverse of `SIN(X)`).\n\n\n\n### Syntax\n`RESULT = ASIN(X)`\n\n\n### Arguments\n\n \n and a magnitude that is\nless than or equal to one - or be `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe real part of the result is in radians and lies in the range\n-\\pi/2 \\leq \\Re \\asin(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nprogram test_asin\n\n\u00a0\u00a0real(8) :: x = 0.866_8\n\n\u00a0\u00a0x = asin(x)\n\nend program test_asin\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ASIN(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DASIN(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: SIN\n\n " + }, + "SECOND": { + "doc": "`SECOND` \u2014 CPU time function\n\n### Description\nReturns a `REAL(4)` value representing the elapsed CPU time in\nseconds. This provides the same functionality as the standard\n`CPU_TIME` intrinsic, and is only included for backwards\ncompatibility.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `TIME = SECOND()`
\n\n\n\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nIn either syntax, `TIME` is set to the process's current runtime in\nseconds.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCPU_TIME\n\n " + }, + "NORM2": { + "doc": "`NORM2` \u2014 Euclidean vector norms\n\n### Description\nCalculates the Euclidean vector norm (L_2 norm) of\nof `ARRAY` along dimension `DIM`.\n\n\n\n### Syntax\n\n \n\n\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the square root of the sum of all\nelements in `ARRAY` squared is returned. Otherwise, an array of\nrank n-1, where n equals the rank of `ARRAY`, and a\nshape similar to that of `ARRAY` with dimension `DIM` dropped\nis returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_sum\n\n\u00a0\u00a0REAL :: x(5) = [ real :: 1, 2, 3, 4, 5 ]\n\n\u00a0\u00a0print *, NORM2(x) ! = sqrt(55.) ~ 7.416\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "ICHAR": { + "doc": "`ICHAR` \u2014 Character-to-integer conversion function\n\n### Description\n`ICHAR(C)` returns the code for the character in the first character\nposition of `C` in the system's native character set. \nThe correspondence between characters and their codes is not necessarily\nthe same across different GNU Fortran implementations.\n\n\n\n### Syntax\n`RESULT = ICHAR(C [, KIND])`\n\n\n### Arguments\n\n \n\n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nprogram test_ichar\n\n\u00a0\u00a0integer i\n\n\u00a0\u00a0i = ichar(' ')\n\nend program test_ichar\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ICHAR(C)` | `CHARACTER C` | `INTEGER(4)` | Fortran 77 and later\n\n\n\n\n\n\n### Notes\nNo intrinsic exists to convert between a numeric value and a formatted\ncharacter string representation \u2013 for instance, given the\n`CHARACTER` value `'154'`, obtaining an `INTEGER` or\n`REAL` value with the value 154, or vice versa. Instead, this\nfunctionality is provided by internal-file I/O, as in the following\nexample:\n
          program read_val\n            integer value\n            character(len=10) string, string2\n            string = '154'\n          \n            ! Convert a string to a numeric value\n            read (string,'(I10)') value\n            print *, value\n          \n            ! Convert a value to a formatted string\n            write (string2,'(I10)') value\n            print *, string2\n          end program read_val\n
\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nACHAR, CHAR, IACHAR\n\n " + }, + "ANINT": { + "doc": "`ANINT` \u2014 Nearest whole number\n\n### Description\n`ANINT(A [, KIND])` rounds its argument to the nearest whole number.\n\n\n\n### Syntax\n`RESULT = ANINT(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type real with the kind type parameter of the\nargument if the optional `KIND` is absent; otherwise, the kind\ntype parameter will be given by `KIND`. If `A` is greater than\nzero, `ANINT(A)` returns `AINT(X+0.5)`. If `A` is\nless than or equal to zero then it returns `AINT(X-0.5)`.\n\n\n\n### Example\n```\n\n\nprogram test_anint\n\n\u00a0\u00a0real(4) x4\n\n\u00a0\u00a0real(8) x8\n\n\u00a0\u00a0x4 = 1.234E0_4\n\n\u00a0\u00a0x8 = 4.321_8\n\n\u00a0\u00a0print *, anint(x4), dnint(x8)\n\n\u00a0\u00a0x8 = anint(x4,8)\n\nend program test_anint\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `AINT(A)` | `REAL(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `DNINT(A)` | `REAL(8) A` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ISNAN": { + "doc": "`ISNAN` \u2014 Test for a NaN\n\n### Description\n`ISNAN` tests whether a floating-point value is an IEEE\nNot-a-Number (NaN). \n\n\n### Syntax\n`ISNAN(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n\n### Return value\nReturns a default-kind `LOGICAL`. The returned value is `TRUE`if `X` is a NaN and `FALSE` otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_nan\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0real :: x\n\n\u00a0\u00a0x = -1.0\n\n\u00a0\u00a0x = sqrt(x)\n\n\u00a0\u00a0if (isnan(x)) stop '\"x\" is a NaN'\n\nend program test_nan\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n" + }, + "FSEEK": { + "doc": "`FSEEK` \u2014 Low level file positioning subroutine\n\n### Description\nMoves `UNIT` to the specified `OFFSET`. If `WHENCE`\nis set to 0, the `OFFSET` is taken as an absolute value `SEEK_SET`,\nif set to 1, `OFFSET` is taken to be relative to the current position\n`SEEK_CUR`, and if set to 2 relative to the end of the file `SEEK_END`. \nOn error, `STATUS` is set to a nonzero value. If `STATUS` the seek\nfails silently.\n\n \nThis intrinsic routine is not fully backwards compatible with *g77*. \nIn *g77*, the `FSEEK` takes a statement label instead of a\n`STATUS` variable. If FSEEK is used in old code, change\n \n
            CALL FSEEK(UNIT, OFFSET, WHENCE, *label)\n
\n \nto\n \n
            INTEGER :: status\n            CALL FSEEK(UNIT, OFFSET, WHENCE, status)\n            IF (status /= 0) GOTO label\n
\n \nPlease note that GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n`CALL FSEEK(UNIT, OFFSET, WHENCE[, STATUS])`\n\n\n### Arguments\n\n \n. \n\n | `OFFSET` | Shall be a scalar of type `INTEGER`. \n\n | `WHENCE` | Shall be a scalar of type `INTEGER`. \nIts value shall be either 0, 1 or 2. \n\n | `STATUS` | (Optional) shall be a scalar of type\n`INTEGER(4)`.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fseek\n\n\u00a0\u00a0INTEGER, PARAMETER :: SEEK_SET = 0, SEEK_CUR = 1, SEEK_END = 2\n\n\u00a0\u00a0INTEGER :: fd, offset, ierr\n\n\n\u00a0\u00a0ierr = 0\n\n\u00a0\u00a0offset = 5\n\n\u00a0\u00a0fd = 10\n\n\n\u00a0\u00a0OPEN(UNIT=fd, FILE=\"fseek.test\")\n\n\u00a0\u00a0CALL FSEEK(fd, offset, SEEK_SET, ierr) ! move to OFFSET\n\n\u00a0\u00a0print *, FTELL(fd), ierr\n\n\n\u00a0\u00a0CALL FSEEK(fd, 0, SEEK_END, ierr) ! move to end\n\n\u00a0\u00a0print *, FTELL(fd), ierr\n\n\n\u00a0\u00a0CALL FSEEK(fd, 0, SEEK_SET, ierr) ! move to beginning\n\n\u00a0\u00a0print *, FTELL(fd), ierr\n\n\n\u00a0\u00a0CLOSE(UNIT=fd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nFTELL\n" + }, + "UNLINK": { + "doc": "`UNLINK` \u2014 Remove a file from the file system\n\n### Description\nUnlinks the file `PATH`. A null character (`CHAR(0)`) can be\nused to mark the end of the name in `PATH`; otherwise, trailing\nblanks in the file name are ignored. If the `STATUS` argument is\nsupplied, it contains 0 on success or a nonzero error code upon return;\nsee `unlink(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = UNLINK(PATH)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nLINK, SYMLNK\n" + }, + "LEADZ": { + "doc": "`LEADZ` \u2014 Number of leading zero bits of an integer\n\n### Description\n`LEADZ` returns the number of leading zero bits of an integer.\n\n\n\n### Syntax\n`RESULT = LEADZ(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe type of the return value is the default `INTEGER`. \nIf all the bits of `I` are zero, the result value is `BIT_SIZE(I)`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_leadz\n\n\u00a0\u00a0WRITE (*,*) BIT_SIZE(1) ! prints 32\n\n\u00a0\u00a0WRITE (*,*) LEADZ(1) ! prints 31\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBIT_SIZE, TRAILZ, POPCNT, POPPAR\n" + }, + "ACCESS": { + "doc": "`ACCESS` \u2014 Checks file access modes\n\n### Description\n`ACCESS(NAME, MODE)` checks whether the file `NAME`\nexists, is readable, writable or executable. Except for the\nexecutable check, `ACCESS` can be replaced by\nFortran 95's `INQUIRE`.\n\n\n\n### Syntax\n`RESULT = ACCESS(NAME, MODE)`\n\n\n### Arguments\n\n \n of default kind with the\nfile name. Tailing blank are ignored unless the character `achar(0)`is present, then all characters up to and excluding `achar(0)` are\nused as file name. \n\n | `MODE` | Scalar `CHARACTER` of default kind with the\nfile access mode, may be any concatenation of `\"r\"` (readable),\n`\"w\"` (writable) and `\"x\"` (executable), or `\" \"` to check\nfor existence.\n\n\n\n\n\n\n### Return value\nReturns a scalar `INTEGER`, which is `0` if the file is\naccessible in the given mode; otherwise or if an invalid argument\nhas been given for `MODE` the value `1` is returned.\n\n\n\n### Example\n```\n\n\nprogram access_test\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0character(len=*), parameter :: file = 'test.dat'\n\n\u00a0\u00a0character(len=*), parameter :: file2 = 'test.dat '//achar(0)\n\n\u00a0\u00a0if(access(file,' ') == 0) print *, trim(file),' is exists'\n\n\u00a0\u00a0if(access(file,'r') == 0) print *, trim(file),' is readable'\n\n\u00a0\u00a0if(access(file,'w') == 0) print *, trim(file),' is writable'\n\n\u00a0\u00a0if(access(file,'x') == 0) print *, trim(file),' is executable'\n\n\u00a0\u00a0if(access(file2,'rwx') == 0) &\n\n\u00a0\u00a0\u00a0\u00a0print *, trim(file2),' is readable, writable and executable'\n\nend program access_test\n\n```\n\n\n\n### Specific names\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\n\n" + }, + "CONJG": { + "doc": "`CONJG` \u2014 Complex conjugate function\n\n### Description\n`CONJG(Z)` returns the conjugate of `Z`. If `Z` is `(x, y)`then the result is `(x, -y)`\n\n\n### Syntax\n`Z = CONJG(Z)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `COMPLEX`.\n\n\n\n### Example\n```\n\n\nprogram test_conjg\n\n\u00a0\u00a0\u00a0\u00a0complex :: z = (2.0, 3.0)\n\n\u00a0\u00a0\u00a0\u00a0complex(8) :: dz = (2.71_8, -3.14_8)\n\n\u00a0\u00a0\u00a0\u00a0z= conjg(z)\n\n\u00a0\u00a0\u00a0\u00a0print *, z\n\n\u00a0\u00a0\u00a0\u00a0dz = dconjg(dz)\n\n\u00a0\u00a0\u00a0\u00a0print *, dz\n\nend program test_conjg\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `CONJG(Z)` | `COMPLEX Z` | `COMPLEX` | GNU extension\n\n | `DCONJG(Z)` | `COMPLEX(8) Z` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ATOMIC_REF": { + "doc": "`ATOMIC_REF` \u2014 Obtaining the value of a variable atomically\n\n### Description\n`ATOMIC_DEFINE(ATOM, VALUE)` atomically assigns the value of the\nvariable `ATOM` to `VALUE`. When `STAT` is present and the\ninvokation was successful, it is assigned the value 0. If it is present and the\ninvokation has failed, it is assigned a positive value; in particular, for a\ncoindexed `ATOM`, if the remote image has stopped, it is assigned the value\nof `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image\nhas failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_REF(VALUE, ATOM [, STAT])`\n\n\n### Arguments\n\n \n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `ATOM` | Scalar coarray or coindexed variable of either integer\ntype with `ATOMIC_INT_KIND` kind or logical type with\n`ATOMIC_LOGICAL_KIND` kind. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0logical(atomic_logical_kind) :: atom[*]\n\n\u00a0\u00a0logical :: val\n\n\u00a0\u00a0call atomic_ref (atom, .false.)\n\n\u00a0\u00a0! ...\n\n\u00a0\u00a0call atomic_ref (atom, val)\n\n\u00a0\u00a0if (val) then\n\n\u00a0\u00a0\u00a0\u00a0print *, \"Obtained\"\n\n\u00a0\u00a0end if\n\nend program atomic\n\n```\n\n\n\n### Standard\nFortran 2008 and later; with `STAT`, TS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_CAS, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR,\nATOMIC_FETCH_XOR\n" + }, + "GETENV": { + "doc": "`GETENV` \u2014 Get an environmental variable\n\n### Description\nGet the `VALUE` of the environmental variable `NAME`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. In new code, programmers should consider the use of\nthe GET_ENVIRONMENT_VARIABLE intrinsic defined by the Fortran\n2003 standard.\n\n \n\nNote that `GETENV` need not be thread-safe. It is the\nresponsibility of the user to ensure that the environment is not being\nupdated concurrently with a call to the `GETENV` intrinsic.\n\n\n\n\n### Syntax\n`CALL GETENV(NAME, VALUE)`\n\n\n### Arguments\n\n \n and of default kind. \n\n | `VALUE` | Shall be of type `CHARACTER` and of default kind.\n\n\n\n\n\n\n### Return value\nStores the value of `NAME` in `VALUE`. If `VALUE` is\nnot large enough to hold the data, it is truncated. If `NAME`\nis not set, `VALUE` will be filled with blanks.\n\n\n\n### Example\n```\n\n\nPROGRAM test_getenv\n\n\u00a0\u00a0CHARACTER(len=255) :: homedir\n\n\u00a0\u00a0CALL getenv(\"HOME\", homedir)\n\n\u00a0\u00a0WRITE (*,*) TRIM(homedir)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGET_ENVIRONMENT_VARIABLE\n" + }, + "ISHFTC": { + "doc": "`ISHFTC` \u2014 Shift bits circularly\n\n### Description\n`ISHFTC` returns a value corresponding to `I` with the\nrightmost `SIZE` bits shifted circularly `SHIFT` places; that\nis, bits shifted out one end are shifted into the opposite end. A value\nof `SHIFT` greater than zero corresponds to a left shift, a value of\nzero corresponds to no shift, and a value less than zero corresponds to\na right shift. The absolute value of `SHIFT` must be less than\n`SIZE`. If the `SIZE` argument is omitted, it is taken to be\nequivalent to `BIT_SIZE(I)`.\n\n\n\n### Syntax\n`RESULT = ISHFTC(I, SHIFT [, SIZE])`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`. \n\n | `SIZE` | (Optional) The type shall be `INTEGER`;\nthe value must be greater than zero and less than or equal to\n`BIT_SIZE(I)`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFT\n" + }, + "SPACING": { + "doc": "`SPACING` \u2014 Smallest distance between two numbers of a given type\n\n### Description\nDetermines the distance between the argument `X` and the nearest\nadjacent number of the same type.\n\n\n\n### Syntax\n`RESULT = SPACING(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as the input argument `X`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_spacing\n\n\u00a0\u00a0INTEGER, PARAMETER :: SGL = SELECTED_REAL_KIND(p=6, r=37)\n\n\u00a0\u00a0INTEGER, PARAMETER :: DBL = SELECTED_REAL_KIND(p=13, r=200)\n\n\n\u00a0\u00a0WRITE(*,*) spacing(1.0_SGL) ! \"1.1920929E-07\" on i686\n\n\u00a0\u00a0WRITE(*,*) spacing(1.0_DBL) ! \"2.220446049250313E-016\" on i686\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nRRSPACING\n" + }, + "RANDOM_INIT": { + "doc": "`RANDOM_INIT` \u2014 Initialize a pseudo-random number generator\n\n### Description\nInitializes the state of the pseudorandom number generator used by RANDOM_NUMBER.\n### Standard\nFortran 2018\n### Class\nSubroutine\n### Syntax\nCALL RANDOM_INIT(REPEATABLE, IMAGE_DISTINCT)\n### Arguments\n- REPEATABLE: Shall be a scalar with a LOGICAL type, and it is INTENT(IN). If it is .true., the seed is set to a processor-dependent value that is the same each time RANDOM_INIT is called from the same image. The term \u201csame image\u201d means a single instance of program execution. The sequence of random numbers is different for repeated execution of the program. If it is .false., the seed is set to a processor-dependent value.\n- IMAGE_DISTINCT: Shall be a scalar with a LOGICAL type, and it is INTENT(IN). If it is .true., the seed is set to a processor-dependent value that is distinct from th seed set by a call to RANDOM_INIT in another image. If it is .false., the seed is set value that does depend which image called RANDOM_INIT.\n" + }, + "C_F_PROCPOINTER": { + "doc": "`C_F_PROCPOINTER` \u2014 Convert C into Fortran procedure pointer\n\n### Description\n`C_F_PROCPOINTER(CPTR, FPTR)` Assign the target of the C function pointer\n`CPTR` to the Fortran procedure pointer `FPTR`.\n\n\n\n### Syntax\n`CALL C_F_PROCPOINTER(cptr, fptr)`\n\n\n### Arguments\n\n \n. It is\n`INTENT(IN)`. \n\n | `FPTR` | procedure pointer interoperable with `cptr`. It is\n`INTENT(OUT)`.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram main\n\n\u00a0\u00a0use iso_c_binding\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0abstract interface\n\n\u00a0\u00a0\u00a0\u00a0function func(a)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0import :: c_float\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0real(c_float), intent(in) :: a\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0real(c_float) :: func\n\n\u00a0\u00a0\u00a0\u00a0end function\n\n\u00a0\u00a0end interface\n\n\u00a0\u00a0interface\n\n\u00a0\u00a0\u00a0\u00a0\u00a0function getIterFunc() bind(c,name=\"getIterFunc\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0import :: c_funptr\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type(c_funptr) :: getIterFunc\n\n\u00a0\u00a0\u00a0\u00a0\u00a0end function\n\n\u00a0\u00a0end interface\n\n\u00a0\u00a0type(c_funptr) :: cfunptr\n\n\u00a0\u00a0procedure(func), pointer :: myFunc\n\n\u00a0\u00a0cfunptr = getIterFunc()\n\n\u00a0\u00a0call c_f_procpointer(cfunptr, myFunc)\n\nend program main\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nC_LOC, C_F_POINTER\n" + }, + "RENAME": { + "doc": "`RENAME` \u2014 Rename a file\n\n### Description\nRenames a file from file `PATH1` to `PATH2`. A null\ncharacter (`CHAR(0)`) can be used to mark the end of the names in\n`PATH1` and `PATH2`; otherwise, trailing blanks in the file\nnames are ignored. If the `STATUS` argument is supplied, it\ncontains 0 on success or a nonzero error code upon return; see\n`rename(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = RENAME(PATH1, PATH2)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `PATH2` | Shall be of default `CHARACTER` type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nLINK\n\n " + }, + "LBOUND": { + "doc": "`LBOUND` \u2014 Lower dimension bounds of an array\n\n### Description\nReturns the lower bounds of an array, or a single lower bound\nalong the `DIM` dimension. \n\n\n### Syntax\n`RESULT = LBOUND(ARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the lower bounds of\n`ARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the lower bound of the array along that dimension. If\n`ARRAY` is an expression rather than a whole array or array\nstructure component, or if it has a zero extent along the relevant\ndimension, the lower bound is taken to be 1.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nUBOUND, LCOBOUND\n" + }, + "PRECISION": { + "doc": "`PRECISION` \u2014 Decimal precision of a real kind\n\n### Description\n`PRECISION(X)` returns the decimal precision in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = PRECISION(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram prec_and_range\n\n\u00a0\u00a0real(kind=4) :: x(2)\n\n\u00a0\u00a0complex(kind=8) :: y\n\n\n\u00a0\u00a0print *, precision(x), range(x)\n\n\u00a0\u00a0print *, precision(y), range(y)\n\nend program prec_and_range\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSELECTED_REAL_KIND, RANGE\n\n\n" + }, + "IARGC": { + "doc": "`IARGC` \u2014 Get the number of command line arguments\n\n### Description\n`IARGC` returns the number of arguments passed on the\ncommand line when the containing program was invoked.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. In new code, programmers should consider the use of\nthe COMMAND_ARGUMENT_COUNT intrinsic defined by the Fortran 2003\nstandard.\n\n\n\n\n### Syntax\n`RESULT = IARGC()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe number of command line arguments, type `INTEGER(4)`.\n\n\n\n### Example\nSee GETARG\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGNU Fortran 77 compatibility subroutine: GETARG\n\n \nFortran 2003 functions and subroutines: GET_COMMAND,\nGET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT\n\n" + }, + "EXP": { + "doc": "`EXP` \u2014 Exponential function\n\n### Description\n`EXP(X)` computes the base e exponential of `X`.\n\n\n\n### Syntax\n`RESULT = EXP(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_exp\n\n\u00a0\u00a0real :: x = 1.0\n\n\u00a0\u00a0x = exp(x)\n\nend program test_exp\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `EXP(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DEXP(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n | `CEXP(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | Fortran 77 and later\n\n | `ZEXP(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n | `CDEXP(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" + }, + "DATE_AND_TIME": { + "doc": "`DATE_AND_TIME` \u2014 Date and time subroutine\n\n### Description\n`DATE_AND_TIME(DATE, TIME, ZONE, VALUES)` gets the corresponding date and\ntime information from the real-time system clock. `DATE` is\n`INTENT(OUT)` and has form ccyymmdd. `TIME` is `INTENT(OUT)` and\nhas form hhmmss.sss. `ZONE` is `INTENT(OUT)` and has form (+-)hhmm,\nrepresenting the difference with respect to Coordinated Universal Time (UTC). \nUnavailable time and date parameters return blanks.\n\n \n`VALUES` is `INTENT(OUT)` and provides the following:\n\n \n\n: | The year\n\n | `VALUE(2)`: | The month\n\n | `VALUE(3)`: | The day of the month\n\n | `VALUE(4)`: | Time difference with UTC in minutes\n\n | `VALUE(5)`: | The hour of the day\n\n | `VALUE(6)`: | The minutes of the hour\n\n | `VALUE(7)`: | The seconds of the minute\n\n | `VALUE(8)`: | The milliseconds of the second\n\n\n\n\n\n\n### Syntax\n`CALL DATE_AND_TIME([DATE, TIME, ZONE, VALUES])`\n\n\n### Arguments\n\n \n\nor larger, and of default kind. \n\n | `TIME` | (Optional) The type shall be `CHARACTER(LEN=10)`or larger, and of default kind. \n\n | `ZONE` | (Optional) The type shall be `CHARACTER(LEN=5)`or larger, and of default kind. \n\n | `VALUES` | (Optional) The type shall be `INTEGER(8)`.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_time_and_date\n\n\u00a0\u00a0\u00a0\u00a0character(8) :: date\n\n\u00a0\u00a0\u00a0\u00a0character(10) :: time\n\n\u00a0\u00a0\u00a0\u00a0character(5) :: zone\n\n\u00a0\u00a0\u00a0\u00a0integer,dimension(8) :: values\n\n\u00a0\u00a0\u00a0\u00a0! using keyword arguments\n\n\u00a0\u00a0\u00a0\u00a0call date_and_time(date,time,zone,values)\n\n\u00a0\u00a0\u00a0\u00a0call date_and_time(DATE=date,ZONE=zone)\n\n\u00a0\u00a0\u00a0\u00a0call date_and_time(TIME=time)\n\n\u00a0\u00a0\u00a0\u00a0call date_and_time(VALUES=values)\n\n\u00a0\u00a0\u00a0\u00a0print '(a,2x,a,2x,a)', date, time, zone\n\n\u00a0\u00a0\u00a0\u00a0print '(8i5)', values\n\nend program test_time_and_date\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nCPU_TIME, SYSTEM_CLOCK\n" + }, + "ATOMIC_FETCH_AND": { + "doc": "`ATOMIC_FETCH_AND` \u2014 Atomic bitwise AND operation with prior fetch\n\n### Description\n`ATOMIC_AND(ATOM, VALUE)` atomically stores the value of `ATOM` in\n`OLD` and defines `ATOM` with the bitwise AND between the values of\n`ATOM` and `VALUE`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation has\nfailed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_FETCH_AND (ATOM, VALUE, OLD [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*], old\n\n\u00a0\u00a0call atomic_fetch_and (atom[1], int(b'10100011101'), old)\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_AND, ISO_FORTRAN_ENV,\nATOMIC_FETCH_ADD, ATOMIC_FETCH_OR, ATOMIC_FETCH_XOR\n" + }, + "ATAN": { + "doc": "`ATAN` \u2014 Arctangent function\n\n### Description\n`ATAN(X)` computes the arctangent of `X`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = ATAN(Y, X)`
\n\n\n\n\n\n### Arguments\n\n \n;\nif `Y` is present, `X` shall be REAL. \n\n | `Y` shall be of the same type and kind as `X`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nIf `Y` is present, the result is identical to `ATAN2(Y,X)`. \nOtherwise, it the arcus tangent of `X`, where the real part of\nthe result is in radians and lies in the range\n-\\pi/2 \\leq \\Re \\atan(x) \\leq \\pi/2.\n\n\n\n### Example\n```\n\n\nprogram test_atan\n\n\u00a0\u00a0real(8) :: x = 2.866_8\n\n\u00a0\u00a0x = atan(x)\n\nend program test_atan\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ATAN(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DATAN(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument and for two arguments\nFortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: TAN\n\n " + }, + "LEN_TRIM": { + "doc": "`LEN_TRIM` \u2014 Length of a character entity without trailing blank characters\n\n### Description\nReturns the length of a character string, ignoring any trailing blanks.\n\n\n\n### Syntax\n`RESULT = LEN_TRIM(STRING [, KIND])`\n\n\n### Arguments\n\n \n,\nwith `INTENT(IN)`
\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLEN, ADJUSTL, ADJUSTR\n" + }, + "GETCWD": { + "doc": "`GETCWD` \u2014 Get current working directory\n\n### Description\nGet current working directory.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = GETCWD(C)`
\n\n\n\n\n\n### Arguments\n\n \n and of default kind. \n\n | `STATUS` | (Optional) status flag. Returns 0 on success,\na system specific and nonzero error code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_getcwd\n\n\u00a0\u00a0CHARACTER(len=255) :: cwd\n\n\u00a0\u00a0CALL getcwd(cwd)\n\n\u00a0\u00a0WRITE(*,*) TRIM(cwd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCHDIR\n" + }, + "GMTIME": { + "doc": "`GMTIME` \u2014 Convert time to GMT info\n\n### Description\nGiven a system time value `TIME` (as provided by the `TIME8`intrinsic), fills `VALUES` with values extracted from it appropriate\nto the UTC time zone (Universal Coordinated Time, also known in some\ncountries as GMT, Greenwich Mean Time), using `gmtime(3)`.\n\n\n\n### Syntax\n`CALL GMTIME(TIME, VALUES)`\n\n\n### Arguments\n\n \n scalar expression\ncorresponding to a system time, with `INTENT(IN)`. \n\n | `VALUES` | A default `INTEGER` array with 9 elements,\nwith `INTENT(OUT)`.\n\n\n\n\n\n\n### Return value\nThe elements of `VALUES` are assigned as follows:\n
    \n
  1. Seconds after the minute, range 0\u201359 or 0\u201361 to allow for leap\nseconds\n
  2. Minutes after the hour, range 0\u201359\n
  3. Hours past midnight, range 0\u201323\n
  4. Day of month, range 0\u201331\n
  5. Number of months since January, range 0\u201312\n
  6. Years since 1900\n
  7. Number of days since Sunday, range 0\u20136\n
  8. Days since January 1\n
  9. Daylight savings indicator: positive if daylight savings is in\neffect, zero if not, and negative if the information is not available.\n
\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nCTIME, LTIME, TIME, TIME8\n\n " + }, + "TAN": { + "doc": "`TAN` \u2014 Tangent function\n\n### Description\n`TAN(X)` computes the tangent of `X`.\n\n\n\n### Syntax\n`RESULT = TAN(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_tan\n\n\u00a0\u00a0real(8) :: x = 0.165_8\n\n\u00a0\u00a0x = tan(x)\n\nend program test_tan\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `TAN(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DTAN(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nATAN\n" + }, + "CO_REDUCE": { + "doc": "`CO_REDUCE` \u2014 Reduction of values on the current set of images\n\n### Description\n`CO_REDUCE` determines element-wise the reduction of the value of `A`\non all images of the current team. The pure function passed as `OPERATOR`\nis used to pairwise reduce the values of `A` by passing either the value\nof `A` of different images or the result values of such a reduction as\nargument. If `A` is an array, the deduction is done element wise. If\n`RESULT_IMAGE` is present, the result values are returned in `A` on\nthe specified image only and the value of `A` on the other images become\nundefined. If `RESULT_IMAGE` is not present, the value is returned on all\nimages. If the execution was successful and `STAT` is present, it is\nassigned the value zero. If the execution failed, `STAT` gets assigned\na nonzero value and, if present, `ERRMSG` gets assigned a value describing\nthe occurred error.\n\n\n\n### Syntax\n`CALL CO_REDUCE(A, OPERATOR, [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n argument and shall be\nnonpolymorphic. If it is allocatable, it shall be allocated; if it is a pointer,\nit shall be associated. `A` shall have the same type and type parameters on\nall images of the team; if it is an array, it shall have the same shape on all\nimages. \n\n | `OPERATOR` | pure function with two scalar nonallocatable\narguments, which shall be nonpolymorphic and have the same type and type\nparameters as `A`. The function shall return a nonallocatable scalar of\nthe same type and type parameters as `A`. The function shall be the same on\nall images and with regards to the arguments mathematically commutative and\nassociative. Note that `OPERATOR` may not be an elemental function, unless\nit is an intrisic function. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n\u00a0\u00a0integer :: val\n\n\u00a0\u00a0val = this_image ()\n\n\u00a0\u00a0call co_reduce (val, result_image=1, operator=myprod)\n\n\u00a0\u00a0if (this_image() == 1) then\n\n\u00a0\u00a0\u00a0\u00a0write(*,*) \"Product value\", val ! prints num_images() factorial\n\n\u00a0\u00a0end if\n\ncontains\n\n\u00a0\u00a0pure function myprod(a, b)\n\n\u00a0\u00a0\u00a0\u00a0integer, value :: a, b\n\n\u00a0\u00a0\u00a0\u00a0integer :: myprod\n\n\u00a0\u00a0\u00a0\u00a0myprod = a * b\n\n\u00a0\u00a0end function myprod\n\nend program test\n\n```\n\n\n\n### Notes\nWhile the rules permit in principle an intrinsic function, none of the\nintrinsics in the standard fulfill the criteria of having a specific\nfunction, which takes two arguments of the same type and returning that\ntype as result.\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MIN, CO_MAX, CO_SUM, CO_BROADCAST\n" + }, + "STORAGE_SIZE": { + "doc": "`STORAGE_SIZE` \u2014 Storage size in bits\n\n### Description\nReturns the storage size of argument `A` in bits. \n\n\n### Syntax\n`RESULT = STORAGE_SIZE(A [, KIND])`\n\n\n### Arguments\n\n \n | `A` | Shall be a scalar or array of any type. \n\n | `KIND` | (Optional) shall be a scalar integer constant expression.\n\n\n\n\n\n\n### Return value\nThe result is a scalar integer with the kind type parameter specified by KIND\n(or default integer type if KIND is missing). The result value is the size\nexpressed in bits for an element of an array that has the dynamic type and type\nparameters of A.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n### Class\nInquiry function\n\n\n### See also\nC_SIZEOF, SIZEOF\n" + }, + "IBSET": { + "doc": "`IBSET` \u2014 Set bit\n\n### Description\n`IBSET` returns the value of `I` with the bit at position\n`POS` set to one.\n\n\n\n### Syntax\n`RESULT = IBSET(I, POS)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIBCLR, IBITS, IAND, IOR, IEOR, MVBITS\n\n " + }, + "ABS": { + "doc": "`ABS` \u2014 Absolute value\n\n### Description\n`ABS(A)` computes the absolute value of `A`.\n\n\n\n### Syntax\n`RESULT = ABS(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and\nkind as the argument except the return value is `REAL` for a\n`COMPLEX` argument.\n\n\n\n### Example\n```\n\n\nprogram test_abs\n\n\u00a0\u00a0integer :: i = -1\n\n\u00a0\u00a0real :: x = -1.e0\n\n\u00a0\u00a0complex :: z = (-1.e0,0.e0)\n\n\u00a0\u00a0i = abs(i)\n\n\u00a0\u00a0x = abs(x)\n\n\u00a0\u00a0x = abs(z)\n\nend program test_abs\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ABS(A)` | `REAL(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `CABS(A)` | `COMPLEX(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `DABS(A)` | `REAL(8) A` | `REAL(8)` | Fortran 77 and later\n\n | `IABS(A)` | `INTEGER(4) A` | `INTEGER(4)` | Fortran 77 and later\n\n | `ZABS(A)` | `COMPLEX(8) A` | `COMPLEX(8)` | GNU extension\n\n | `CDABS(A)` | `COMPLEX(8) A` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" + }, + "NULL": { + "doc": "`NULL` \u2014 Function that returns an disassociated pointer\n\n### Description\nReturns a disassociated pointer.\n\n \nIf `MOLD` is present, a disassociated pointer of the same type is\nreturned, otherwise the type is determined by context.\n\n \n\nIn Fortran 95, `MOLD` is optional. Please note that Fortran 2003\nincludes cases where it is required.\n\n\n\n\n### Syntax\n`PTR => NULL([MOLD])`\n\n\n### Arguments\n\n \n | `MOLD` | (Optional) shall be a pointer of any association\nstatus and of any type.\n\n\n\n\n\n\n### Return value\nA disassociated pointer.\n\n\n\n### Example\n```\n\n\nREAL, POINTER, DIMENSION(:) :: VEC => NULL ()\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nASSOCIATED\n" + }, + "ATAN2": { + "doc": "`ATAN2` \u2014 Arctangent function\n\n### Description\n`ATAN2(Y, X)` computes the principal value of the argument\nfunction of the complex number X + i Y. This function can\nbe used to transform from Cartesian into polar coordinates and\nallows to determine the angle in the correct quadrant.\n\n\n\n### Syntax\n`RESULT = ATAN2(Y, X)`\n\n\n### Arguments\n\n \n. \n\n | `X` | The type and kind type parameter shall be the same as `Y`. \nIf `Y` is zero, then `X` must be nonzero.\n\n\n\n\n\n\n### Return value\nThe return value has the same type and kind type parameter as `Y`. It\nis the principal value of the complex number X + i Y. If `X`\nis nonzero, then it lies in the range -\\pi \\le \\atan (x) \\leq \\pi. \nThe sign is positive if `Y` is positive. If `Y` is zero, then\nthe return value is zero if `X` is strictly positive, \\pi if\n`X` is negative and `Y` is positive zero (or the processor does\nnot handle signed zeros), and -\\pi if `X` is negative and\n`Y` is negative zero. Finally, if `X` is zero, then the\nmagnitude of the result is \\pi/2.\n\n\n\n### Example\n```\n\n\nprogram test_atan2\n\n\u00a0\u00a0real(4) :: x = 1.e0_4, y = 0.5e0_4\n\n\u00a0\u00a0x = atan2(y,x)\n\nend program test_atan2\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ATAN2(X, Y)` | `REAL(4) X, Y` | `REAL(4)` | Fortran 77 and later\n\n | `DATAN2(X, Y)` | `REAL(8) X, Y` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "BGE": { + "doc": "`BGE` \u2014 Bitwise greater than or equal to\n\n### Description\nDetermines whether an integral is a bitwise greater than or equal to\nanother.\n\n\n\n### Syntax\n`RESULT = BGE(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBGT, BLE, BLT\n" + }, + "IBITS": { + "doc": "`IBITS` \u2014 Bit extraction\n\n### Description\n`IBITS` extracts a field of length `LEN` from `I`,\nstarting from bit position `POS` and extending left for `LEN`\nbits. The result is right-justified and the remaining bits are\nzeroed. The value of `POS+LEN` must be less than or equal to the\nvalue `BIT_SIZE(I)`.\n\n\n\n### Syntax\n`RESULT = IBITS(I, POS, LEN)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`. \n\n | `LEN` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBIT_SIZE, IBCLR, IBSET, IAND, IOR, IEOR\n" + }, + "BESSEL_Y1": { + "doc": "`BESSEL_Y1` \u2014 Bessel function of the second kind of order 1\n\n### Description\n`BESSEL_Y1(X)` computes the Bessel function of the second kind of\norder 1 of `X`. This function is available under the name\n`BESY1` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_Y1(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL`. It has the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besy1\n\n\u00a0\u00a0real(8) :: x = 1.0_8\n\n\u00a0\u00a0x = bessel_y1(x)\n\nend program test_besy1\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESY1(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "STAT": { + "doc": "`STAT` \u2014 Get file status\n\n### Description\nThis function returns information about a file. No permissions are required on\nthe file itself, but execute (search) permission is required on all of the\ndirectories in path that lead to the file.\n\n \nThe elements that are obtained and stored in the array `VALUES`:\n \n\n | Device ID\n\n | `VALUES(2)` | Inode number\n\n | `VALUES(3)` | File mode\n\n | `VALUES(4)` | Number of links\n\n | `VALUES(5)` | Owner's uid\n\n | `VALUES(6)` | Owner's gid\n\n | `VALUES(7)` | ID of device containing directory entry for file (0 if not available)\n\n | `VALUES(8)` | File size (bytes)\n\n | `VALUES(9)` | Last access time\n\n | `VALUES(10)` | Last modification time\n\n | `VALUES(11)` | Last file status change time\n\n | `VALUES(12)` | Preferred I/O block size (-1 if not available)\n\n | `VALUES(13)` | Number of blocks allocated (-1 if not available)\n\n\n\n \n\nNot all these elements are relevant on all systems. \nIf an element is not relevant, it is returned as 0.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = STAT(NAME, VALUES)`
\n\n\n\n\n\n### Arguments\n\n \n, of the\ndefault kind and a valid path within the file system. \n\n | `VALUES` | The type shall be `INTEGER(4), DIMENSION(13)`. \n\n | `STATUS` | (Optional) status flag of type `INTEGER(4)`. Returns 0\non success and a system specific error code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_stat\n\n\u00a0\u00a0INTEGER, DIMENSION(13) :: buff\n\n\u00a0\u00a0INTEGER :: status\n\n\n\u00a0\u00a0CALL STAT(\"/etc/passwd\", buff, status)\n\n\n\u00a0\u00a0IF (status == 0) THEN\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Device ID:', T30, I19)\") buff(1)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Inode number:', T30, I19)\") buff(2)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('File mode (octal):', T30, O19)\") buff(3)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Number of links:', T30, I19)\") buff(4)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Owner''s uid:', T30, I19)\") buff(5)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Owner''s gid:', T30, I19)\") buff(6)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Device where located:', T30, I19)\") buff(7)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('File size:', T30, I19)\") buff(8)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Last access time:', T30, A19)\") CTIME(buff(9))\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Last modification time', T30, A19)\") CTIME(buff(10))\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Last status change time:', T30, A19)\") CTIME(buff(11))\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('Preferred block size:', T30, I19)\") buff(12)\n\n\u00a0\u00a0\u00a0\u00a0WRITE (*, FMT=\"('No. of blocks allocated:', T30, I19)\") buff(13)\n\n\u00a0\u00a0END IF\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nTo stat an open file: FSTAT, to stat a link: LSTAT\n" + }, + "MOVE_ALLOC": { + "doc": "`MOVE_ALLOC` \u2014 Move allocation from one object to another\n\n### Description\n`MOVE_ALLOC(FROM, TO)` moves the allocation from `FROM` to\n`TO`. `FROM` will become deallocated in the process.\n\n\n\n### Syntax\n`CALL MOVE_ALLOC(FROM, TO)`\n\n\n### Arguments\n\n \n, may be\nof any type and kind. \n\n | `TO` | `ALLOCATABLE`, `INTENT(OUT)`, shall be\nof the same type, kind and rank as `FROM`.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_move_alloc\n\n\u00a0\u00a0\u00a0\u00a0integer, allocatable :: a(:), b(:)\n\n\n\u00a0\u00a0\u00a0\u00a0allocate(a(3))\n\n\u00a0\u00a0\u00a0\u00a0a = [ 1, 2, 3 ]\n\n\u00a0\u00a0\u00a0\u00a0call move_alloc(a, b)\n\n\u00a0\u00a0\u00a0\u00a0print *, allocated(a), allocated(b)\n\n\u00a0\u00a0\u00a0\u00a0print *, b\n\nend program test_move_alloc\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nPure subroutine\n\n\n" + }, + "TINY": { + "doc": "`TINY` \u2014 Smallest positive number of a real kind\n\n### Description\n`TINY(X)` returns the smallest positive (non zero) number\nin the model of the type of `X`.\n\n\n\n### Syntax\n`RESULT = TINY(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`\n\n\n\n### Example\nSee `HUGE` for an example. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "SIZE": { + "doc": "`SIZE` \u2014 Determine the size of an array\n\n### Description\nDetermine the extent of `ARRAY` along a specified dimension `DIM`,\nor the total number of elements in `ARRAY` if `DIM` is absent.\n\n\n\n### Syntax\n`RESULT = SIZE(ARRAY[, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array of any type. If `ARRAY` is\na pointer it must be associated and allocatable arrays must be allocated. \n\n | `DIM` | (Optional) shall be a scalar of type `INTEGER`and its value shall be in the range from 1 to n, where n equals the rank\nof `ARRAY`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_size\n\n\u00a0\u00a0WRITE(*,*) SIZE((/ 1, 2 /)) ! 2\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSHAPE, RESHAPE\n" + }, + "ATOMIC_CAS": { + "doc": "`ATOMIC_CAS` \u2014 Atomic compare and swap\n\n### Description\n`ATOMIC_CAS` compares the variable `ATOM` with the value of\n`COMPARE`; if the value is the same, `ATOM` is set to the value\nof `NEW`. Additionally, `OLD` is set to the value of `ATOM`\nthat was used for the comparison. When `STAT` is present and the invokation\nwas successful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_CAS (ATOM, OLD, COMPARE, NEW [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of either integer\ntype with `ATOMIC_INT_KIND` kind or logical type with\n`ATOMIC_LOGICAL_KIND` kind. \n\n | `OLD` | Scalar of the same type and kind as `ATOM`. \n\n | `COMPARE` | Scalar variable of the same type and kind as\n`ATOM`. \n\n | `NEW` | Scalar variable of the same type as `ATOM`. If kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0logical(atomic_logical_kind) :: atom[*], prev\n\n\u00a0\u00a0call atomic_cas (atom[1], prev, .false., .true.))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_REF, ISO_FORTRAN_ENV\n" + }, + "DTIME": { + "doc": "`DTIME` \u2014 Execution time subroutine (or function)\n\n### Description\n`DTIME(VALUES, TIME)` initially returns the number of seconds of runtime\nsince the start of the process's execution in `TIME`. `VALUES`\nreturns the user and system components of this time in `VALUES(1)` and\n`VALUES(2)` respectively. `TIME` is equal to VALUES(1) +\nVALUES(2).\n\n \nSubsequent invocations of `DTIME` return values accumulated since the\nprevious invocation.\n\n \n\nOn some systems, the underlying timings are represented using types with\nsufficiently small limits that overflows (wrap around) are possible, such as\n32-bit types. Therefore, the values returned by this intrinsic might be, or\nbecome, negative, or numerically less than previous values, during a single\nrun of the compiled program.\n\n \n\nPlease note, that this implementation is thread safe if used within OpenMP\ndirectives, i.e., its state will be consistent while called from multiple\nthreads. However, if `DTIME` is called from multiple threads, the result\nis still the time since the last invocation. This may not give the intended\nresults. If possible, use `CPU_TIME` instead.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\n`VALUES` and `TIME` are `INTENT(OUT)` and provide the following:\n\n \n\n: | User time in seconds. \n\n | `VALUES(2)`: | System time in seconds. \n\n | `TIME`: | Run time since start in seconds.\n\n\n\n\n\n\n### Syntax\n\n \n. \n\n | `TIME = DTIME(VALUES)`, (not recommended).\n\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `TIME` | The type shall be `REAL(4)`.\n\n\n\n\n\n\n### Return value\nElapsed time in seconds since the last invocation or since the start of program\nexecution if not called before.\n\n\n\n### Example\n```\n\n\nprogram test_dtime\n\n\u00a0\u00a0\u00a0\u00a0integer(8) :: i, j\n\n\u00a0\u00a0\u00a0\u00a0real, dimension(2) :: tarray\n\n\u00a0\u00a0\u00a0\u00a0real :: result\n\n\u00a0\u00a0\u00a0\u00a0call dtime(tarray, result)\n\n\u00a0\u00a0\u00a0\u00a0print *, result\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(1)\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(2)\n\n\u00a0\u00a0\u00a0\u00a0do i=1,100000000 ! Just a delay\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0j = i * i - i\n\n\u00a0\u00a0\u00a0\u00a0end do\n\n\u00a0\u00a0\u00a0\u00a0call dtime(tarray, result)\n\n\u00a0\u00a0\u00a0\u00a0print *, result\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(1)\n\n\u00a0\u00a0\u00a0\u00a0print *, tarray(2)\n\nend program test_dtime\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nCPU_TIME\n\n " + }, + "ALARM": { + "doc": "`ALARM` \u2014 Execute a routine after a given delay\n\n### Description\n`ALARM(SECONDS, HANDLER [, STATUS])` causes external subroutine `HANDLER`\nto be executed after a delay of `SECONDS` by using `alarm(2)` to\nset up a signal and `signal(2)` to catch it. If `STATUS` is\nsupplied, it will be returned with the number of seconds remaining until\nany previously scheduled alarm was due to be delivered, or zero if there\nwas no previously scheduled alarm.\n\n\n\n### Syntax\n`CALL ALARM(SECONDS, HANDLER [, STATUS])`\n\n\n### Arguments\n\n \n | `SECONDS` | The type of the argument shall be a scalar\n`INTEGER`. It is `INTENT(IN)`. \n\n | `HANDLER` | Signal handler (`INTEGER FUNCTION` or\n`SUBROUTINE`) or dummy/global `INTEGER` scalar. The scalar\nvalues may be either `SIG_IGN=1` to ignore the alarm generated\nor `SIG_DFL=0` to set the default action. It is `INTENT(IN)`. \n\n | `STATUS` | (Optional) `STATUS` shall be a scalar\nvariable of the default `INTEGER` kind. It is `INTENT(OUT)`.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_alarm\n\n\u00a0\u00a0external handler_print\n\n\u00a0\u00a0integer i\n\n\u00a0\u00a0call alarm (3, handler_print, i)\n\n\u00a0\u00a0print *, i\n\n\u00a0\u00a0call sleep(10)\n\nend program test_alarm\n\n```\n\n \nThis will cause the external routine `handler_print` to be called\nafter 3 seconds. \n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" + }, + "BESSEL_YN": { + "doc": "`BESSEL_YN` \u2014 Bessel function of the second kind\n\n### Description\n`BESSEL_YN(N, X)` computes the Bessel function of the second kind of\norder `N` of `X`. This function is available under the name\n`BESYN` as a GNU extension. If `N` and `X` are arrays,\ntheir ranks and shapes shall conform.\n\n \n`BESSEL_YN(N1, N2, X)` returns an array with the Bessel functions\nof the first kind of the orders `N1` to `N2`.\n\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = BESSEL_YN(N1, N2, X)`
\n\n\n\n\n\n### Arguments\n\n \n . \n\n | `N1` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `N2` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `X` | Shall be a scalar or an array of type `REAL`;\nfor `BESSEL_YN(N1, N2, X)` it shall be scalar.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `REAL`. It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besyn\n\n\u00a0\u00a0real(8) :: x = 1.0_8\n\n\u00a0\u00a0x = bessel_yn(5,x)\n\nend program test_besyn\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESYN(N,X)` | `INTEGER N` | `REAL(8)` | GNU extension\n\n | `REAL(8) X` | \n\n\n\n\n\n### Notes\nThe transformational function uses a recurrence algorithm which might,\nfor some values of `X`, lead to different results than calls to\nthe elemental function.\n\n\n\n### Standard\nFortran 2008 and later, negative `N` is allowed as GNU extension\n\n\n\n### Class\nElemental function, except for the transformational function\n`BESSEL_YN(N1, N2, X)`\n\n" + }, + "AIMAG": { + "doc": "`AIMAG` \u2014 Imaginary part of complex number\n\n### Description\n`AIMAG(Z)` yields the imaginary part of complex argument `Z`. \nThe `IMAG(Z)` and `IMAGPART(Z)` intrinsic functions are provided\nfor compatibility with *g77*, and their use in new code is\nstrongly discouraged.\n\n\n\n### Syntax\n`RESULT = AIMAG(Z)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` with the\nkind type parameter of the argument.\n\n\n\n### Example\n```\n\n\nprogram test_aimag\n\n\u00a0\u00a0complex(4) z4\n\n\u00a0\u00a0complex(8) z8\n\n\u00a0\u00a0z4 = cmplx(1.e0_4, 0.e0_4)\n\n\u00a0\u00a0z8 = cmplx(0.e0_8, 1.e0_8)\n\n\u00a0\u00a0print *, aimag(z4), dimag(z8)\n\nend program test_aimag\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `AIMAG(Z)` | `COMPLEX Z` | `REAL` | GNU extension\n\n | `DIMAG(Z)` | `COMPLEX(8) Z` | `REAL(8)` | GNU extension\n\n | `IMAG(Z)` | `COMPLEX Z` | `REAL` | GNU extension\n\n | `IMAGPART(Z)` | `COMPLEX Z` | `REAL` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later, has overloads that are GNU extensions\n\n\n\n### Class\nElemental function\n\n\n" + }, + "UNPACK": { + "doc": "`UNPACK` \u2014 Unpack an array of rank one into an array\n\n### Description\nStore the elements of `VECTOR` in an array of higher rank.\n\n\n\n### Syntax\n`RESULT = UNPACK(VECTOR, MASK, FIELD)`\n\n\n### Arguments\n\n \n | `VECTOR` | Shall be an array of any type and rank one. It\nshall have at least as many elements as `MASK` has `TRUE` values. \n\n | `MASK` | Shall be an array of type `LOGICAL`. \n\n | `FIELD` | Shall be of the same type as `VECTOR` and have\nthe same shape as `MASK`.\n\n\n\n\n\n\n### Return value\nThe resulting array corresponds to `FIELD` with `TRUE` elements\nof `MASK` replaced by values from `VECTOR` in array element order.\n\n\n\n### Example\n```\n\n\nPROGRAM test_unpack\n\n\u00a0\u00a0integer :: vector(2) = (/1,1/)\n\n\u00a0\u00a0logical :: mask(4) = (/ .TRUE., .FALSE., .FALSE., .TRUE. /)\n\n\u00a0\u00a0integer :: field(2,2) = 0, unity(2,2)\n\n\n\u00a0\u00a0! result: unity matrix\n\n\u00a0\u00a0unity = unpack(vector, reshape(mask, (/2,2/)), field)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nPACK, SPREAD\n" + }, + "REPEAT": { + "doc": "`REPEAT` \u2014 Repeated string concatenation\n\n### Description\nConcatenates `NCOPIES` copies of a string.\n\n\n\n### Syntax\n`RESULT = REPEAT(STRING, NCOPIES)`\n\n\n### Arguments\n\n \n. \n\n | `NCOPIES` | Shall be scalar and of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nA new scalar of type `CHARACTER` built up from `NCOPIES` copies\nof `STRING`.\n\n\n\n### Example\n```\n\n\nprogram test_repeat\n\n\u00a0\u00a0write(*,*) repeat(\"x\", 5) ! \"xxxxx\"\n\nend program\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "FLUSH": { + "doc": "`FLUSH` \u2014 Flush I/O unit(s)\n\n### Description\nFlushes Fortran unit(s) currently open for output. Without the optional\nargument, all units are flushed, otherwise just the unit specified.\n\n\n\n### Syntax\n`CALL FLUSH(UNIT)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Notes\nBeginning with the Fortran 2003 standard, there is a `FLUSH`statement that should be preferred over the `FLUSH` intrinsic.\n\n \nThe `FLUSH` intrinsic and the Fortran 2003 `FLUSH` statement\nhave identical effect: they flush the runtime library's I/O buffer so\nthat the data becomes visible to other processes. This does not guarantee\nthat the data is committed to disk.\n\n \n\nOn POSIX systems, you can request that all data is transferred to the\nstorage device by calling the `fsync` function, with the POSIX file\ndescriptor of the I/O unit as argument (retrieved with GNU intrinsic\n`FNUM`). The following example shows how:\n\n \n
            ! Declare the interface for POSIX fsync function\n            interface\n              function fsync (fd) bind(c,name=\"fsync\")\n              use iso_c_binding, only: c_int\n                integer(c_int), value :: fd\n                integer(c_int) :: fsync\n              end function fsync\n            end interface\n          \n            ! Variable declaration\n            integer :: ret\n          \n            ! Opening unit 10\n            open (10,file=\"foo\")\n          \n            ! ...\n            ! Perform I/O on unit 10\n            ! ...\n          \n            ! Flush and sync\n            flush(10)\n            ret = fsync(fnum(10))\n          \n            ! Handle possible error\n            if (ret /= 0) stop \"Error calling FSYNC\"\n
\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" + }, + "GET_COMMAND": { + "doc": "`GET_COMMAND` \u2014 Get the entire command line\n\n### Description\nRetrieve the entire command line that was used to invoke the program.\n\n\n\n### Syntax\n`CALL GET_COMMAND([COMMAND, LENGTH, STATUS])`\n\n\n### Arguments\n\n \n and\nof default kind. \n\n | `LENGTH` | (Optional) Shall be of type `INTEGER` and of\ndefault kind. \n\n | `STATUS` | (Optional) Shall be of type `INTEGER` and of\ndefault kind.\n\n\n\n\n\n\n### Return value\nIf `COMMAND` is present, stores the entire command line that was used\nto invoke the program in `COMMAND`. If `LENGTH` is present, it is\nassigned the length of the command line. If `STATUS` is present, it\nis assigned 0 upon success of the command, -1 if `COMMAND` is too\nshort to store the command line, or a positive value in case of an error.\n\n\n\n### Example\n```\n\n\nPROGRAM test_get_command\n\n\u00a0\u00a0CHARACTER(len=255) :: cmd\n\n\u00a0\u00a0CALL get_command(cmd)\n\n\u00a0\u00a0WRITE (*,*) TRIM(cmd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT\n" + }, + "CO_BROADCAST": { + "doc": "`CO_BROADCAST` \u2014 Copy a value to all images the current set of images\n\n### Description\n`CO_BROADCAST` copies the value of argument `A` on the image with\nimage index `SOURCE_IMAGE` to all images in the current team. `A`\nbecomes defined as if by intrinsic assignment. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_BROADCAST(A, SOURCE_IMAGE [, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | INTENT(INOUT) argument; shall have the same\ndynamic type and type paramters on all images of the current team. If it\nis an array, it shall have the same shape on all images. \n\n | `SOURCE_IMAGE` | a scalar integer expression. \nIt shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n\u00a0\u00a0integer :: val(3)\n\n\u00a0\u00a0if (this_image() == 1) then\n\n\u00a0\u00a0\u00a0\u00a0val = [1, 5, 3]\n\n\u00a0\u00a0end if\n\n\u00a0\u00a0call co_broadcast (val, source_image=1)\n\n\u00a0\u00a0print *, this_image, \":\", val\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MAX, CO_MIN, CO_SUM, CO_REDUCE\n" + }, + "ATOMIC_DEFINE": { + "doc": "`ATOMIC_DEFINE` \u2014 Setting a variable atomically\n\n### Description\n`ATOMIC_DEFINE(ATOM, VALUE)` defines the variable `ATOM` with the value\n`VALUE` atomically. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_DEFINE (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of either integer\ntype with `ATOMIC_INT_KIND` kind or logical type with\n`ATOMIC_LOGICAL_KIND` kind.\n\n \n\n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*]\n\n\u00a0\u00a0call atomic_define (atom[1], this_image())\n\nend program atomic\n\n```\n\n\n\n### Standard\nFortran 2008 and later; with `STAT`, TS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_REF, ATOMIC_CAS, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_AND, ATOMIC_OR, ATOMIC_XOR\n" + }, + "RANDOM_SEED": { + "doc": "`RANDOM_SEED` \u2014 Initialize a pseudo-random number sequence\n\n### Description\nRestarts or queries the state of the pseudorandom number generator used by\n`RANDOM_NUMBER`.\n\n \nIf `RANDOM_SEED` is called without arguments, it is initialized\nto a default state. The example below shows how to initialize the\nrandom seed with a varying seed in order to ensure a different random\nnumber sequence for each invocation of the program. Note that setting\nany of the seed values to zero should be avoided as it can result in\npoor quality random numbers being generated.\n\n\n\n\n### Syntax\n`CALL RANDOM_SEED([SIZE, PUT, GET])`\n\n\n### Arguments\n\n \n | `SIZE` | (Optional) Shall be a scalar and of type default\n`INTEGER`, with `INTENT(OUT)`. It specifies the minimum size\nof the arrays used with the `PUT` and `GET` arguments. \n\n | `PUT` | (Optional) Shall be an array of type default\n`INTEGER` and rank one. It is `INTENT(IN)` and the size of\nthe array must be larger than or equal to the number returned by the\n`SIZE` argument. \n\n | `GET` | (Optional) Shall be an array of type default\n`INTEGER` and rank one. It is `INTENT(OUT)` and the size\nof the array must be larger than or equal to the number returned by\nthe `SIZE` argument.\n\n\n\n\n\n\n### Example\n```\n\n\nsubroutine init_random_seed()\n\n\u00a0\u00a0use iso_fortran_env, only: int64\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0integer, allocatable :: seed(:)\n\n\u00a0\u00a0integer :: i, n, un, istat, dt(8), pid\n\n\u00a0\u00a0integer(int64) :: t\n\n\n\u00a0\u00a0call random_seed(size = n)\n\n\u00a0\u00a0allocate(seed(n))\n\n\u00a0\u00a0! First try if the OS provides a random number generator\n\n\u00a0\u00a0open(newunit=un, file=\"/dev/urandom\", access=\"stream\", &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form=\"unformatted\", action=\"read\", status=\"old\", iostat=istat)\n\n\u00a0\u00a0if (istat == 0) then\n\n\u00a0\u00a0\u00a0\u00a0\u00a0read(un) seed\n\n\u00a0\u00a0\u00a0\u00a0\u00a0close(un)\n\n\u00a0\u00a0else\n\n\u00a0\u00a0\u00a0\u00a0\u00a0! Fallback to XOR:ing the current time and pid. The PID is\n\n\u00a0\u00a0\u00a0\u00a0\u00a0! useful in case one launches multiple instances of the same\n\n\u00a0\u00a0\u00a0\u00a0\u00a0! program in parallel.\n\n\u00a0\u00a0\u00a0\u00a0\u00a0call system_clock(t)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0if (t == 0) then\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0call date_and_time(values=dt)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0t = (dt(1) - 1970) * 365_int64 * 24 * 60 * 60 * 1000 &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+ dt(2) * 31_int64 * 24 * 60 * 60 * 1000 &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+ dt(3) * 24_int64 * 60 * 60 * 1000 &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+ dt(5) * 60 * 60 * 1000 &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+ dt(6) * 60 * 1000 + dt(7) * 1000 &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+ dt(8)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0end if\n\n\u00a0\u00a0\u00a0\u00a0\u00a0pid = getpid()\n\n\u00a0\u00a0\u00a0\u00a0\u00a0t = ieor(t, int(pid, kind(t)))\n\n\u00a0\u00a0\u00a0\u00a0\u00a0do i = 1, n\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0seed(i) = lcg(t)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0end do\n\n\u00a0\u00a0end if\n\n\u00a0\u00a0call random_seed(put=seed)\n\ncontains\n\n\u00a0\u00a0! This simple PRNG might not be good enough for real work, but is\n\n\u00a0\u00a0! sufficient for seeding a better PRNG.\n\n\u00a0\u00a0function lcg(s)\n\n\u00a0\u00a0\u00a0\u00a0integer :: lcg\n\n\u00a0\u00a0\u00a0\u00a0integer(int64) :: s\n\n\u00a0\u00a0\u00a0\u00a0if (s == 0) then\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0s = 104729\n\n\u00a0\u00a0\u00a0\u00a0else\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0s = mod(s, 4294967296_int64)\n\n\u00a0\u00a0\u00a0\u00a0end if\n\n\u00a0\u00a0\u00a0\u00a0s = mod(s * 279470273_int64, 4294967291_int64)\n\n\u00a0\u00a0\u00a0\u00a0lcg = int(mod(s, int(huge(0), int64)), kind(0))\n\n\u00a0\u00a0end function lcg\n\nend subroutine init_random_seed\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nRANDOM_NUMBER\n" + }, + "PACK": { + "doc": "`PACK` \u2014 Pack an array into an array of rank one\n\n### Description\nStores the elements of `ARRAY` in an array of rank one.\n\n \nThe beginning of the resulting array is made up of elements whose `MASK`\nequals `TRUE`. Afterwards, positions are filled with elements taken from\n`VECTOR`.\n\n\n\n\n### Syntax\n`RESULT = PACK(ARRAY, MASK[,VECTOR])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array of any type. \n\n | `MASK` | Shall be an array of type `LOGICAL` and\nof the same size as `ARRAY`. Alternatively, it may be a `LOGICAL`scalar. \n\n | `VECTOR` | (Optional) shall be an array of the same type\nas `ARRAY` and of rank one. If present, the number of elements in\n`VECTOR` shall be equal to or greater than the number of true elements\nin `MASK`. If `MASK` is scalar, the number of elements in\n`VECTOR` shall be equal to or greater than the number of elements in\n`ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is an array of rank one and the same type as that of `ARRAY`. \nIf `VECTOR` is present, the result size is that of `VECTOR`, the\nnumber of `TRUE` values in `MASK` otherwise.\n\n\n\n### Example\nGathering nonzero elements from an array:\n```\n\n\nPROGRAM test_pack_1\n\n\u00a0\u00a0INTEGER :: m(6)\n\n\u00a0\u00a0m = (/ 1, 0, 0, 0, 5, 0 /)\n\n\u00a0\u00a0WRITE(*, FMT=\"(6(I0, ' '))\") pack(m, m /= 0) ! \"1 5\"\n\nEND PROGRAM\n\n```\n\n \nGathering nonzero elements from an array and appending elements from `VECTOR`:\n \n
          PROGRAM test_pack_2\n            INTEGER :: m(4)\n            m = (/ 1, 0, 0, 2 /)\n            WRITE(*, FMT=\"(4(I0, ' '))\") pack(m, m /= 0, (/ 0, 0, 3, 4 /))  ! \"1 2 3 4\"\n          END PROGRAM\n
\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nUNPACK\n" + }, + "NEW_LINE": { + "doc": "`NEW_LINE` \u2014 New line character\n\n### Description\n`NEW_LINE(C)` returns the new-line character.\n\n\n\n### Syntax\n`RESULT = NEW_LINE(C)`\n\n\n### Arguments\n\n \n | `C` | The argument shall be a scalar or array of the\ntype `CHARACTER`.\n\n\n\n\n\n\n### Return value\nReturns a `CHARACTER` scalar of length one with the new-line character of\nthe same kind as parameter `C`.\n\n\n\n### Example\n```\n\n\nprogram newline\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0write(*,'(A)') 'This is record 1.'//NEW_LINE('A')//'This is record 2.'\n\nend program newline\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "DIM": { + "doc": "`DIM` \u2014 Positive difference\n\n### Description\n`DIM(X,Y)` returns the difference `X-Y` if the result is positive;\notherwise returns zero.\n\n\n\n### Syntax\n`RESULT = DIM(X, Y)`\n\n\n### Arguments\n\n \n\n\n | `Y` | The type shall be the same type and kind as `X`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` or `REAL`.\n\n\n\n### Example\n```\n\n\nprogram test_dim\n\n\u00a0\u00a0\u00a0\u00a0integer :: i\n\n\u00a0\u00a0\u00a0\u00a0real(8) :: x\n\n\u00a0\u00a0\u00a0\u00a0i = dim(4, 15)\n\n\u00a0\u00a0\u00a0\u00a0x = dim(4.345_8, 2.111_8)\n\n\u00a0\u00a0\u00a0\u00a0print *, i\n\n\u00a0\u00a0\u00a0\u00a0print *, x\n\nend program test_dim\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DIM(X,Y)` | `REAL(4) X, Y` | `REAL(4)` | Fortran 77 and later\n\n | `IDIM(X,Y)` | `INTEGER(4) X, Y` | `INTEGER(4)` | Fortran 77 and later\n\n | `DDIM(X,Y)` | `REAL(8) X, Y` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "IBCLR": { + "doc": "`IBCLR` \u2014 Clear bit\n\n### Description\n`IBCLR` returns the value of `I` with the bit at position\n`POS` set to zero.\n\n\n\n### Syntax\n`RESULT = IBCLR(I, POS)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIBITS, IBSET, IAND, IOR, IEOR, MVBITS\n\n " + }, + "TRANSPOSE": { + "doc": "`TRANSPOSE` \u2014 Transpose an array of rank two\n\n### Description\nTranspose an array of rank two. Element (i, j) of the result has the value\n`MATRIX(j, i)`, for all i, j.\n\n\n\n### Syntax\n`RESULT = TRANSPOSE(MATRIX)`\n\n\n### Arguments\n\n \n | `MATRIX` | Shall be an array of any type and have a rank of two.\n\n\n\n\n\n\n### Return value\nThe result has the same type as `MATRIX`, and has shape\n`(/ m, n /)` if `MATRIX` has shape `(/ n, m /)`. \n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "ISATTY": { + "doc": "`ISATTY` \u2014 Whether a unit is a terminal device.\n\n### Description\nDetermine whether a unit is connected to a terminal device.\n\n\n\n### Syntax\n`RESULT = ISATTY(UNIT)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if the `UNIT` is connected to a terminal\ndevice, `.FALSE.` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM test_isatty\n\n\u00a0\u00a0INTEGER(kind=1) :: unit\n\n\u00a0\u00a0DO unit = 1, 10\n\n\u00a0\u00a0\u00a0\u00a0write(*,*) isatty(unit=unit)\n\n\u00a0\u00a0END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nTTYNAM\n" + }, + "SCALE": { + "doc": "`SCALE` \u2014 Scale a real value\n\n### Description\n`SCALE(X,I)` returns `X * RADIX(X)**I`.\n\n\n\n### Syntax\n`RESULT = SCALE(X, I)`\n\n\n### Arguments\n\n \n. \n\n | `I` | The type of the argument shall be a `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nIts value is `X * RADIX(X)**I`.\n\n\n\n### Example\n```\n\n\nprogram test_scale\n\n\u00a0\u00a0real :: x = 178.1387e-4\n\n\u00a0\u00a0integer :: i = 5\n\n\u00a0\u00a0print *, scale(x,i), x*radix(x)**i\n\nend program test_scale\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "GERROR": { + "doc": "`GERROR` \u2014 Get last system error message\n\n### Description\nReturns the system error message corresponding to the last system error. \nThis resembles the functionality of `strerror(3)` in C.\n\n\n\n### Syntax\n`CALL GERROR(RESULT)`\n\n\n### Arguments\n\n \n and of default\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_gerror\n\n\u00a0\u00a0CHARACTER(len=100) :: msg\n\n\u00a0\u00a0CALL gerror(msg)\n\n\u00a0\u00a0WRITE(*,*) msg\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nIERRNO, PERROR\n" + }, + "BESSEL_Y0": { + "doc": "`BESSEL_Y0` \u2014 Bessel function of the second kind of order 0\n\n### Description\n`BESSEL_Y0(X)` computes the Bessel function of the second kind of\norder 0 of `X`. This function is available under the name\n`BESY0` as a GNU extension.\n\n\n\n### Syntax\n`RESULT = BESSEL_Y0(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL`. It has the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besy0\n\n\u00a0\u00a0real(8) :: x = 0.0_8\n\n\u00a0\u00a0x = bessel_y0(x)\n\nend program test_besy0\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESY0(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ATOMIC_AND": { + "doc": "`ATOMIC_AND` \u2014 Atomic bitwise AND operation\n\n### Description\n`ATOMIC_AND(ATOM, VALUE)` atomically defines `ATOM` with the bitwise\nAND between the values of `ATOM` and `VALUE`. When `STAT` is present\nand the invokation was successful, it is assigned the value 0. If it is present\nand the invokation has failed, it is assigned a positive value; in particular,\nfor a coindexed `ATOM`, if the remote image has stopped, it is assigned the\nvalue of `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote\nimage has failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_AND (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*]\n\n\u00a0\u00a0call atomic_and (atom[1], int(b'10100011101'))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_AND, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_OR, ATOMIC_XOR\n" + }, + "EVENT_QUERY": { + "doc": "`EVENT_QUERY` \u2014 Query whether a coarray event has occurred\n\n### Description\n`EVENT_QUERY` assignes the number of events to `COUNT` which have been\nposted to the `EVENT` variable and not yet been removed by calling\n`EVENT WAIT`. When `STAT` is present and the invokation was successful,\nit is assigned the value 0. If it is present and the invokation has failed,\nit is assigned a positive value and `COUNT` is assigned the value -1.\n\n\n\n### Syntax\n`CALL EVENT_QUERY (EVENT, COUNT [, STAT])`\n\n\n### Arguments\n\n \n,\ndefined in `ISO_FORTRAN_ENV`; shall not be coindexed. \n\n | `COUNT` | (intent(out))Scalar integer with at least the\nprecision of default integer. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0type(event_type) :: event_value_has_been_set[*]\n\n\u00a0\u00a0integer :: cnt\n\n\u00a0\u00a0if (this_image() == 1) then\n\n\u00a0\u00a0\u00a0\u00a0call event_query (event_value_has_been_set, cnt)\n\n\u00a0\u00a0\u00a0\u00a0if (cnt > 0) write(*,*) \"Value has been set\"\n\n\u00a0\u00a0elseif (this_image() == 2) then\n\n\u00a0\u00a0\u00a0\u00a0event post (event_value_has_been_set[1])\n\n\u00a0\u00a0end if\n\nend program atomic\n\n```\n\n \n\n### Standard\nTS 18508 or later\n\n\n\n### Class\n subroutine\n\n\n" + }, + "SYSTEM": { + "doc": "`SYSTEM` \u2014 Execute a shell command\n\n### Description\nPasses the command `COMMAND` to a shell (see `system(3)`). If\nargument `STATUS` is present, it contains the value returned by\n`system(3)`, which is presumably 0 if the shell command succeeded. \nNote that which shell is used to invoke the command is system-dependent\nand environment-dependent.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n \n\nNote that the `system` function need not be thread-safe. It is\nthe responsibility of the user to ensure that `system` is not\ncalled concurrently.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = SYSTEM(COMMAND)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nEXECUTE_COMMAND_LINE, which is part of the Fortran 2008 standard\nand should considered in new code for future portability. \n" + }, + "IACHAR": { + "doc": "`IACHAR` \u2014 Code in ASCII collating sequence\n\n### Description\n`IACHAR(C)` returns the code for the ASCII character\nin the first character position of `C`.\n\n\n\n### Syntax\n`RESULT = IACHAR(C [, KIND])`\n\n\n### Arguments\n\n \n\n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind.\n\n\n\n### Example\n```\n\n\nprogram test_iachar\n\n\u00a0\u00a0integer i\n\n\u00a0\u00a0i = iachar(' ')\n\nend program test_iachar\n\n```\n\n\n\n### Notes\nSee ICHAR for a discussion of converting between numerical values\nand formatted string representations.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nACHAR, CHAR, ICHAR\n\n " + }, + "PRODUCT": { + "doc": "`PRODUCT` \u2014 Product of array elements\n\n### Description\nMultiplies the elements of `ARRAY` along dimension `DIM` if\nthe corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = PRODUCT(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n,\n`REAL` or `COMPLEX`. \n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the product of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_product\n\n\u00a0\u00a0INTEGER :: x(5) = (/ 1, 2, 3, 4 ,5 /)\n\n\u00a0\u00a0print *, PRODUCT(x) ! all elements, product = 120\n\n\u00a0\u00a0print *, PRODUCT(x, MASK=MOD(x, 2)==1) ! odd elements, product = 15\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nSUM\n" + }, + "XOR": { + "doc": "`XOR` \u2014 Bitwise logical exclusive OR\n\n### Description\nBitwise logical exclusive or.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. For integer arguments, programmers should consider\nthe use of the IEOR intrinsic and for logical arguments the\n`.NEQV.` operator, which are both defined by the Fortran standard.\n\n\n\n\n### Syntax\n`RESULT = XOR(I, J)`\n\n\n### Arguments\n\n \n\ntype or a scalar `LOGICAL` type. \n\n | `J` | The type shall be the same as the type of `I`.\n\n\n\n\n\n\n### Return value\nThe return type is either a scalar `INTEGER` or a scalar\n`LOGICAL`. If the kind type parameters differ, then the\nsmaller kind type is implicitly converted to larger kind, and the\nreturn has the larger kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_xor\n\n\u00a0\u00a0LOGICAL :: T = .TRUE., F = .FALSE.\n\n\u00a0\u00a0INTEGER :: a, b\n\n\u00a0\u00a0DATA a / Z'F' /, b / Z'3' /\n\n\n\u00a0\u00a0WRITE (*,*) XOR(T, T), XOR(T, F), XOR(F, T), XOR(F, F)\n\n\u00a0\u00a0WRITE (*,*) XOR(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFortran 95 elemental function: IEOR\n" + }, + "MAXEXPONENT": { + "doc": "`MAXEXPONENT` \u2014 Maximum exponent of a real kind\n\n### Description\n`MAXEXPONENT(X)` returns the maximum exponent in the model of the\ntype of `X`.\n\n\n\n### Syntax\n`RESULT = MAXEXPONENT(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram exponents\n\n\u00a0\u00a0real(kind=4) :: x\n\n\u00a0\u00a0real(kind=8) :: y\n\n\n\u00a0\u00a0print *, minexponent(x), maxexponent(x)\n\n\u00a0\u00a0print *, minexponent(y), maxexponent(y)\n\nend program exponents\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "ERFC": { + "doc": "`ERFC` \u2014 Error function\n\n### Description\n`ERFC(X)` computes the complementary error function of `X`.\n\n\n\n### Syntax\n`RESULT = ERFC(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and of the same kind as `X`. \nIt lies in the range 0 \\leq erfc (x) \\leq 2 .\n\n\n\n### Example\n```\n\n\nprogram test_erfc\n\n\u00a0\u00a0real(8) :: x = 0.17_8\n\n\u00a0\u00a0x = erfc(x)\n\nend program test_erfc\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DERFC(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "FTELL": { + "doc": "`FTELL` \u2014 Current stream position\n\n### Description\nRetrieves the current position within an open file.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `OFFSET = FTELL(UNIT)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `UNIT` | Shall of type `INTEGER`.\n\n\n\n\n\n\n### Return value\nIn either syntax, `OFFSET` is set to the current offset of unit\nnumber `UNIT`, or to -1 if the unit is not currently open.\n\n\n\n### Example\n```\n\n\nPROGRAM test_ftell\n\n\u00a0\u00a0INTEGER :: i\n\n\u00a0\u00a0OPEN(10, FILE=\"temp.dat\")\n\n\u00a0\u00a0CALL ftell(10,i)\n\n\u00a0\u00a0WRITE(*,*) i\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFSEEK\n" + }, + "CPU_TIME": { + "doc": "`CPU_TIME` \u2014 CPU elapsed time in seconds\n\n### Description\nReturns a `REAL` value representing the elapsed CPU time in\nseconds. This is useful for testing segments of code to determine\nexecution time.\n\n \nIf a time source is available, time will be reported with microsecond\nresolution. If no time source is available, `TIME` is set to\n`-1.0`.\n\n \n\nNote that `TIME` may contain a, system dependent, arbitrary offset\nand may not start with `0.0`. For `CPU_TIME`, the absolute\nvalue is meaningless, only differences between subsequent calls to\nthis subroutine, as shown in the example below, should be used.\n\n\n\n\n### Syntax\n`CALL CPU_TIME(TIME)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\n```\n\n\nprogram test_cpu_time\n\n\u00a0\u00a0\u00a0\u00a0real :: start, finish\n\n\u00a0\u00a0\u00a0\u00a0call cpu_time(start)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0! put code to test here\n\n\u00a0\u00a0\u00a0\u00a0call cpu_time(finish)\n\n\u00a0\u00a0\u00a0\u00a0print '(\"Time = \",f6.3,\" seconds.\")',finish-start\n\nend program test_cpu_time\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nSYSTEM_CLOCK, DATE_AND_TIME\n" + }, + "IALL": { + "doc": "`IALL` \u2014 Bitwise AND of array elements\n\n### Description\nReduces with bitwise AND the elements of `ARRAY` along dimension `DIM`\nif the corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = IALL(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the bitwise ALL of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_iall\n\n\u00a0\u00a0INTEGER(1) :: a(2)\n\n\n\u00a0\u00a0a(1) = b'00100100'\n\n\u00a0\u00a0a(2) = b'01101010'\n\n\n\u00a0\u00a0! prints 00100000\n\n\u00a0\u00a0PRINT '(b8.8)', IALL(a)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nIANY, IPARITY, IAND\n" + }, + "PERROR": { + "doc": "`PERROR` \u2014 Print system error message\n\n### Description\nPrints (on the C `stderr` stream) a newline-terminated error\nmessage corresponding to the last system error. This is prefixed by\n`STRING`, a colon and a space. See `perror(3)`.\n\n\n\n### Syntax\n`CALL PERROR(STRING)`\n\n\n### Arguments\n\n \n and of the\ndefault kind.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nIERRNO\n" + }, + "COMPILER_OPTIONS": { + "doc": "`COMPILER_OPTIONS` \u2014 Options passed to the compiler\n\n### Description\n`COMPILER_OPTIONS` returns a string with the options used for\ncompiling.\n\n\n\n### Syntax\n`STR = COMPILER_OPTIONS()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe return value is a default-kind string with system-dependent length. \nIt contains the compiler flags used to compile the file, which called\nthe `COMPILER_OPTIONS` intrinsic.\n\n\n\n### Example\n```\n\n\nuse iso_fortran_env\n\nprint '(4a)', 'This file was compiled by ', &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0compiler_version(), ' using the options ', &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0compiler_options()\n\nend\n\n```\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nInquiry function of the module `ISO_FORTRAN_ENV`\n\n\n### See also\nCOMPILER_VERSION, ISO_FORTRAN_ENV\n" + }, + "TRANSFER": { + "doc": "`TRANSFER` \u2014 Transfer bit patterns\n\n### Description\nInterprets the bitwise representation of `SOURCE` in memory as if it\nis the representation of a variable or array of the same type and type\nparameters as `MOLD`.\n\n \nThis is approximately equivalent to the C concept of casting one\ntype to another.\n\n\n\n\n### Syntax\n`RESULT = TRANSFER(SOURCE, MOLD[, SIZE])`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be a scalar or an array of any type. \n\n | `MOLD` | Shall be a scalar or an array of any type. \n\n | `SIZE` | (Optional) shall be a scalar of type\n`INTEGER`.\n\n\n\n\n\n\n### Return value\nThe result has the same type as `MOLD`, with the bit level\nrepresentation of `SOURCE`. If `SIZE` is present, the result is\na one-dimensional array of length `SIZE`. If `SIZE` is absent\nbut `MOLD` is an array (of any size or shape), the result is a one-\ndimensional array of the minimum length needed to contain the entirety\nof the bitwise representation of `SOURCE`. If `SIZE` is absent\nand `MOLD` is a scalar, the result is a scalar.\n\n \nIf the bitwise representation of the result is longer than that of\n`SOURCE`, then the leading bits of the result correspond to those of\n`SOURCE` and any trailing bits are filled arbitrarily.\n\n \n\nWhen the resulting bit representation does not correspond to a valid\nrepresentation of a variable of the same type as `MOLD`, the results\nare undefined, and subsequent operations on the result cannot be\nguaranteed to produce sensible behavior. For example, it is possible to\ncreate `LOGICAL` variables for which `VAR` and\n`.NOT.``VAR` both appear to be true.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_transfer\n\n\u00a0\u00a0integer :: x = 2143289344\n\n\u00a0\u00a0print *, transfer(x, 1.0) ! prints \"NaN\" on i686\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "ACHAR": { + "doc": "`ACHAR` \u2014 Character in ASCII collating sequence\n\n### Description\n`ACHAR(I)` returns the character located at position `I`in the ASCII collating sequence.\n\n\n\n### Syntax\n`RESULT = ACHAR(I [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `CHARACTER` with a length of one. \nIf the `KIND` argument is present, the return value is of the\nspecified kind and of the default kind otherwise.\n\n\n\n### Example\n```\n\n\nprogram test_achar\n\n\u00a0\u00a0character c\n\n\u00a0\u00a0c = achar(32)\n\nend program test_achar\n\n```\n\n\n\n### Notes\nSee ICHAR for a discussion of converting between numerical values\nand formatted string representations.\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCHAR, IACHAR, ICHAR\n\n " + }, + "SHAPE": { + "doc": "`SHAPE` \u2014 Determine the shape of an array\n\n### Description\nDetermines the shape of an array.\n\n\n\n### Syntax\n`RESULT = SHAPE(SOURCE [, KIND])`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be an array or scalar of any type. \nIf `SOURCE` is a pointer it must be associated and allocatable\narrays must be allocated. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nAn `INTEGER` array of rank one with as many elements as `SOURCE`\nhas dimensions. The elements of the resulting array correspond to the extend\nof `SOURCE` along the respective dimensions. If `SOURCE` is a scalar,\nthe result is the rank one array of size zero. If `KIND` is absent, the\nreturn value has the default integer kind otherwise the specified kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_shape\n\n\u00a0\u00a0INTEGER, DIMENSION(-1:1, -1:2) :: A\n\n\u00a0\u00a0WRITE(*,*) SHAPE(A) ! (/ 3, 4 /)\n\n\u00a0\u00a0WRITE(*,*) SIZE(SHAPE(42)) ! (/ /)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nRESHAPE, SIZE\n" + }, + "IMAGE_INDEX": { + "doc": "`IMAGE_INDEX` \u2014 Function that converts a cosubscript to an image index\n\n### Description\nReturns the image index belonging to a cosubscript.\n\n\n\n### Syntax\n`RESULT = IMAGE_INDEX(COARRAY, SUB)`\n\n\n### Return value\nScalar default integer with the value of the image index which corresponds\nto the cosubscripts. For invalid cosubscripts the result is zero.\n\n\n\n### Example\n```\n\n\nINTEGER :: array[2,-1:4,8,*]\n\n! Writes 28 (or 0 if there are fewer than 28 images)\n\nWRITE (*,*) IMAGE_INDEX (array, [2,0,3,1])\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nInquiry function.\n\n\n\n### See also\nTHIS_IMAGE, NUM_IMAGES\n" + }, + "ACOSD": { + "doc": "`ACOSD` \u2014 Arccosine function, degrees\n\n### Description\nACOSD(X) computes the arccosine of X in degrees (inverse of COSD(X)).\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ACOSD(X)\n### Arguments\n- X: The type shall either be REAL with a magnitude that is less than or equal to one - or the type shall be COMPLEX.\n### Return value\nThe return value is of the same type and kind as X. The real part of the result is in degrees and lies in the range 0 \\leq \\Re \\acos(x) \\leq 180.\n" + }, + "SHIFTA": { + "doc": "`SHIFTA` \u2014 Right shift with fill\n\n### Description\n`SHIFTA` returns a value corresponding to `I` with all of the\nbits shifted right by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the right end are lost. The fill is arithmetic: the\nbits shifted in from the left end are equal to the leftmost bit, which in\ntwo's complement representation is the sign bit.\n\n\n\n### Syntax\n`RESULT = SHIFTA(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nSHIFTL, SHIFTR\n" + }, + "FPUT": { + "doc": "`FPUT` \u2014 Write a single character in stream mode to stdout\n\n### Description\nWrite a single character in stream mode to stdout by bypassing normal\nformatted output. Stream I/O should not be mixed with normal record-oriented\n(formatted or unformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility with\n*g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FPUT(C)`
\n\n\n\n\n\n### Arguments\n\n \n and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fput\n\n\u00a0\u00a0CHARACTER(len=10) :: str = \"gfortran\"\n\n\u00a0\u00a0INTEGER :: i\n\n\u00a0\u00a0DO i = 1, len_trim(str)\n\n\u00a0\u00a0\u00a0\u00a0CALL fput(str(i:i))\n\n\u00a0\u00a0END DO\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFPUTC, FGET, FGETC\n" + }, + "BTEST": { + "doc": "`BTEST` \u2014 Bit test function\n\n### Description\n`BTEST(I,POS)` returns logical `.TRUE.` if the bit at `POS`\nin `I` is set. The counting of the bits starts at 0.\n\n\n\n### Syntax\n`RESULT = BTEST(I, POS)`\n\n\n### Arguments\n\n \n. \n\n | `POS` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL`\n\n\n### Example\n```\n\n\nprogram test_btest\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 32768 + 1024 + 64\n\n\u00a0\u00a0\u00a0\u00a0integer :: pos\n\n\u00a0\u00a0\u00a0\u00a0logical :: bool\n\n\u00a0\u00a0\u00a0\u00a0do pos=0,16\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bool = btest(i, pos)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print *, pos, bool\n\n\u00a0\u00a0\u00a0\u00a0end do\n\nend program test_btest\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "POPPAR": { + "doc": "`POPPAR` \u2014 Parity of the number of bits set\n\n### Description\n`POPPAR(I)` returns parity of the integer `I`, i.e. the parity\nof the number of bits set ('1' bits) in the binary representation of\n`I`. It is equal to 0 if `I` has an even number of bits set,\nand 1 for an odd number of '1' bits.\n\n\n\n### Syntax\n`RESULT = POPPAR(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Example\n```\n\n\nprogram test_population\n\n\u00a0\u00a0print *, popcnt(127), poppar(127)\n\n\u00a0\u00a0print *, popcnt(huge(0_4)), poppar(huge(0_4))\n\n\u00a0\u00a0print *, popcnt(huge(0_8)), poppar(huge(0_8))\n\nend program test_population\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nPOPCNT, LEADZ, TRAILZ\n\n\n" + }, + "C_SIZEOF": { + "doc": "`C_SIZEOF` \u2014 Size in bytes of an expression\n\n### Description\n`C_SIZEOF(X)` calculates the number of bytes of storage the\nexpression `X` occupies.\n\n\n\n### Syntax\n`N = C_SIZEOF(X)`\n\n\n### Arguments\n\n \n | `X` | The argument shall be an interoperable data entity.\n\n\n\n\n\n\n### Return value\nThe return value is of type integer and of the system-dependent kind\n`C_SIZE_T` (from the `ISO_C_BINDING` module). Its value is the\nnumber of bytes occupied by the argument. If the argument has the\n`POINTER` attribute, the number of bytes of the storage area pointed\nto is returned. If the argument is of a derived type with `POINTER`or `ALLOCATABLE` components, the return value does not account for\nthe sizes of the data pointed to by these components.\n\n\n\n### Example\n```\n\n\nuse iso_c_binding\n\ninteger(c_int) :: i\n\nreal(c_float) :: r, s(5)\n\nprint *, (c_sizeof(s)/c_sizeof(r) == 5)\n\nend\n\n```\n\n \nThe example will print `.TRUE.` unless you are using a platform\nwhere default `REAL` variables are unusually padded.\n\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nInquiry function of the module `ISO_C_BINDING`\n\n\n### See also\nSIZEOF, STORAGE_SIZE\n" + }, + "ATOMIC_ADD": { + "doc": "`ATOMIC_ADD` \u2014 Atomic ADD operation\n\n### Description\n`ATOMIC_ADD(ATOM, VALUE)` atomically adds the value of `VAR` to the\nvariable `ATOM`. When `STAT` is present and the invokation was\nsuccessful, it is assigned the value 0. If it is present and the invokation\nhas failed, it is assigned a positive value; in particular, for a coindexed\n`ATOM`, if the remote image has stopped, it is assigned the value of\n`ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has\nfailed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_ADD (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*]\n\n\u00a0\u00a0call atomic_add (atom[1], this_image())\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_ADD, ISO_FORTRAN_ENV,\nATOMIC_AND, ATOMIC_OR, ATOMIC_XOR\n" + }, + "TAND": { + "doc": "`TAND` \u2014 Tangent function, degrees\n\n### Description\nTAND(X) computes the tangent of X in degrees.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = TAND(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n### Return value\nThe return value has same type and kind as X, and its value is in degrees.\n" + }, + "ACOSH": { + "doc": "`ACOSH` \u2014 Inverse hyperbolic cosine function\n\n### Description\n`ACOSH(X)` computes the inverse hyperbolic cosine of `X`.\n\n\n\n### Syntax\n`RESULT = ACOSH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has the same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians and lies between\n 0 \\leq \\Im \\acosh(x) \\leq \\pi.\n\n\n\n### Example\n```\n\n\nPROGRAM test_acosh\n\n\u00a0\u00a0REAL(8), DIMENSION(3) :: x = (/ 1.0, 2.0, 3.0 /)\n\n\u00a0\u00a0WRITE (*,*) ACOSH(x)\n\nEND PROGRAM\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DACOSH(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: COSH\n" + }, + "SELECTED_REAL_KIND": { + "doc": "`SELECTED_REAL_KIND` \u2014 Choose real kind\n\n### Description\n`SELECTED_REAL_KIND(P,R)` returns the kind value of a real data type\nwith decimal precision of at least `P` digits, exponent range of\nat least `R`, and with a radix of `RADIX`.\n\n\n\n### Syntax\n`RESULT = SELECTED_REAL_KIND([P, R, RADIX])`\n\n\n### Arguments\n\n \n. \n\n | `R` | (Optional) shall be a scalar and of type `INTEGER`. \n\n | `RADIX` | (Optional) shall be a scalar and of type `INTEGER`.\n\n\nBefore Fortran 2008, at least one of the arguments `R` or `P` shall\nbe present; since Fortran 2008, they are assumed to be zero if absent.\n\n\n\n\n### Return value\n\n`SELECTED_REAL_KIND` returns the value of the kind type parameter of\na real data type with decimal precision of at least `P` digits, a\ndecimal exponent range of at least `R`, and with the requested\n`RADIX`. If the `RADIX` parameter is absent, real kinds with\nany radix can be returned. If more than one real data type meet the\ncriteria, the kind of the data type with the smallest decimal precision\nis returned. If no real data type matches the criteria, the result is\n
\n**-1 if the processor does not support a real data type with a** precision greater than or equal to `P`, but the `R` and\n`RADIX` requirements can be fulfilled\n\n**-2 if the processor does not support a real type with an exponent** range greater than or equal to `R`, but `P` and `RADIX`are fulfillable\n\n**-3 if `RADIX` but not `P` and `R` requirements** are fulfillable\n\n**-4 if `RADIX` and either `P` or `R` requirements** are fulfillable\n\n
-5 if there is no real type with the given `RADIX`
\n\n\n\n### Example\n```\n\n\nprogram real_kinds\n\n\u00a0\u00a0integer,parameter :: p6 = selected_real_kind(6)\n\n\u00a0\u00a0integer,parameter :: p10r100 = selected_real_kind(10,100)\n\n\u00a0\u00a0integer,parameter :: r400 = selected_real_kind(r=400)\n\n\u00a0\u00a0real(kind=p6) :: x\n\n\u00a0\u00a0real(kind=p10r100) :: y\n\n\u00a0\u00a0real(kind=r400) :: z\n\n\n\u00a0\u00a0print *, precision(x), range(x)\n\n\u00a0\u00a0print *, precision(y), range(y)\n\n\u00a0\u00a0print *, precision(z), range(z)\n\nend program real_kinds\n\n```\n\n \n\n### Standard\nFortran 95 and later, with `RADIX` Fortran 2008 or later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nPRECISION, RANGE, RADIX\n\n\n" + }, + "FGETC": { + "doc": "`FGETC` \u2014 Read a single character in stream mode\n\n### Description\nRead a single character in stream mode by bypassing normal formatted output. \nStream I/O should not be mixed with normal record-oriented (formatted or\nunformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility\nwith *g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FGETC(UNIT, C)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `C` | The type shall be `CHARACTER` and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fgetc\n\n\u00a0\u00a0INTEGER :: fd = 42, status\n\n\u00a0\u00a0CHARACTER :: c\n\n\n\u00a0\u00a0OPEN(UNIT=fd, FILE=\"/etc/passwd\", ACTION=\"READ\", STATUS = \"OLD\")\n\n\u00a0\u00a0DO\n\n\u00a0\u00a0\u00a0\u00a0CALL fgetc(fd, c, status)\n\n\u00a0\u00a0\u00a0\u00a0IF (status /= 0) EXIT\n\n\u00a0\u00a0\u00a0\u00a0call fput(c)\n\n\u00a0\u00a0END DO\n\n\u00a0\u00a0CLOSE(UNIT=fd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFGET, FPUT, FPUTC\n" + }, + "EXIT": { + "doc": "`EXIT` \u2014 Exit the program with status.\n\n### Description\n`EXIT` causes immediate termination of the program with status. If status\nis omitted it returns the canonical success for the system. All Fortran\nI/O units are closed.\n\n\n\n### Syntax\n`CALL EXIT([STATUS])`\n\n\n### Arguments\n\n \n of the default kind.\n\n\n\n\n\n\n### Return value\n`STATUS` is passed to the parent process on exit.\n\n\n\n### Example\n```\n\n\nprogram test_exit\n\n\u00a0\u00a0integer :: STATUS = 0\n\n\u00a0\u00a0print *, 'This program is going to exit.'\n\n\u00a0\u00a0call EXIT(STATUS)\n\nend program test_exit\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nABORT, KILL\n" + }, + "SELECTED_CHAR_KIND": { + "doc": "`SELECTED_CHAR_KIND` \u2014 Choose character kind\n\n### Description\n\n`SELECTED_CHAR_KIND(NAME)` returns the kind value for the character\nset named `NAME`, if a character set with such a name is supported,\nor -1 otherwise. Currently, supported character sets include\n\u201cASCII\u201d and \u201cDEFAULT\u201d, which are equivalent, and \u201cISO_10646\u201d\n(Universal Character Set, UCS-4) which is commonly known as Unicode.\n\n\n\n### Syntax\n`RESULT = SELECTED_CHAR_KIND(NAME)`\n\n\n### Arguments\n\n \n | `NAME` | Shall be a scalar and of the default character type.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram character_kind\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0integer, parameter :: ascii = selected_char_kind (\"ascii\")\n\n\u00a0\u00a0integer, parameter :: ucs4 = selected_char_kind ('ISO_10646')\n\n\n\u00a0\u00a0character(kind=ascii, len=26) :: alphabet\n\n\u00a0\u00a0character(kind=ucs4, len=30) :: hello_world\n\n\n\u00a0\u00a0alphabet = ascii_\"abcdefghijklmnopqrstuvwxyz\"\n\n\u00a0\u00a0hello_world = ucs4_'Hello World and Ni Hao -- ' &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0// char (int (z'4F60'), ucs4) &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0// char (int (z'597D'), ucs4)\n\n\n\u00a0\u00a0write (*,*) alphabet\n\n\n\u00a0\u00a0open (output_unit, encoding='UTF-8')\n\n\u00a0\u00a0write (*,*) trim (hello_world)\n\nend program character_kind\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "BLE": { + "doc": "`BLE` \u2014 Bitwise less than or equal to\n\n### Description\nDetermines whether an integral is a bitwise less than or equal to\nanother.\n\n\n\n### Syntax\n`RESULT = BLE(I, J)`\n\n\n### Arguments\n\n \n type. \n\n | `J` | Shall be of `INTEGER` type, and of the same kind\nas `I`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL` and of the default kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nBGT, BGE, BLT\n" + }, + "MALLOC": { + "doc": "`MALLOC` \u2014 Allocate dynamic memory\n\n### Description\n`MALLOC(SIZE)` allocates `SIZE` bytes of dynamic memory and\nreturns the address of the allocated memory. The `MALLOC` intrinsic\nis an extension intended to be used with Cray pointers, and is provided\nin GNU Fortran to allow the user to compile legacy code. For new code\nusing Fortran 95 pointers, the memory allocation intrinsic is\n`ALLOCATE`.\n\n\n\n### Syntax\n`PTR = MALLOC(SIZE)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER(K)`, with `K` such that\nvariables of type `INTEGER(K)` have the same size as\nC pointers (`sizeof(void *)`).\n\n\n\n### Example\nThe following example demonstrates the use of `MALLOC` and\n`FREE` with Cray pointers.\n\n```\n\n\nprogram test_malloc\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0integer i\n\n\u00a0\u00a0real*8 x(*), z\n\n\u00a0\u00a0pointer(ptr_x,x)\n\n\n\u00a0\u00a0ptr_x = malloc(20*8)\n\n\u00a0\u00a0do i = 1, 20\n\n\u00a0\u00a0\u00a0\u00a0x(i) = sqrt(1.0d0 / i)\n\n\u00a0\u00a0end do\n\n\u00a0\u00a0z = 0\n\n\u00a0\u00a0do i = 1, 20\n\n\u00a0\u00a0\u00a0\u00a0z = z + x(i)\n\n\u00a0\u00a0\u00a0\u00a0print *, z\n\n\u00a0\u00a0end do\n\n\u00a0\u00a0call free(ptr_x)\n\nend program test_malloc\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFREE\n" + }, + "C_ASSOCIATED": { + "doc": "`C_ASSOCIATED` \u2014 Status of a C pointer\n\n### Description\n`C_ASSOCIATED(c_ptr_1[, c_ptr_2])` determines the status of the C pointer\n`c_ptr_1` or if `c_ptr_1` is associated with the target `c_ptr_2`.\n\n\n\n### Syntax\n`RESULT = C_ASSOCIATED(c_ptr_1[, c_ptr_2])`\n\n\n### Arguments\n\n \n. \n\n | `c_ptr_2` | (Optional) Scalar of the same type as `c_ptr_1`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `LOGICAL`; it is `.false.` if either\n`c_ptr_1` is a C NULL pointer or if `c_ptr1` and `c_ptr_2`\npoint to different addresses.\n\n\n\n### Example\n```\n\n\nsubroutine association_test(a,b)\n\n\u00a0\u00a0use iso_c_binding, only: c_associated, c_loc, c_ptr\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0real, pointer :: a\n\n\u00a0\u00a0type(c_ptr) :: b\n\n\u00a0\u00a0if(c_associated(b, c_loc(a))) &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0stop 'b and a do not point to same target'\n\nend subroutine association_test\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nC_LOC, C_FUNLOC\n" + }, + "IS_IOSTAT_EOR": { + "doc": "`IS_IOSTAT_EOR` \u2014 Test for end-of-record value\n\n### Description\n`IS_IOSTAT_EOR` tests whether an variable has the value of the I/O\nstatus \u201cend of record\u201d. The function is equivalent to comparing the\nvariable with the `IOSTAT_EOR` parameter of the intrinsic module\n`ISO_FORTRAN_ENV`.\n\n\n\n### Syntax\n`RESULT = IS_IOSTAT_EOR(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nReturns a `LOGICAL` of the default kind, which `.TRUE.` if\n`I` has the value which indicates an end of file condition for\n`IOSTAT=` specifiers, and is `.FALSE.` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM iostat\n\n\u00a0\u00a0IMPLICIT NONE\n\n\u00a0\u00a0INTEGER :: stat, i(50)\n\n\u00a0\u00a0OPEN(88, FILE='test.dat', FORM='UNFORMATTED')\n\n\u00a0\u00a0READ(88, IOSTAT=stat) i\n\n\u00a0\u00a0IF(IS_IOSTAT_EOR(stat)) STOP 'END OF RECORD'\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "FREE": { + "doc": "`FREE` \u2014 Frees memory\n\n### Description\nFrees memory previously allocated by `MALLOC`. The `FREE`intrinsic is an extension intended to be used with Cray pointers, and is\nprovided in GNU Fortran to allow user to compile legacy code. For\nnew code using Fortran 95 pointers, the memory de-allocation intrinsic is\n`DEALLOCATE`.\n\n\n\n### Syntax\n`CALL FREE(PTR)`\n\n\n### Arguments\n\n \n. It represents the\nlocation of the memory that should be de-allocated.\n\n\n\n\n\n\n### Return value\nNone\n\n\n\n### Example\nSee `MALLOC` for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nMALLOC\n" + }, + "COUNT": { + "doc": "`COUNT` \u2014 Count function\n\n### Description\n\nCounts the number of `.TRUE.` elements in a logical `MASK`,\nor, if the `DIM` argument is supplied, counts the number of\nelements along each row of the array in the `DIM` direction. \nIf the array has zero size, or all of the elements of `MASK` are\n`.FALSE.`, then the result is `0`.\n\n\n\n### Syntax\n`RESULT = COUNT(MASK [, DIM, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `DIM` | (Optional) The type shall be `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is present, the result is an array with a rank one less\nthan the rank of `ARRAY`, and a size corresponding to the shape\nof `ARRAY` with the `DIM` dimension removed.\n\n\n\n### Example\n```\n\n\nprogram test_count\n\n\u00a0\u00a0\u00a0\u00a0integer, dimension(2,3) :: a, b\n\n\u00a0\u00a0\u00a0\u00a0logical, dimension(2,3) :: mask\n\n\u00a0\u00a0\u00a0\u00a0a = reshape( (/ 1, 2, 3, 4, 5, 6 /), (/ 2, 3 /))\n\n\u00a0\u00a0\u00a0\u00a0b = reshape( (/ 0, 7, 3, 4, 5, 8 /), (/ 2, 3 /))\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(1,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a(2,:)\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', b(1,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', b(2,:)\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0mask = a.ne.b\n\n\u00a0\u00a0\u00a0\u00a0print '(3l3)', mask(1,:)\n\n\u00a0\u00a0\u00a0\u00a0print '(3l3)', mask(2,:)\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', count(mask)\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', count(mask, 1)\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', count(mask, 2)\n\nend program test_count\n\n```\n\n \n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "CMPLX": { + "doc": "`CMPLX` \u2014 Complex conversion function\n\n### Description\n`CMPLX(X [, Y [, KIND]])` returns a complex number where `X` is converted to\nthe real component. If `Y` is present it is converted to the imaginary\ncomponent. If `Y` is not present then the imaginary component is set to\n0.0. If `X` is complex then `Y` must not be present.\n\n\n\n### Syntax\n`RESULT = CMPLX(X [, Y [, KIND]])`\n\n\n### Arguments\n\n \n,\nor `COMPLEX`. \n\n | `Y` | (Optional; only allowed if `X` is not\n`COMPLEX`.) May be `INTEGER` or `REAL`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of `COMPLEX` type, with a kind equal to\n`KIND` if it is specified. If `KIND` is not specified, the\nresult is of the default `COMPLEX` kind, regardless of the kinds of\n`X` and `Y`.\n\n\n\n### Example\n```\n\n\nprogram test_cmplx\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 42\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 3.14\n\n\u00a0\u00a0\u00a0\u00a0complex :: z\n\n\u00a0\u00a0\u00a0\u00a0z = cmplx(i, x)\n\n\u00a0\u00a0\u00a0\u00a0print *, z, cmplx(x)\n\nend program test_cmplx\n\n```\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCOMPLEX\n" + }, + "RANK": { + "doc": "`RANK` \u2014 Rank of a data object\n\n### Description\n`RANK(A)` returns the rank of a scalar or array data object.\n\n\n\n### Syntax\n`RESULT = RANK(A)`\n\n\n### Arguments\n\n \n | `A` | can be of any type\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind. For arrays, their rank is returned; for scalars zero is returned.\n\n\n\n### Example\n```\n\n\nprogram test_rank\n\n\u00a0\u00a0integer :: a\n\n\u00a0\u00a0real, allocatable :: b(:,:)\n\n\n\u00a0\u00a0print *, rank(a), rank(b) ! Prints: 0 2\n\nend program test_rank\n\n```\n\n \n\n### Standard\nTechnical Specification (TS) 29113\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "MASKL": { + "doc": "`MASKL` \u2014 Left justified mask\n\n### Description\n`MASKL(I[, KIND])` has its leftmost `I` bits set to 1, and the\nremaining bits set to 0.\n\n\n\n### Syntax\n`RESULT = MASKL(I[, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | Shall be a scalar constant expression of type\n`INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`. If `KIND` is present, it\nspecifies the kind value of the return type; otherwise, it is of the\ndefault integer kind.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMASKR\n" + }, + "FINDLOC": { + "doc": "`FINDLOC` \u2014 Search an array for a value\n\n### Description\nDetermines the location of the element in the array with the value given in the VALUE argument, or, if the DIM argument is supplied, determines the locations of the maximum element along each row of the array in the DIM direction. If MASK is present, only the elements for which MASK is .TRUE. are considered. If more than one element in the array has the value VALUE, the location returned is that of the first such element in array element order if the BACK is not present or if it is .FALSE.. If BACK is true, the location returned is that of the last such element. If the array has zero size, or all of the elements of MASK are .FALSE., then the result is an array of zeroes. Similarly, if DIM is supplied and all of the elements of MASK along a given row are zero, the result value for that row is zero.\n### Standard\nFortran 2008 and later.\n### Class\nTransformational function\n### Syntax\nRESULT = FINDLOC(ARRAY, VALUE, DIM [, MASK] [,KIND] [,BACK])\nRESULT = FINDLOC(ARRAY, VALUE, [, MASK] [,KIND] [,BACK])\n### Arguments\n- ARRAY: Shall be an array of intrinsic type.\n- VALUE: A scalar of intrinsic type which is in type conformance with ARRAY.\n- DIM: (Optional) Shall be a scalar of type INTEGER, with a value between one and the rank of ARRAY, inclusive. It may not be an optional dummy argument.\n- KIND: (Optional) An INTEGER initialization expression indicating the kind parameter of the result.\n- BACK: (Optional) A scalar of type LOGICAL.\n### Return value\nIf DIM is absent, the result is a rank-one array with a length equal to the rank of ARRAY. If DIM is present, the result is an array with a rank one less than the rank of ARRAY, and a size corresponding to the size of ARRAY with the DIM dimension removed. If DIM is present and ARRAY has a rank of one, the result is a scalar. If the optional argument KIND is present, the result is an integer of kind KIND, otherwise it is of default kind.\n" + }, + "CHMOD": { + "doc": "`CHMOD` \u2014 Change access permissions of files\n\n### Description\n`CHMOD` changes the permissions of a file.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = CHMOD(NAME, MODE)`
\n\n\n\n\n\n### Arguments\n\n \n\n | `NAME` | Scalar `CHARACTER` of default kind with the\nfile name. Trailing blanks are ignored unless the character\n`achar(0)` is present, then all characters up to and excluding\n`achar(0)` are used as the file name.\n\n \n\n\n | `MODE` | Scalar `CHARACTER` of default kind giving the\nfile permission. `MODE` uses the same syntax as the `chmod` utility\nas defined by the POSIX standard. The argument shall either be a string of\na nonnegative octal number or a symbolic mode.\n\n \n\n\n | `STATUS` | (optional) scalar `INTEGER`, which is\n`0` on success and nonzero otherwise.\n\n\n\n\n\n\n### Return value\nIn either syntax, `STATUS` is set to `0` on success and nonzero\notherwise.\n\n\n\n### Example\n`CHMOD` as subroutine\n```\n\n\nprogram chmod_test\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0integer :: status\n\n\u00a0\u00a0call chmod('test.dat','u+x',status)\n\n\u00a0\u00a0print *, 'Status: ', status\n\nend program chmod_test\n\n```\n\n \n`CHMOD` as function:\n \n
          program chmod_test\n            implicit none\n            integer :: status\n            status = chmod('test.dat','u+x')\n            print *, 'Status: ', status\n          end program chmod_test\n
\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n" + }, + "COSH": { + "doc": "`COSH` \u2014 Hyperbolic cosine function\n\n### Description\n`COSH(X)` computes the hyperbolic cosine of `X`.\n\n\n\n### Syntax\n`X = COSH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`. If `X` is\ncomplex, the imaginary part of the result is in radians. If `X`\nis `REAL`, the return value has a lower bound of one,\n\\cosh (x) \\geq 1.\n\n\n\n### Example\n```\n\n\nprogram test_cosh\n\n\u00a0\u00a0real(8) :: x = 1.0_8\n\n\u00a0\u00a0x = cosh(x)\n\nend program test_cosh\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `COSH(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DCOSH(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: ACOSH\n\n " + }, + "LSHIFT": { + "doc": "`LSHIFT` \u2014 Left shift bits\n\n### Description\n`LSHIFT` returns a value corresponding to `I` with all of the\nbits shifted left by `SHIFT` places. If the absolute value of\n`SHIFT` is greater than `BIT_SIZE(I)`, the value is undefined. \nBits shifted out from the left end are lost; zeros are shifted in from\nthe opposite end.\n\n \nThis function has been superseded by the `ISHFT` intrinsic, which\nis standard in Fortran 95 and later, and the `SHIFTL` intrinsic,\nwhich is standard in Fortran 2008 and later.\n\n\n\n\n### Syntax\n`RESULT = LSHIFT(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFT, ISHFTC, RSHIFT, SHIFTA, SHIFTL,\nSHIFTR\n\n " + }, + "HUGE": { + "doc": "`HUGE` \u2014 Largest number of a kind\n\n### Description\n`HUGE(X)` returns the largest number that is not an infinity in\nthe model of the type of `X`.\n\n\n\n### Syntax\n`RESULT = HUGE(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`\n\n\n\n### Example\n```\n\n\nprogram test_huge_tiny\n\n\u00a0\u00a0print *, huge(0), huge(0.0), huge(0.0d0)\n\n\u00a0\u00a0print *, tiny(0.0), tiny(0.0d0)\n\nend program test_huge_tiny\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "TIME": { + "doc": "`TIME` \u2014 Time function\n\n### Description\nReturns the current time encoded as an integer (in the manner of the\nfunction `time(3)` in the C standard library). This value is\nsuitable for passing to `CTIME`, `GMTIME`, and `LTIME`.\n\n \nThis intrinsic is not fully portable, such as to systems with 32-bit\n`INTEGER` types but supporting times wider than 32 bits. Therefore,\nthe values returned by this intrinsic might be, or become, negative, or\nnumerically less than previous values, during a single run of the\ncompiled program.\n\n \n\nSee TIME8, for information on a similar intrinsic that might be\nportable to more GNU Fortran implementations, though to fewer Fortran\ncompilers.\n\n\n\n\n### Syntax\n`RESULT = TIME()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(4)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK, TIME8\n\n " + }, + "SQRT": { + "doc": "`SQRT` \u2014 Square-root function\n\n### Description\n`SQRT(X)` computes the square root of `X`.\n\n\n\n### Syntax\n`RESULT = SQRT(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` or `COMPLEX`. \nThe kind type parameter is the same as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_sqrt\n\n\u00a0\u00a0real(8) :: x = 2.0_8\n\n\u00a0\u00a0complex :: z = (1.0, 2.0)\n\n\u00a0\u00a0x = sqrt(x)\n\n\u00a0\u00a0z = sqrt(z)\n\nend program test_sqrt\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `SQRT(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DSQRT(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n | `CSQRT(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | Fortran 95 and later\n\n | `ZSQRT(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n | `CDSQRT(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "SIN": { + "doc": "`SIN` \u2014 Sine function\n\n### Description\n`SIN(X)` computes the sine of `X`.\n\n\n\n### Syntax\n`RESULT = SIN(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_sin\n\n\u00a0\u00a0real :: x = 0.0\n\n\u00a0\u00a0x = sin(x)\n\nend program test_sin\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `SIN(X)` | `REAL(4) X` | `REAL(4)` | f77, gnu\n\n | `DSIN(X)` | `REAL(8) X` | `REAL(8)` | f95, gnu\n\n | `CSIN(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | f95, gnu\n\n | `ZSIN(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n | `CDSIN(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nASIN\n" + }, + "TIME8": { + "doc": "`TIME8` \u2014 Time function (64-bit)\n\n### Description\nReturns the current time encoded as an integer (in the manner of the\nfunction `time(3)` in the C standard library). This value is\nsuitable for passing to `CTIME`, `GMTIME`, and `LTIME`.\n\n \nWarning: this intrinsic does not increase the range of the timing\nvalues over that returned by `time(3)`. On a system with a 32-bit\n`time(3)`, `TIME8` will return a 32-bit value, even though\nit is converted to a 64-bit `INTEGER(8)` value. That means\noverflows of the 32-bit value can still occur. Therefore, the values\nreturned by this intrinsic might be or become negative or numerically\nless than previous values during a single run of the compiled program.\n\n\n\n\n### Syntax\n`RESULT = TIME8()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(8)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK8, TIME\n\n " + }, + "RADIX": { + "doc": "`RADIX` \u2014 Base of a model number\n\n### Description\n`RADIX(X)` returns the base of the model representing the entity `X`.\n\n\n\n### Syntax\n`RESULT = RADIX(X)`\n\n\n### Arguments\n\n \n\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `INTEGER` and of the default\ninteger kind.\n\n\n\n### Example\n```\n\n\nprogram test_radix\n\n\u00a0\u00a0print *, \"The radix for the default integer kind is\", radix(0)\n\n\u00a0\u00a0print *, \"The radix for the default real kind is\", radix(0.0)\n\nend program test_radix\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nSELECTED_REAL_KIND\n\n\n" + }, + "DOT_PRODUCT": { + "doc": "`DOT_PRODUCT` \u2014 Dot product function\n\n### Description\n`DOT_PRODUCT(VECTOR_A, VECTOR_B)` computes the dot product multiplication\nof two vectors `VECTOR_A` and `VECTOR_B`. The two vectors may be\neither numeric or logical and must be arrays of rank one and of equal size. If\nthe vectors are `INTEGER` or `REAL`, the result is\n`SUM(VECTOR_A*VECTOR_B)`. If the vectors are `COMPLEX`, the result\nis `SUM(CONJG(VECTOR_A)*VECTOR_B)`. If the vectors are `LOGICAL`,\nthe result is `ANY(VECTOR_A .AND. VECTOR_B)`.\n\n\n\n### Syntax\n`RESULT = DOT_PRODUCT(VECTOR_A, VECTOR_B)`\n\n\n### Arguments\n\n \n, rank 1. \n\n | `VECTOR_B` | The type shall be numeric if `VECTOR_A` is of numeric type or `LOGICAL` if `VECTOR_A` is of type `LOGICAL`. `VECTOR_B` shall be a rank-one array.\n\n\n\n\n\n\n### Return value\nIf the arguments are numeric, the return value is a scalar of numeric type,\n`INTEGER`, `REAL`, or `COMPLEX`. If the arguments are\n`LOGICAL`, the return value is `.TRUE.` or `.FALSE.`.\n\n\n\n### Example\n```\n\n\nprogram test_dot_prod\n\n\u00a0\u00a0\u00a0\u00a0integer, dimension(3) :: a, b\n\n\u00a0\u00a0\u00a0\u00a0a = (/ 1, 2, 3 /)\n\n\u00a0\u00a0\u00a0\u00a0b = (/ 4, 5, 6 /)\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', a\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print '(3i3)', b\n\n\u00a0\u00a0\u00a0\u00a0print *\n\n\u00a0\u00a0\u00a0\u00a0print *, dot_product(a,b)\n\nend program test_dot_prod\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "ATOMIC_OR": { + "doc": "`ATOMIC_OR` \u2014 Atomic bitwise OR operation\n\n### Description\n`ATOMIC_OR(ATOM, VALUE)` atomically defines `ATOM` with the bitwise\nAND between the values of `ATOM` and `VALUE`. When `STAT` is present\nand the invokation was successful, it is assigned the value 0. If it is present\nand the invokation has failed, it is assigned a positive value; in particular,\nfor a coindexed `ATOM`, if the remote image has stopped, it is assigned the\nvalue of `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote\nimage has failed, the value `STAT_FAILED_IMAGE`.\n\n\n\n### Syntax\n`CALL ATOMIC_OR (ATOM, VALUE [, STAT])`\n\n\n### Arguments\n\n \n | `ATOM` | Scalar coarray or coindexed variable of integer\ntype with `ATOMIC_INT_KIND` kind. \n\n | `VALUE` | Scalar of the same type as `ATOM`. If the kind\nis different, the value is converted to the kind of `ATOM`. \n\n | `STAT` | (optional) Scalar default-kind integer variable.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram atomic\n\n\u00a0\u00a0use iso_fortran_env\n\n\u00a0\u00a0integer(atomic_int_kind) :: atom[*]\n\n\u00a0\u00a0call atomic_or (atom[1], int(b'10100011101'))\n\nend program atomic\n\n```\n\n\n\n### Standard\nTS 18508 or later\n\n\n\n### Class\nAtomic subroutine\n\n\n\n### See also\nATOMIC_DEFINE, ATOMIC_FETCH_OR, ISO_FORTRAN_ENV,\nATOMIC_ADD, ATOMIC_OR, ATOMIC_XOR\n" + }, + "INT8": { + "doc": "`INT8` \u2014 Convert to 64-bit integer type\n\n### Description\nConvert to a `KIND=8` integer type. This is equivalent to the\nstandard `INT` intrinsic with an optional argument of\n`KIND=8`, and is only included for backwards compatibility.\n\n\n\n### Syntax\n`RESULT = INT8(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is a `INTEGER(8)` variable.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, INT2, LONG\n" + }, + "IOR": { + "doc": "`IOR` \u2014 Bitwise logical or\n\n### Description\n`IOR` returns the bitwise Boolean inclusive-OR of `I` and\n`J`.\n\n\n\n### Syntax\n`RESULT = IOR(I, J)`\n\n\n### Arguments\n\n \n. \n\n | `J` | The type shall be `INTEGER`, of the same\nkind as `I`. (As a GNU extension, different kinds are also\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\narguments. (If the argument kinds differ, it is of the same kind as\nthe larger argument.)\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIEOR, IAND, IBITS, IBSET, IBCLR, NOT\n" + }, + "LCOBOUND": { + "doc": "`LCOBOUND` \u2014 Lower codimension bounds of an array\n\n### Description\nReturns the lower bounds of a coarray, or a single lower cobound\nalong the `DIM` codimension. \n\n\n### Syntax\n`RESULT = LCOBOUND(COARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an coarray, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the lower cobounds of\n`COARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the lower cobound of the array along that codimension.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nUCOBOUND, LBOUND\n" + }, + "ISHFT": { + "doc": "`ISHFT` \u2014 Shift bits\n\n### Description\n`ISHFT` returns a value corresponding to `I` with all of the\nbits shifted `SHIFT` places. A value of `SHIFT` greater than\nzero corresponds to a left shift, a value of zero corresponds to no\nshift, and a value less than zero corresponds to a right shift. If the\nabsolute value of `SHIFT` is greater than `BIT_SIZE(I)`, the\nvalue is undefined. Bits shifted out from the left end or right end are\nlost; zeros are shifted in from the opposite end.\n\n\n\n### Syntax\n`RESULT = ISHFT(I, SHIFT)`\n\n\n### Arguments\n\n \n. \n\n | `SHIFT` | The type shall be `INTEGER`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the same kind as\n`I`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nISHFTC\n" + }, + "CO_SUM": { + "doc": "`CO_SUM` \u2014 Sum of values on the current set of images\n\n### Description\n`CO_SUM` sums up the values of each element of `A` on all\nimages of the current team. If `RESULT_IMAGE` is present, the summed-up\nvalues are returned in `A` on the specified image only and the value\nof `A` on the other images become undefined. If `RESULT_IMAGE` is\nnot present, the value is returned on all images. If the execution was\nsuccessful and `STAT` is present, it is assigned the value zero. If the\nexecution failed, `STAT` gets assigned a nonzero value and, if present,\n`ERRMSG` gets assigned a value describing the occurred error.\n\n\n\n### Syntax\n`CALL CO_MIN(A [, RESULT_IMAGE, STAT, ERRMSG])`\n\n\n### Arguments\n\n \n | `A` | shall be an integer, real or complex variable,\nwhich has the same type and type parameters on all images of the team. \n\n | `RESULT_IMAGE` | (optional) a scalar integer expression; if\npresent, it shall have the same the same value on all images and refer to an\nimage of the current team. \n\n | `STAT` | (optional) a scalar integer variable\n\n | `ERRMSG` | (optional) a scalar character variable\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test\n\n\u00a0\u00a0integer :: val\n\n\u00a0\u00a0val = this_image ()\n\n\u00a0\u00a0call co_sum (val, result_image=1)\n\n\u00a0\u00a0if (this_image() == 1) then\n\n\u00a0\u00a0\u00a0\u00a0write(*,*) \"The sum is \", val ! prints (n**2 + n)/2, with n = num_images()\n\n\u00a0\u00a0end if\n\nend program test\n\n```\n\n\n\n### Standard\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nCollective subroutine\n\n\n\n### See also\nCO_MAX, CO_MIN, CO_REDUCE, CO_BROADCAST\n" + }, + "IPARITY": { + "doc": "`IPARITY` \u2014 Bitwise XOR of array elements\n\n### Description\nReduces with bitwise XOR (exclusive or) the elements of `ARRAY` along\ndimension `DIM` if the corresponding element in `MASK` is `TRUE`.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = IPARITY(ARRAY, DIM[, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n\n\n | `DIM` | (Optional) shall be a scalar of type\n`INTEGER` with a value in the range from 1 to n, where n\nequals the rank of `ARRAY`. \n\n | `MASK` | (Optional) shall be of type `LOGICAL`and either be a scalar or an array of the same shape as `ARRAY`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type as `ARRAY`.\n\n \nIf `DIM` is absent, a scalar with the bitwise XOR of all elements in\n`ARRAY` is returned. Otherwise, an array of rank n-1, where n equals\nthe rank of `ARRAY`, and a shape similar to that of `ARRAY` with\ndimension `DIM` dropped is returned.\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_iparity\n\n\u00a0\u00a0INTEGER(1) :: a(2)\n\n\n\u00a0\u00a0a(1) = b'00100100'\n\n\u00a0\u00a0a(2) = b'01101010'\n\n\n\u00a0\u00a0! prints 01001110\n\n\u00a0\u00a0PRINT '(b8.8)', IPARITY(a)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nIANY, IALL, IEOR, PARITY\n" + }, + "MINLOC": { + "doc": "`MINLOC` \u2014 Location of the minimum value within an array\n\n### Description\nDetermines the location of the element in the array with the minimum\nvalue, or, if the `DIM` argument is supplied, determines the\nlocations of the minimum element along each row of the array in the\n`DIM` direction. If `MASK` is present, only the elements for\nwhich `MASK` is `.TRUE.` are considered. If more than one\nelement in the array has the minimum value, the location returned is\nthat of the first such element in array element order. If the array has\nzero size, or all of the elements of `MASK` are `.FALSE.`, then\nthe result is an array of zeroes. Similarly, if `DIM` is supplied\nand all of the elements of `MASK` along a given row are zero, the\nresult value for that row is zero.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MINLOC(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, the result is a rank-one array with a length\nequal to the rank of `ARRAY`. If `DIM` is present, the result\nis an array with a rank one less than the rank of `ARRAY`, and a\nsize corresponding to the size of `ARRAY` with the `DIM`\ndimension removed. If `DIM` is present and `ARRAY` has a rank\nof one, the result is a scalar. In all cases, the result is of default\n`INTEGER` type.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMIN, MINVAL\n\n " + }, + "MODULO": { + "doc": "`MODULO` \u2014 Modulo function\n\n### Description\n`MODULO(A,P)` computes the `A` modulo `P`.\n\n\n\n### Syntax\n`RESULT = MODULO(A, P)`\n\n\n### Arguments\n\n \n. \n\n | `P` | Shall be a scalar of the same type and kind as `A`. \nIt shall not be zero.\n\n\n\n\n\n\n### Return value\nThe type and kind of the result are those of the arguments.\n
\n**If `A` and `P` are of type `INTEGER`:** `MODULO(A,P)` has the value `R` such that `A=Q*P+R`, where\n`Q` is an integer and `R` is between 0 (inclusive) and `P`\n(exclusive). \n\n**If `A` and `P` are of type `REAL`:** `MODULO(A,P)` has the value of `A - FLOOR (A / P) * P`. \n\n
\n The returned value has the same sign as P and a magnitude less than\nthe magnitude of P.\n\n\n\n### Example\n```\n\n\nprogram test_modulo\n\n\u00a0\u00a0print *, modulo(17,3)\n\n\u00a0\u00a0print *, modulo(17.5,5.5)\n\n\n\u00a0\u00a0print *, modulo(-17,3)\n\n\u00a0\u00a0print *, modulo(-17.5,5.5)\n\n\n\u00a0\u00a0print *, modulo(17,-3)\n\n\u00a0\u00a0print *, modulo(17.5,-5.5)\n\nend program\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMOD\n\n " + }, + "ITIME": { + "doc": "`ITIME` \u2014 Get current local time subroutine (hour/minutes/seconds)\n\n### Description\n`IDATE(VALUES)` Fills `VALUES` with the numerical values at the\ncurrent local time. The hour (in the range 1-24), minute (in the range 1-60),\nand seconds (in the range 1-60) appear in elements 1, 2, and 3 of `VALUES`,\nrespectively.\n\n\n\n### Syntax\n`CALL ITIME(VALUES)`\n\n\n### Arguments\n\n \n\nand the kind shall be the default integer kind.\n\n\n\n\n\n\n### Return value\nDoes not return anything.\n\n\n\n### Example\n```\n\n\nprogram test_itime\n\n\u00a0\u00a0integer, dimension(3) :: tarray\n\n\u00a0\u00a0call itime(tarray)\n\n\u00a0\u00a0print *, tarray(1)\n\n\u00a0\u00a0print *, tarray(2)\n\n\u00a0\u00a0print *, tarray(3)\n\nend program test_itime\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" + }, + "FPUTC": { + "doc": "`FPUTC` \u2014 Write a single character in stream mode\n\n### Description\nWrite a single character in stream mode by bypassing normal formatted\noutput. Stream I/O should not be mixed with normal record-oriented\n(formatted or unformatted) I/O on the same unit; the results are unpredictable.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n \n\nNote that the `FGET` intrinsic is provided for backwards compatibility with\n*g77*. GNU Fortran provides the Fortran 2003 Stream facility. \nProgrammers should consider the use of new stream IO feature in new code\nfor future portability. See also Fortran 2003 status.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FPUTC(UNIT, C)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `C` | The type shall be `CHARACTER` and of default\nkind. \n\n | `STATUS` | (Optional) status flag of type `INTEGER`. \nReturns 0 on success, -1 on end-of-file and a system specific positive\nerror code otherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_fputc\n\n\u00a0\u00a0CHARACTER(len=10) :: str = \"gfortran\"\n\n\u00a0\u00a0INTEGER :: fd = 42, i\n\n\n\u00a0\u00a0OPEN(UNIT = fd, FILE = \"out\", ACTION = \"WRITE\", STATUS=\"NEW\")\n\n\u00a0\u00a0DO i = 1, len_trim(str)\n\n\u00a0\u00a0\u00a0\u00a0CALL fputc(fd, str(i:i))\n\n\u00a0\u00a0END DO\n\n\u00a0\u00a0CLOSE(fd)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nFPUT, FGET, FGETC\n" + }, + "MIN": { + "doc": "`MIN` \u2014 Minimum value of an argument list\n\n### Description\nReturns the argument with the smallest (most negative) value.\n\n\n\n### Syntax\n`RESULT = MIN(A1, A2 [, A3, ...])`\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `A2`, `A3`, ... | An expression of the same type and kind\nas `A1`. (As a GNU extension, arguments of different kinds are\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return value corresponds to the maximum value among the arguments,\nand has the same type and kind as the first argument.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `MIN0(A1)` | `INTEGER(4) A1` | `INTEGER(4)` | Fortran 77 and later\n\n | `AMIN0(A1)` | `INTEGER(4) A1` | `REAL(4)` | Fortran 77 and later\n\n | `MIN1(A1)` | `REAL A1` | `INTEGER(4)` | Fortran 77 and later\n\n | `AMIN1(A1)` | `REAL(4) A1` | `REAL(4)` | Fortran 77 and later\n\n | `DMIN1(A1)` | `REAL(8) A1` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMAX, MINLOC, MINVAL\n" + }, + "BESSEL_JN": { + "doc": "`BESSEL_JN` \u2014 Bessel function of the first kind\n\n### Description\n`BESSEL_JN(N, X)` computes the Bessel function of the first kind of\norder `N` of `X`. This function is available under the name\n`BESJN` as a GNU extension. If `N` and `X` are arrays,\ntheir ranks and shapes shall conform.\n\n \n`BESSEL_JN(N1, N2, X)` returns an array with the Bessel functions\nof the first kind of the orders `N1` to `N2`.\n\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = BESSEL_JN(N1, N2, X)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `N1` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `N2` | Shall be a non-negative scalar of type `INTEGER`. \n\n | `X` | Shall be a scalar or an array of type `REAL`;\nfor `BESSEL_JN(N1, N2, X)` it shall be scalar.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type `REAL`. It has the same\nkind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_besjn\n\n\u00a0\u00a0real(8) :: x = 1.0_8\n\n\u00a0\u00a0x = bessel_jn(5,x)\n\nend program test_besjn\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DBESJN(N, X)` | `INTEGER N` | `REAL(8)` | GNU extension\n\n | `REAL(8) X` | \n\n\n\n\n\n### Notes\nThe transformational function uses a recurrence algorithm which might,\nfor some values of `X`, lead to different results than calls to\nthe elemental function.\n\n\n\n### Standard\nFortran 2008 and later, negative `N` is allowed as GNU extension\n\n\n\n### Class\nElemental function, except for the transformational function\n`BESSEL_JN(N1, N2, X)`\n\n" + }, + "IERRNO": { + "doc": "`IERRNO` \u2014 Get the last system error number\n\n### Description\nReturns the last system error number, as given by the C `errno`variable.\n\n\n\n### Syntax\n`RESULT = IERRNO()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of the default integer\nkind.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nPERROR\n" + }, + "SIND": { + "doc": "`SIND` \u2014 Sine function, degrees\n\n### Description\nIND(X) computes the sine of X in degrees.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = SIND(X)\n### Arguments\n- X: The type shall be REAL or COMPLEX.\n ### Return value\nThe return value has same type and kind as X, and its value is in degrees.\n" + }, + "IS_CONTIGUOUS": { + "doc": "`IS_CONTIGUOUS` \u2014 Test whether an array is contiguous\n\n### Description\nIS_CONTIGUOUS tests whether an array is contiguous.\n### Standard\nFortran 2008 and later.\n### Class\nInquiry function\n### Syntax\nRESULT = IS_CONTIGUOUS(ARRAY)\n### Arguments\n- ARRAY: Shall be an array of any type.\n### Return value\nReturns a LOGICAL of the default kind, which .TRUE. if ARRAY is contiguous and false otherwise.\n" + }, + "COMPILER_VERSION": { + "doc": "`COMPILER_VERSION` \u2014 Compiler version string\n\n### Description\n`COMPILER_VERSION` returns a string with the name and the\nversion of the compiler.\n\n\n\n### Syntax\n`STR = COMPILER_VERSION()`\n\n\n### Arguments\nNone.\n\n\n\n### Return value\nThe return value is a default-kind string with system-dependent length. \nIt contains the name of the compiler and its version number.\n\n\n\n### Example\n```\n\n\nuse iso_fortran_env\n\nprint '(4a)', 'This file was compiled by ', &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0compiler_version(), ' using the options ', &\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0compiler_options()\n\nend\n\n```\n\n\n\n### Standard\nFortran 2008\n\n\n\n### Class\nInquiry function of the module `ISO_FORTRAN_ENV`\n\n\n### See also\nCOMPILER_OPTIONS, ISO_FORTRAN_ENV\n" + }, + "C_F_POINTER": { + "doc": "`C_F_POINTER` \u2014 Convert C into Fortran pointer\n\n### Description\n`C_F_POINTER(CPTR, FPTR[, SHAPE])` assigns the target of the C pointer\n`CPTR` to the Fortran pointer `FPTR` and specifies its shape.\n\n\n\n### Syntax\n`CALL C_F_POINTER(CPTR, FPTR[, SHAPE])`\n\n\n### Arguments\n\n \n. It is\n`INTENT(IN)`. \n\n | `FPTR` | pointer interoperable with `cptr`. It is\n`INTENT(OUT)`. \n\n | `SHAPE` | (Optional) Rank-one array of type `INTEGER`with `INTENT(IN)`. It shall be present\nif and only if `fptr` is an array. The size\nmust be equal to the rank of `fptr`.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram main\n\n\u00a0\u00a0use iso_c_binding\n\n\u00a0\u00a0implicit none\n\n\u00a0\u00a0interface\n\n\u00a0\u00a0\u00a0\u00a0subroutine my_routine(p) bind(c,name='myC_func')\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0import :: c_ptr\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type(c_ptr), intent(out) :: p\n\n\u00a0\u00a0\u00a0\u00a0end subroutine\n\n\u00a0\u00a0end interface\n\n\u00a0\u00a0type(c_ptr) :: cptr\n\n\u00a0\u00a0real,pointer :: a(:)\n\n\u00a0\u00a0call my_routine(cptr)\n\n\u00a0\u00a0call c_f_pointer(cptr, a, [12])\n\nend program main\n\n```\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nC_LOC, C_F_PROCPOINTER\n" + }, + "FSTAT": { + "doc": "`FSTAT` \u2014 Get file status\n\n### Description\n`FSTAT` is identical to STAT, except that information about an\nalready opened file is obtained.\n\n \nThe elements in `VALUES` are the same as described by STAT.\n\n \n\nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = FSTAT(UNIT, VALUES)`
\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `VALUES` | The type shall be `INTEGER(4), DIMENSION(13)`. \n\n | `STATUS` | (Optional) status flag of type `INTEGER(4)`. Returns 0\non success and a system specific error code otherwise.\n\n\n\n\n\n\n### Example\nSee STAT for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nTo stat a link: LSTAT, to stat a file: STAT\n" + }, + "GETPID": { + "doc": "`GETPID` \u2014 Process ID function\n\n### Description\nReturns the numerical process identifier of the current process.\n\n\n\n### Syntax\n`RESULT = GETPID()`\n\n\n### Return value\nThe return value of `GETPID` is an `INTEGER` of the default\nkind.\n\n\n\n### Example\n```\n\n\nprogram info\n\n\u00a0\u00a0print *, \"The current process ID is \", getpid()\n\n\u00a0\u00a0print *, \"Your numerical user ID is \", getuid()\n\n\u00a0\u00a0print *, \"Your numerical group ID is \", getgid()\n\nend program info\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGETGID, GETUID\n" + }, + "CTIME": { + "doc": "`CTIME` \u2014 Convert a time into a string\n\n### Description\n`CTIME` converts a system time value, such as returned by\n`TIME8`, to a string. The output will be of the form \u2018Sat\nAug 19 18:13:14 1995\u2019.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n. \n\n | `RESULT = CTIME(TIME)`.\n\n\n\n\n\n\n### Arguments\n\n \n. \n\n | `RESULT` | The type shall be of type `CHARACTER` and\nof default kind. It is an `INTENT(OUT)` argument. If the length\nof this variable is too short for the time and date string to fit\ncompletely, it will be blank on procedure return.\n\n\n\n\n\n\n### Return value\nThe converted date and time as a string.\n\n\n\n### Example\n```\n\n\nprogram test_ctime\n\n\u00a0\u00a0\u00a0\u00a0integer(8) :: i\n\n\u00a0\u00a0\u00a0\u00a0character(len=30) :: date\n\n\u00a0\u00a0\u00a0\u00a0i = time8()\n\n\n\u00a0\u00a0\u00a0\u00a0! Do something, main part of the program\n\n\n\u00a0\u00a0\u00a0\u00a0call ctime(i,date)\n\n\u00a0\u00a0\u00a0\u00a0print *, 'Program was started on ', date\n\nend program test_ctime\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nDATE_AND_TIME, GMTIME, LTIME, TIME, TIME8\n" + }, + "MAX": { + "doc": "`MAX` \u2014 Maximum value of an argument list\n\n### Description\nReturns the argument with the largest (most positive) value.\n\n\n\n### Syntax\n`RESULT = MAX(A1, A2 [, A3 [, ...]])`\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `A2`, `A3`, ... | An expression of the same type and kind\nas `A1`. (As a GNU extension, arguments of different kinds are\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return value corresponds to the maximum value among the arguments,\nand has the same type and kind as the first argument.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `MAX0(A1)` | `INTEGER(4) A1` | `INTEGER(4)` | Fortran 77 and later\n\n | `AMAX0(A1)` | `INTEGER(4) A1` | `REAL(MAX(X))` | Fortran 77 and later\n\n | `MAX1(A1)` | `REAL A1` | `INT(MAX(X))` | Fortran 77 and later\n\n | `AMAX1(A1)` | `REAL(4) A1` | `REAL(4)` | Fortran 77 and later\n\n | `DMAX1(A1)` | `REAL(8) A1` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nMAXLOC MAXVAL, MIN\n\n " + }, + "LONG": { + "doc": "`LONG` \u2014 Convert to integer type\n\n### Description\nConvert to a `KIND=4` integer type, which is the same size as a C\n`long` integer. This is equivalent to the standard `INT`intrinsic with an optional argument of `KIND=4`, and is only\nincluded for backwards compatibility.\n\n\n\n### Syntax\n`RESULT = LONG(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is a `INTEGER(4)` variable.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, INT2, INT8\n" + }, + "MAXLOC": { + "doc": "`MAXLOC` \u2014 Location of the maximum value within an array\n\n### Description\nDetermines the location of the element in the array with the maximum\nvalue, or, if the `DIM` argument is supplied, determines the\nlocations of the maximum element along each row of the array in the\n`DIM` direction. If `MASK` is present, only the elements for\nwhich `MASK` is `.TRUE.` are considered. If more than one\nelement in the array has the maximum value, the location returned is\nthat of the first such element in array element order. If the array has\nzero size, or all of the elements of `MASK` are `.FALSE.`, then\nthe result is an array of zeroes. Similarly, if `DIM` is supplied\nand all of the elements of `MASK` along a given row are zero, the\nresult value for that row is zero.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MAXLOC(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, the result is a rank-one array with a length\nequal to the rank of `ARRAY`. If `DIM` is present, the result\nis an array with a rank one less than the rank of `ARRAY`, and a\nsize corresponding to the size of `ARRAY` with the `DIM`\ndimension removed. If `DIM` is present and `ARRAY` has a rank\nof one, the result is a scalar. In all cases, the result is of default\n`INTEGER` type.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMAX, MAXVAL\n\n " + }, + "MATMUL": { + "doc": "`MATMUL` \u2014 matrix multiplication\n\n### Description\nPerforms a matrix multiplication on numeric or logical arguments.\n\n\n\n### Syntax\n`RESULT = MATMUL(MATRIX_A, MATRIX_B)`\n\n\n### Arguments\n\n \n,\n`REAL`, `COMPLEX`, or `LOGICAL` type, with a rank of\none or two. \n\n | `MATRIX_B` | An array of `INTEGER`,\n`REAL`, or `COMPLEX` type if `MATRIX_A` is of a numeric\ntype; otherwise, an array of `LOGICAL` type. The rank shall be one\nor two, and the first (or only) dimension of `MATRIX_B` shall be\nequal to the last (or only) dimension of `MATRIX_A`.\n\n\n\n\n\n\n### Return value\nThe matrix product of `MATRIX_A` and `MATRIX_B`. The type and\nkind of the result follow the usual type and kind promotion rules, as\nfor the `*` or `.AND.` operators.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\n" + }, + "IAND": { + "doc": "`IAND` \u2014 Bitwise logical and\n\n### Description\nBitwise logical `AND`.\n\n\n\n### Syntax\n`RESULT = IAND(I, J)`\n\n\n### Arguments\n\n \n. \n\n | `J` | The type shall be `INTEGER`, of the same\nkind as `I`. (As a GNU extension, different kinds are also\npermitted.)\n\n\n\n\n\n\n### Return value\nThe return type is `INTEGER`, of the same kind as the\narguments. (If the argument kinds differ, it is of the same kind as\nthe larger argument.)\n\n\n\n### Example\n```\n\n\nPROGRAM test_iand\n\n\u00a0\u00a0INTEGER :: a, b\n\n\u00a0\u00a0DATA a / Z'F' /, b / Z'3' /\n\n\u00a0\u00a0WRITE (*,*) IAND(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nIOR, IEOR, IBITS, IBSET, IBCLR, NOT\n\n " + }, + "NUM_IMAGES": { + "doc": "`NUM_IMAGES` \u2014 Function that returns the number of images\n\n### Description\nReturns the number of images.\n\n\n\n### Syntax\n`RESULT = NUM_IMAGES(DISTANCE, FAILED)`\n\n\n### Arguments\n\n \n | `DISTANCE` | (optional, intent(in)) Nonnegative scalar integer\n\n | `FAILED` | (optional, intent(in)) Scalar logical expression\n\n\n\n\n\n\n### Return value\nScalar default-kind integer. If `DISTANCE` is not present or has value 0,\nthe number of images in the current team is returned. For values smaller or\nequal distance to the initial team, it returns the number of images index\non the ancestor team which has a distance of `DISTANCE` from the invoking\nteam. If `DISTANCE` is larger than the distance to the initial team, the\nnumber of images of the initial team is returned. If `FAILED` is not present\nthe total number of images is returned; if it has the value `.TRUE.`,\nthe number of failed images is returned, otherwise, the number of images which\ndo have not the failed status.\n\n\n\n### Example\n```\n\n\nINTEGER :: value[*]\n\nINTEGER :: i\n\nvalue = THIS_IMAGE()\n\nSYNC ALL\n\nIF (THIS_IMAGE() == 1) THEN\n\n\u00a0\u00a0DO i = 1, NUM_IMAGES()\n\n\u00a0\u00a0\u00a0\u00a0WRITE(*,'(2(a,i0))') 'value[', i, '] is ', value[i]\n\n\u00a0\u00a0END DO\n\nEND IF\n\n```\n\n\n\n### Standard\nFortran 2008 and later. With `DISTANCE` or `FAILED` argument,\nTechnical Specification (TS) 18508 or later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nTHIS_IMAGE, IMAGE_INDEX\n" + }, + "LINK": { + "doc": "`LINK` \u2014 Create a hard link\n\n### Description\nMakes a (hard) link from file `PATH1` to `PATH2`. A null\ncharacter (`CHAR(0)`) can be used to mark the end of the names in\n`PATH1` and `PATH2`; otherwise, trailing blanks in the file\nnames are ignored. If the `STATUS` argument is supplied, it\ncontains 0 on success or a nonzero error code upon return; see\n`link(2)`.\n\n \nThis intrinsic is provided in both subroutine and function forms;\nhowever, only one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = LINK(PATH1, PATH2)`
\n\n\n\n\n\n### Arguments\n\n \n type. \n\n | `PATH2` | Shall be of default `CHARACTER` type. \n\n | `STATUS` | (Optional) Shall be of default `INTEGER` type.\n\n\n\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nSYMLNK, UNLINK\n" + }, + "LOG": { + "doc": "`LOG` \u2014 Natural logarithm function\n\n### Description\n`LOG(X)` computes the natural logarithm of `X`, i.e. the\nlogarithm to the base e.\n\n\n\n### Syntax\n`RESULT = LOG(X)`\n\n\n### Arguments\n\n \n or\n`COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` or `COMPLEX`. \nThe kind type parameter is the same as `X`. \nIf `X` is `COMPLEX`, the imaginary part \\omega is in the range\n-\\pi < \\omega \\leq \\pi.\n\n\n\n### Example\n```\n\n\nprogram test_log\n\n\u00a0\u00a0real(8) :: x = 2.7182818284590451_8\n\n\u00a0\u00a0complex :: z = (1.0, 2.0)\n\n\u00a0\u00a0x = log(x) ! will yield (approximately) 1\n\n\u00a0\u00a0z = log(z)\n\nend program test_log\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ALOG(X)` | `REAL(4) X` | `REAL(4)` | f95, gnu\n\n | `DLOG(X)` | `REAL(8) X` | `REAL(8)` | f95, gnu\n\n | `CLOG(X)` | `COMPLEX(4) X` | `COMPLEX(4)` | f95, gnu\n\n | `ZLOG(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n | `CDLOG(X)` | `COMPLEX(8) X` | `COMPLEX(8)` | f95, gnu\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ERF": { + "doc": "`ERF` \u2014 Error function\n\n### Description\n`ERF(X)` computes the error function of `X`.\n\n\n\n### Syntax\n`RESULT = ERF(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL`, of the same kind as\n`X` and lies in the range -1 \\leq erf (x) \\leq 1 .\n\n\n\n### Example\n```\n\n\nprogram test_erf\n\n\u00a0\u00a0real(8) :: x = 0.17_8\n\n\u00a0\u00a0x = erf(x)\n\nend program test_erf\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `DERF(X)` | `REAL(8) X` | `REAL(8)` | GNU extension\n\n\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ALL": { + "doc": "`ALL` \u2014 All values in `MASK` along `DIM` are true\n\n### Description\n`ALL(MASK [, DIM])` determines if all the values are true in `MASK`\nin the array along dimension `DIM`.\n\n\n\n### Syntax\n`RESULT = ALL(MASK [, DIM])`\n\n\n### Arguments\n\n \n and\nit shall not be scalar. \n\n | `DIM` | (Optional) `DIM` shall be a scalar integer\nwith a value that lies between one and the rank of `MASK`.\n\n\n\n\n\n\n### Return value\n`ALL(MASK)` returns a scalar value of type `LOGICAL` where\nthe kind type parameter is the same as the kind type parameter of\n`MASK`. If `DIM` is present, then `ALL(MASK, DIM)` returns\nan array with the rank of `MASK` minus 1. The shape is determined from\nthe shape of `MASK` where the `DIM` dimension is elided.\n\n
\n**(A)** `ALL(MASK)` is true if all elements of `MASK` are true. \nIt also is true if `MASK` has zero size; otherwise, it is false. \n\n**(B)** If the rank of `MASK` is one, then `ALL(MASK,DIM)` is equivalent\nto `ALL(MASK)`. If the rank is greater than one, then `ALL(MASK,DIM)`is determined by applying `ALL` to the array sections. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_all\n\n\u00a0\u00a0logical l\n\n\u00a0\u00a0l = all((/.true., .true., .true./))\n\n\u00a0\u00a0print *, l\n\n\u00a0\u00a0call section\n\n\u00a0\u00a0contains\n\n\u00a0\u00a0\u00a0\u00a0subroutine section\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0integer a(2,3), b(2,3)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0a = 1\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0b = 1\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0b(2,2) = 2\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print *, all(a .eq. b, 1)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print *, all(a .eq. b, 2)\n\n\u00a0\u00a0\u00a0\u00a0end subroutine section\n\nend program test_all\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "TRIM": { + "doc": "`TRIM` \u2014 Remove trailing blank characters of a string\n\n### Description\nRemoves trailing blank characters of a string.\n\n\n\n### Syntax\n`RESULT = TRIM(STRING)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nA scalar of type `CHARACTER` which length is that of `STRING`\nless the number of trailing blanks.\n\n\n\n### Example\n```\n\n\nPROGRAM test_trim\n\n\u00a0\u00a0CHARACTER(len=10), PARAMETER :: s = \"GFORTRAN \"\n\n\u00a0\u00a0WRITE(*,*) LEN(s), LEN(TRIM(s)) ! \"10 8\", with/without trailing blanks\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nADJUSTL, ADJUSTR\n" + }, + "MERGE": { + "doc": "`MERGE` \u2014 Merge variables\n\n### Description\nSelect values from two arrays according to a logical mask. The result\nis equal to `TSOURCE` if `MASK` is `.TRUE.`, or equal to\n`FSOURCE` if it is `.FALSE.`.\n\n\n\n### Syntax\n`RESULT = MERGE(TSOURCE, FSOURCE, MASK)`\n\n\n### Arguments\n\n \n | `TSOURCE` | May be of any type. \n\n | `FSOURCE` | Shall be of the same type and type parameters\nas `TSOURCE`. \n\n | `MASK` | Shall be of type `LOGICAL`.\n\n\n\n\n\n\n### Return value\nThe result is of the same type and type parameters as `TSOURCE`.\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "CHDIR": { + "doc": "`CHDIR` \u2014 Change working directory\n\n### Description\nChange current working directory to a specified path.\n\n \nThis intrinsic is provided in both subroutine and function forms; however,\nonly one form can be used in any given program unit.\n\n\n\n\n### Syntax\n\n \n\n\n | `STATUS = CHDIR(NAME)`
\n\n\n\n\n\n### Arguments\n\n \n of default\nkind and shall specify a valid path within the file system. \n\n | `STATUS` | (Optional) `INTEGER` status flag of the default\nkind. Returns 0 on success, and a system specific and nonzero error code\notherwise.\n\n\n\n\n\n\n### Example\n```\n\n\nPROGRAM test_chdir\n\n\u00a0\u00a0CHARACTER(len=255) :: path\n\n\u00a0\u00a0CALL getcwd(path)\n\n\u00a0\u00a0WRITE(*,*) TRIM(path)\n\n\u00a0\u00a0CALL chdir(\"/tmp\")\n\n\u00a0\u00a0CALL getcwd(path)\n\n\u00a0\u00a0WRITE(*,*) TRIM(path)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine, function\n\n\n\n### See also\nGETCWD\n" + }, + "GETUID": { + "doc": "`GETUID` \u2014 User ID function\n\n### Description\nReturns the numerical user ID of the current process.\n\n\n\n### Syntax\n`RESULT = GETUID()`\n\n\n### Return value\nThe return value of `GETUID` is an `INTEGER` of the default\nkind.\n\n\n\n### Example\nSee `GETPID` for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGETPID, GETLOG\n" + }, + "SAME_TYPE_AS": { + "doc": "`SAME_TYPE_AS` \u2014 Query dynamic types for equality\n\n### Description\nQuery dynamic types for equality.\n\n\n\n### Syntax\n`RESULT = SAME_TYPE_AS(A, B)`\n\n\n### Arguments\n\n \n | `A` | Shall be an object of extensible declared type or\nunlimited polymorphic. \n\n | `B` | Shall be an object of extensible declared type or\nunlimited polymorphic.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar of type default logical. It is true if and\nonly if the dynamic type of A is the same as the dynamic type of B.\n\n\n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nEXTENDS_TYPE_OF\n\n " + }, + "AND": { + "doc": "`AND` \u2014 Bitwise logical AND\n\n### Description\nBitwise logical `AND`.\n\n \nThis intrinsic routine is provided for backwards compatibility with\nGNU Fortran 77. For integer arguments, programmers should consider\nthe use of the IAND intrinsic defined by the Fortran standard.\n\n\n\n\n### Syntax\n`RESULT = AND(I, J)`\n\n\n### Arguments\n\n \n\ntype or a scalar `LOGICAL` type. \n\n | `J` | The type shall be the same as the type of `I`.\n\n\n\n\n\n\n### Return value\nThe return type is either a scalar `INTEGER` or a scalar\n`LOGICAL`. If the kind type parameters differ, then the\nsmaller kind type is implicitly converted to larger kind, and the\nreturn has the larger kind.\n\n\n\n### Example\n```\n\n\nPROGRAM test_and\n\n\u00a0\u00a0LOGICAL :: T = .TRUE., F = .FALSE.\n\n\u00a0\u00a0INTEGER :: a, b\n\n\u00a0\u00a0DATA a / Z'F' /, b / Z'3' /\n\n\n\u00a0\u00a0WRITE (*,*) AND(T, T), AND(T, F), AND(F, T), AND(F, F)\n\n\u00a0\u00a0WRITE (*,*) AND(a, b)\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nFortran 95 elemental function: IAND\n" + }, + "GETLOG": { + "doc": "`GETLOG` \u2014 Get login name\n\n### Description\nGets the username under which the program is running.\n\n\n\n### Syntax\n`CALL GETLOG(C)`\n\n\n### Arguments\n\n \n and of default kind.\n\n\n\n\n\n\n### Return value\nStores the current user name in `LOGIN`. (On systems where POSIX\nfunctions `geteuid` and `getpwuid` are not available, and\nthe `getlogin` function is not implemented either, this will\nreturn a blank string.)\n\n\n\n### Example\n```\n\n\nPROGRAM TEST_GETLOG\n\n\u00a0\u00a0CHARACTER(32) :: login\n\n\u00a0\u00a0CALL GETLOG(login)\n\n\u00a0\u00a0WRITE(*,*) login\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nGETUID\n" + }, + "LTIME": { + "doc": "`LTIME` \u2014 Convert time to local time info\n\n### Description\nGiven a system time value `TIME` (as provided by the `TIME8`intrinsic), fills `VALUES` with values extracted from it appropriate\nto the local time zone using `localtime(3)`.\n\n\n\n### Syntax\n`CALL LTIME(TIME, VALUES)`\n\n\n### Arguments\n\n \n scalar expression\ncorresponding to a system time, with `INTENT(IN)`. \n\n | `VALUES` | A default `INTEGER` array with 9 elements,\nwith `INTENT(OUT)`.\n\n\n\n\n\n\n### Return value\nThe elements of `VALUES` are assigned as follows:\n
    \n
  1. Seconds after the minute, range 0\u201359 or 0\u201361 to allow for leap\nseconds\n
  2. Minutes after the hour, range 0\u201359\n
  3. Hours past midnight, range 0\u201323\n
  4. Day of month, range 0\u201331\n
  5. Number of months since January, range 0\u201312\n
  6. Years since 1900\n
  7. Number of days since Sunday, range 0\u20136\n
  8. Days since January 1\n
  9. Daylight savings indicator: positive if daylight savings is in\neffect, zero if not, and negative if the information is not available.\n
\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nCTIME, GMTIME, TIME, TIME8\n\n " + }, + "DIGITS": { + "doc": "`DIGITS` \u2014 Significant binary digits function\n\n### Description\n`DIGITS(X)` returns the number of significant binary digits of the internal\nmodel representation of `X`. For example, on a system using a 32-bit\nfloating point representation, a default real number would likely return 24.\n\n\n\n### Syntax\n`RESULT = DIGITS(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER`.\n\n\n\n### Example\n```\n\n\nprogram test_digits\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 12345\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 3.143\n\n\u00a0\u00a0\u00a0\u00a0real(8) :: y = 2.33\n\n\u00a0\u00a0\u00a0\u00a0print *, digits(i)\n\n\u00a0\u00a0\u00a0\u00a0print *, digits(x)\n\n\u00a0\u00a0\u00a0\u00a0print *, digits(y)\n\nend program test_digits\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "SELECTED_INT_KIND": { + "doc": "`SELECTED_INT_KIND` \u2014 Choose integer kind\n\n### Description\n`SELECTED_INT_KIND(R)` return the kind value of the smallest integer\ntype that can represent all values ranging from -10^R (exclusive)\nto 10^R (exclusive). If there is no integer kind that accommodates\nthis range, `SELECTED_INT_KIND` returns -1.\n\n\n\n### Syntax\n`RESULT = SELECTED_INT_KIND(R)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram large_integers\n\n\u00a0\u00a0integer,parameter :: k5 = selected_int_kind(5)\n\n\u00a0\u00a0integer,parameter :: k15 = selected_int_kind(15)\n\n\u00a0\u00a0integer(kind=k5) :: i5\n\n\u00a0\u00a0integer(kind=k15) :: i15\n\n\n\u00a0\u00a0print *, huge(i5), huge(i15)\n\n\n\u00a0\u00a0! The following inequalities are always true\n\n\u00a0\u00a0print *, huge(i5) >= 10_k5**5-1\n\n\u00a0\u00a0print *, huge(i15) >= 10_k15**15-1\n\nend program large_integers\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "SLEEP": { + "doc": "`SLEEP` \u2014 Sleep for the specified number of seconds\n\n### Description\nCalling this subroutine causes the process to pause for `SECONDS` seconds.\n\n\n\n### Syntax\n`CALL SLEEP(SECONDS)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Example\n```\n\n\nprogram test_sleep\n\n\u00a0\u00a0call sleep(5)\n\nend\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nSubroutine\n\n\n" + }, + "SIGN": { + "doc": "`SIGN` \u2014 Sign copying function\n\n### Description\n`SIGN(A,B)` returns the value of `A` with the sign of `B`.\n\n\n\n### Syntax\n`RESULT = SIGN(A, B)`\n\n\n### Arguments\n\n \n\n\n | `B` | Shall be of the same type and kind as `A`\n\n\n\n\n\n\n### Return value\nThe kind of the return value is that of `A` and `B`. \nIf B\\ge 0 then the result is `ABS(A)`, else\nit is `-ABS(A)`.\n\n\n\n### Example\n```\n\n\nprogram test_sign\n\n\u00a0\u00a0print *, sign(-12,1)\n\n\u00a0\u00a0print *, sign(-12,0)\n\n\u00a0\u00a0print *, sign(-12,-1)\n\n\n\u00a0\u00a0print *, sign(-12.,1.)\n\n\u00a0\u00a0print *, sign(-12.,0.)\n\n\u00a0\u00a0print *, sign(-12.,-1.)\n\nend program test_sign\n\n```\n\n\n\n### Specific names\n\n \n | Name | Arguments | Return type | Standard\n\n | `SIGN(A,B)` | `REAL(4) A, B` | `REAL(4)` | f77, gnu\n\n | `ISIGN(A,B)` | `INTEGER(4) A, B` | `INTEGER(4)` | f77, gnu\n\n | `DSIGN(A,B)` | `REAL(8) A, B` | `REAL(8)` | f77, gnu\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "GETGID": { + "doc": "`GETGID` \u2014 Group ID function\n\n### Description\nReturns the numerical group ID of the current process.\n\n\n\n### Syntax\n`RESULT = GETGID()`\n\n\n### Return value\nThe return value of `GETGID` is an `INTEGER` of the default\nkind.\n\n\n\n### Example\nSee `GETPID` for an example.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nGETPID, GETUID\n" + }, + "IS_IOSTAT_END": { + "doc": "`IS_IOSTAT_END` \u2014 Test for end-of-file value\n\n### Description\n`IS_IOSTAT_END` tests whether an variable has the value of the I/O\nstatus \u201cend of file\u201d. The function is equivalent to comparing the variable\nwith the `IOSTAT_END` parameter of the intrinsic module\n`ISO_FORTRAN_ENV`.\n\n\n\n### Syntax\n`RESULT = IS_IOSTAT_END(I)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nReturns a `LOGICAL` of the default kind, which `.TRUE.` if\n`I` has the value which indicates an end of file condition for\n`IOSTAT=` specifiers, and is `.FALSE.` otherwise.\n\n\n\n### Example\n```\n\n\nPROGRAM iostat\n\n\u00a0\u00a0IMPLICIT NONE\n\n\u00a0\u00a0INTEGER :: stat, i\n\n\u00a0\u00a0OPEN(88, FILE='test.dat')\n\n\u00a0\u00a0READ(88, *, IOSTAT=stat) i\n\n\u00a0\u00a0IF(IS_IOSTAT_END(stat)) STOP 'END OF FILE'\n\nEND PROGRAM\n\n```\n\n \n\n### Standard\nFortran 2003 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ANY": { + "doc": "`ANY` \u2014 Any value in `MASK` along `DIM` is true\n\n### Description\n`ANY(MASK [, DIM])` determines if any of the values in the logical array\n`MASK` along dimension `DIM` are `.TRUE.`.\n\n\n\n### Syntax\n`RESULT = ANY(MASK [, DIM])`\n\n\n### Arguments\n\n \n and\nit shall not be scalar. \n\n | `DIM` | (Optional) `DIM` shall be a scalar integer\nwith a value that lies between one and the rank of `MASK`.\n\n\n\n\n\n\n### Return value\n`ANY(MASK)` returns a scalar value of type `LOGICAL` where\nthe kind type parameter is the same as the kind type parameter of\n`MASK`. If `DIM` is present, then `ANY(MASK, DIM)` returns\nan array with the rank of `MASK` minus 1. The shape is determined from\nthe shape of `MASK` where the `DIM` dimension is elided.\n\n
\n**(A)** `ANY(MASK)` is true if any element of `MASK` is true;\notherwise, it is false. It also is false if `MASK` has zero size. \n\n**(B)** If the rank of `MASK` is one, then `ANY(MASK,DIM)` is equivalent\nto `ANY(MASK)`. If the rank is greater than one, then `ANY(MASK,DIM)`is determined by applying `ANY` to the array sections. \n\n
\n\n\n\n### Example\n```\n\n\nprogram test_any\n\n\u00a0\u00a0logical l\n\n\u00a0\u00a0l = any((/.true., .true., .true./))\n\n\u00a0\u00a0print *, l\n\n\u00a0\u00a0call section\n\n\u00a0\u00a0contains\n\n\u00a0\u00a0\u00a0\u00a0subroutine section\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0integer a(2,3), b(2,3)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0a = 1\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0b = 1\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0b(2,2) = 2\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print *, any(a .eq. b, 1)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print *, any(a .eq. b, 2)\n\n\u00a0\u00a0\u00a0\u00a0end subroutine section\n\nend program test_any\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n" + }, + "AINT": { + "doc": "`AINT` \u2014 Truncate to a whole number\n\n### Description\n`AINT(A [, KIND])` truncates its argument to a whole number.\n\n\n\n### Syntax\n`RESULT = AINT(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` with the kind type parameter of the\nargument if the optional `KIND` is absent; otherwise, the kind\ntype parameter will be given by `KIND`. If the magnitude of\n`X` is less than one, `AINT(X)` returns zero. If the\nmagnitude is equal to or greater than one then it returns the largest\nwhole number that does not exceed its magnitude. The sign is the same\nas the sign of `X`.\n\n\n\n### Example\n```\n\n\nprogram test_aint\n\n\u00a0\u00a0real(4) x4\n\n\u00a0\u00a0real(8) x8\n\n\u00a0\u00a0x4 = 1.234E0_4\n\n\u00a0\u00a0x8 = 4.321_8\n\n\u00a0\u00a0print *, aint(x4), dint(x8)\n\n\u00a0\u00a0x8 = aint(x4,8)\n\nend program test_aint\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `AINT(A)` | `REAL(4) A` | `REAL(4)` | Fortran 77 and later\n\n | `DINT(A)` | `REAL(8) A` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "BACKTRACE": { + "doc": "`BACKTRACE` \u2014 Show a backtrace\n\n### Description\n`BACKTRACE` shows a backtrace at an arbitrary place in user code. Program\nexecution continues normally afterwards. The backtrace information is printed\nto the unit corresponding to `ERROR_UNIT` in `ISO_FORTRAN_ENV`.\n\n\n\n### Syntax\n`CALL BACKTRACE`\n\n\n### Arguments\nNone\n\n\n\n### Standard\nGNU Extension\n\n\n\n### Class\nSubroutine\n\n\n\n### See also\nABORT\n" + }, + "ATAN2D": { + "doc": "`ATAN2D` \u2014 Arctangent function, degrees\n\n### Description\nATAN2D(Y, X) computes the principal value of the argument function of the complex number X + i Y in degrees. This function can be used to transform from Cartesian into polar coordinates and allows to determine the angle in the correct quadrant.\nThis function is for compatibility only and should be avoided in favor of standard constructs wherever possible.\n### Standard\nGNU Extension, enabled with -fdec-math\n### Class\nElemental function\n### Syntax\nRESULT = ATAN2D(Y, X)\n### Arguments\n- Y: The type shall be REAL.\n- X: The type and kind type parameter shall be the same as Y. If Y is zero, then X must be nonzero.\n### Return value\nThe return value has the same type and kind type parameter as Y. It is the principal value of the complex number X + i Y. If X is nonzero, then it lies in the range -180 \\le \\atan (x) \\leq 180. The sign is positive if Y is positive. If Y is zero, then the return value is zero if X is strictly positive, 180 if X is negative and Y is positive zero (or the processor does not handle signed zeros), and -180 if X is negative and Y is negative zero. Finally, if X is zero, then the magnitude of the result is 90.\n" + }, + "NINT": { + "doc": "`NINT` \u2014 Nearest whole number\n\n### Description\n`NINT(A)` rounds its argument to the nearest whole number.\n\n\n\n### Syntax\n`RESULT = NINT(A [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nReturns `A` with the fractional portion of its magnitude eliminated by\nrounding to the nearest whole number and with its sign preserved,\nconverted to an `INTEGER` of the default kind.\n\n\n\n### Example\n```\n\n\nprogram test_nint\n\n\u00a0\u00a0real(4) x4\n\n\u00a0\u00a0real(8) x8\n\n\u00a0\u00a0x4 = 1.234E0_4\n\n\u00a0\u00a0x8 = 4.321_8\n\n\u00a0\u00a0print *, nint(x4), idnint(x8)\n\nend program test_nint\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return Type | Standard\n\n | `NINT(A)` | `REAL(4) A` | `INTEGER` | Fortran 95 and later\n\n | `IDNINT(A)` | `REAL(8) A` | `INTEGER` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, with `KIND` argument Fortran 90 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nCEILING, FLOOR\n\n " + }, + "UBOUND": { + "doc": "`UBOUND` \u2014 Upper dimension bounds of an array\n\n### Description\nReturns the upper bounds of an array, or a single upper bound\nalong the `DIM` dimension. \n\n\n### Syntax\n`RESULT = UBOUND(ARRAY [, DIM [, KIND]])`\n\n\n### Arguments\n\n \n | `ARRAY` | Shall be an array, of any type. \n\n | `DIM` | (Optional) Shall be a scalar `INTEGER`. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is of type `INTEGER` and of kind `KIND`. If\n`KIND` is absent, the return value is of default integer kind. \nIf `DIM` is absent, the result is an array of the upper bounds of\n`ARRAY`. If `DIM` is present, the result is a scalar\ncorresponding to the upper bound of the array along that dimension. If\n`ARRAY` is an expression rather than a whole array or array\nstructure component, or if it has a zero extent along the relevant\ndimension, the upper bound is taken to be the number of elements along\nthe relevant dimension.\n\n\n\n### Standard\nFortran 95 and later, with `KIND` argument Fortran 2003 and later\n\n\n\n### Class\nInquiry function\n\n\n\n### See also\nLBOUND, LCOBOUND\n" + }, + "LGE": { + "doc": "`LGE` \u2014 Lexical greater than or equal\n\n### Description\nDetermines whether one string is lexically greater than or equal to\nanother string, where the two strings are interpreted as containing\nASCII character codes. If the String A and String B are not the same\nlength, the shorter is compared as if spaces were appended to it to form\na value that has the same length as the longer.\n\n \nIn general, the lexical comparison intrinsics `LGE`, `LGT`,\n`LLE`, and `LLT` differ from the corresponding intrinsic\noperators `.GE.`, `.GT.`, `.LE.`, and `.LT.`, in\nthat the latter use the processor's character ordering (which is not\nASCII on some targets), whereas the former always use the ASCII\nordering.\n\n\n\n\n### Syntax\n`RESULT = LGE(STRING_A, STRING_B)`\n\n\n### Arguments\n\n \n type. \n\n | `STRING_B` | Shall be of default `CHARACTER` type.\n\n\n\n\n\n\n### Return value\nReturns `.TRUE.` if `STRING_A >= STRING_B`, and `.FALSE.`otherwise, based on the ASCII ordering.\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `LGE(STRING_A, STRING_B)` | `CHARACTER` | `LOGICAL` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nLGT, LLE, LLT\n" + }, + "RESHAPE": { + "doc": "`RESHAPE` \u2014 Function to reshape an array\n\n### Description\nReshapes `SOURCE` to correspond to `SHAPE`. If necessary,\nthe new array may be padded with elements from `PAD` or permuted\nas defined by `ORDER`.\n\n\n\n### Syntax\n`RESULT = RESHAPE(SOURCE, SHAPE[, PAD, ORDER])`\n\n\n### Arguments\n\n \n | `SOURCE` | Shall be an array of any type. \n\n | `SHAPE` | Shall be of type `INTEGER` and an\narray of rank one. Its values must be positive or zero. \n\n | `PAD` | (Optional) shall be an array of the same\ntype as `SOURCE`. \n\n | `ORDER` | (Optional) shall be of type `INTEGER`and an array of the same shape as `SHAPE`. Its values shall\nbe a permutation of the numbers from 1 to n, where n is the size of\n`SHAPE`. If `ORDER` is absent, the natural ordering shall\nbe assumed.\n\n\n\n\n\n\n### Return value\nThe result is an array of shape `SHAPE` with the same type as\n`SOURCE`.\n\n\n\n### Example\n```\n\n\nPROGRAM test_reshape\n\n\u00a0\u00a0INTEGER, DIMENSION(4) :: x\n\n\u00a0\u00a0WRITE(*,*) SHAPE(x) ! prints \"4\"\n\n\u00a0\u00a0WRITE(*,*) SHAPE(RESHAPE(x, (/2, 2/))) ! prints \"2 2\"\n\nEND PROGRAM\n\n```\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nSHAPE\n" + }, + "LOGICAL": { + "doc": "`LOGICAL` \u2014 Convert to logical type\n\n### Description\nConverts one kind of `LOGICAL` variable to another.\n\n\n\n### Syntax\n`RESULT = LOGICAL(L [, KIND])`\n\n\n### Arguments\n\n \n. \n\n | `KIND` | (Optional) An `INTEGER` initialization\nexpression indicating the kind parameter of the result.\n\n\n\n\n\n\n### Return value\nThe return value is a `LOGICAL` value equal to `L`, with a\nkind corresponding to `KIND`, or of the default logical kind if\n`KIND` is not given.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, REAL, CMPLX\n" + }, + "MCLOCK": { + "doc": "`MCLOCK` \u2014 Time function\n\n### Description\nReturns the number of clock ticks since the start of the process, based\non the function `clock(3)` in the C standard library.\n\n \nThis intrinsic is not fully portable, such as to systems with 32-bit\n`INTEGER` types but supporting times wider than 32 bits. Therefore,\nthe values returned by this intrinsic might be, or become, negative, or\nnumerically less than previous values, during a single run of the\ncompiled program.\n\n\n\n\n### Syntax\n`RESULT = MCLOCK()`\n\n\n### Return value\nThe return value is a scalar of type `INTEGER(4)`, equal to the\nnumber of clock ticks since the start of the process, or `-1` if\nthe system does not support `clock(3)`.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nFunction\n\n\n\n### See also\nCTIME, GMTIME, LTIME, MCLOCK, TIME\n\n " + }, + "DCMPLX": { + "doc": "`DCMPLX` \u2014 Double complex conversion function\n\n### Description\n`DCMPLX(X [,Y])` returns a double complex number where `X` is\nconverted to the real component. If `Y` is present it is converted to the\nimaginary component. If `Y` is not present then the imaginary component is\nset to 0.0. If `X` is complex then `Y` must not be present.\n\n\n\n### Syntax\n`RESULT = DCMPLX(X [, Y])`\n\n\n### Arguments\n\n \n,\nor `COMPLEX`. \n\n | `Y` | (Optional if `X` is not `COMPLEX`.) May be\n`INTEGER` or `REAL`.\n\n\n\n\n\n\n### Return value\nThe return value is of type `COMPLEX(8)`\n\n\n### Example\n```\n\n\nprogram test_dcmplx\n\n\u00a0\u00a0\u00a0\u00a0integer :: i = 42\n\n\u00a0\u00a0\u00a0\u00a0real :: x = 3.14\n\n\u00a0\u00a0\u00a0\u00a0complex :: z\n\n\u00a0\u00a0\u00a0\u00a0z = cmplx(i, x)\n\n\u00a0\u00a0\u00a0\u00a0print *, dcmplx(i)\n\n\u00a0\u00a0\u00a0\u00a0print *, dcmplx(x)\n\n\u00a0\u00a0\u00a0\u00a0print *, dcmplx(z)\n\n\u00a0\u00a0\u00a0\u00a0print *, dcmplx(x,i)\n\nend program test_dcmplx\n\n```\n\n \n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ERFC_SCALED": { + "doc": "`ERFC_SCALED` \u2014 Error function\n\n### Description\n`ERFC_SCALED(X)` computes the exponentially-scaled complementary\nerror function of `X`.\n\n\n\n### Syntax\n`RESULT = ERFC_SCALED(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of type `REAL` and of the same kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_erfc_scaled\n\n\u00a0\u00a0real(8) :: x = 0.17_8\n\n\u00a0\u00a0x = erfc_scaled(x)\n\nend program test_erfc_scaled\n\n```\n\n \n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "INT2": { + "doc": "`INT2` \u2014 Convert to 16-bit integer type\n\n### Description\nConvert to a `KIND=2` integer type. This is equivalent to the\nstandard `INT` intrinsic with an optional argument of\n`KIND=2`, and is only included for backwards compatibility.\n\n \nThe `SHORT` intrinsic is equivalent to `INT2`.\n\n\n\n\n### Syntax\n`RESULT = INT2(A)`\n\n\n### Arguments\n\n \n,\n`REAL`, or `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is a `INTEGER(2)` variable.\n\n\n\n### Standard\nGNU extension\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nINT, INT8, LONG\n" + }, + "SINH": { + "doc": "`SINH` \u2014 Hyperbolic sine function\n\n### Description\n`SINH(X)` computes the hyperbolic sine of `X`.\n\n\n\n### Syntax\n`RESULT = SINH(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value has same type and kind as `X`.\n\n\n\n### Example\n```\n\n\nprogram test_sinh\n\n\u00a0\u00a0real(8) :: x = - 1.0_8\n\n\u00a0\u00a0x = sinh(x)\n\nend program test_sinh\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `SINH(X)` | `REAL(4) X` | `REAL(4)` | Fortran 95 and later\n\n | `DSINH(X)` | `REAL(8) X` | `REAL(8)` | Fortran 95 and later\n\n\n\n\n\n\n### Standard\nFortran 95 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nASINH\n" + }, + "FRACTION": { + "doc": "`FRACTION` \u2014 Fractional part of the model representation\n\n### Description\n`FRACTION(X)` returns the fractional part of the model\nrepresentation of `X`.\n\n\n\n### Syntax\n`Y = FRACTION(X)`\n\n\n### Arguments\n\n \n.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as the argument. \nThe fractional part of the model representation of `X` is returned;\nit is `X * RADIX(X)**(-EXPONENT(X))`.\n\n\n\n### Example\n```\n\n\nprogram test_fraction\n\n\u00a0\u00a0real :: x\n\n\u00a0\u00a0x = 178.1387e-4\n\n\u00a0\u00a0print *, fraction(x), x * radix(x)**(-exponent(x))\n\nend program test_fraction\n\n```\n\n \n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nElemental function\n\n\n" + }, + "ALLOCATED": { + "doc": "`ALLOCATED` \u2014 Status of an allocatable entity\n\n### Description\n`ALLOCATED(ARRAY)` and `ALLOCATED(SCALAR)` check the allocation\nstatus of `ARRAY` and `SCALAR`, respectively.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = ALLOCATED(SCALAR)`
\n\n\n\n\n\n### Arguments\n\n \n array. \n\n | `SCALAR` | The argument shall be an `ALLOCATABLE` scalar.\n\n\n\n\n\n\n### Return value\nThe return value is a scalar `LOGICAL` with the default logical\nkind type parameter. If the argument is allocated, then the result is\n`.TRUE.`; otherwise, it returns `.FALSE.`\n\n\n### Example\n```\n\n\nprogram test_allocated\n\n\u00a0\u00a0integer :: i = 4\n\n\u00a0\u00a0real(4), allocatable :: x(:)\n\n\u00a0\u00a0if (.not. allocated(x)) allocate(x(i))\n\nend program test_allocated\n\n```\n\n \n\n### Standard\nFortran 95 and later. Note, the `SCALAR=` keyword and allocatable\nscalar entities are available in Fortran 2003 and later.\n\n\n\n### Class\nInquiry function\n\n\n" + }, + "ACOS": { + "doc": "`ACOS` \u2014 Arccosine function\n\n### Description\n`ACOS(X)` computes the arccosine of `X` (inverse of `COS(X)`).\n\n\n\n### Syntax\n`RESULT = ACOS(X)`\n\n\n### Arguments\n\n \n with a magnitude that is\nless than or equal to one - or the type shall be `COMPLEX`.\n\n\n\n\n\n\n### Return value\nThe return value is of the same type and kind as `X`. \nThe real part of the result is in radians and lies in the range\n0 \\leq \\Re \\acos(x) \\leq \\pi.\n\n\n\n### Example\n```\n\n\nprogram test_acos\n\n\u00a0\u00a0real(8) :: x = 0.866_8\n\n\u00a0\u00a0x = acos(x)\n\nend program test_acos\n\n```\n\n\n\n### Specific names\n\n \n | Name | Argument | Return type | Standard\n\n | `ACOS(X)` | `REAL(4) X` | `REAL(4)` | Fortran 77 and later\n\n | `DACOS(X)` | `REAL(8) X` | `REAL(8)` | Fortran 77 and later\n\n\n\n\n\n\n### Standard\nFortran 77 and later, for a complex argument Fortran 2008 or later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nInverse function: COS\n\n " + }, + "MAXVAL": { + "doc": "`MAXVAL` \u2014 Maximum value of an array\n\n### Description\nDetermines the maximum value of the elements in an array value, or, if\nthe `DIM` argument is supplied, determines the maximum value along\neach row of the array in the `DIM` direction. If `MASK` is\npresent, only the elements for which `MASK` is `.TRUE.` are\nconsidered. If the array has zero size, or all of the elements of\n`MASK` are `.FALSE.`, then the result is `-HUGE(ARRAY)`if `ARRAY` is numeric, or a string of nulls if `ARRAY` is of character\ntype.\n\n\n\n### Syntax\n\n \n\n\n | `RESULT = MAXVAL(ARRAY [, MASK])`
\n\n\n\n\n\n### Arguments\n\n \n or\n`REAL`. \n\n | `DIM` | (Optional) Shall be a scalar of type\n`INTEGER`, with a value between one and the rank of `ARRAY`,\ninclusive. It may not be an optional dummy argument. \n\n | `MASK` | Shall be an array of type `LOGICAL`,\nand conformable with `ARRAY`.\n\n\n\n\n\n\n### Return value\nIf `DIM` is absent, or if `ARRAY` has a rank of one, the result\nis a scalar. If `DIM` is present, the result is an array with a\nrank one less than the rank of `ARRAY`, and a size corresponding to\nthe size of `ARRAY` with the `DIM` dimension removed. In all\ncases, the result is of the same type and kind as `ARRAY`.\n\n\n\n### Standard\nFortran 95 and later\n\n\n\n### Class\nTransformational function\n\n\n\n### See also\nMAX, MAXLOC\n" + }, + "DSHIFTR": { + "doc": "`DSHIFTR` \u2014 Combined right shift\n\n### Description\n`DSHIFTR(I, J, SHIFT)` combines bits of `I` and `J`. The\nleftmost `SHIFT` bits of the result are the rightmost `SHIFT`\nbits of `I`, and the remaining bits are the leftmost bits of\n`J`.\n\n\n\n### Syntax\n`RESULT = DSHIFTR(I, J, SHIFT)`\n\n\n### Arguments\n\n \n or a BOZ constant. \n\n | `J` | Shall be of type `INTEGER` or a BOZ constant. \nIf both `I` and `J` have integer type, then they shall have\nthe same kind type parameter. `I` and `J` shall not both be\nBOZ constants. \n\n | `SHIFT` | Shall be of type `INTEGER`. It shall\nbe nonnegative. If `I` is not a BOZ constant, then `SHIFT`\nshall be less than or equal to `BIT_SIZE(I)`; otherwise,\n`SHIFT` shall be less than or equal to `BIT_SIZE(J)`.\n\n\n\n\n\n\n### Return value\nIf either `I` or `J` is a BOZ constant, it is first converted\nas if by the intrinsic function `INT` to an integer type with the\nkind type parameter of the other.\n\n\n\n### Standard\nFortran 2008 and later\n\n\n\n### Class\nElemental function\n\n\n\n### See also\nDSHIFTL\n" + } +} diff --git a/src/lib/fortran-intrinsics.ts b/src/lib/fortran-intrinsics.ts deleted file mode 100644 index 3335f9d0..00000000 --- a/src/lib/fortran-intrinsics.ts +++ /dev/null @@ -1,287 +0,0 @@ -export default [ - 'ABORT', - 'ABS', - 'ACCESS', - 'ACHAR', - 'ACOS', - 'ACOSD', - 'ACOSH', - 'ADJUSTL', - 'ADJUSTR', - 'AIMAG', - 'AINT', - 'ALARM', - 'ALL', - 'ALLOCATED', - 'AND', - 'ANINT', - 'ANY', - 'ASIN', - 'ASIND', - 'ASINH', - 'ASSOCIATED', - 'ATAN', - 'ATAND', - 'ATAN2', - 'ATAN2D', - 'ATANH', - 'ATOMIC_ADD', - 'ATOMIC_AND', - 'ATOMIC_CAS', - 'ATOMIC_DEFINE', - 'ATOMIC_FETCH_ADD', - 'ATOMIC_FETCH_AND', - 'ATOMIC_FETCH_OR', - 'ATOMIC_FETCH_XOR', - 'ATOMIC_OR', - 'ATOMIC_REF', - 'ATOMIC_XOR', - 'BACKTRACE', - 'BESSEL_J0', - 'BESSEL_J1', - 'BESSEL_JN', - 'BESSEL_Y0', - 'BESSEL_Y1', - 'BESSEL_YN', - 'BGE', - 'BGT', - 'BIT_SIZE', - 'BLE', - 'BLT', - 'BTEST', - 'C_ASSOCIATED', - 'C_F_POINTER', - 'C_F_PROCPOINTER', - 'C_FUNLOC', - 'C_LOC', - 'C_SIZEOF', - 'CEILING', - 'CHAR', - 'CHDIR', - 'CHMOD', - 'CMPLX', - 'CO_BROADCAST', - 'CO_MAX', - 'CO_MIN', - 'CO_REDUCE', - 'CO_SUM', - 'COMMAND_ARGUMENT_COUNT', - 'COMPILER_OPTIONS', - 'COMPILER_VERSION', - 'COMPLEX', - 'CONJG', - 'COS', - 'COSD', - 'COSH', - 'COTAN', - 'COTAND', - 'COUNT', - 'CPU_TIME', - 'CSHIFT', - 'CTIME', - 'DATE_AND_TIME', - 'DBLE', - 'DCMPLX', - 'DIGITS', - 'DIM', - 'DOT_PRODUCT', - 'DPROD', - 'DREAL', - 'DSHIFTL', - 'DSHIFTR', - 'DTIME', - 'ELSE', - 'EOSHIFT', - 'EPSILON', - 'ERF', - 'ERFC', - 'ERFC_SCALED', - 'ETIME', - 'EVENT_QUERY', - 'EXECUTE_COMMAND_LINE', - 'EXIT', - 'EXP', - 'EXPONENT', - 'EXTENDS_TYPE_OF', - 'FDATE', - 'FGET', - 'FGETC', - 'FINDLOC', - 'FLOOR', - 'FLUSH', - 'FNUM', - 'FPUT', - 'FPUTC', - 'FRACTION', - 'FREE', - 'FSEEK', - 'FSTAT', - 'FTELL', - 'GAMMA', - 'GERROR', - 'GETARG', - 'GET_COMMAND', - 'GET_COMMAND_ARGUMENT', - 'GETCWD', - 'GETENV', - 'GET_ENVIRONMENT_VARIABLE', - 'GETGID', - 'GETLOG', - 'GETPID', - 'GETUID', - 'GMTIME', - 'HOSTNM', - 'HUGE', - 'HYPOT', - 'IACHAR', - 'IALL', - 'IAND', - 'IANY', - 'IARGC', - 'IBCLR', - 'IBITS', - 'IBSET', - 'ICHAR', - 'IDATE', - 'IEOR', - 'IERRNO', - 'IMAGE_INDEX', - 'INDEX', - 'INT', - 'INT2', - 'INT8', - 'IOR', - 'IPARITY', - 'IRAND', - 'IS_CONTIGUOUS', - 'IS_IOSTAT_END', - 'IS_IOSTAT_EOR', - 'ISATTY', - 'ISHFT', - 'ISHFTC', - 'ISNAN', - 'ITIME', - 'KILL', - 'KIND', - 'LBOUND', - 'LCOBOUND', - 'LEADZ', - 'LEN', - 'LEN_TRIM', - 'LGE', - 'LGT', - 'LINK', - 'LLE', - 'LLT', - 'LNBLNK', - 'LOC', - 'LOG', - 'LOG10', - 'LOG_GAMMA', - 'LOGICAL', - 'LONG', - 'LSHIFT', - 'LSTAT', - 'LTIME', - 'MALLOC', - 'MASKL', - 'MASKR', - 'MATMUL', - 'MAX', - 'MAXEXPONENT', - 'MAXLOC', - 'MAXVAL', - 'MCLOCK', - 'MCLOCK8', - 'MERGE', - 'MERGE_BITS', - 'MIN', - 'MINEXPONENT', - 'MINLOC', - 'MINVAL', - 'MOD', - 'MODULO', - 'MOVE_ALLOC', - 'MVBITS', - 'NEAREST', - 'NEW_LINE', - 'NINT', - 'NORM2', - 'NOT', - 'NULL', - 'NUM_IMAGES', - 'OR', - 'PACK', - 'PARITY', - 'PERROR', - 'POPCNT', - 'POPPAR', - 'PRECISION', - 'PRESENT', - 'PRODUCT', - 'RADIX', - 'RAN', - 'RAND', - 'RANDOM_INIT', - 'RANDOM_NUMBER', - 'RANDOM_SEED', - 'RANGE', - 'RANK', - 'REAL', - 'RENAME', - 'REPEAT', - 'RESHAPE', - 'RRSPACING', - 'RSHIFT', - 'SAME_TYPE_AS', - 'SCALE', - 'SCAN', - 'SECNDS', - 'SECOND', - 'SELECTED_CHAR_KIND', - 'SELECTED_INT_KIND', - 'SELECTED_REAL_KIND', - 'SET_EXPONENT', - 'SHAPE', - 'SHIFTA', - 'SHIFTL', - 'SHIFTR', - 'SIGN', - 'SIGNAL', - 'SIN', - 'SIND', - 'SINH', - 'SIZE', - 'SIZEOF', - 'SLEEP', - 'SPACING', - 'SPREAD', - 'SQRT', - 'SRAND', - 'STAT', - 'STOP', - 'STORAGE_SIZE', - 'SUM', - 'SYMLNK', - 'SYSTEM', - 'SYSTEM_CLOCK', - 'TAN', - 'TAND', - 'TANH', - 'THIS_IMAGE', - 'TIME', - 'TIME8', - 'TINY', - 'TRAILZ', - 'TRANSFER', - 'TRANSPOSE', - 'TRIM', - 'TTYNAM', - 'UBOUND', - 'UCOBOUND', - 'UMASK', - 'UNLINK', - 'UNPACK', - 'VERIFY', - 'XOR', -]; diff --git a/src/lib/helper.ts b/src/lib/helper.ts index f6bb678f..6d948679 100644 --- a/src/lib/helper.ts +++ b/src/lib/helper.ts @@ -1,10 +1,5 @@ import * as fs from 'fs'; import * as vscode from 'vscode'; -import { installPythonTool } from './tools'; -import intrinsics from './fortran-intrinsics'; -import { LoggingService } from '../services/logging-service'; - -export { intrinsics }; export const FORTRAN_KEYWORDS = [ 'FUNCTION', @@ -20,23 +15,6 @@ export const FORTRAN_KEYWORDS = [ 'IMPLICIT', ]; -export const isIntrinsic = (keyword: string) => { - return intrinsics.findIndex(intrinsic => intrinsic === keyword.toUpperCase()) !== -1; -}; - -interface Doc { - keyword: string; - docstr: string; -} - -export const loadDocString = (keyword: string) => { - keyword = keyword.toUpperCase(); - const filepath = __dirname + '/../doc/intrinsics/' + keyword + '.json'; - const docstr = fs.readFileSync(filepath).toString(); - const doc: Doc = JSON.parse(docstr); - return doc.docstr; -}; - export const _loadDocString = (keyword: string) => { keyword = keyword.toUpperCase(); diff --git a/tsconfig.json b/tsconfig.json index e9fd6544..2c7f16f4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,6 @@ "removeComments": true, "rootDir": "." }, - "include": ["src/**/*.ts"], + "include": ["src/**/*.ts", "src/**/*.json"], "exclude": ["node_modules", ".vscode-test", "assets/videos"] }

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℞0njYo>R!p`Z2aqShW zV-vID7?im^KZxrqhGRvGq$I+P!}ayZ$Do}$DC|Iy`F0@O!%C6ui@`@H_Jzc5_&A6L zDQ=*PjG_b#Y$75et=_~5za_KjmWAHL@;5}KPGl%vEjUpREj_EjzrdSF86ZD3h<+nZaB*D5=uyuYw(nSTiJ~p zr2=U+cs55S+|mF5Ep?uPubHssZRcr}YZ)eC``h(7k=(;PFtX$bqOg$VyA*&%^y47* zw=0z;Hjx7{5$r$#YXnupLN{ejnfNj9S1QE}vOv)?pd1ljC`UJo@uvo8b_^VaA3i5_ zq5V|wdJmVaEmluyqlemIrb1+42<6Ca%sSkwr2O6w_{fe644r$J`M730BIXfOqfg+u zd!ebPfIU9fr!Gij2Uz&6C4*^kXnwg)OZaPN6;0!m2VM+5xm{jN5AXtve?bYriEYK( zOZ&Y0N!5CtR7sKIf&k3gsXU3Yph8D#GA&BF@BP)Ec(anpcwAT%T^o{%^5T(Q<~a>N z7LmSpp9hm}s4*nFLUo^Kz@p_!07rlW^RlDr}|8Ph}F%rq&8PIQF7@|Ej`j)i#~ zt;ZJgar@ZyN=B?UxjzLxG{~7C_}z%#lTl8==Zh%JSBrIMXphAGq+Vpy0K{eq2guIh zG^{n^ZTyLbc=6*?&F)3iv=iVVTf`NY$17eah8d+Iz^#{tgzA=wW)*Xv`6#mMO?inZ zs(qQB8^h;jm)5BIB46aypzeHB@xck{${v`E;kW*AF+)_PM710AI$W?px2e9nKsBz` zluw^64GT&%f923!iXu%xYv1)|+t>UDl!)eb5%Y>1anPP{X{y!^?DkKwhbe2nQD-c! zwVM(O!*K-OQ(L?>5mOlkX=dNgI75?XC9Kfy_ZJ7Xp4h^Kk*` z?+l~4k)0u28}&r=UySM7X7xQ_@ht1KCawMSsZS5fJ>HR294wAfK!QlZY&c8BXF}Ax z$+O8h_fMIhkF5V6?(XxgiLm_}{3L-S)X;nHT~I(kN~qF%R}evZM|ustcR@gU2LS;= zK@dVw5Rs}BDN?0Fs3IcSc;CN$_SxMx`+EO@nK?4YOs+Yv^Zb0dFP>+IvDKZ-El(Yy zKyO?*2xcXj*&3S-iDK4*x4NdWq?d?BFS2N<`_ggp6zK*{zAd`aKUb>K@kLiyjH0li zN`{-#>_ZRcAJr(y+TO|#pYOj+RD*9leG9c8R<>BY9WTw%2YL1yZS;Lm&TElPNpdhC8D z#9?0Y&?4IH6ehzb7uAuqKPi6vnXJ&IHX9uun%65)pAeW)7oMD*UI*(AeszY5Pv3?G z)uO+0D)g;Tb{TYkw^NL@ZK*?2W|H^4ELRk0Rm2ezc^E}DCZ%U&N*uENnW9Qu50%pO zm3TsxlD(Ap3j5SY>~3n_9KKPlfGtTUsdRk&7`x=si!%~Rx3pSlOsa+|az?VMwOXns;&)BmRBwllvslZ6)!Vg$<9Z5>kKU%^|CDALhsTCf8qa{|5k5tk%#TC?>D>KaF<>0+( zsA!l?Im_=%Hu@|MX^J2G39~0J9r4KSJb2I}5i9x!79xdu=mu9#%C%&xj4O>XK}9odM@|!| z_eqr{M#h8$@+}i4icI`-B}N3IO0HmtT2Q7Er;;ct%%#dqK=ePZL_!ZIjk0vE<6{~} zgWQ5+^2fC_%6&BMeg9mEM12sD_sIb#9|6OW=GFgPi9o;&Z=}n-jQ3NuqL*3{>V8yh zjp1$JHv>QJ>MfLb{W$6vw@1>unZu81QDr%!Ty*G6nwUrNRc)cNhBnAqu zMOn+jr_Yk#G2x@1q)?8;f1`}M7*5SZYDWdW#I03D%@tAFfeC@4fbM*4TGY#tGfh9= z{Cg<+*43eY1E$^uhB?_UaUC*o9Uxw(f2hRwjf}{}gk$yRW=@04&$y$Iyx~%y4uLvt z6fCeg+C_Z~99Um@1#9xvZKxA00%?sm&|@^1rnunLm%2F^T}hcI4_%DJif-xzx7;vHw}a_%@JQBez!~)qmEc3ctSG>vQw_8@ zR6^7sN}qYArE4~^XughlZ&3=nv|8j%mEhd}IWj}*U7MEF-+0DAl!;9|#pQk0zmuxh z^uIcy3ID=Lo^8I?>kC2iH z&QyykkxlrcXqY%x@-3!1kE1lvMn6z=)bgB!&4e&?4w5YZx2ZA&;Iof);5_PlFZg0O zn@!V)Ctcf39PyJ)87iXC2{zQTUfdAc*U4;`Q~rLlp?=B1?f|e2FqB3<+@3wH`;bvO zPMn8g1yHQDxF~QlY>Y5tEIz@NILH7MPmlq4prB4GP^yNx51r;wrFzeFEOM&Gy{hyw znd5dBzyKU?uC6ENy+z>{i=riq;scBSnTTMvEEl${kh84Rv8=MPtai7o3A3zKwa8|M zm%3X7u0RvN#6G5rgOWwo{Ln&D+(f}@hQHqj9(LO^6&ji)t~`hvhV=@=pJteQAgBA==iJ&8^qfGr zU5=+8=H7neQ`Uh&oEEb;p_zYYKl$ZR%D{-wU_X6)B6GY<{fALbyg@!M8OW@vMVF>k zmqw}*u&T|dE5&FhOLLXEPsIT(DC_xO#k1Xa#iRg!d!w=8T;TIXdesCzfUj$QeQrf0`Xjb# zhRdUY?>#G=Zi z&Jt$)eT9YQ5mYxZaAN74d)4It9ksH`eMt5G?~l0VH9^vBq2*cOpDQBPD-Rk8=dIva z5tjAae^y@9S_0+|q|)r9|Cb`6`(5b9;^h}Rg&R90=@UhkCrV9r?;8^ub^fDBcs#iu z{zN_PiAM1g&Hqs(p6Dz;(LH>kck@J_)ZXCc38Tx}Yq~gpb$b(Qds7d4v;Qg*#rBp> z_78gOACB2uE!$fk+CRFnw;^?S%<|KkCC*S}y$xw^`%jT@a13{FN^@{7c5rEOu#|L& z2qUt8BDPV`H2jFxwb(cShc-jd$7w?RefZf{~uP@qtMhp-;e@Eh30oN$y) z%sfas%G4>7#W^c(>lPjOneL9RehjbqrXgLFvF;Alzi{#gBE9^ZD>vP;w9uA_XMMIL?; zsjKru9KAlC$zi0jx_tsP?s?pfe_k}Ny7FiBO_My3>tST6!{)6yXEW0H%8zjsYP(*| zo7JSFDJ%(`1ruuB@gA?=6_`8H7g_lvr2>U zFWoksIq|=Y{^k+S%NK1N?nLPskG(zY)!yXA=LvfsXD{-|es4L}IPKI@-mNRIlrDlo z2NhFqHj8EW;H`4LE&UfJ2Kav5)qI#iaYhMu45+SLGh@J1oI(ZlYZB z9L0`KSejF`%?LNiTb<-otdgW0`>Cd?%Qdd(dgMo7v2M ze$5eTJg6f*#ANw*@wktW+2+qU(ED2fqBUN#H{kcb{`lKK-m`)!k0Rf1Ve)P+Bp%@p z#&4VWdsW1rR;mS5E+1NY5;cCbS3$)0=Y~um{@P!7#n=4osy^!_b)&+D`u%Xsx|RH; zck?kVPLbG(dl$Ai6o&P)ajcsS?t1G`QoQ-f(R=jKuUX#Yxwo71ufl$^ZavL|d#`Mg z;1G-9_$5|{U{jyWAIDM~ftqk_Tc(QMQE1nC{cSc~p7CrrsBEfM# z3#UkMjXYzCcmCfLiBpF!!7>4B`#Yz+6Zr$i6v8fNd{dR0&u_c$o;lxh-nx0u>C|32 z8uZ)x@C9tT0I4N>>KEg3(O{6PINRz@6FpcdI}zq4ub;El={6715(UW4_@PEPG};1#H=D6nMU zY%jwQplw*?~C1B74*bA+DhULePtIwHPsoPuRd7KHvC9Scp$pP-!4f z)k&p&e`-=(ReM|E2n(eFn)Hc`xORHTJ)!syEE{|gw23JOTIreBYZ#oBk}s{qbO5V)i*jB&j3GiR6#83wE9!?cd*N1=}m$_VdCn zTaG3wsNbB|8ymU6JQ9{p+;n}tF`ARdD`)vEMfBT~ zG;bd}y5cB&p+SqP$3aPq>svCsE@Lr`MW%6s&kq)NQJQTG*-H4&t+N) zC&tLqe}PKNUM>)b+dLQF17ZFnStRjA#!Y$fMmhli7g;Pcp+DjIK97QtX5Q`~Wzlve zO=R5aRQ|hu>N~NjI-d2@&rP+eB93d2I+PQoP;QMFu@cD z*O;16*~OKagqkMa*%Ys-DP=cxa`L0Q9Cfj9jlr6}zBsE71qm4J-2U1zvnk>{A@I?q zo~t`|JT?JjE(2*1e@j7gZ;z?wkH3%kp#OQ1)h4kW>*u-tEBq#3zt0bEg=BLr`OyWX z+B%AvO8XZbi4Ksh;Hi+sHX6KXZ!#&jm*~nJ9m(ZU;~rId^m1Y8MDk7hUjp|C#_WZY zHyt14Jgh?n9~R;Tbc(Qx_*4ik%?iwRN?R2AMSz!feBO2mG+iJo#~AY=yvY ze}jU4nC~G=W@KC|+N^097%cZ1C8F%?r*ArnbBq!&3EE3NrGrFk86{Fl*}&9rRnH_v zdx4F+8hjqO-vtyywXVvbY)8wsrwAGE<0b<{=g1iOlhT?RGgNzCho*NgbIr!Y2xrMNyeGsM)0IUkdw0m7xnGOpj4Wx|PQ-BL}Khl!+W53>L~=DuvNc z)e4HlM9$V+7T+m}Im300`T8s5>Cb4-Z(oSso>uhVmp^e`=xQtfahvwC)ru_6 zalD7cwxk+QWuZOJp){i@7}A&sWYoCg;BG?+=tp>;MHjb&nne6rYS^%sp&AseLZ_!(2)q zk)%C}AOkd536k_fF?f*N-9Rey8|KhuGx($5Dh?DF6w>$TG58~)2_?)jRErsXcysf& zP1wo5vl-ZzjRxiuRhs9eT3nMa<~x%r&rk1Q#<>zvTGEuVPmrui1A`A?LK{jju0FY) z7y@6EAX1q@8)cOT(FLJ7w{^+svqPSs{;GfgS!2@0WcCv_4rmUC!{-r$f-313Tq1pU zyuP=!lP?K-7gP3XCHC&&AdNQ4RtJqx z?L*iw%2acbKr4_W72z5MJ;yJ4TT0M!3w_*$GHqkr9pI@ac2wFp`*=gq0Vzqkq1A)f zuYE$nU8$>Yh_E;AYvYjB=2C4fRlT89OB?yxzWDh=;WzH}FJjN&>d4vy6{^KK4!Iny zLwv<4eQ8M`Xl{e+ubrIDgTB$U-pe(;CL8^CQ~Hv0JqAUqR#r3aMRzPyFEu!=^N<5O zA54~2Il>;WDQ*tzsF=`b%Y_!{knRVAz| zZU&#MPGDDcy{f*sJ=nWUvRTvPXQ;M#SE0vO%}m0wCtbZKSG}*n!=VB25L#HY#7P?$ z%34JcG$fkmaL8Mf;LRzfZrifA+$WLihftGC;ya35aqMSsyLhnKMv=K5COnsZwE6+^ zTIbPiQ^)ECrQB9g|+a^F}bjVYWcgTbt_NIPX66j%FLh|l^TU!?NipE_4--}N2+ zbXWXb^!#@du7bGmx_`h_%H7&VAL)NHY%xXESGe4!rLbPTIsbvx;frS&LGkED{-k)s zWfPyf{VbGkEv7blyEO65c1&sQXzg}Xb8YgBQ!v`;&2VkhL~ZKDcDr$H>>In-liG9| zXSWqBU)^?XAX#0eq_Y!S-J6F_6u0ZLO`UC#{DpkZf$*{%|D9~`j*e4ZfDn6(hPl6X z+4CEY+_98r468JfNL>PrKplBAjQO1M|1>)7j=Xm~@apf+~z zO1r*&hV_ky-ixc1uLlo$|2{xRx~jK+RtFDQPJ9-g^Ji z-VMI#3a8NcMn+ssaV-NIDNdX`$8?f1B`rnPF1z(o-& zwo=-YL);LxV511gkpH;4?${rO8H+s;@q8|M3(1aiw_cr@@}Jj#JRQNmaPZ9b@O1Hg z^&s@tB~9HWVb1x?^WVju>D9MF8jph8U;UZkyUv3CCN=)+aP)U1=Q_(QrWpkwye5}b zi^}JVemb+%=a-$N3u>dzy_BI+l*KpNY;^SuJnjNxt5b(ZvFDzk8_z&|(awEB5aY8i z+*Gwm^-{ZpB!Psrb>Ht7Jyv#S6rb2dr~{2^X9mDz??-@Gx;WzYWR%$4byf)n0_gd#xf5?VeKaj{_(gKJYHo7Og zGv|*HaV>t#ViYeh;?<&}VpT>yEmO-Ms1Vi2R`fho4F_W*p8hCD89!I@0$DOG%c}~O ziuni7g9+$~mCEA&9R1y9oqnz_{DQf7qxOQ7`CPA6$syAn-cHc#c^D_ns{eZJ)0_`~;&s?DGZr=RHPiu`&;U=y$`I4)_ z&9@(^teOm%nZo!Dx4f;r$_m5Fil*p_Ps)nRPnoB10XMe%S&ourckmn+RD;GikpfUh z2VTiBwlhyx%b3*NuPCNZlQ%9AQX^3Za^hH?}2 zjcWpr@0(e~@0dQKX=dT<5b?f~`?5We*)@gJO2)CwO>%IXlPCd6mw)KYXy#&e;4)49 zmgB|Si;|^W@6MBTCCLrt8*Pajgk$fQ{o3zVK!6wR8v|Bu9- zcQ18sM%nYDJz&D(09ujbNxR2eFGhdwA?opWi$gBLYdW@*DQ>(!D$Sxc$7_#6(j7w) z{%haw24LF)e&Nk%Hbo4v2ty76mwk-;Rc$oy9&iPcbQ&FO#`@p8{J#3usLOfi!Yx*r z=MJo`z~rY>Ict*dd_LKgsP2h;8MwPH9bgMX zZs`;t<#uY=zKqEXDBb?cLX?-oe65`b3wlh_dGIsfN{lr?^Dw})$?2hp5+XWW_p46N zDx$QAPa8; z`JJow^1#fHGwY1nsvm6?H61IAQHZ`8+YPoj30D0a3 zW3{av82Jmzox=T{w2I#?lr%aLG#UK?{-~~rRn*Min_c-cYFIIN{>Py_!;|(pF+%3$ zODWro<2FTE$%@oV)r}7W8;+8Izw7mDR@uCpJFG9GhqXds%}AKj=BM=!CLe!=z7GBT zw7ZM<9QWXKJKjbievYSf<6R@!N*`NyxoX>Ts(?DjY1w16LWo6P|NMG;YCU;y-7z$| zxXX+4~1AAw~hAwGr3JM=BKPV+31$_eJa6{jjlL9e+#T_d(?PdqXD8LgYsO zL_pdO6iM!e8aFtwQstv0-t8j3KGP|?BM#?XT)~d#Dl0!f4b!ZXEA`BsN#>nJQDL0F zGDK5G#;s_0D zanvtUPNb0trgEOjR@meByP|S2t~07LJ^ww8bTMsw(CL4Eb-t_BZ1*WwB7{a*quP1? zjo%*{k=b_dotgF!+FPGHgMMF}|Dna8-$xSAN`{(?m<}e>-}PU-!}cFkgYW;1YS4oL zK?(rG4Pbcz;0}P51pqYwYX@LM{|D7L1jxAo3Zx(fScj5`l!|GF{#b|!3NUNp+STw` zLm#pOG8|Yt4(vAP0fPHBz+)lFL(L^5Iwx{$Eh@w!rmu6G4+jN>N@AU*aYJv(;W9$( za&G+c*oX31K*51a(fo(vv67OKtg4=!y2w)vN~E@_wzdwS>*cS@iP1e=HaHJ7645ZW zHZ?Y+GVv8NNtQM7z@Zur7FeWZQMM)4=7Fi-18mX5d*N0x>W{F-kDN^(hy2&oICeO@ zaya_oba~e$^_~mL!^Jt$MXSOUi*?N#a>qXO49)VijPb@A`INc(VEvx@q(5~nda7OT z`v~h>d^ezQFwo9DC=Q2eJPg4Cq500CUD(jdr?P|XQgmc**C#DdX8tZyH+l{bXm>I$F&P7wXHzir`0-F9I6pjKfn3% zCZ(ZwpfP8uF*Bs;Wnt^U$JPq#*8>6Vt2}Qe*5B6um($37w^s3P?BdDRO-V84f4-dzG+I;(I z^x`x2zo^F9m+Gr8r)%Taxf91YPUB*-Wov4%Z2Cvr*Y$Vbj&PiY&&4dSQT@YDtyQ0&i`tD8YP_!g@I}Bp3A=T-7XUuLz)t@o93T@1&*(k2jP#M#G-h#EI9kgT~bhS z)|-`L1H{hH{x4KxeeAAQXSR;fMc_YFV;hHREEk@Bm5at8#}!6WN>>!Zx--TV9-cLi zD^#V}kXmn!uJpeU8C|LHR-SR*D)K(a{Zg!@i9ZfEND&27n8FJN?qMf5qDtl1WD+Q` z#97g#Q5^qd4Y*7cA5Zb`@sbahkSIQ_L`?xxXEcE$gW>AV?#t#hY!z>b(O(OEg+}6n zbV-g3mk%6R6a+=cV~=f9o1=5zo=x;j4306zg*!2qp^je%_eohp9PADX5CK1 zHg7^i;8e-wU*Nq$=N^^J<6U=#wGxRD9CkO5l!Cv7m?6W6@F0^H^}C|H#&-h_{6f0I zIN!{jsBnvoYt?Cu!E1)6hd-*^cWJA`iboCRbG%GZk(oeaF>aM2#725lLV-ypY4cWicAwzyg$Rh!)FT2B{76_tTm2fkySH{^bO6-v~B=X1S zj|5NphSn#}@v5dThkuUxzln64plLn3T?Tl2FONs>mgJvIC~V?T4NCg|pc?OOW&{4A z8e8*WXE;Wnu6d$YQwAd3auSW28Wd%+AC6kHpJ zYFze!4ih8EQcC}eYD`3iwU$Ef{uk9K>tlo8|1YXRLB&pJHr!A14ih_Oz)t*NGe!7s zGz-~_GSYxyWr`86!0Zml5w_A0p}xQBhhlsyB+EuZ|iQxhpc7{Ao1vJaOwuyCi<44c%rx$n8F!u+5FWe!MJiYRd*8K zWMego_=b~Fgm1yi3Doei5}Ywdjz{szC`njpGgE9$WqNe@lP=3tvZ|Ha7E23rdT&ZQ4#`fW63I(k2qgr_c#^& zjgztdVO8dvkLuO3|9p)hF4-1tMuF286-;XqH7BEuK}H4VrO~&#|M?o5&pHHQ;`tmS zy!<>pK#C??lPLo#YPWx zrb$sU6SGg=yEG_YSO3b4w>qsNaZ(!*qsgg#m8R%sP&Lr3#vm{P75odS&v4V!;NDGq zS{G@N$f2T@e3i~oaF*OhSf|>!L0YYO<|oYU!f?fBAjwuw{wIr%m+-5ed%>BaQO@=~ z+aR7|7jb6IoIQ0)&3SSWDxblWIhEh!YWFvynOp*w*!24l0kx~i-zrrZSg6$8q^c^a zDDB+h%M53+BC(`iIs9@?BND=+4gAg%{nD`2#3{`w)+o`B3dlb)GK=iYhjRnW%bB`Q z>T=sw^rQVEsXx!gk~iw^)J)H1Xq~uxdwq$DA?w;}6GuJg$4J?R{FpRsGkwkKo5#(V zQTg5b%nni9D3}-(m==DS*%Nx*zyJmSUd+4JUM?&p0<*mDyD61m7CUW zF1g30qrF2=PABN%Yff4B)B1I}L~opqvbq6LgZi&de(#%jSwpdDNd$zosK>nkD>lt> zZ?oEEhCfu$CBgTyqMSYT#1MG@OyEZ(Ke}T;zTRRAD#6$A;mrn@y1|0j=L;iSw>PiL zQW4dy?3L4jrzx9@YZ{VKRF)EjHTh8sM&tQ&wj%x(2w@jTg@nmJ>XJsoZZ3>wS3k(R z#ht>14zIK9sx&wyQn|y{xpvB(TS8&sKN7yxocRb0P*pb-t);(V3kn1cb>sAy(G-C8m*ggv>GN zG>$nlEls&7cZ#pPwZwL>hHNUM!$DI^S}Z+nsJ!bCQ_;K!ofW9*qugYRW8gE^X)IS_ z$=V8TIl^#d*2t+j!w2tnE5dRgu$--R-Iw@^{FDGqm4XR820p&{&vrXZKtmvj4gzzV+SG-rQZbxtCKDpf_35P40DA zcdJliWqA3)kVD{+^!MTCzkFZm5c!!^)y4=2fRc41;~vUort9BR>fxFVobiKEZxVRV zs-rRC6K|;I{oG;D;KEXax@;6hJIcfUzRQYb+6QO`3Pn>TbN>TW9S`BJ8sKhnpC-q+ ze<;w;E}ViJ<#l07JZE&|<>#$x%9ImclN%;Ghb$FWe77FZHBBc`sr`b7K9$^gl1olI zlHzr z{3bBDRy{dAA-Ow&`eGs(s7XevQ`eQ^e}u2Vah~SmP z%X4(sm#L>9D3d6wL}{Awar$vy*l8Z)H308tBYuKP4_k#*G~=;i{^=S^UXZ(J1Wgb` z+Z#&326D&g8W<48e{_w%Lz&wvFj}0h;RWHFhd#H3gk#x2IzTqJG<72z-W@MI{aJ(; z@a#TdHjaUs;^IPW@MTKbH1Y|N1b$kP8DwC5MGf2eHhfV4xDVh*OTrJH6F$bBY@JBI z6r$d&v4YCEUz(#oN$4yM@$}*!CxaG)VN_s*z9^Ukz}GLmkHrwH)#Vt{Kbu5TRh2?y z^zkh^@H0vw9%T6*r7~8iT$fMr_&ZdWRggQPP9t+Uj|d7L0C~|+Zm(uesb7djBs~82 zZGuE4B55Wv{>;!a5D^-1EX}f;BGt-xf$pU0n8)j#$I~((Aez9dK)=xPhN6RT_D1}j zAZRZ^*5Br=u})x2Bi^7dT@OuQi2x&*&% zsv$v1hU?OVkN_F=$~Z{|Fln~bn#8Fk{9+T3Egt|}0L4c_{uvlMC7%rO4E`>0t7SDp98h9Wyl(gAhQ;f@^nvBWPEoP3F_JC-F%{d2YNw3^LTeej~mEzy}OJ1Sue8 znU58Pflz#fyLF|()T%()?tGcnahW!IhOQzWwHME&KESYxAVWh6gX$*0Kr^c10}26| zAjV)SVCecL88wx6R2v!f_?n>Sx9hdN8|N8P%Q%4qFjVkeZR&1St48uTdv!?}h>f6D zj-bZq1QFm;Lxkd!L<3svM89!Xg?`Q5HmYA z%Z8_fdmWCHu>^CP$zLl1kn{t>N~L>W8;}0AVvh_Tp?x)ga9uX zHzR(>2si(|%H84gb&WTSf^DKNoA$mZ9WZ3tF}#{}F7$i{(0`)3DUfk2$h;8%^;%Q| zf^UH?ARJB1P}=Of(2Uho$sogrG=mb#Ng&OT+7&{aw2}L{MZSy5fUV7@OG|13&?I}O ziOgA|f72LTs#5UACRw;d@Lh!I%_U&?J=v z)nja*vTPU1Zr{s?l!x5Sze=6GN~s%2pX+}~RM6z|K*^?n@o<+OgRQT266o%CpnCB+q1@%& zd@vC{hP(bV{BI!Il)O=!5&!L<*Igr>&XCsnr=an*2BcshjI4hCJHb#0Fj3I01?rn| z$ruN^^;a96E7EQ;5eqJ+&%J!Npry35z_2Asdfq`|O-=uGt=)ca^!>gjQ=(1!cefWo zkuL01(1O z*Afmf-m3$#fiFiP$|`u54WFwpz@-o*@rtUra9rs1$6u|bLZX00FiFzR1OQALO~M(N zL6-VJDW$~aB7~W&|8ioSG2=PI5>SJty2MVT{_Y-^LX9(`%=l8ejb2PLE>VpDEr88H z9~dmNltQ@#%z-N}M~lU5CvFO5rW@XWyH=DdR9Iz1z?rCz(eaL6#M+M`k7TKTp>%#t z(5kb`fw`&WyJp;k;k_%3jRVs)su>2HuQ-`GkVsEv<$SNPt{ z;CoH#_t}bp+^|Fo9R=Zu?64MMcvse4w)u7lAv?MzC^CwN+ErhXlm&+@sx+7?Q-5?f zJj#(Bvs!o&xG+<+^qpC8?)}m-4%N7sURse`-e{Cvvs&IRTHfiS-d$QgY-HX4yL=+| zW1@w6{`t&V(T_V+KR!%;%M`=IBO5kk$G6D9&+_7iW`NDuiSR_BSASQ82Y+;mA@Xd} zUD=2mB4Gk-Y3A(sW++@Om0BPJW;RJ8;I*PNN%9<66*^R;NMn544DIzIrS2j5qzqU8+>9Bbiv0}0Al(J9;1@g^|K0LhL~9bmRY zz3`#U8!V)2I-8HNz z9^nmwVB(NCjR-rjms0>NcmNA&u%+VtYusj>HPZqT`WDSFak!nD2FzOTz-Jtx=4M+0J{t|)>= zY}s*cIEJ9)fEbG)Wj(->9sgw6T@K&Z^FBtF9H)$J5LzEdd+v~moMKdL zmQcibV9S0Z==8S2>HS*=lIaJz#i#G()#R}VI>gG2&Y5Z1G1ILBg=VVeF^ulfp*87V zf7*F)I<+M$gD3*NKz6B2On-$U9VOex0UPi~r?%MbqX`l?3Zx^32erA>nI_pL!^1<7 zE=m)2cw8z^h!>`>7mib16%!q={4`v>IB5DkOokvt0(OSK^naYDupqKBeueb@aciU= z^d|c5mR^scf6ubl;&Gbt3PVS>2lZ;lvJtuJ0^e2+KCR~GN6+m`%L&9Y~ zvC@_EON2>peYV4XcSdhq9)%-&>9)C#V{`|}phiZIlvR}yEw|MKlIaY;3HSTu=oF8s3 z%pT2lN8lrP9?oG#(DBr_92PIVZ1b;~^r|1u-_{ux+;ZnocKFixxlA>kM_BCjC->m; z_v=iJXE;=Yu_O-rDV^A9zSHmMjn<1Q@!L~@2wv;Zh9g{MK6C!bA`aCs$jlDqC8ngG zoox5q@_71A1DW_Po%a#T#;>eIAm8!FvYg5ps|o14D* ztG>nUN2oD;$ZAnzdfKq7HgeUnPR1O)n0i0?3l@9CFJ{MgAv)ywW8;~zYmT#%i z+2s&3ucyHi5*=*j&s^;p_(h2Xh}>b}_EIM|xtvF*y@uI(Bavx>q(wCA;~75Z(c1*J zZ_FJ22)#*+%t*~m#9y&T*(6lQI+Cy%WL9XiD)1-Jc@xz8Yj|~hqtgviE>5Bo_fOM^!UwtjsVWp2Ip6Lo^hnvctcG?x@KK}*a(<&OuTJ;V zxKlR=8>Cj>$rkf#5^bOFYz<7wdOAIJL(OF=kV#a)xIwvTzpa`+$QP5E)>oOeJYpcY1XDn z-bU1Kd%mmjkNVi%v-g*MkezuaUY6=xcGIF>)-dM}2zm6AzmqrP)p#g6ddoVE)ETW4?1&|?|y|4hltB=P@ zIoGG~lML_(or*K!ie{Rqk<4o2%z4R$l)`4B#K@i`LxZ@xSAM4(oShUY(7_1|Malfu zz@?3&L!39#v2!%QjzcpbzA@xj`6G&Y+&bU*qp2sIWOX39+oAF8o4^ZgKst* z{cHL6aJ26^M-zM+xhR&br8Gzd!l;0HL}zH@yqJRNxW5k5QDDPLqv@Mf;*np!e~ny; z1UeIjn6ci(U^;e|Q97kwie@c-49MCKRVDAzH#1HF(E8`_NHpSBqWUpR2q`yK07EpG zl~XJ93Fatc$DP^Sn$u`(FRx0t5b`w(fWl|E@iYM9GjA#n<4CsE^AXdV6{Ax3O-24z zB0wKi2I%9d+BQe(okQ?;Ne&5&hSPlq{dghb@Cd8{QT<2Bx?h+&wX2q#tF-oblgS3I zyi6h|2eCd%nom(LDe&wWkoX!^Uh(619wOrDl-X#!6BF%lsD_jXpQ(3pmAWnMP@bx2 zu6HW`fbBfj#7E!c$B}-91aV>b3_A;A>CO)+jDxVyBBbJ+O75g!0UnqPH8H@`EJp6d z$8nEhXXqCA!3J#(M!vr`E&S=!lf*fsg}CLX|7gtG_0^4_+;E~ z?s#be(;0HJ6TX_$GLP!-_}D-y5CYN~rYz0C4dUYGvzM_XC?qU$X=g-*4<>yO-nVJ- zsX$QnqUMmcWr-3tYc%~c?MX^-3103fVr)8oB6Q~ZRRrG)TcSVr(V^|A#M*hbq(87$ z`6^5#@k{f9aEpEprNan}2;E;VNMYP!N|X?I87ms_;-)Y0B$dJWum5E4@hKuCOonq| zfPVCAg#DA|wzX^ri?%RZ1u#Hbe!ai%L_GqKFh}igXdAth3bXy6&>? zGkZVJ?0wFD_LCQx$txzq49v<}|IhEMH`7ZW)vYmjzWH`8M=8FVM1P@LYj7KMWc0_GE52YP8eP%Su;F^w5@N z`eL)ALbFV^%Jas!X-+3zqU$!7^K>D-MSgJiLB~l2;z~1~6z_ZDs*lt|-n(p@_nM+7 zI5ynne$ZsFydYi0NW%Hh`<2Ad3E{+@!pp_+Eo-+^icw)(#7I&+lPu%Wm(;rF0oSZn zPTHGX9n=DLIBvc+p5z<6UYbJMv^z=AqDG=%ji%TJQM5->qK7EHs3{qkC`_v*jYvEu zrX{PAAZ4Hh%6BBojS)i>cm&O3n=)NSD#t@EL zWFvyxYzewNI4-v6lC5|pblulXTH$WWDX;*+mO) zm2fps^oN((tybWRZ*on*;R+v56RnTadtGDaM|FjWLZAh&oDt4uC%*AIRk(Us6<|*< z>5VGRe^4T`E=%NT=uNa!P9VWroF2i^C#PkT8D48A@x^p>py&C}L+?;bE!DYq5n<`^ zsyT78(IS;MsvdZqQp8^8zj=CH+h{uXbQ~X%DaR-$z29FMXlv|m>+bL0jz1>cnYPuB zZ=-}Wkm_WO!&U%(A3O5*mUxOfBeCnTuVHZ~e)Mkh z#lz+ij2tGPYKX^5^87}QZ1tcAZXhl<5MG-A8tkmjd2wu%fKWPWfJq#D{h5^~DCTG< zhx};4J2>YgHz#IKZN{E6CI=3i@5eLrFvuAkEg-VH;VgXP56-_4D##MPh3;RVRmGa5 z1Gm$Dpn7=*a@zok93;Jhfp{_Mi$~ewndbl?5$%>At-y7LmsK&4Yl|Dbtx=>U#NjLi zICY!`2703g;$S3PHy;sts!avpkeFBI9rHtrMkow%>bWI70F^Yr#-^jTvzwI`MUat}jK< z44U5BT=?|RgKmBWX>>{Pa5yDSc0lT>Q1o$N1h+@kR6Gnq1FrNr_`?H~#NMM0d5>u@6QaKXf95BQ5cq$^!%NOa|9d}gae8!3M1O?-tqZ+CM?JCB3{K)k; z6o4dRLh5PZ-;ZjfSXLHTR^76!ZnCWDwY>Ggvi7Ux?cbvsZ_nqeqAT~#hjk;54pKT` z;$Up}J1G|)6%xXw=niMxMTNMa>{JV2nADTvkuc9^UaPdMh zenB5J^k0+>GWY(77k9W7VKF`{Cyh^`(v*ZnV<^{yK6HBZJnKOXyntIvLsv8(SDeS@ zQqU7Y(BuY+Q{Of{9W`+!c~Y$J6kD{|d|y=Y#~(rCt0`2NIvlDV0Qb;9p-~jc2#^ER z*rHX8Cn&S8F|Sdc*+OC(-hz9>G<2^VC2?GJ{O>5Clb0hqWoT%~YcJ?SRL~ir%N0@$ z(R$Pr^r@3(C%9ch?HoDAHB|?-#SaP>*9!E-BhU`qsaZ@SG2>14d@N=TaznKq@rWD= z;X(&-;gZnq4+oJwV4yS96LOTI%k1JOQpZ`b`Aoklu+L9Nafgm1*f}b7WgO>3PsO6u zmK>Em?QSVt0Ol{~*f{C_HL5ZGPJO?Cr1Snn-(RB|pY&>-lHD$xk#Ih%=4@*C?~H0# zN1jY5qj3mDK?j{3)m)qmU7Y{TsD@{=i&vkE_xP_-jV>1lz$NQelKs9*fSPNdp=*%M zpQ9R)v%XzM%BhL|sjd-yu9wGMBbQvG_UAkc=ZGAxc{ts|23MS+Tda*+oR3?)iyK~d z2(;r&h>+?I1k$VTQxPKFQkUG)_TAEFT?6W7iJY_++i87(PV~riZyftrOF{~rdv2k7 zUhRT&YAkQ}LOy3)NKPDY1Kgo&Ap}ENFti|onH3T8C>EH-cH>#Q@mQhR8)_7K*w6X3 z(aJ4IXZd)KdCJ>Mu^wy-ZW8XTxI^v$!LOJn+M*+>A?;gtLQcK=qe9QeK5l+&NYhZf z#l%8LdK_yy>{cq};ZT$pG1j6X=BVVNEyjhU)@YlKbfAMD#>Bc~V?`L^Lm1*&v6RmW zkzK)v#=Zro*|^)aakZNsK5U+T^3&vBwaw3~_U3zCd9s7Ky zB4OR~E&*GgZMx$luov$HyWADH5x$QaHdB6QbL~Nlrz6tGVf^d4(0G>>yb;D_uhs`x zA%v{pV75M#w!V}Xm!O|dYWDdo;qs-+=d1iIb{_Av@8iU>973dAQ=5IW>G4K)*#kHG zy|8Di@FGbnH@n<>SHfj)6UOC+3>ZPMe}}=0W_d?&B1GJpi!V2q|D)iQIi%NN$;H<4 zl`nM5k_~Vn!C7U6&mq19EE-Wbv?%yAhUBt{-J<+b?(e9(Y=dzDrS(?dx+HAJeLc;P zwiCCoD=>SsD1aj>9&yaYZv+5H9z4qd>L_>KiQ^Zg%`Zw{yy#-M+U%RRoqb5!_=r~WDn}GbsekpXx{DXv(ByuAMcTJm zy1@B;-^18g{^J`0$6V--%_kdjRFNZbqNfRdE7zM8 z_LV#uZ$^?a(B1S9f6b znVP>tFyW}%_Yly_oh@u`+}*Dw$X+it;~KK3aD&Fk!-;cs!z`HT`**yHcXlYsrFV0; z@2k`PSI5FQSm-xf0B8O*wAAQ_Cvuh5?T7vHm!lXLzpbs$<3U})KUm%Ty-3mJ*YJ`n zUcFsE%)k52HwQYXE#ICExjnmKcrn=DEWAN*Ehy*G3l0)?c!i^El|b~6fwX1w^5Bz6B~KL?cnA-p7c4Xv7JFHeU(eeo+ufau@GL{z=tc34A_fFLxwkK(ZXf^2N3!8tM;{Y+NHc*Y&JbXBBbj z8b|@^N@>jD@ox_?F$b~EqF>aH3=zUk*>I;uPB6iAj3UMgu;{+K2Vy)26jz;_hGzR8krpOq6bQ%SfSC z3**ney&8Jmg4qYmrp>XhDm$p*XeK*Fxa9n3*1)7o)>-S^T}8oyI~rXxPOFpO(^N0+ zX*n@9zKv(dyIEi%c!Tp1)xmt~=ea_q86pqLoD@GyzhS;T)}HEr0@r;+ncaV@0(+Lv zaW*ou>STePoLt_(&FU9QU-Yk>>^>BsfjsHL6fhc7X^h63ak<}Te=>jSHVw^X`k7 zs(@ujl4!?#u#rORT@RBis>$$UrE^sqbkXpx9R2p=JSulelN7Uh1Ns%UXdN4^8d=>( zSK9o#c+|7~6yIcnL_ft*g_~TRM3JL1y>d}}X^xHaD*omdzBb+y)c|{rd21c%T`!UU zqHyo^Y30jTULJFe8PpWN*tiy8Vw?Z%<%MPEZ_iGsr|`USynZ^M`al6;(C(n-gMs(H zdO`JB&TlRs9}nyIcsPD}XYYGf1YAvFGS*12VKPCqS;3Adv#;EyXw;s2OrxyDo*s0}HcpF3)OjYD(YPI`j9ZMU<70!^Q( zi;}HDq(~*alBP4eRce9&?gkKcby7a1_b=YBIB*t6Cm8sW{b~Na9r;L@`nlsDaICSb zB6o^LDBU*73^q8Mz#`RK4_pVQlB8w}l@CXtvQFN|!HydbNataaSoDjjN_L*9dbQwK z+%Tc+k6DIioB{96EnrOY2aXw>Mys(WH_xH2i ze0ibqDJpPkju8NAw4_E&z^UKp>$9q?rnxqjBtl1Y*g6|BB3m@jG76evOwv?}`!Pq2 zeXWIyC25?h;O9?Qz$$n_+h59~4=7n^mU>d`z-EVqPM@(2W*#xlHx*cF#7Me6# z=2WbO_Ea=%lj@chr&&D+91>p9au;#wC+`pB(z>;)H$DQ?@24L|yH5)B)#3Eg2aq&w z+;BAW+Yy?$bavSm271ywTxm6p4Zu-e zn#aPWx6_XCIMD&5Xcp=f$`lpe1H26LZOr4udmda z@|vNwG+`|V2ptnt=<_q`XENeYjhF)jeKaFQOPn}uF=-FbfVb7f(z#7>*?y}$1gwDZ z1r!rha&Ddnf?LdrD9&B|b_%V+lZRxJZ3z;;>~0`4dPW>5J{($rLou-f?LVdg087Cq zfH8MidzQnlF{@6uQG3k|OW}DQpsrYW94Uzl950Z>Nyz0*o~M6Z$8DV#C#b|w!)#E|?AoOW=`2YxqFv}doNzyBadMNl)hg_l?#vV z4Tn|8XFmq#+X%v@zuxx(PKVF#KZ8FpX{X-}?QV5!^OtI)1iUb`uK`}>Kuq-fnt7yLgHQ0@`;iBc z4=>+U5$0jI6Z^yk(X=7sMVpUfFs=(L70ux-{MIv$FjzG2*#3WREy?rDvAy85_er*dMX1BYx%hSh?*T5JC)6&_xE?ZoDmn$-C z(OWz7eqB5|_TkC2K?s z7q$I(ftPPsZBA~$I(Cw2Sa?%@pxOr+u3oRlI*re9ffk1! zg2s~+ukHCok85y6+KFFets}_fb91(FAD5{~OP{-GTsY6XbM4g!hR}K7&<0KyWndl6 z@CkmD$8PufaH{pbJceaSK_ijN79W6%d57GKRl#cZI3rk1TNE0!)-VKl0E-$KEQYnP zc4+Yez|yWQKv&!i!%D3%0?Fpg#x2Sg?dX;BRK-{oZ2OT{S5Wyea?JEvhp^~mxPk@V zezF~2j8y{K;pn_ids;76O%aBerQLQ4k2W&{ON1ua&W$gG@z}iu;J}!sVkl~_0j6qT zXG~d0zd5$hs(V`)(JpI%AJgn0X&P8$(LBJ(>J+4h<i63aScgNh6Yn}d?!LvL zOda6qZMYz)tnya90Zxl`KnPLjwZNaiT7vntsk+}8Qes8dTHv`nB2^B$gYCk>%yeFP z(xE)eD~I_tZzP@961|JtxF0PIW?u{^h~w!yJCXlb+N z9!!a@G4p9U^vY?%uv14c1eQD-)|1azH^ENTd99-!giUWm=BSpMzqX3l$HROb?%oJh zA>vh{wua^@&7-9{`gtm2({7SZ??bg!YLJY+Ewha8)C@|sh$-(>2<97(S{?1GXAa!Y zC!X*i==wY9S!!!qYU_j(R3x2L`Yb*_fAJJ!|{1w89rP7umH zy98X?%DskW9bcDw&z9RmdjgxYwrk}Vk*?<`DtuWg`WY+y1O)dn75?&bvyv47x)q&efKOl?zH`RD{Jn@&u80^C z{M1r$dDgXbq9SrruwbPk3MrHgkf4i>R0a}Wz|HA(MYKHWHHH+UI}e?YB$&;|NRwh+ z-0opXal!NUzNGlLd0QNbm`zHwBPEo(Wv7!8>*vova~fSFk29p?A-9QQQp&7bXbUNI zQ%G})l!kQoTp^{ixa%^2l^Ft+nwZK=5#cQP$_zE(E7X-&3@g*jDzAPP%66$t@e#iE zf^;piGAXVyr%EU{yE36rI4_ZuS6dlhUwPd_D8H*Rwoka=B&lG$GG?~2P(-L`vl72A zTue1bL1Xopf2$JHe zf>K2)PgYbGRt1z-Rfz~z*H`&9i_}n8)bv$d9ICqYS)g{d%6m!V_KWh{`&FLE>bkoE zcUVL{I7RPfmfw}Ac9XBZ7cOvLx7x)}^g*9My3Lm>meuu!0uO_~c)N%;2rN8It#-(+ zeza8HQ0|$2L-Yx<{7JLPmy5O4jk9izL)A9pqRn)IO-r81pR1n+bGIND{We8g%ja7- z#hm$T+9WDk<-Lf~Vjbaq?S?h^W;LBd!d)(6g+5}>mMWh`))d9nbhEo*p_`}M2!teb zyIu@>0sa)XVevoT0AywR?kiOIEgIWlL7J zWM%u`McHQkrED?(^~x55%=+Ie+l>F1vUT`Bq--Jf%J?5pw)^xMYP$b%WqTD;wo7a; zQ;+FU8bM@o3f2uPx&Whi(UQqm2EY+&G)CWZGx2T z#tz4Sk+KyaD_gR%B`e$iA1PbRf0eSuUAsR`eHhasyz`b0fw9ZR?mkmxz~QYL&s+u5 zDPg9*ln6FVD#-u`({Jfaz)=7cXcjsEoIoT_I8rEYJv&O#l4A7EH_<5_{$o%#Gq}|M zDgu~OXTl((ynJ$41~oF%&}#SI)$LG%y5Nmu7{Sg@8))GXai9jq zN&vb8bF`-v(yDs3=%+L)lu&Ii?D#P>s{{d!LPaVy0}5DL4JGUc5eVI%z9w`l24=IC z7TC3cV;!y3W=o7tOq7Y2yJLRhwPH^cE)c`RU#U^J4JYkmm`>f|7k{7I!>t{Zqxay% z0e~Uek1{A$u7mJEDbcj-aX=|N!&Srhyn1B$1a;U-p)yw(L#<86A$xYBvWwpdVh#^b zCerUfb6f&aa-E&Hu(?f#XrZTVB#CRNfQ?&~+{8Ogm)yESNDqgs>b zBG{U2r6Q9=U0$cpW_1+m6i!B3bg)sc5>FfC(-c{B`kh!!v=-}RdTP-n zmbjYiZIH|IQUHIv`~vNPnyizOi=qSiTxplArZbDd7cz4Q>NbJ9$u_U}7;pfAQy!m^ zfYV|e&Cpkmgjw)DB@wIQ9GKPY&r1Nq`c!V$GeTHCGUbKHtHIblSnj1_o-Xr(rd zm##_i5D61=BTL}8skuU~wCa#gGRz3*&vgT`fF z(KU7LGW5BYYOd0G(@JW+L~l1u#_KsUB5haE=aS#`Idlc+cQNK)AVt6A&gi62o2a4G zFK6mfYQL@I_Soe}(yMNpHYVmSIhP>cQ5p-)LLjzAVE1G`)KA3UNbQt zdsI^Hk;^$-lpRPWn$tC~gAds@YtJ!jk`#p*K__1^ec6`Ts6EF~<_jb06tmTo22Q<5 zlQH%5ZT16folpwmd|Gk5812`v=uzH?ZK2?f zw>6J_w8KogrYt`?qVA=tSF@~cWocU)r9acT$(fW6Z-lyX*oYfPshM`L><>fDdfE@$ z4XILx(PswCm&o9ZcW$)|Q#h|biTk4L`21jRfWi{A78#lio|j+R#&x>Kt4L+1#t@f} z5W~^eOc$~PlzEcepS~AGk85z5S3hNN=T5dvpiss}PZT8*;|r=9mPb+HfEf4=9i9$V z?c>8GH4Z+%Q)739GPM5iMyn)+W{n*M64S;b+a{!`DVVI;(V#9|(^iesgotfgi>CNu zTk?eFFuFLnri@({){s(w{-3Yh%jN-Qtys z)zhH$y_|b^w@kr=OySDR#1}Wl(!f3K(0K2G9f$E^Bg7 z-Y?6GkEn~r;X9tKp-VzqQbBx9T80}R#TK5MEisA|13anVPX8xpi~9*}7yc32`u!_t zTl^c^Qsia*J+vkK1GHWE6WU4&S-s}}e+X@He+O-WK*FEUcBLzkp*tE7%9q9gF%Yyx z*xaZnORQw~g`h3lB?#K$e?!}xzo2c`pU@UeB;o&nw#5b#uOMiP5;+)$7gb1~_(y09 zRAim3yvj}-jQA7U-uVS>D`hqyXxrVJ==KxZwt78+vz`0|LECp75VY;=Krj4;whf|x zgSO#SB?LGZ%Bfp@nRA(C6_$RbQlkRB$ zhPH(dA!v*1etSi6KJhR1#P$92p43D{D!v15VSq^ z6WU4}{{e0F|Ae*-=$lC|kv+MgKu%J9EB36I9&w`UnV+&&P5Ql8 z-TCL=tQ7D3l(m1rT7{pm7R0PnAc}{TldVS!K7{-!YyIUuXjr@`|5Mi5iI3;2juSD6 zgBbLgd7C%hJe-Td$s{ly1G3~kn~Tk)Y2uoX(GFb2ctLVeSX1n%zWWvh=n z!rTz31?q9zd&D2NjG`KhU_U`Eh31;=+zD=5OzcG<+N$g$?(_tsDiXehx4bKi9?ECq zp`;15eRIG<=<1merWn!CQp~_0gW377SJAF$JEspHv`!D|{L-|XeW*)`laGW;q)FBX zyX+n0%$#Pbg7t9=6sFuPnM{eODLK0!aSqmGhcrmfD%go{7I*NY!x*B8dk)mp(;$Ar zTE@jzqB)`Ivg6;U>l<~ZKejqTxc1L<{io8mj>#4mv3XBolZn6V?7ypQ|47%* zIy+#TuiQ#H%lU7VZQ+c=P`|uSqEqePr|ajen`aYLUGj*!g(EKhzti=pu3>Sm0cJyI zAUdn~lg`%MrwT4~#nHLpIo+a>t^orx;lJrD`VTq_LUuMv!Y!%UExB*r9I~_X^QnK@ zS<~5h$j+v1&Wm7YMD*P=b!Yytv-&evAUkWfkowEcn*Xx1C6Jv}n71@^`2CUq&gRQ|o`dMD#S949*>jx8+b+&ek)G$4yayv;kIkF|*nZhrJD;1`&ZPo3ys{S` zv@ZtPD_5C0zt)}Uw}}mLLvn2)OqZ6%kbqGrie7Sg*yrMRpXCulXZPZT4_#kPhrGu( zz0c7RINfF@U7V*Q<1MgD=WM)6%)Dl6k(Px^FKT?^n|-np+;Jwdez+Xte&)cL~3P4?k}edf&~4Jy83yGyZjoE=D=W&$Kz_Y9vYzO~3-~PqSB* zN$w4F1lxhHN6ejPmncou)+nRAvg>?aj3ZVDd=h7UOlN&XmsdjUpzeJ90RWe;<|j!X z5N)_xr{)R1slRC2wahl`hk3Zl{?PN|<`*t{!m+6Mqx18ufd7n||D4*|e4I0KnWo~7 z&v|b614V7>?<*k<{&eOW=ept?RK2B&0#8P{N>_Npu0h{2S7qZ@P3cykkGQ|Tp%4X| z5(x4tUNDI=vp;vcCs$tELv|<(sqesVltO|58 z3clDJ$f_PKGO-b29B{^VrdGgbdVhIWZGqLoo7Z(o&2@?YnM?Gcgv7<c2 z1K7})Mk4x_BQCKK!-~HI8P7Bb?!8|2G}ONQvVW&Z@>3Fn^GMp|(W1-mZeM<1T;}xK}9V*Qj&I*lTgZ+ZrcJ;hnNl}?o4fhXk z6sd#>{7l#1=j%!~`a{{)@GUs=>L#1l`R96J=J;YQ-|@3qNo!m=8Fcn` zpYONs09<(Q z#BOeE7%52TfJ0+gZQbuhSDd5om+GHp*(lBReyqrL^>|zmz2(_Pe|qKOTRKIj7CVk} zU6VMSk(~afDa=jBEv{5R!;9yKP^n?(3A2+R-$QO92pqnm8gy5S!CLM^kV9#iK&g;^ zGTkRq<*mn6uSz8qr>TAY_@z2c7A=DN)7luB4Uf7xTfVFAWZ53p-}REA!z3ij^ke6e z;p6giY?s9AD}ID99IItmA5oo*2p7pMr89M}FTe5PmGY$DH9MXqwH%42F8>(=`Le6C zv{Kfq(HGBzI=7#C`h$)(yLqPPoo(}s({!>-+)&c|?&z&WbkaOSR1?lT<9H(N z-~BN%;;t15IuDF?5Wp>a=6@7M&ffh#Du6*5>3YHHtbr}JxapNy&xlAp!9M`4qdheP}4TyX0 z`qRz7UpW_k?n9uX4RiHH<~?`T;yc%*>(#ZJmNzMuP4FlP>CZVObDrTBm-KB9eJRU* ziiSzneoOuP2-t$9Vb5tEIMCA(1>Y0#i_r_bNy)|5iKQ08(+@^tR_pKxwmKXopCQX} z$X|J_;5+uFX;+meuwxGqR4SS=2Tajw^^!4%-ME9nx;Pf-cAAJ)En^&1%Q(YL;N3`N zBH`e4w@nz94iT878{t}ouvj`TfZCYhnfeMW)}5i0rf}<-%y@D8VTBt+Jtuwj2@K)z zQEnDQNyi~jgHFhxmf4sMi!Nq}yG+ZMEJ~}b@fp@}m{1Y|lAf_R<#dTz+9OGI(R6lr z9r4sVNr>m;Uy&4aLg|c0;3hl=3(z`ZN~;N!xqOGCOrDAB^QP<7Ieq6TRV0!;Fkh8E z>VZyoaP(pt(Q(xsi2gbPC1!<-X>bO?+LlTsZ-4DLn?66E!YSnaNv?J)92Z}AGG5=8 z+0~+jm&q-LQa>HW#ilQ{SNzm{Y7P103H~@MQ_KOjHU>$c4LjjSP+qjB;AYc5z-~uG z&9B1>w)AL$mT1+$Vp!xZiV-D^0!%e%D7V@)3p3&vy)Xyd=dINxaIyGwI8eQX5(122 z@`HxV)XpR=?#B$Ggw_IJq6_P=Lcn9!xGMGA;Wp_=O$GuQX4lSwEPfq{D~8#RXrg3S z>2IVCQUhCXeb@?tUH<`6nfO`%)DQiyj0nz612`?aq+-IE!5fiRNG!krm|Sbv0$-wS zvE1_m01S-jV1tJU_x%^~_t&^4@GSbW7<|51F}@++N}Vme!QN$^>j|@fJnHUgrTv?M z32(6SAqjLI^?)!<&aArZN-u+9I+uZhi^dPe^HyuqdF326ni4HBv67lVU=9ArzDe{K z>xm*cEPnFt_g8qnK`zRMadnR)CkT8STvo-n$sZGdQZx@Bx%Z5+*2C(P$S`-;-kiFJ z60wnCgSj2%+y;@0(UoY@0mTSO(mB0 z;QfXT$A$3Yg*%Ldt`8IZu2gqvkAg9g9|k5+`pFJ&q+s<_lN5kF1Ja$Dky?oX@7;c> ziG5}0;q+Be(*)6`Q_{?g#1RVfL$AjcZ^p=9mhb?vd##rLBJU+Syset%%6UN>ZPiF zv>bIBj2YgW&~>}vys=M!sP+-~2u#Gv1W-msmEel+NR&NWFE{vqJsA=QUy;ce2R0N{zeCF%z#l4(-+?x~DK) zP~Lp|SfbmhQt{o6xII<>n^g*)^GZrp^4DM51ZQwX!)dfeK8$8d2jA*>r4;kzH6SUh z&15yHh8 zF;N0H9e}fQSOijOrqlZpF-xX#;TPNA<18Ac5p?C3DEnZkR=3w#*KmZ+Lv69t$?Y7q zM~L#k06yi$VZfHC#|sQRS}RiDL!q!z1V#Y!C!Zz!=Ckla&cFC9$x!7FKHF;f7oW`^ z{je9)9y_=`F2wd+oCa$P7)z@NSrpN8O!V~7)d{!z7LEq_`N}h11sKd5Zf9WgX0Lfv*-`d z1onW-!k0KlqorKJpS3K;Xy4;b;PIq->St18^UP6EZkTHKl%IbSC^ z40Gg+d1%HAMfrFD0yd&|ienSIoNPzsGsO|?puy0};bJMQ(!%iq5IMlfZ|R`_VUokc zikG>Cqq!A}n4Dtd4r8;o8;eo1o74ojwC?Aq;vfgBwO9btkQ@q1MkN~{RPRq)Gayvh z!H$CGF~`R#Rcv}8DH{c)2LPMAuQ6&&9axEuw{=KGc5Ri=o4puqE%pvA32iLPr#mXW zD)oi0juKR?_~hja-&oP~o+F6;6tr#fcovVbTwS3ey8BM2cv@AN2yzPNBEkyz9+#eK zbMinq=}Dx>ztGn=>o_cQ5Iw5PXna$5B1T92r=T@>T|k>-q5%n7V-_tT{tg3$?iwdx z6AkH97pu&2h}c@*DEFwJHNX2)*-p1Y%GO2X6{KukCMFE#{enY zxsjjBR&e;IvYi_?C=WDq{f>o{ZH46-NZHO^^oNw~oNqLwZ0GzkE5gd>{BJqqBv6@IE|ewjo&YJ^IMNkE_jpLzx){M3TU|)mes+YEtpucOzt}^{mIYF_UtHHn_Y&Ri>5AGy$~INt zzD;!;q-^{6A!X|hDch6t4^u@iK+3ijQnuC6kg`oJd(tfR#S>Dt)R3|jm4}pVpFq=6 zbtI&0ZP*}X>kTQ}7juxZo#m@(TPkmruL(yY$cmQSswKB-$*tPQ)t(>wnl5=PPF%PI zav3!@ZnsXpiBjutZrb@?@b=|J+NaHXJJWMt=8~R11;J-u$%>Y&X#XcFT5_wF+^QwF zYRRoya;uiyswKB-$*tOAa;uiyswKB-$*tO>|(2)n6=lx30FAWHsmlrt1Cnh-} zv1%hJ#wlfdT3Sd>MkYcYbXNqpm69Tr#JE+xgw;SRH4spD;nT4AsIjW4si~r4v> z(Yrp?zneX<`g-8?=Bqn%uRBWKe7rw6{rK%N_;%8NXn%dQBlq1(RZ>;=bh<}=}$9{XTVo;OH*^;^xXQh`JFfO-}cF^ zT5_uvo!71m4)8=5t74Rh2SM7*7`kX46UzE@9;9XG0XfaNxj8`I9gV!2@VwgLynsj735of)rtG|&RBc$G@fo;6|?3r#$is=T>1J)C^J`9n>F z569|VWq2~Y^0H|a{8`ZdL`6$()shu0S<(LYP_&=;^iAGNz1%$O;8lOGB!#~GE_dmh z(Dme*v8faC(ae@|`4zd*@6YzLk+wJ9X#Qeuc#ztAUNU^2e zOvkblymBf0m#6s_Zn)oxKt+BezOC5s7iniMuPvBLQ7z_4KJhg^<%xlp?D>b;G@z3F zJ#wp-+^QwFYRRqIVsfjN+^QwFYRRoya;x?Zxm8PU)skDawEt;} zRucLAz9SlqX*nFAk?upw4Hwa$#;%c~Y1wc<7+bdxuniBL@k8&VM^h(bGa^eJ*bp$3 zU^6r;B%>3UrGv03?>cJf+@oSCwFghn0Es(!_nKp7yx!3 zF{QqQ2WUS{U9H-U7eg0Ei(*;;KW%3US}cWxA%YoTz}ESK03c|L;5sHr|DZ%> zU6#nx(3@zdoIrw+Teaj??P<$0Ys+$POLD6=E{cdEw`$3)T5_wF+^QwFYRRoya;uiy zswKB-$*o#)tCrlVCAVtHty*%cmfWf(w`$3)T5_xQe_*Tj-&3}-zm%=cFJ%i6+Yi9f z9Pst;TeU+6SLm2IB>q*amY!eccc^wj@GGCF)IYXrr6Xki)~YpE2BBOn6si@%f>5j0 zRRjE;tCi8Q_?@dg{cl>e3Z}kJrkcN7wdc;6{tnf~T7tG0ETBrQskKL-H3+q8Z&-s+ zuJ&iB*2(#!%hvB!?caxLLC+iuFG9Bun0e9itba*RfPY$mXF-5LRiG^xSm+)E<^_Sr zL-O$<;Kz`yd!b-QsAFjOrPc6t%Riy5|K;SL$`=1q*@E~AAf^Z+wm3pEL~MWKS|Fh& zDk0Y?u@Ew~>&Y9FsXGv>y_8;2n*o9ucYovBzhrIdmAuw#AS7!|bDmz!1&4F}fxJ4% z*W&W-J+2--%Lyo8{wRN3R?vWBS&4_nemC8;94 z^43n}I#AUGnOd;AGp6SKL=DmL))NTVM$}d%-EO{m`?+#mSLeN(-S@zo_gn2Bc0Ydf zc;OKVeAIXIaqsQNk4m0^bx**)C#2X$aIwUhYNpOh4?I_?4(Fd(_u=bpR|H7=seEQv=OE2G%!U zf#9o;8E;lM2XD{5?JXEus~P$@HMF}i)B+Ao^$brpk1XFA1s}efe(`R-=2yCQd8`Kt z)lN-KL6zEXpWZ&4+3KG8@@aN$WdQ^iR>1{u{4==vdAjWj_;GQ4dGQ;#*bjak?Oobi zT3Y(JzQ3@(xxT)>zy581eHUDxS=iWH|F$!;`_Ibu8r4z#y5iOt^g$7;?z)opcn02+ z`TBQmbSAOMc#L)5x%n&&qm{VZP*wUoOXzHs)$_Y$FRw{DzQ{juue|rVLcr&-=l3f5 zi?A`&94GIS2Ez5T_Ak7+U-_oO_~yxilMkxiR-0#ee0cGodib_odm_iF`kK*uZf~lr zU)JAx|Il~(MZu|u66b3|*FS%FdA$0=QyiRz)1aYlvYmKPl;!=yJJZk7uS*mfJi0sc zGDpU9yhq{gTz~ORf6mj7?=QR|on@u#eH`TUU)!p^rbD-D8ry$J=E~hc;h@3QQ)j0K zCv`<0!Q3We*=}TCQ)vvG=RWolD?p7g!&7L9Eba1kpj|DbD1=X)=WS!~NXEt4OcJHq zX&neM=i;zP;ZNREd-qb)bi?0VQ60x@8>#;gJ5+XjRwbyPOJ#7qUy67BE;FZO&pJJe z;^KOm5N~>nxq?jN#4L@B!uDW#;E?;A)swKB6`5z6WGI+&#jSnIw*qdFjR zzRxP8*QVxP9Iuh-!I;nY6nHIo`gu4653Icc#WD%GTW!42%wHuBYTZj~23L|)jO$v2 z%@mhLrqgT$Yqx^KmPYwT2lASj=^CdP=NXhjkAA1)2D4&I_?DU4XFiL)r7z)aF{brN zdbsq%e@9NhNZIH)uTfcTQ|-=DTj$b~bB(BDjUG=~)3#Q+1&eZ5d-^MP*9SzQKlM{O z7x%tJo2aX9j)ibt+w8q`Y=6rQ->OHQ@K<_5OTZvi2vvF$X(EK)n+RY1eA^tngX_5(|LVx);F9-U5)lCmsjIXcO|s{tdk z>KK!~&H0pPfF7eUNMa2(iPxlA%WMQ1?qN8rqfeh2;qD8g%BqAXJ#rL5?yE7u)Yujt zcNC4aOpBJSX-HJ*@T?9-NHKlt4sz-ph&5)v`jBwc#BbC{?9SgiVF zFV^m@jNlNVEIXwMd)c8%*oJGbz32-D_Hx6r*~cVN`&ni4vO<-te9H=?W_-?74Ih~W z(@4>`#290$GP^%!*FLHI7<`=BZt?U^!D)Q2@un?SaLY(Qle_o)h5h>Y&Hsf-+h+B&rPq`VO z)T3=nB|d~{-Lm|cDlJ$k_Th*{V?CDm2wN#}-*bbv zcSM&m%E>q*ONjc%fsbyhqlK&&4Y;DalSAIOKMcXyp*k{K2l6pwD=9RkYE*@A9}eo#$0svX>xl>u0rh0mr`udRfBcCre-T zbzS&;c977~V6-PID#=p`>g?^iT{@G{iH`Ph*C+fX)!4%Z}G$p45uchujn}$Uy4CzAKD@<<=MPs$&8j)%4-Jz7Kl?<4V3A z@)Dc#4xayXQ#5Vn+i2+V-fy33Ap%?YxfXY=1%so!`Jn{Wq}|1n!RA~YKl?nV-rq+@ zENsv`6$wu&OZv&J+ZFr zw~j8TebjsIy~#sAXw)VtS^z&)11X)|@Wpixv+Hh}V|{YB#7;S_<__GiS+bRh{m#e! zvHMn{WpHCE#izkIcXaINt80vb=em?;1~Saq-g%JEdZ7~j1RdB@Z+SF!vqELOe$V-V z%BS5tvf?5MW_Tm(cDBov6+BX z?TS%Xsnu2(R~=4rqbd4OFWSS@z{T4i^i@ij-R1NXKN(LImF)% zOsL3B7(bIx)t6Aakx)MxOV&tia!gEi=V-}IyxWrapfB-WZeq)1;uDRejtwk@H>oo> zsoOL0d7SObjijR&VyT{fuQieni?BKnldT$~w)|lIQf9&7tNiC&N8*=c0vhs{UmN>1KX~|JT~2vg%;G^L&Q2a^#^ax3 zQj-^nOOprO$)IIB$d)NLml<*F46(Hx9ZX|ww}rFz^8`>)7IcuXExSc8o4OxllbEhf z!Jfo`IQzlE9!uZ17pDtJp8R5I_lPLp~A;ST*>;H^Y>> z=+J{o(9aqi=QN?`zhfIHIs5R4EH3sF6lq_)$O0WIMg?r>(1|5BxOlcq$cgo-Xc0&Ixu(<(p&660M0S2Rd-}t?UUB($7pG2LP;XA)8K+!p0(QKRDe}QNYV> z7Y6Kwfv_v3)$$>10pJkD*&+?bL6KG=LdGuw7o_1ZJj6VM#5zE-2eFu8kVln(BV=q2 z4k)|`QrEwNqXH+0@X+1tFbX&U2Nvg72Z)f%B#3b%lFJ!^>PBz-0sI&QKm++=Qq2a6 zg$J;A`my@>TMkNq{jwXUR$O%_HeyIAW9TaC?rO<{|>c(+IT(x&C#nU-tIzuf_# zAprXVP>KL*o+MaIrl*Z40j23MtgUoQH}=R6^qhIhO)=mE7o44LRIF9y$6rp-C>M7s z-}had1z!>AY#pQ(5Y(NnhP%PQvnF<9S&0>&SJ3MOgaRGZ6;FOjy!n(=8LR@jVCJN} zWOz^sxaC}RJE5v-poRg!WGL7cMgoMNgw&EPB>d;O_CO^@=ZN-29Swy_BO|QJD7lbId`ANEhMTyNyub#uD9xDKP6I8zY zTFdSN@>41(GrvXDq5;2xv{eH5agxuKfCEI9`?xB_g0{-;nnEz_XkzxRcnCWY+Ef5N zgW_IhLGU=2dM0Ln5WU}g?*4fs*t?BQ8P}}xv&LZtD?v>K&ej3+GV{nbfdu$Tm%HE2 zHUStV@0Zx0C`dCy7FMW#@5@j0$i^A8ll-;M_d{6q!wLix-@4_(jrL-_`nkq)ra|F;oBe&P3ayI#8C&}^{@!$> zMQ`mrTi|~8JqvdvrnTL{u9m#}I3{%E`G(r9xL^m>T{V%wa21-Ls^$ROAfu?UBDBy?GZBfxm}nXuI7U?9vEZ8NQ6L)lp%P!TG}+c2{&KM=ptwQJ9?77t$Bcz|u-f@qR#zRZHg3EeM$blAyt z@*8&6TtK3NdOGuXo=;`07ChTbs+aH2=n3LbodPRhKrDVYre5?!K7Fh+Rd|DV^8<-e z^8hEvoSR1lC<$mk6d)G{;YsMaT3rRgfq7p;bj6{(@=wn!0le&xbF$p`3VVGSGF>U6 z-EvC6xwg9{w6_58&b}V0B@c4IJ+Zk6=Dh(C40|e=+{;hN)%pS?#GvW9y#mP)>piRj zTI_uXUTZ#lXVuOk`Lcro23vo*yzdJz##PGux=8uNTcLy2bh#d3!=BlFkLM}vcEcR0 zE!Y4Wo25G>K%09VPv!s2V>+xo2IaOd=u4Qxt`d7JM4x$nFEcua_I-{`JI}qQWcAkZ zAnQ~gB&*+|x8GmC-}XZP?K}2GQUe*m+)Mb_OY-^w=XI7p^RkkGW~EFPfcnb5J$Mm* zP-(E^c%Dr-I#CJ4Yx%@MWU%Al;Ire}vj;v`Iew;%g5iTauW9uO$}^^xrPBI0Jl6Dc669c3ShM!W^-mAwM@}d zNfD@`z`JcZ_SbekG63rd@!R78tD*5-D`PE-HY>Jp4I#cJ+Yv(&yQMqyY8dzw^_#*r z+L**{7zWm{O?8~dUS+NhVJB=Sr2IxK^hPA#V5jgelfyl|93B|9qG2{yVB`e_izEO9JOHP_pm>+~d59}< z#42sVN(AXj1Re94ta}5)6M)sJQM}LOV{5>b2IH7!?gv0=kZ1znq=1C_L66a=VI#=5 z^ROlklm+LEA#uh@VR~|&k5DUs{BBdkId|s~7D;4VCjc)nb9aR%>T7Es%wt`Ku*R4X zyWRzh#f2lBb0gbmJZXeM1lW2;8tLdEp#>CX0*;xuf(Nv3&I>-~nMo1&Yzx0f;iu0} z-_cpv*hV9X^f!3m>?16+2McGQm)X$V%DT(;c1tWhblHXJk@>m8bii69%p8b8xB zv}nG-<2)=lPJw4p`L*hn_J%Gr*DlG~0E^pbWjA^|$MVEBR-Lh`S+{CYPv<`epz4+s zI94n~Rv6SJUK-?*;*>?`I=j*I)5R4##nsb_3rC8U4l>YuimAsLXbtp;kj|Pz@v>*# zk`5V*R9u8&Rt$B%2Nrz~`nqzh2OdmjCn+YR7Ne(?*q}(vNfV35X!3100+anfR@?{_5|;B_4$ zqV{_q+Td!D0Fn{ZHqFn6Tq$5G**Z+!s8$Ji#~WV!CvC}TB(0K82Bw~TGS z4VhmDW*c;dtU#D4r1;NubXP*ex+w-nz&W&AL)W-1$)$w0-E1hLbYJhN2~or-McnD_ zm|3Ruk=j%JZ^tcil|A0vc6#^Cinw}dzN3Fx5^TEuCSLnF+M_q~$4dKqb!_ROBD+%S zQs)oTM{1m!t-rkRpZOGlZ%>hM`8ey;w@hUG^^5bCt@)>F|pa1UT11nzdE9=r7z6`7~ zvuarzvKhxeubm&fwfE%y{LkyYw05hvDds(g^HjWjP-lh)TfIkg?!B=4IN#DR(ckR5 zAQ&w3SmkAF>Rz`Y@|DW>-M0I_4sBg)o4h77WB&|$ee?V3xvbR2<7D%0ijOXsRn@j^ z`}*`K5h8Gj-k!!aJ4MvNHPN3yBnr*4bnX^UWYd+f7dqBeGb;;!q}xXu?sge`(~-C2 z_1uX69G1ga!2dm`uHcoG#pgU%AQw$VKhM;gif2U4nMxE~I;1LDlzGwoWy$R&b2;ut z6$^#?gXb(1pJM&xm3(Jnll7h*&S+IRlKwR3=G%HP;p#y5TWB?o@W$IA#;ptDzIUDc zsqY31&GHy3-BXo(u=n-T+?sdWC9!JTx4kk|Q6I3X1~w(+y#l8_LmS_5P7 zTi(3SV$eR0Rk$nOakR*@<`GR|#wy46Vhv@c%EV6TD+iQB5K(YGLySln>4H?&Q^$*H z&AS_|Eo91*2m|gtWfI=Dv>1uA(w-<7(SsHl`ooSesEmyx;Vumw*FS7xGSE!28{0q> z9q`qQO7=>B7=7pzgKym04Ssr}=(3NdVTy}S-h^|K^vi5<`##!p9yPxcs$U~`_uq51 z|FTs=3f$wN57J^d;Zf;p(TLZfhtkAu2K3W9#0Y(+EpA%R-68oYO0NT_y3}^Z3#mD< zNsciJjJG|*1-9$Oz65Y9tqL3a&*4D_x}UXu(?+`+q@2zArv5G>LP+afL0U+G*8>56 zEpd#jodo{K>6#a3Q(cG3BWvz&Yt4o}d(;l=vj1>2g^Njm)D*Cg4 zxQC_k9vl0~`gnTE^c^FRKeujkZ)nHd>)XKx-x_k9nhN_V+^Wkc_Zc=&*CF?sv_(&U z;BL8f)6|D2Yo?aFqAU-#TgnL}G3fOTUT)a^@RqO4o#$`PFw*uG9_f>MF8C^5(R2Oc z$JWij%>{GU+vC^t*T1-5I(067W&k|o@i4`3B#hI~`1K}?>p;E8S+fiRZ10HLcRg={ zXWMbcwzjFH$R1-UVfVuT>xhEM;L|-K;oTNLL{gpF$K-`?iy-fFMBO)^O>}PEa{M_=uAZHb}1M_xi zgsIVltNN^>hKB_9TzIzotR56gY?qqCfx$@33+?SuLBlRQYlEJdK^+qe`$98U{_ z(j9vHDJvf?jOPKJ>@5m_K8sVH?&#c(k^Hx}VIW%?49ZK$aK+)lY-D1_F)#qe@8$rg zQ5m$8-~$^7L9ngTDdYN74`L*A;pnb#(`DiJnWw=Thlu(iP&O#}mJx%K(@&CufQf+g zw}+F$k41?rw?vv*TucH*k<|48K+G1*0=y~))T}D>d!(`gDpG_l5~x<91Dt0?t3~&` zs4&@m2w5Qtq)BIedTgWT$gdC%j|T+P|Dybsfp7s z?8+JlWyd_^X2!eU*j>opw`Q~}(qosZSdwZVfmJc|`-_8iFoE=CTk?Zf;;-Y5ADN`a z>U0%zCCI$cz$oK%TEV$q*>ACWV~GJ9C!V^b`I~uP&QkLO3v}7KG<&A&>GNEDtu`Dh zc&!1&V~BTf}%72bp0CDygUX7_i0I`ngjHeAtAymIPvt!&&_r_mBjdkE&g zpt(1*_f;q;WU7BV_G^yNMv;0pJ$f(Ky~nVU>c);Cp)|&W?#}a1UM7k!%YSwD6@Oft z6*?!b!}wX0^lkQ|?3OSrc8hk<*6|OX` z4%(eDPL>TH^f%dH6|Hi9|M-)rdx%LuIa?3`s!6`(heT-6qWp3>r*~=hS7Wa_!f!r( zv?ourPd`P6S3G~C$WA$d{8LMX_5KyUg2DUhkgGYLl}X2@v{$a>peK_ry0`cJ6P1xC4+#-S;AzApURhj>p>oVXy)a(wx`Aem{#=2#sf&`{fW*236BPW!aCaq=}|&sVBmh0j#0jnBPO@qYD8=CiR+ zl8WzULWl-Pm6uhc3)Jz$n5$nj*t4^V*M!|s>{)?EP8fp26m;eAb8ueCdDAolicy{^ z;$R#;FDw$SQJO;DrQN$LV{(^;bUYq~S~wvee9VMFI2CXG^Z9u~jgSDb#+22`5G0M{s7Hx)A%$@fn0Ju6ABe*^@GT|qdCF}^bNxdq zr74t1IB(P7R93`B7NNa8R4V(VNVbPp_DXzqb8&VmB^E)0WNyS9HqEu)fMt@R4hKdG z@q#O(UVI7^t*DH;PKwnreUVFxP+bBkc8Q6_)ugi|w#h&tN|l!|doP0bO4)*lT{l9^ z9_nCtBb0fgib*=2ylR2Dae283!2#T7ZkVRxD_czw5TtUAOdNw}G%tC&BC!h8Dfa@=mZ#dwcT;oM6y)aXVIEDX z{2BY)uixYNNuW&A*EUkf3sPao1M&Qn=b;*Kfbj5>W%Ay)2<_!)11X55U)jYU$TvS? z55&olsHiLWFte*w71MH~$6hr#72FLk$clQ?DjmnBMNO3g&s}H9sQ~p9K7s%*SG<$= zwi)HiLBgU?gDY{#0|>6kn(7E>5HVH@AH7{ueV?Vi^x=#5pO2wIW$}Wg*a}5q$M>L?vjBp*6AZ#?bd0{LR*| zhrKh`+rVVo4BptIEjNzSBp8c@wikHAHrNiWCRt_Su}4Scar=pb|T0&CIxQlpRb z5c@y?fX)r)qrq}uH==K#0&j%jfG`~SiQnX>!p__qS@FB}gj*70QAEJkF~)-)BP-{; zKeE4F!>;DF^PMlwmB(ZJx}dT^7~Zi6Jm}nb(51=BrTMta-SaN@{xz%ii_4=qm&aQ! zH3tV$a$S7M`mVenSKcsA;MlYC$DRit>qNM=JI7u=Ja(6R(ENsT7FoX%7Irij zgrYcAdGNnJBK&6jXb_#1G!8Rz{POmAzWjh=hDL9Oqc*?`^svYF-En4IDot=x0x>U; zaHXivu=r?P7)1*KAvdK;S@{y3v*wOl1(lp7hsk&%j*r0Wc zDk&YZ3KGSW!<>{O!}bs9n!aon%>KC5`-tqY9o*_NI5Z`5xwsvhsZ#$%23Mrck0bjI7%sFA4j>EV_Xn(c(Fr^dSzuL8LmzT_+5Q`HiaY&X87t%(9PaaeTTU|B3Tu8PpSbnN%ix zO<7;zlwzLfm0VZlwO5f=`k5`KEWf3{%Zg1okFpc;kdyY<T#qj{gCzX?67gi zkE+$&N%!TgUd?&9ZF>+nPP+@8KA~{B<;Hm1xW`G?)2Dq-p9wkbney%B!7narB4=w) z^S7P$Uc;RqI=$&`GO&7DYM`KUsw=`X7F%y|LFlRYJQ8cCm`cgGm@B{NIH5Mcdv-GN zBK=m1l92|8)1>K)8vmXU1*D-@>~&g~O5f3N>*|2*xQJ~8qcelI^PFeE8;^px$&`~F z7b`pyIm9B=&KOog;d$~g+n$mvURR7c^iW2b@LS2lvGXp(ix@#|FN9XGS8m8;sFKlG z*u+h1PXCWna-vT-B+eE+@w{za|H$(!>&$5z@3WQGZXwaro8)PerYD(UU$RWys=l4R z88SNBjA&3e*LXL!pLd|{4eAaYRa+}kW8JaZsxDq}?*5~5;z}{0SZE)rQ#eWXC2}q+SX zZ*kIWd$9LtyEk*S?ue6o#kr<6*yKsw~?!KxH~4swQn{w?mV*=S_wl?pUs?+LYn2yMzow4=bfFsJF~yy@X+gT1|&yG4rhf+UAM3H7kzfV|QcC_RdA{`l5@@ zDZ0%Za$B)Kv-s)oYN%t(5jrdF?u-=O_fpHkHQFp6gT5a)k5;E^?On|wdSNxA@)hFd z?HA9}8Vm2liXh@$9bxVo3)cXI%N1|y`HQK9)#E0Ya_Cb<^IhwkUWc#re@htv%TYWq z@QL~8ip~K)dWa0;&~x=j;_h{<_avhGIl<+LRY1o*#SjzBKVR4t9ZM$q|Y2 zXeZulvKtPWQW1w9{up|lS2a2dfc4j@1Z9r@TCa?aSw46dfaweo)8CMj|Cvmh2=;YxE^Y2<3vL<>QQyQO(-XI9{-p zo<;L1i&T7YDk*BYCo(-QW-kq32jceHbZteh-~RkK%E@#q(b&X+$QREgdHelIW1$58 z{cG2DU5JxS$dr@7uAdsxwX=ao1&W?_dy=wG>1@aP>2G|Q4Epgrvj&kpGW+E0rixjm z4CDDzL4+SDi@i`^==KdWv_Hc0LMjHJK zQS-87l&Rw_Jrbf%nDApS1W42pl=u$UHd7HPdOCf8ideYYNedo?@KuiAl9AgZoyhkVlmtthu+^pBzIsak=ud* z1(RxNJL>LqwpAkM_*KUDao6BQ*f-tqJEi7)D}FEVP}Kfgc=;!=Pd#As3Nv;%#b17I4y&>K0F&^2g zXCK}=6%Ot&_z2@Ncbe99%C(Suf|7lp^z>4^reyAEpC&85dw%^kJ^`NBy-tOG{NBTC z(`E5Ib3S-2-%kt1NJ!T~^^*Z3MaF1~NBp6cZypToyA|xh*C`jyq=CAnT^s>YIPYgq z!xy^_#^I_OD?Wx*RlU)dElottIe)mCAa&8`!TIxdMk7^J)2I@*1?Bn%$3yq5Ie&EI zG(il;AwS&EpA5=6uvt%I2s{?wz;g;6{mR|}#%dQy*Ge8-(|>sG6r{Js zy^O-O=lyJ17ym;(y}iwV{2|``jUNXuExFiQbytg;GFqlicIr8vq32-GcyJ^kgPN<)SuVtQbyA)}+cEz0T zB3^Lh{kZV6WQA~4yB=gyo%7C%RMGrfrkqOUk9(qhE>&C;VLQ2@|Dj$X02OqDy|pRK z+zWbzvEg{aR#N+Jp_~oN#yiaM0K->;6CM_hPc#cZX(vEgBzdcosZr0MB@bZ;1S{{r zlfC<^vU;3fw-p+%Wr?*WS&0ZxBI}-P?B#oJntTxjd4Ky7<+-$N@E7wqk$|XJU@}>h z1mNo%a58K%K9T;{a}ci^!*86wo!m40N%!ii>268GODdb?UR$&H0Rahwc`AE58Y*Jq+mABZ1Yzy+K8Rfy&!vPJFa1)5cI`0St$m4t1SC)%>+95z(FDKB) z!h-cg>@&vP<+@GT^OnRCqD{2n7@OGxLxR*E>A{dAqabO|=gLBUYR20Jk&Fvch7tpJ z&AK20S{Ex+ZvwjET<=MY3KNZ75a1Sd%fr&k;2>^5_+Y@>=#ott$EPejhc3n|d1##D zgGMqWo3e+KoJW$t$LP7lpjXzoj3jWTiCOb?NpRo|Ngr{0sf1U?DwP-Bu^*#1els#w z(SBfZ`r@qz!ASX2A5OCBkd&B*?Q+MOT;NOwiFzfy*GULC58>74yxT<$@08s#YMw3P6Hy-{gY<_q;*Qu2#YW>aou zw4A)m&-p}LI^r>>eN?AUcy9czk(9eFPbo`r^~OFmyZ1cy=+y98OfBjj&V%L2FYz{n zWz?Lqg$KT1mp$Ri08S#fAd^o@{T-b({O+2|BY*db47=!O1^IoIgpjQsu= zJ|X)Gm*0+QWK8W#?taN@xg1`&bq~4mnpJ07Y*O_V=oL%2o~bH00kb(JA1{do7$ z{#yS#=NvMwetNXMpByPaYnSNN_e@8vA>+ohv+Vu;Hz8_G1}|nk?e7nKd=!vfmOOXf z|32gMmydVvJ(ZuoARsU}rla2WZtJXn_5CmNA?juQ>`hZoq`D;#ERy$Vyqy;IXWSI8**_0iyUVyV z=UewPP(5V*QEb3`sN$vsB6Q=~y6<9Y-DaI+==V1{?#o4rTkniQe|%iHvQSsI<#8tT z=Mc~3)yIkhd(_O5%jqs_-6RShvGffdxXBZzn>EkR=Xj*E%FIQ!gaghc8m7z5fzQt zBcf39L%Kw4O;FtU#2XkC5cv*;N&)|Q+U37>craj(IUuA26TW^-1ke&?oD^lS|8{tL zv43}Xc2+7<`}e6_`xl2Nt;1kaJf_3@jqpwzFm@cCnVi4buK&d0F%h1QOW`kvr~MCy zSM2(KaCnC|@2?1t5nc6Hhc_1gok{Vm6B~YO zynj#eo@f0*@iPBsiZ@dDf1r4@>iFLjZ@gyf-&4HtmU5=X`v=8aYuoru@zNhK{_5~Z zl+o9edrXb@+u;p9ZTwB~KL5W*@yLA)rpEg>6z}feDc+wBZ~HF}Z{WAXW6W>=mE!#y zhnM%CIlR9A%;DKy`~R`S%Wc5QTp0ve+K&zP#{5@@_X@9Oj&leCNB(wro{q};(iX>m zIXptF>qrvQ;hl{8yTc24_x|A5KOEk;`h@m=G)}v38Lc8V)^J!ziTc~&^+<_jM&@Yj zYoV3>)!_yISBKa0+u?<&E~0UNIJ|MD!wdW6@bZ`r&-RzY+s|}(DgSVI@qcxAVp0s- z;x65>KOA1_Ua`PYEbb47$C^;|{$Cv4nZG!^uSz=(51jr_hZl*v@}D?7+P^rwlTH7l z!(;3IyTj|*ad_vL4v+fF;gSF9@DhGIyk!lsW1?uW-wsdd9}Z7-$Kkax6L|lP!~6Dk zhxhZJ4v+BvDTlX4_`Ab9`rF}!b?i92)YG2e-Th%0In}h^4zFp);R(7OV>-ONPT87~ ze{pz=Ooum;s3tCElx6x<68GETMNt3Y@D!L1@6j;R;hkYRJQkS^F`)&R!F5g4zJNOGMD!chsViuc%uK+;f?&o;r-Zgc&X;c{_gNFe>gl4Z~w99 z>eD+8&s^~9|LpMQ|LX8~uKjX&Pnix6Zt~0F*)ts;TrbXRw|IW1;5^>WWYZ5T2s36n zJUgHN#^Lod9o}I~ZXwKM57XfxnGO#RGr7-nc$@!pcuGu%2Xy@D@Xr6;;obXp4)1&g zm)LH*Pyfc@)&Jq}-gAEEeQpUV{;v+N;!lSMzV(O0!|L@J{Hw!D{fomp@M`$C!*gZ{ z3HvV&&-cG|cn1G)cxRaoZy-5ju>D~u)8X~}w+^p$$KkF2JBRoE?+&k+>F}hKTwh_0 z|LXAE*}7m+zZ{;*|K#wJb{rlHhhoY<9p3rBJG_bi>hNrgrT%nyP5+U@%g02C)v~eu zi^HqhQvt4v+WWJG}i$U4J?}svLC3;kEyEcrX6u@LWrT_J;ne!*lw(!!!7&!&6jeI=u70 z9NrJ6!;AUt@ak}{7L#>1&tlK#9u)tp!;@w@JOiE|>^lxm#ia1RcX%u#|Hk3<9~5@E!Z|cF0zufl^u#YX6_bs zY~Vdw3dDLM!p234dy5dGdOMoohxU`=UJpR)rgLBHVj?_U>%Q3Cdqax*97D@q^jEq8xQT-h7=OF#M7HCO!>e)( zDR0?vcx2uKp}ac|?`|LO1TnEKaL3_2ic4(EO?=FBc#cUnoJmhSle$}y?!_e`JCmq^ z+=0Bw@QI}NrreDL*g&7EMIZVoDLMT;PYVD<`z05gPVRK)h$F+V#RWW4f*S!qXjyzH zCHWDAgG>}+?1%57sKXDX+K904BcA(~YdfhSSZxbu=}&oN&kBuVTk7M*Xr?~e1s6~f z-cL(Ctegfj3qj-wY|;>qacmwGVsJR3m<$!BgFce6Z~P$Y6tqkb#8MB=i2+?=P_gNB z5GNU6Apt8?w2~KlAUXZS6O=k7!_8J&4Uga?L5;q{4!5)HP&^v4Y!rTkN%6$lFEc5g z-!FXpj(o8ocj_&e=TyeuZgqwP?< z8Vs_KZ{HqGePK;Oaj*32y&x70=oBp@R~2nR0(4#gtYmEWcUW&F)ItQsLWdR83N7^D zFBz49IteI^%nZcbQ0+(SO5bF`-Hh45Vy2+^1Q?nm`A`L(h|3v^Kmj!9etOYKS+cKSEd43RKW!R2H;>d%~&TIP$&w~v{gVT<(y>dPLe9yGzp`{eUk`{ z@Pk2YVHV*iFh!b&0H>tGaa7n7?>M78jnFsXQ8HB3}<}ARP1Ox+lpBy)^(=F!&EFzVRQe~czJYmu3uV^Uz)p8 z3Dd*vXuM()?{AGqE3wzB&P4(De`!3c{694wp?W-hN8^blR4KP%_jO};|3l-^erY_Q zpnh8J(ZKCarpCjtFW^fN_?l--jaQO3`lrTw(2aHafnId}r^YM2T6M{}ygjg7BClMP zsqw-pVx6snwE}_%($#ElFfgpCOpQm~(Rj;Y2zff_f@*f_=c$cx0r`xiW#)UmEY?j>fYxCu1t*v}YOD}MGf1+}xprbZUv){k1NVH9AC&|!tCU8}Q5tHZ<>S^PwQm@bC8 zkVOs`wuSF#Jl2;t2fQj+@N8D$^;`w@yaJ%!)^h&)E&QL!9aK>6K#OEz1G6ghTjO;x zH6DqjjZn4kbK4!3J4}t|Qk{+crSVz{pk65MbruAFeyMkL_J+bBpYQ{zS48~%wN-8h4Bk`EPl z5W%V+RUi;E!xzU|5t8sY!)5@$JQq#!F{vys*|J*(`=%rTEWQ&@pa|7i);X z9dFr2m7i@#nHmpQ-SipTz?yJhrpbb{j;Zk;v$R-TKyrR>cSx%}#R_|s*!*7Weo(=m z8qZH`ApmIOugfDpM1<9TDR`n^Q1|fcLoL}S8`G(8Y1PJ-F3fs!xWHpU)yH?-Ild8z zgXD{AGv)KN46Ap)G#)KulE%hrTfw02XuMN2q6OzOrp7Da&j_vpu1&Qjv$olSkca#@ zmXt~#=OX}Hw);$t$2ifhnpg!eHD1{5&4KDn9J&yhM$~4vp;v-XKmq}M=aLfNoPMH%aKHyL$M--v0E1jpDpjzDvJ+UAY*ClV zSeJa(89(q{nGVATcgqXAs|T@081S4Dd+vKQ4++$G?~LVQN0DH+g@~*&5%NR)jSzvO zYO}`vSf@jcp5rV2I1+I)sW7OxP&e=Kc|oe+OuCNrjY-=Kc`BHb1Pr{m2|B0&Y-aTG zvCMk0bFjT+eZuUS0@(328@L>R0@ffEC(YigM$A{z_+k zh65+aJrBfNgd=(=ST)jfdu23gu0A*%`^Lc9_Cj;YR-d&ydi#O+>6&c+{HAq!fTerC z!v*v^)#MLPi5UlNZ$8A99Ne47&Ruw8Kns>op4@*_1bsR8lW5bYZ~l*y>j73MjF z_F9{7kjIA#>AEqP^BucELGGfoOL=oYzcJYLaIh2dxaDC&8@rA?i4x2hW)uCHp-%35 zJ&F>st-PuiDVPOUo5POMK;CqNFF#n177q!27<#<#YyVcl=U)yF`Tm!~d!zH);XU@J z?KnIRp<|0X4(|u&Fg9eEmt&8MUdS?WSZG^+x2s_29zI<>FrUw3jE5Q$kPasR89(lN zJaB?OteT=Pa#LWHfMRKduk7KE3cTX6&iH7Z=f7mZH&U3ck=T}*&$&6n2m=CKXXaUEtwG}+~CJps2leOpLqryqPUGlVHTB# z#ztHhP=pCMVPa5dY;Jq;+TwgmJG+M;YmMGQgV4;n>s;GBy$28YKEk3HJy=%7Wll8r zKDXs~D`1slac!QyMjAyNQ&fb<5Rff8bGWZ7A;sKp+&Rt>P-mimV=XTh%UF z+Pb-__ZT~(lj_DmYq^bxxvn|5uj+hVU^+bZuWL~JirH_6hhDw*7#>1lC+Yrjcz8A_ ze#hah3vI}KU4T>Bd%^%-D)vP!$44N3lEeY8<2cE~^2POsAyxIk*YO87%Sx#nX&l@s z!i#Vl)=4}Vij(wFT#Vq@dh-|&Tl;;0N%0s(0;m@~9)zA0k@=54bB;YfHWhw;^Z}F~ zW9w;?<%-MWzH^q!NH}3mD$IiJJ2#_)?%=>c*=BzprIOl%pqbp8#U(UtE-18HhBpCd z4@KS8zAlm$mK*s$JG??on}N}O`-z@Hr08n{6RthFStduP-|e+`v&*s!|A)i#8Fy|j z@2PcXW#RtQ;dy)xm_B;br&^LE@!R3ekKf;2`|#0khevns5NAl99^7$wX%ezA2Yxxc z{l4(F+#QE!lo~Lbx8v}R)V(>IzvJ*cdK4Iw`Amn`dO4@IhI`6~)*g*E@w#^Qp}j|U zO{>x1cmK(zWXQPW8K?VWFH3wUhPIYhsy4e-*IkD;gP8vm4zl*_Th}%g=c*X3uWa({ zmsS@hda@q935cq{%{KRA9~}?%`hk|x#hB6ckYaLP?M0YH1AVrAmc%Fd4vUcmSAFfwuK z{pqKc%%sfxRm^3oJG{+h8{elZ%iUX9dikgg>Tjv?nQPy@kdL_AmTET+WJqX+eD@O4 zUTROs*}v%s;ncL5j?LUW^dqJ~jn!(-ijkEq{j{*C&4W z$Us$sHMAid1aoc~PK%)9n{n1Y_-^Z*8QBHz+pa)CD{?#wtyI1XQNyg z)-7QWj$|?4J0xKm-E`ZPRn#aYl>TBl+wdc)jC9JU{;<=brOi@8z_!!GZo{#b@!eM& zKJ+!5x6<-p4+(KH*lV&b-(`1c!H9cEktLt!kR+D8Tm;Khs&or{ziGm)ITCaw*_wmp zG<(cAIiqlYiL&Xt3)R z_EAU?V=J@p_)RwSI|pAlQZ(42Jq z_x3AaJxBsdBR<JU-JoXavgr2IWiD@5u_TQnh6_aafZ;P$nHCc*5$Oza6a46H+wAU?0A_eBT6w<6 z)F>k$S7FCoo=i6j=bsgDuVLaK;1E?qr2R;y#L5;X8Y>1<8cUT_xCVh?ahyDH`iKj9 zPfuz^iF)XDbJ&ew9Qb>2v$Q@jtDcO5TSKDG1S9cVZKk#kGnyK4seG^6C`nod;$Blp zhZqcHjFLYQ@S+>^HKqe_|0@7TF%pW$Wri52^1}5J`LNzZ%lJe9jn^}>18)LRfP^}r z$7Pq4i(Z-%jX-sEXKnXs7wWTPTR&TILSH7Baa~6P=K2T$PCS;F!@Zkk+;I&M?Hr7@)Y&W{?po%y z;1>9pon)wIx?+nDC8oTp`j!fK`penfhQfK*25vBVsnt2vdj zq>HF!i~cxVWvZ8^MsB(TPrkyETI6cNR-Ws&@vf@P6Ro)R&<1c2lbVUu3t0z<9yPqp z+DylFE>|9~m^HdCqETxsl8FsxhD(slq#$^`w*>4LCM7c|;W}9kQEXoor;qIMdW*y& zD2_umFA;$n!C-MN9oqHcx)b`Y&GmGgU}L{0i?1E|m0>;pyQvwV`b8@>Pl<#hinZru zkYl;}RZG(|wtbV&2?9(B)seYAzJ8)eSNB<-sJu#;zr;aC+-W1Hs4M44{s&F3;R%IN z1=|Jz^Ce@?g%+pD{XOVnfk45~rvAc*L$hV|zHBdoYg~L&IZyU2ABv%qL}$IxCO47~ zq{~psyuMhd+RJ8$?-(Dul=!8wV_UNAIkS*vUbcVz54R%^y{SyufhBZUj_wyD7ID40 zE3#s|rM%OI5pSU_*ZR&gb#$|xEns&R>O<5-rE;pTCZcFxaIsx#!q|)0Bl&T${w8C0 zRrH@;%7?nnpLdpRv(50aa^opnNR~+s50+`Zul>NqxGbEL<$z*2(afB>KI+()K*?a; zv%lBI)08YV#2U_MbLM#Q7~awl;&q(hTx7wyl(a<}W5jCqub~q2FL|&AAvm_Gy~^(< zbX0I(ZBKd7{J2V**-wKlL&2J#a3_JfB#Qp%s2gH(x~bX%BIC26ANDIZjw5-N$(8uX z<;XF;H24&Q*e{qdj5!h(GIUPPOd^SwZo!j$5>dO+e=UENV|T{y$ysyXM}k;8UUYF&phIAg!%_|h-r1XHVA~cUD-XwYA8#J5y{qAN%%RwSQlwet-b(mc%rJih{o)+Blbc|Ax>Op8;V zh4mzkFZz6s{DDe^B^GHiQOTcY0d1%xXvk0t>%H!6cr>e5^n;E@z2QTm;jy9K8&pH> zCBwU2hPteM6H|sD!m9_23`cvVL5J4?I=sGwAn{8wj{|B_wG;bHm&8v6VJt2C6z%G* zH;fGG)6dF~bkN57L*i}(OBP+8RKL1 zcpp|HBl&^xV_Fy)NqCsbDb`F7;T@CNM|iyp z1DwyqFM9XiLz%LfRrZn8i~b_Kvqq+{bn#Q*5NMO}^`bNo;avw2o{SW!i%a_pSN;~4 zrAE5G0DAej!Uapy6Bp17t3}gOE~Jef^p(ra#UR3yNv2S^k2mM1R;54SK%1a|+!8ai zs}WQdh3Q61%!3FIiunL*+(`owUKNP&nyQ?S8`z3Vkp@W!p!MT+K@zIar@K2qpVyYa z8yLwOl*b#=TnNr>Bj;fS0Me1b>i{4MYT%9$`v|Wl+I%cXytX;{LJd+^{n@ptBvlaM zwMj?>)g|!PHW$em;(^PDZbghppH52R!KQ!QzWQbzwvX^^i(ansr6uyGm-A=u${;*Y@D^pTKEYc#3(H&@frOK*ZpI&aDQMmAAap;nxXt|8 z*Q(;AHXM{KUA*m84KZDC-g4m>aObeiyPyiU{AVh3(`!vHNrN>Pagdj{Z<|q&acv|A z+Utk6aD1A%cr}xNM~_I>#!Y2Oj8+=Nzxp1$q9F)#s1#{ui$O*=~lG#zXTrg=lJ{UFAIws(44{$t9^k-JnfAL z+(O8)x@8MYkZ`uQ8{Fz1yWI*vMAATk2j~;ZpdD__!tN~!?*CJVce}ui6#L;c-SuAr zZ_2&T%A?=&zZ_ocPj~Z+ZiRH$TTFlpDDbGRHQ|CUtVD<2I>!O5rE@99>XS5W)xv(} zEMqjM6}k^bgwQ-9gC=W!xD)~i23HfnGH+X=;7KBrKR~5mMXeOv%hM5VSKfLW28)O8 z3%oSvCZb+j`Zyap6BKw6WO$GZ31>x3@v;uC00o|#GAW_oRZsmzt2{67x&m|zmd#vr z5c@uXKjk3KYCUE$sv$!U4@y{6yL_ncj?Rg%c%kYVLyn#VLu7I@)6m^!{~|O6StF^Wa&F;;zy>Bd>6NGBEIf% z&9-`@R$U|71UfvCQglrcKMjZnDW2k$L%zN&T~0p~-r8F^mMJGCPR(4Hsu83SFHBkE zh%@RUS7cOR3v4sTHk~4PoUxB?!m+5Brds+AQZM$sp<=#FRN6P5nOE{-k`8FYPyR{* zo(BeOugV12zvFaxmzbY|b~+UxrynpKp6+^c&f>ghPm%jbmB)V^o}W&jf1ta2&W97$ z|2VwB;L^a5(vQP$=LA59xBS=PeGfdXBNCG}8R4ZM$(w$Ad|%`7l)s4Lt<16I*w932 zD%Cw-M=cnzc{@1^xt z7WHNZ#p=vcYJ#%;jLr-OWqTRs=#Vpj8=e&BVA1ZBvy4Z3l_?BW<$MRz5-eMkg!DayQxHP$TPOQ$_C~hkie9c5V zn<7J71izz;&@W7&LwoMGkCeVVViZRM&ui%8Q;VdwG;?*Bq&kUV-i16L2b;Pd9tNBm zDuwIN7FDN6Hf-N*()~*l5&S2 zz|3EI3dDzxH5V>WIf)%L!Y_GoOB#N2DZ0Ed5+w zh-OD8+2uq_}`F*r^U7PFV; zC=*h6_T{U>h^3nm&a}|Ey<{8Uv?Lx}!X5E=AT@~`!J$j{@lJime&gcuw~Vhy-7TiP z#&P}!%V;F4a9Y^gBjkv&#iMw#PYs>Emp1RT0zY@^dQA|66dP5L9kqRPm2o8OsBRdk zX7#bj(#GnV95RecH&Uext*V4N{MkjVEJALU&cR4)9f*3|xH73j7CZUlYiekQSEO!2 zPz~FLz^|n^{vR?CDRE{<;a|%MglLR70=dY|wcIDf2EJIf) zE@b<^t~jzuN?E?C&;|8R^&u~N1-aekNjp8CLOQs`NWFC`i4Pf|w02sit6Cw_Q8((= z-iPnYOq6q54|0A`FxyV*+m}!N`ehwg$QPIM!1a;N?5jYx6kX->-m#qU9Gw$2lr6S$g(&_ZB``b=Zmn-hf-CT(!eL7R)tg>0Uqf{GT_j%vp$&bf3-r>B% z*pYcA9))1Wf5?_^g33|H){B_#J%FBaOc%#GO3V~9DUsv(DRb(^cdb*G_6 z9%QmaOgHh{ypc?Qb7$c4*OLiek#D!bT^0Q$^Q{bM=tQMmfcCia=7(RY@B!^_mLdP^ZmaZUi`1M zhR_wIsm>@4*QgJS#w>g{+D~??3B+8N7?QFCy_4xl1cZPLj^wKUF}k3@yVHllH9Nr4 z`G>0kz?}3&h^6&ZPUUrd-?~vE*(+ zHn{fK9`22<0O0cR3k^4~D|48$2ZHNAo~Rgkr&^#~%n{E{Rtgt;-#pryjv24RL5alyiT2C$}+rocWWkn#0!X6r?A0L4Sso zK-PCf(K!`?rOOnDnLT@WQ&AY*Mr1Ly*{k`fSCiB|9k*x@8xw)uL4r29aOcOm^dG&Z)R7Ml2J8*`9Z@{mkWL^?y-JyM@- z=duoBys1lHl`&%-m?6S_E0AF}u#fS8sK})F9bR4_2#+`_sy$3XRhiU%GKO3TAMu!YIhl=^F~3JK**y9ic%XG;)2u-My$Ms7vz;UN zKogorX!OehVqUQ$%<#+RC)5`zWGpiRA0EFey>Tbm!|>DDPNbgDKo3XpCC!D}1dV2G z9==qHMrg;f)J^8ri1RFG?4(sn^KWPcmC64;g{7m$BQ{PI%QhJyHF|?p3?fai#}$n1 z16w`bxQIcs5I!7w!b4qRF>mefOoY5cdKYULjAUJf|1mGIy#Mu`6Jzxi@U>A`hI_I7 zwZWfRB%eR4H}W>k7_xSxA>?QHMFxuRbCp4MvaOzEoOdyCx?H{gv7BCxoG^?niG+aD zBs}Uq>#LumhzB($lnZ%&cR1K9Fw&HY@VT+*eejsFLYEzCd@_vQ$6v^^q9FIdevo{% z<+{|WC@bOBP+=21+6WVm6d1L_rxY)G=Auonu(0zw;qT?;hBz6DTF?iSlK*6y#>l!q zI6^^s=P46Zx@?6OIT5vv=81Ws-oN__s#lVN)m3 ziIvg7X6^~&wG@Qd4K_pB=e9ZMH1Fv&jiE0{qoPV-2Kk04qfN}hIsVy^+$K}`e4GGo z&(HtYl$8$uU84u&K*%@pn~GESi_i2e#hsv~DX@)nNKqgdhd)oXZokhC-RnJariCrE z4JD}5!z7|jNYTFD4H+!J!MAZ~DAwT4HBYN!cU+#L;emO~MX&=0{j3#dA!x1vCKjIg z0Zn2gB@`gSc5Q`#_9=D~fav~ZSWgcrcvTCa@=HRxTBv%7XAk?q{p9qSKPs~|EIozo z&gwn+WJ|>Q!wxtU;dDeONoR30kl-`3x|%Y$bi2`t)0N3uEyEJ&)-&jJRT%@G9n5)h zr2w#%qV6lrb7YKE0W8cM^fPRk2fF>4j6naSWo zmBg>Ec9Iq8M6Wv!i=WdVV)tuVL#LuiysT{T`L$V?Z`}f)4xbi%FDJ11DG4LP3IH=2 zymHc0{ zOUPk?+|^(?zU!@^KOW1Zk7O%sJm_ZlONm zh{&gjbNYVC^Rd0hE@fsWTrd<1b&-^5WJyQX&r1Dv?y@{G$+6wTujx|B`^aZJ;pYI~ znN8{oPmv@t#@8Mwf{OjFWV!nIBMcAQ8nOW$-pml+!57zjDk8a03{tLRHdwoi2bE6H z6U+2(`LO#e^Rg0>ur|p!LKMg0a+Ztpwki|DF`b8RDqDTC{I|nXSYWmZ`?te$EI#$7 z{;$JZbWNCe+xpkxEqXp^AMNv~0^<%!<%li(GuJJp5 z-{JNAT3bn0?fCM?tF2c;G4h<@g=yX=>TN7JtJ!BfCV5uW2Mu+Wax*(-rJtxhvuRu_ zxTQHKpP(^x?8jQsn~twGr4L`8X#hVC>Kyvu`#pdMx?to*#Odvw5%1<40J+`N2u{Ul08} zmZP7X@B5MS>#>B#$_2*xu3h%6?nQTcvhIZrHgHGX`I7Hh30hBiFx$`0xv%9jo^;$( z$lZRa>%LyX&}z}f>z|WH(KTHynXHVvpzw)&J*){yv%L0^@(;(c<%4X7avwT z7#CY(Fn_+Nx^DI9?j>aB{+Y{l+#X8kWV?ac{a$CiGy0_S$;I5=AFA%ZKQi`e8ZdjS zO48y5vy$^drU4i6P_ zSrjUb+fu;6qRL=8xJ_d!+)k9q3Af>iL#UJ?PT|&Ks7OvxR4R_1jYF@MqDyhh)l}vY z5tjS7rN=ndmQvPNxP`Y=w#y>yUvcw4aG0o4%pUG5Q#sa7go9UXRyazGQ>BzsQEXbR zoQqS0+eB>2N{nai29KB6r+{+a5n;ZwVjnMx@weRI&k>s_C>OXaEO=9FtU*jD>V{CK z*t`Dn19rl~@5)Cf#Y8l3h%EcO-!2n{dW#}_huOr%QiX9M;(G!W;yVW-x5zu`M)F{PBY|^raV~0`-kBj)F;X6JA)EW-@p)*c>iX2HfOCR=+?`CO~fbL zpSt!wvG$5ijt&B@@n8t=AAo1)9(dT}ytjwz4G*nl`{UUS!*e+*t}_e^Kceh%*+h6ftF`~8#utBQF4J2Sk&|8p5$ zT0bk8!?O|io5MRhmS|x=JJ$R^kd+yUf9L9>b=%= zo@#onTR|bPdpUIwleO01t4Tb1oWb92#6G|G;phcL*|*0e)%Brh+Y)6NcE9H;J>`CT z&Aqw_Q`BCnE%%^<5a}}A{GfQrHir6Wi>pV{BK`Owr^t5MZ^bcRzc17^r84dntGDW) zd8h@A20=P1m)2f$r~fguX06&AhF2-=y+NZtssDV+Wii>aWcT6{R7TBmPEXvcw*8@B zU302jV_gG8@TG3WrELsb=bpstqeEEzie^eFAq4e9#aO9bvja;O&UCYY-nZ~rt)QRMB|;3j6mJLeTD|O%fAY39jGM@pP}d=kd1Uy%pW9s>EcT`l-y5>#8GW}u8_dyPY5jIy?&9_P^GwZ4QA(*wEH^Cjnc035&u_01w0KmoiAQbu9)3Go z@csIG@3Nzz4b!uh%Crh*ZFY3w;N8KeR+*M-x|x!ZUpwhpSmR?a`xt;il{j1?mrEfw z-ZAI%W>B5I&(US|bLTg|`#TVi6mQyTY-K#9n$H6&lgBd`-sZUTr)Ti!N=M)eQ^x4}sPl=c zjWPE-yPHWqE84%N(nPQR8qYkvw|z2CNqcAM0i$4N_>mIh4_!%@vAgvCj@I6v%saZP zyDZdo$)~p%0$>i$k_zP;?Aqa=*|32*yn|-l%x+Cdm<}+9H`vV{PbW1z!+|-x9?t9Z zWKM1|X6L~k-gbIQzpWUnac`EwZm$SeaXI_BK|{{x5wZCc!xctVQm*Nk*jYwUs^YHS}-qjST_%UwRww^ewdxOvQ@DEe%^53#_`4Dpy;i;>eYHD|T~-OrLR^sLXlFCLPz6@kv)0r(Bzo53q02 z;5oU#USgSdS!;@zdAe~%=x5M#S-yigr_Ih-n7KVartp@5kx8E^32LdjJdKt*<&-D; zOD{l^(L7|MxshDnm#HmzwBQ_7pCd@mP=ZcIXk^t22pAjUIE}?!!Q(9u-iI~j81e2K zw&$Ho)g7VZqK7wRFT$lAu)#+R1n&w24+i1XWiu&9rY$2-MkaF+8I-d#qS8M}1g^J( zHv>1atzC`GW>(V__Fy8dB~qsE>7xlQJZvs8%oeKc{nt+U$+iG}mRB=Wa=t2Gk@-Af@+gX7JMlq%gnblm6wJ9|{nQ_Uq@+LULxcBrmXs(1b2is(XoCoPGM!n`;eQ1!c?W1ALG1_~K zB=fY!&hTjLP;^br%f`?rHI6?=RH*bhghM}SI>AGtlWqo!{(_Ys|9b98N%ks}Hj7|p zXUt8r!}#0<0gsydF6`CE8|>@T71is@B?Z`0v#+(FzNnbbxucA{#|9W%n06Wo2bM}inEp7_eTE-Nh43oR^a_W6D%!k*_Us}gGUwt6vtqS|q z6+!fm_*UzMw)OUDy`mNUgB$`*^1_M=J1k5+o7|w?t(J@FEwr%i0D~u zkIzvg8$QQ;j2av`Iznvt8?&lOZ_9>Ch}77EWW_Y)3p24NYjl1|^G^3= z`#83%@c5ECMb6_2uCbt1xJP=XK8S!d)Pxwv(v??Pr`?xP(J^>eo^9ilR4PJfcK zK3xZv@rb|FbB0^bh#yq05$92BGI0s0=5r##9a~jwhFRkZ(A#)owm0&|ub?tMuc$8D zYlPVBSr(wk$;#GCGSEp(-GX#4?ADt^f~}E20h-6zHI$AL8nY$%I))OB=rm_?no7*5 ztyOEnF5>L3tF}BSXR&Hi96x3Xdjj-$Y-SGNM$tvSl$|%17_ftnBrt|md}@7`bpz_z z93dlzwJq~lz%(Av&z(;*n>k|gD#dy~jfa=sl}xoC#)QWj`fOo-MWorS2FADHUGviH z)X5CPl;kb$^0Pc$Smn?M+_Mav;}bQD$C5m|6c&zN^9M6&X>IA)n2?e|h1K_b;_v^G zJW2|pmHp&adi|h&>KMrIGFxi2?x<(pkIif|J8-Y)FT)$-`-aWx*~$bN-oO|?*u{I= zmNhh%Wu2GRJ)bqAp52GaZZygsBlG;CWMfZee>CH1@n)LlSF;_{oR%S6h}=)(eKrgE zC#a3ZxEi_ zuy{$fX#9R1&z=f9;ak{3D+n2s5q3ayM|n03zIO$}xeO`ehI!c!kxD3NzQs znI&A+jks#v%$%YDi}scs@n$L=L2$3JD~FABK$?fSyepD7MErZ z*73R!xl~vfAmyT0lscX(mVPxN;<{JC)$`+5>s6VGgU{~L5VvZh>i|@RxvEsU!9k4! z^4~9C__9y(e7*Ba{*pYCza($uJJUEw^1vJ*^Ar=+`-X)W;>}-@R|hLNN4cRjjxnt* zWu}&9Z*lW)!>{9*Fip~o2t)uC6(6@B$g|Odp^n3Hqo}-1h^-7Xg!&&In=LWdke_8i9ayFfi zh}dU&nS%KY$_>A12+sQoGvSJbPyV~6n$)}8YV?{7^L>@q+Elasw~_bqKaD(kUMxM& zyQ`vZ;x;#3#sVCGnE?EzG29WA_Fw8s(Lg(07B(d(Em+K;BOrJa7odJ#rQTT|e&TxN zv5CraJ9)k#kdt5_FQO6*Ex-ZeDJTwqgWH02!<@Bd=O9;8)pZ^TI|df6i3gfB>smtU+HO}`e1U^1Z{YfV zBhT#jO$m*wmimyVU?VR=TKaht|G2zKW@`qu)d-FR8+pQ%2EE@Ht>@e#-?>!?6cqqo z1_dnFZ#$C|kzGh>LAEnOcb4$?9y0?C?TX^#XfTs!wg~t6ea9m54nLae_!|?z@__Y2 zlk{jwyI4)x7YLU{*)+O#ALeni2+6gG2|>nPYb4G;lyGnEn}Sqaf2bsM*JuM}4QBH2 z(jd$`LScRg)M*z#dT^-DXA%DC(A5LiU~EKqUnV>f&BNG1hzs6~mAg77-q9c0klZQ8A(Q7ZND_~%6D?Dmv z^WfokWyxS^jeT)f>(Qf$c5W4Vb=L>(&ddzE)jQiEEKHR8tVi6blsvgGp4FZE*2Kpa z`jC&e+de!}G-Q$D1{7BCz|o}BAk5s(K+m5C=(jr$54HY^ub;7Kwfw;S>k!+ZW`Fy= zCrDb`?lA+#2f?r2>>SV7)DCu$7uZb%)Y6W#jJMV@6WL!i0lC+kmmb1>z4I)-3>?Kj zt-gLG?KY59+kWjuJAtu^v;}1zwfY&@$s@4#f-+CMM@Oy>=we!KLM;w*duXB8^fLIL zJ$r*=s@>uCC_!y@F+cW$a^fngqX1C~+Y}9A=<$3x;(6`R2`2AbgLudR0*-$hy%xa) z(0gP5!aSfBeB_4Oq*f~%!r2JSYkKJDCT_oWmPI183oPGVc+eX5qU|HM5pEymm5gGz zsgPmQ7&IEFUwUq#FQ*K^8Ag4g-s}%RjUYeZ_eVcqNH7hThhn=CCw9ZswJZKYzEtQH zliC~ev@42J`!H|Xyo@beo%KTgIGTAQm`(8G3zm_;FmI}Ui+UBHK{ap{MfGiM3_(DG zGGc`{GN6nYW=UfxBMMCq>=K6#P2ReELH_PXD2#IJyd1Oc?ufxIcV^Ql2=kO#rDP~0 z>NJS%#}U~ENWsHVHeB!)G565R5e@p=X5hgnrE|7^)N+!$4u98EUS5p;HqdmGEke=b z`Upx;;^^+kH*Olt%7DpJ7q-MM&&sn*Ot*;Khk0t=gCNY~*~P5W_{@~Gky1Pp?c*id z+RQH{&y+m4sCn;K#JSiY@Cs`6VUT-MFOQl{xIH=X#(ttvaG+M0$7N9cLeK}b-n5j9 z25D@%u#fwhywVgeHD+bn;)Byl3F^X$dUub%rkJhte+ z49`pVpB!Ev*FOwT#3S#^flps{n!kvMOpAjmuldq7?P(buL!8%vOf~^+J>W_apD`Y8 zNI*INRe4Q%fDdI_=aYdPsPYJC&RWEtuwW7eic05kr!k?t;RFcG4ODp)=v`3dHNDgA zoD=4rZ7XLE0ac#fY^au&6fjq=&jjz93v1N($`OJ)V*Daz^B^pTb@o-BF%>C`MO^qa z!yv#X@Nn5K*lz4sYeqTpu+ALF@{&uTM>@Gxy=Fj_X9%i1y%{$Vp2AOT$**A9WM({J z-gceUO^+p61o2n`Rr!f2d~cz}ej04#`TbRSp7ejIJn%U)qKOGkbuW4a^CZq#CC*!k zp*$&&P_OTgJDIe-0bpX*#_Rh_YrvDnB>0cY>)LPR1%Zt`Z@4>c5p3j5ePZeX8+ogX zh7n6a?2DVr0;d~=ILrxUt3Mw7TjfD@mq3+A+*`a-vt(WV6|79+MR-`BaI>G_`OLn; zpusdimDjX-?9$xQ-U=F+M*#C*J7<5DuEpoAfGW?=o2CBCN(ZBJ5yJS*7?gGXF4!f^f{W-Dr_^F^ z_fIdzPZQmBr0%B06YizP++YUAh%ueHyXgekG)tgsMYO=XHsDhm_Lo+Zbax)z&ydD?_Lt{I<*rP_z+b;ToTi>BH7pIW&d zsfTCGT&?>0P(rjh*0vI(#{LETzb}~xMBF^x_Hcc8e61?@n(~nObFhxbu~?wq_Dq^v zjh87TUsFu2K+XIlRJm60pE{n#Ji99ftmD;&;BF$Yr`i^9=R(K;Jk)o(Rm|l0-#Xsv z&2oQ(yuzx4%N){R9Z&WvE=n)ka3ac@=W45ipUO#ApNVdp8mW-|I$n?lSjRK-1(Lx! z-jpX;$D5)?Z+iAPTAk3`q}on{bv*rWeIvFI_TvM*gj(SM+6j?Bu#Oj|A<6C@R({gs zvc4RjwEgJRH$F9TPwNy3UvSjh_2LoR>j;FU@$17q_O?#DKm)=X&&?raotI6lU z2vMWtn_>(*i~H?&uXx@z%@#@tj;pyU=Qfp^uv~NW1XDe_--rcvE(^1f2?kTnBX3)2bS~#KbdpzF1J^57lBAU{z}>^Hhkrh?i-$`ocR)M&wbAYwR~=uBe+;7_KC2 zne3K5x$3;TJ>Zh?tnf~-vp4&Bamc5)cZctP1jBgb{V-nSS44vcXQx<%!97!2I3v&W zfYT`cTM4aLmmGWM9Yi=DU^j_ZEcddTzo+DTxG(IA;Ronuz{6Cd=|qlL#5Xr_8MTP) z5P{h#h7tXyZjN@Abr*{_`paz9GxcimqT^Hg8*}8iwn{0FadX|-Rk_lo{^Vm?K5m*b z2breo#FS=zIIgO8J%C%HB}e&WvbOrZ;5ahuJuY+C#u|&ca%8&qgR~#$nqPa z@IQ+kfL-Ir4$b0VmUsh$@+W7XamePC>(*yuH^$2HU$ZQQaB3n{RNSon_Ymh`e zaY_6jfZ5q%wOsaNk@Y59?nE;C9Zo)QohWJPB*sMA@?%b?Nb;ctGD4D1%DkS39#CaO zVNF@9Sln?$`ESEat}IU^@DsU+S9B(L&;f7 z0K;wv&G|DUz~4NmH~)p4KL8hiVfCYu0lKwiScw}|E|uICVZ~XbVf8B2JJ7BHQE#|_n9LAM0o(kHmw5;J zYK6l69nf8{jx{PaN(#`tWByuf_NS6hLy$`l0B{g28VC-4Qrv|OjKZFKwFk>Xji=0d zuH4ou!CUAl$*sM+J}WN7=K54FUiykPoXE{I)#F9l z79DbazDLTN&_m*!L*UUaekdl3E{z8Sa%o&Ec86*l;r#r=^^ZMe0Fxe1ph^z1l@|ky zrGyH|IaJU3X^z(R5n5`og&F=WY;k5rX5y$sEC6$5>c@Hmu*8kLV%V2%BPUHt(Q~6m zJWa9yR+&p6$Xk3D1tGl*HBwru6fO#2VUwNqaa;O{lWUmQ8oGVul7o>lA8(Z)n*<8V zT_IFMM`^fTm?>==!y8j?LG17@2av7@HF=}*o~3y0GrVK_3=f?KGQ5ZCmLS6uHVlwE zIgWRE_bTI_hl*-xkwP&b=zp_3)$M}75Wza*&?rGTy(QqJN@VJCk3pKwh8TN6lY`}8 zA{i<6oTuO6?$y@8iW99fd?m8e7h4gxzILz&1c>P*hV0r)x z*Tp5IY!%Ow3wcRGRYC8n?IDM(lY7RlzvB#B@ndm>3(7R1ra2GD@SweNy{!MF)%8W_ zITyP_EL;p;PjBWDHIyeUg4`Q+s^Rek+fs~v9kMP(LB^hN8f*96ba0f~nsk!J-H4me z_0Z2Cj2nFX*m#*I#r6ivTPGRTt@pbAn;0~2ov3c_xrwjUz%{+=;!l2?K9Rn>Mv@0k z9GMX=mouOzbQrMp&m)D7#{_l>Cv#vKY2ADQt*QRkXPnkzGxzdZd}fSJu*4RR`%CFx zZo0tr_;*^RkNA3OeZ%Ax*l+z1oQ|dJm+*}wSBtTTQC6oUQN+ zx2&b)Cek8B`Oa8x{JcH%P|qv;mjF%D1%LMm{0H0i_z!l2xO3M$AS~n#mW5ZG=1PXw zS?qhKigUvJl|AXn2}{jaE^XzU(Uke-#^B3r$+>dgK6y?4;5io6mCG-md<=V5{^zlq zSKT#0n_fQsj>Z5N6THz`xYeuuHbyjGt61W`8B@mlACOE3jA+m={);+;Z0n}(uY}JI zj6M=K(>Yi4^8Jrjo_pmhoZmxH)2@g(?_~9P5aWSSJb2_*-Z)G9gplC4529?bQ)0Mc ztRhE;AW2oHI_G6HvpiA}dUP?k_;c@3J(4vBJe%VaLpMtUJ|A^m+vHZiNOPi1E}LQt3@%SCC~*<>FbK zitel@Blyl1_bB>TDrvET7*DyifUzvwtE#!r@XCl_5wBP5n8C3j!;XE12L|szhG$d= zfGxbf1e}o}h~>bsrq+tHU6uMiM&?y0xoPBE_tX%XeDjY+s?({z$NJ0y9Q;up6LyT}_U`Esz=8yg=sE*n$z^f&gJMcZWEJrUODJ)7<< zKcM1a6ri=A!^;74c%xtr&qNK(;f;bhJQF!EhnElL@JtS}nBJX7a@T+};4of-d}K0* z@<^J070a1XKqIOn;|)4?p2$UhdNvuWFr6x>k?gUN9!DcFZ=@d$B07bj^u@RhSEY>0 z(@lcW^pFO|rRb-ALueZ=vr`1pCTB)LOEdLv5ietk+Xlj8yN&Mf*)QVdb(nEPf|H&o zZjKCbGc+jZINrdTz#<;lvy*{_Z%Mj`7&!V?r-DU1+~F_gg(R24z%Sh)d4&WjZ)i7f z_!r*OkgFMgi+I<8GzV&-eHYVpu!t7~6Q)6K=Rccls%QXmli^oIyJ(19<9%m`OQkltTN~|7iA!?eVOAZ$YXj;jE=evPUV5r-c(Nc)vU8!F8aH>OzECBB#X3{ ze)lMr7@w6s3?F&JN+euF3kCtsE=X?Rt$M*5F{zQG=Vc^+pmPPu8A-~o4N&_SZwnZ0 zg`U?-`7?2+niYt27fqeTeQ4*`TEo3DZ;!#2r-XtS4~U+%28xnb4gjD)UHbDE_7Ef0wy2Wy80PAo5~jEYmr;3A zLO7c^l|A9~*v-lWIPkmT~hc zntl9cBR-^UWh$qBIiC_!Q<;DFAy!>2>P#P)Mjb9f3 zJ^{-l3%p-9K2iOXSugf;f*BmPiH`HOdY^0+?@}9AaS+Fqgz!evhu#63p6gN>OTr50 zyc6Mju50-j>y~$^qe-_bP#5L_A#&pN=iYV0;-YOtflea!D>`m|m|5YC($-6{t!IuP z!wd4_7vWRtNwFJ5h{|{|z4J-f8s<<1MCR-6Xp(P;-w}W3eOD%hgHc8YTw zDVfVwbAZ9*PX@*7t6CdDZT&}b5`RB(9>&lc@(-jTr?;R%#twOlm7OYw)&ku$) zd|Eial})Q&D8y&HswUT1f4!+Vz1{sl!X@|7 z1@rv0rrr1QE{lyf$>%9>RduK;7{3GfkCK198Au&-+Hc?8JF?%tWAq3wI_re;|4ZDZ zoK`1~=p;4XpNOD_JxEO@QIh*~$ZvI$I?kTDe}vRC=h=w}ee!P7$2-MK@6?+;k!ZUbgz09@dCDH(+12>k)`MJ*U%`KwHud zLfN>4_T;QcjFCp(EvM4LUKNT4(!&AfZ-T>L69_5S-Ua=^MJSl+LI=x&d?>^_+=leV7T-WdX`gi?z z|F!PxeZQZt2Laz`M+w1R8E=cy>|P8fd(j$r95<(xlbBU&w=#4=niQ%?~^f$07JWFFtoGZsEHhN@ zTGZ4sBBJ}p=%vVr3;tBI=*_5Zzm+`yI2V6hlEXxs(^#(6jSEsYG5%9t*F*D12)C_L zIigs^0%k8QwtZhM+L||56CrV$@>-{yA?n>%2L30LsH~M(WiRw zZj<1hvB%iDDKg03K@$>~EHiH$w|C6KLQT#;=-B!eUKWMC$9Vo$-1J(4iZG0QImQ{M z*Crp~wl0GlCDLPgd{zcegz{vD9=6ZX zM8kPDLru`o!vHI2-Zd7ZUzDQHlF`nIJ5xPV`iTW|G`Zg^(h085z#)UAg#l;t*ie%R2F9gNy3` zS3jv>C`m0n8c^PChLbzE1Qt-vpT@@)vZP}#0?{W8pRvG}2H%QYQtXFv5inqF=aC~t zxQ>eGCv&-7m5jMX(T4zhOArd2f$vRCcogM%cOF5J4gMPM+S!jYn26CH*Zq*juNeZb z-Bbl@yNP_Twj*{5vJhQ4Qgn|!I-IJn@SM&1vJ%a0v+{VO*D3TGl3;AtPd#wRbHBE8 zE@IHIaCF|g!lk`m+hx%cwK5g*A5jc$*X&M*UiL?VwOtC^U{V%gMUabR?W+mF*d7!B zv}J2nl4zWE>L6ESb0$8Vdx&weRo!DX?8YS-H?ox>Y>h%M_{)}#GbW1%lTO) z)A|k76a9fB4z!|^q0ep3*%;ntCaCH45ne97lQoMcPvXqsIFyVxpmeqWw)2g3NSA;e zQT8?eiqZkrD<@7=o^O#M*IPEu!5hXJf#6LWei;J8z0Xu*@-R8^=DqJ!`TO6`l{r+? zIw6>>t{5n;X2^LxEcH(N_({dLAK0AHaEm$KGlf>W)mh8rn^I)+MNPPaIR%fsvoQKq z?Q1atU5+jPNuNbYks7&-aCGq?UHpr_cpDj*8P#q0V;C zA#EoC(T(#-H#F5hswBROm|(~erhKHk#u39VG%w$D=S*i527Sq%-VKmQpi{pf)4gOrTGH#AwD zOjk0Cn4%=LPwznfMQQZ9B}>Cz>p!|Cv_tDv|c4Y!NI(CKSD@n#ep+ z8>{ic6lPP)$V!g0VV6Y73rF6u?U`m~TkK^M?N7Ki5r+K$-hX%#egeQh;fVuq53-9O zH%97?`vW*B3>2_ARRCRbMbeO+!&sUexztX*MokQdUTZA^1bUG2cd@uY#R>Ql?isA= zdv}OrzY;>pRjv6XO@Nc2CL%YIwe$AtpzmvZ-!a-U0EN!S-}9(vO}Fasw3codCB>}u zm|1(ubD@`)=x zpF@fhhQ9$Une4A%Qe~54%JD~Qr!OP;&T#@j-dg4Pv)Bi^=(1ClU+*)SHb9Dnd*l@` zmWYB|DgY4>Xj@I3f!LeCr9zuWSb+B@LoaPgin%xYe(Y($qOPiIx%i}M_i8oReXzew zcWx``d^9^CKzikdfqr- zO-kI(*B$$`Wq0lVI^u=mI^;u@B8%UT*=lnT$x)oVhE3$xH(!MGL2he4u}ns(a^|qr zKX+`0B}d(Y9bvzY_iBzh9K9`TgJGuL)O^ar8-2QIDsi`Wx)b5H5^md)j(IV3>x3WP zOrD#a{!?SOaz=Gfh|Q@(g$Ri&HAt~@skK`dS44*gA!!9Ua5|R5C4jJ|YT0J`QEf|< z$=&LV2vP95?v|*k_?0&9qNDZE1=3i|7xYRLp8hZ1=?n%N7fY&FPvvenW%IERm`F#o<-u6sd^K8>NCAUdGijgUb2y zb&uawAy3@BAhuxn_A$ueT}|_=-!BOZC5dnsGHbwPj#W{8X<=n_KezmKpK( z!!Is~uVp!kf01oJ^-3yWHD|5mt6=@3*Wuz$ZnBnbq?Pqv(RvRtU)}$aX!-HA==u`<_5CSv2E2EozAn|uRuc)TEoH`$LU#GcHBunSO_1q4=e1jGgYqTpe`-tKpP_rEZ|yH{2U7I^wH`|EzgsNj!@PC!xx&9@;i$43W<#*cu)A=3ocYgOT=XXhGf9H4qmHA!P@BHq6F2DQm zFXeZUHa+V9uk*W-f6VW)|AYLlo8C&B7p*pZFKu21ef(>I2lz+)S>Vn6D)8b9W)Pahs0__9 z6K27rgqU~fG0#8_4{b~JA=y?aS=IC)*qaD+fHA3OES3^IrX~bys*lCJ^e!72MvVV` zghxB`ZxP;5Bu;B?Ne$Cm;Z?HkpDEoo403T=MY;Br6W($2|MHwqj)R(rFX+V zafjvGL_p94e8D8wNj8bzKRP^|9cu3%JG>CXDWNvIAFVOQO@x6n<5WIB6Zw~Ay!O#2 zo&Un&0n?HVED~Y+H6G=!H6G^kztwm()2IDd!~|eVO4G{h=DsJ)4_t``CmmsiQMt#e zLpH->FFWZB2wX247h!yP>#|z5y_3;7mUp|8IrcMV;w0F0@4ww>|f z{64%cz>V&YC%%5*a?GG)Cn-kzl`*%Nem$jdkjp_L7R!2tB=&>kqM(rFJ`1}dTpWqh zRCY+ltb7e|cFDlH3NG~rQhKOTv*rzbq` z`2M-;nR{^h0_v?#hc$t59&U;JN1XRk zIr@__^cnlN_LH!uyJPtG3$1NlAcq$|yWAA%EjQ%pNr4Z(g2v76b9n8M%OMo_7o?Z2 zYeYD4aWl`Ig#Q}L>8hwX(tj!P=ldn~9n^>M@JI^0y}=Wz5~kF1`G*(!L*(Tx2jpBZ z@6D>@>wBp4^7FUN3JQDb> zs9JFuu-EL_I%sNy(jKQA5L02!pEKE z^)*IoO#SuBKptxFSDXj6&BpdJe9uh&Mdx z*6WaJpRD@7RC-N+R(ezr!;8?~jQ-$tizCYA!m76p?%t&p^C*0I6*{12*-khhCg0=Z z$$(TBM27j+^=j|iNn5F3e+;I38?i6lySB+zhl)1$Px!i-^Jz0LeeV(KlR)^M;yD^2(n!!=(w6d9KL%&v7QRk&ToH zX>8bFF-@0uj3zm>S+1Jng8M=9@cmZL=tm=V2W<8HZ2xHWbb`QEPvlptXTK`}a}D)c z16w`ne=64dyH>9#_&?F=!J|(qT=oCyLdj=2gkmy&BPIB{BO3Xakd8W`E8>cwyBG3i zwue?)aG)cSNl0t)!?Vv!=Ja9*xsOJSs~8z0qlp(U<*VM7G2`w0;9SO*L#5~+JY#Y= z_io1BSu*0`=jRb%q8A4ydhvW8kC?S&4v-|`U6_J%jZVz6dg*sPsPOn9KHdTgg5@hXm<;G%RRwqLw7Wr*<7$);`NZAWaoX+v#tHmm6~y%Jb$N zbqZL8N>B}tHwk8Es=gpC3*((AmJEmt4uWLaNCVU(i)|D$*3x8qkPC{4oqRgc%;&p! z7UMwF3db>ZsF2qUkOX!=1zE#b!^sXgpfF8@JhOa4_OL8THN1`waefd^K1#KL5)d93 zRg&uJfD50UOIm>rJ)q%8q&MKKKW|=|wt}N`1$>DZNQKWc;K%M;12jWLvKA_}f>SNb z1RzI+0*b2PiL#4C$1pnfCVq3eCvSPUq-6Wg2mjnC9XxSK$6-=cJGftm9%3{58Uh@q zuJpiF)J`7Bx|AJoB-?G|(vXAuv1cjA90whbz?eBd$3yEyOKnu>gr%&#kpX^IBq|&= zsB%`Aaun7UaQB>-_)d7KFV!CyE55Vx6z)N{!BXbDLut5|>t_UX+D4)QRtC=`S}T2872Q90R9K zPYUA{k1PND2C3Q$*KBb=qbSwIX06D1Cqj3}Sz|QbAucOl9FKZVIz}kVr+QKgf#R5K zXAbu!vC_0c`8h{J20HGvHI?N+_BmDmu=`h_e6>%(*|<>#K%`xWQe+!0H*J@~oO z3~(*>R<##C#9Vjg1Y>pR`pEG{maC{XLq@L5N*&ZlTetBOj@Zjvqx2W(v^qKNw<#=C z-pQ&}Iwa9RJmubJ_obA!siv9khI`~{e)hu(;R0zoZ_EnayZ)>A0+E_qD3wpoSJnKr z09vs#9?xX$-dad?Bp_{>0iM2=(2e(&FU~A{Kn4EXQhie#1>e=Fr&fF?qY#^~fW>DC zWh_%d?d*fEgZ)&W0iHx!Th}O9JJ)HJN*>#L2WX7azc>H^2zii8A?8QU<@2P{g+o~YTe3Osa zcWRzu+bWg>xyes!CyvM+6fU+`@1^6cc_xIi6Az_Dun5LoJA2buh>g{aIOu*>yDe3c&$e@0V8EIy2HuzI1lFQhKNf>o)kd&-s=-(*XMD zjh{o~y-nsEf$|Ojpp&F+CKdYj$YkM;4PS$D%?R=q+=fSfDLTWLAJ74q0|HQ+fc^dO zOtL+a7KguMC>yxg(0JWp+0B|5-o@|OVB%ZsZm>|}0dGXK?sOmXq63&M5G_*(HD!U) z@e+X_^}V*ym~(mxMvB~zHd5aA+gpU z~c-qX#vqBUJ0ijp(DPwUhz)hvzgC@zptb$Oidw89`&M~Ytqj* zYCO?#W_%A$t~q5)oJ4-fg`K)`z#@>C4<)hE={nl=1v>K-TRy?RlFnPJaOrUJe9fV* zUji45{6MgGr9IL?K!hjlNpdmx8m?(OV^brps==c>UKAc$a@DDO@aFb+nKE@AchNX7 zzf(R@ZUW|a-ryS>2tPHf4o zXnS}NRPgF5m(E+=1Qoo!lTA+_o4*vi+FuHu@$|le_bC15zJixq`Gr=qTPvY0JyMvbfE(DBy ztGb^2HRxOLC;v}WasL=pFeUPW|0Gkjf7sFBmBeq?r}-oTZfFOuW>CGa&q!2nCD*yF z&*UCHSNQgPq0lj&BhCVEE(;tz zV2k_Z;-UX}nD-x`c&rd8z$^qDz#TsTWnkgfXQ6w~LXkN1cP^ehKh;ry${-~3w=SO0 zafu=E6+21MzqoiZH)W`9r+|Og#Z&*6Ts(VAW01x(v~v2T59kS>UiGQ!sV{#e7e5b>F*dCK>b@94|MU$3Dm#3 zcp?9ei{})ZcP{P$F+OT7etk0WXHSyrO=4+PGL@SAz$v92NWEW>8sCx{5|s8ZF)bU& zY%|Slf09W}%c6eB@&&SMRI@7x*|nM3SxwouF6Z1!$|;@Bqu$R?_aIS!kXEUr*5HB{ z&4npaC6D7vnx;zKFO&`ar^39V`X>&JJ&ldjnWoamj~-JWy()VAvik9(?~gZMHJ7Ed zP(Qc+G;15V-u`l_J>h@4%KNx}f0QyhI{Iz2k2*O&H8u5fx^v_6yM~#~o|%QuUsk`( zQK@q))H&+-JauJ$x?^GQ)8g8<#SQA>YwFU-%jMnW<>gOndvj~w*Vfkdz>Vs)9qQW5 z-1_d?#?P4@>gvwk-p(3z=PQ*;MN@&>G~7Bhq$lBMmSZ+OH3d(jFoI`tbZQH`;y7j8 zM|*0Ex|6W#u{-~wi`RccCw0%dxBlMSQp2J%xn~}hzq@aq>OR){@cxHt`=_xydJPrB zb*^vAZC^B0er&`~_vY#~id$Crug#CWkh?$DPJq$zo^7g`d>YMioc&{C?Q}Qsj(FbL zM-OIRWXgDq_sKu_`kGYa%d7vme(r6V2?yiL$Jd zzPZ4A&gLp*x+nGc1>Pp`_r4;%{By0_YYUI>dwhD;deePz!ulqa&!DYk>&fKX5arix ztv`R{zI)+K-`=+SbNcJT*SPj}Dz$s5^bZ%0iTw{3@7f^f;!O|MB9A?SxK2iJ7G~U5 zY`!`>DgNS57Z3W&#j~~9ckwJ`!ax@fr)@WBv+v^BF#o-aH>Yp%-TyBx-gxHPpi&6j z=(S2W5x*biNxoLG{N>`|812kk@Suywz0&bl7w^uWE}kOj;u#z6yLiw3&c!qSdl#?q z-wE@q|K7!8VvE_4`CAunOnw8!syF=0#haD=KU_T8e{=DYCoUdV^K{=Y7Y`78{V%$B_xD{q z(?4B2&R!p>CMEHoi!YWwWGXHxB1%iD29|$*>lhYqIZx*BZgGElw4JijCs&=d+OIOR zvp&diaChUKOLeRLhwJUTKPI~0DSe;3?Y(C?tsSzry%>_NyuQ>eLH*hL!kfCieiZzl zp8Tq!NCiCeK5u?*hjRVt;_0+Qwqrsuf4X?a{h{oAf4X=zCpdRVzg#@YFn+~?UoKva zyhvbyYesEJ$e`mz=|0fKlkec9O*-H^k!wn&tVAo2m-+g7I*->t3e26L2ZJ7UFuPkM z30}P{-&zA_x^sZe+@gfTHM*OghXpgxWw1)6nplbD1Fm68k8zxoPy%U zPrkh7AI_^UH8a&Qnc(V0qpRmrTCxqHmf$m4^wUibC>GS~ACvClE!Fs{k~a4|G8>cT ze=q9u-Bm_eVJL&EYbVbDHcCngR^*D-DAZx4J2eO?O28Bf<7nySZI`9w5Do1c)Frl}72-@*FxTK{I%~DawK8W-v{A)ixF_pNVHM?(=)h<} z1~P&5*k)~_tbc8`Mi7Q`Y$VNu>bX#~Xwj=3x^jMG55^eac?LV59FueA3$3d^Emzfq zzK)O|Px5*cAMaJGp(m=0OBUKZpY0g~$q+3KA%sd>GLnMS%c!{{X3GAP>2||)hM&Ys zZXZJRf=P|7t`sqo2?veCg`tNo2YJ+NL!t&Vt}&cFd`xcJC~9jvR0Aigt&+*bltsHy zKXkd0qb_^g61v{{(chg@WrxXw%)#sCFU}ptX1z0iy-u>h-bK~KsIhlF8u5i$DfFi) z`-=k8vTJ8f3?QOTq``~GWl|>W%r~=jW>gS!vlPY zn!K5B;%v;WlrXsW3*PA%5Am#P6w*>3Jl4zT>2mX<-tdCGLHSqNe!rem%WElm{KIz_ zw;HPq>s#g;CJC`>aj9DB4LllCXU*@3JTUDp-B6m3RL4Kdw|v;l!9edr;_oEJZkUA7 zyYtH&;A@_^%1N`+9ed`@^Jml`TB#_@#Zvzw#*$6fQ>4xrMYThH4L1Er)k>f*`mwVD zeX+^y=YW57;aB5O$7TO9uaUg4{1?bpTDOV+bb ze-z!n`AwOf*D0#mHWX9c>+(E9=lqZCcVtc!?~JNxLY>mXT6AYtWX=Pv`stbYikXwq znR+n`VMOMXc9b|V>{n2x6n*jfL4>9%@Gjn@bK3&^2y z!qa+P?`>HUZ|6c&(Mh!DX1mUUs|vpG^eR^4hN}9DH23(oocZkfZ=SL~!XK!n z7@Sq5iD&h?IB4^AkV$xj*0ICjf;`(UDe~lJaPpSvsxaGSzbLv?HowhVgjp3M&S--b zH}e%b=2SmDDMq6i>j%_MJ>vnUM;NI)PN#3`L}zXqmSn_?t_BA|e9v~W?oKe6S>P6M zkvW;Mhh(G6hhnQXW1l~bt&xwbw}|WHk88+`d)yQk0QV0u4`f18qH^0 z3MgLgX@z|Jwxoa6fQv0uG{h1Elm= zUH!a!^q1sdGFXInG$Kh7=1D;-kdcOkh;Yly?b&2M8dUM{`RiG?Z$4MBAZ9szV7iRU z)@h_AkTYa(G6Df=hfi^fJlaR`z=<74$+SCZjCw>s{SiQ0!`i=v_yD4K%rrDq3W9{o z)ssRFWC3zS;Qre*KYZ?~VJ3~3JQ_k?>?SK44I&G_kK(nzLBtYnfAysS0EDa|NtPlE zcZYZwCT$%^`FR2&KtM|M0|zbd7yy8AO^{vzf^kAbnj*Ys4**2CD-Jk0A$#CV0lNZQ zE)gC|K+xMG^n7Tb6C#HUksV=3{(gY-gzEqf5F?=l`wOqa0A)jzg1vwn`vkT9v-qGiWGxQ74<4?dd3J#qysrUfl6M;i&kka#i;qZtBQmHw; z!||^N_BlLSL+nf9K8H7pOWU?b9iT8p%%@VR_&+#2$y6F_s-9HZJHtOXJYw1EDZ1}O zP(CR8@mCHH2V_#1Zj+P!$;tM_!jc<*aCndco?jduuE-?xe$F2p9{t2|!TIcc4iBqk zMY=!x=03>b*|-}K4iBq!?{T?*cImUG(qqG=r)Y#|$YpULhleS1<0zB1 zgna}#Jjr`!3xH&Ibv+*@Kaj)2BOi zWZ8Q+PRw2e0woLk$qfs=jQTh41NicV)#O|NxPq-WAU)iA%(`Ngyth?Pop|WxQG>Ep zdvWhj;Pye@{+d;qyx45uX+P^B>ss#S+5`C9kda#A$6BV-^t|MIDR&+mKdq5Ofzy*9 zj=uEt_OLP{UHOf=2Z!!gls_~eRC;G6pXvwXuE==Nux)K4`Q}S}er60kXl}g;Z$D(f zk1KtFfmvEt+Qv2OIY6PhFp*=70KW7bOS79E%9Fa#usB~2;3ThoWQE7VT91Q1W#d=9 zs&KR9A+@Hin@xw)njY0Qh&u1_+d8L&H6sgCBkf53e^vBz*DOxJqI+qZiiWImFrLV zKr<_=ePy^_>%yBlLp4bMDkD8!@Vhh6rcj-UX+x5#rayLQ9jboP+p6qQug_dPfUP*2 zW4-PHM0&If+-k2hVw{;Eew4iO^LW{^WSS96Ssg(?JsbGiPftrMW4WKFCy8Wv#Oe|V z^W3?2@?aSaCbQ`HqY^r{5G>*gmdRY9!XI=2JAoVkFL)@vu7Vb@n_!G1CZ09wO2sl2 zSR|*5GMtkvH!$joF=VPBpFRRW_^gg0DUcxw0}uIW-XbGOwD+ebfWJY{LWUrWlk>4m zmH;3hkAmVD7W$KVp#Z^<$(&0@qaP^2GNnnP^dNT|YZ!$|_jM{d@gIAuxnJn3!Ug&n z-_+>t;vigv{O``w&T}z!+TZFkFE8@~P`8ATS2KdYtWv;+yM_d%8P%#mK;wGmV9Wx5BM&4QkOE z3=nfthhZ30AOXfhczQ(a4Hq^`V+6&?znFG_%t%S2iOw3uss1qZ1#gy_A%B@64 zjEo}UQ=_VFWddeD9Dxsgd)l5*0MJU(>1F}63`)GC9G6M3zOm6eTdbQkXckPBs3+Tt zvC+QW(dQ=ZEevsO)Ldn83OQ(iUPv!Z4j3MIDw0*sA&)k8B@OEHGxCvvpge&L2FbDsblU{IvLfyH1crBV;tAUUyGiycKGxt#uC~ek zTDG~P!`!@6(rJ@jszbyT7z~IBFoLT~!XxlP2olsBLI=Yl1%jtVHKrb^GNn_9?)Xmy zs%Q~IqJHeT z-Is$`XPTr8*KtT3@4=e>DRm;lStIxjBJ`r+*OPlpnnVV5B2mU~4ege<5`h3aARrh8!+l;+UcDjpt*Ms5$&juh^jm}7!cRsD6%Q~|ztO|6U-h0) z&Q4O~3|0(7*A!IPL?u>OCDt0MmS>hl(B#ju68jw9tk=?EzCSoTBgTCWk9l3{+bZ?d zf|SY{jQEX8SYt?9l%p;iOs+XItvj@{vhWQfFe_5t)7tHP3FB#2VYk8JUcU_PS? zWp1;i4a-m8w_j~Y8mv=+)gL+CW6fH3J-Ahv-VXnzB7#ZN@Ap`W^_Z*PQ2O| z@j95kbmXs{2w_ZPWJ@<#p^>2bY6#_T-+~d=BfNG8snw`h-tCEMnb7=0j0gLjYF;NA zEf41{*{J-qOZqu%2b^qYt-;Jyg{&>)FP&9IBZx~NPqebPds>n_0SLmVV=wG$$jTAS zsJn-Vo)b)Luy5)3GIwkl1ViPYkY;|SDs|v|)xYcFxx5#&GMybDp|E48yH~kYvJ712 z- zaaojo9{>4yx*oBEY!tM-c``F{BI740uq;l4To z2-XKWhg17%<%RBCU2PN0PxC!9R#?1xM%1!ST2H(gepyfADQl{Usb(Z-l&_Wb*2wsLxa<+8q;iK)xJ}cO z(%{Oz29fZsnNkk;ZyQE+}aGTtOu?+QOo6yX9?XHER)Ji4|lf|KzMC-CkA}e z2i}K>^1Kg+FXB%x=A)D}66D)*M<$F=#@SOw;fY+|%3ZO)YVypq~se%nvFz(>Ocl{ey7x& zVOC=GH<7~!Flhvt;7G}I;0%LR>IfC7gidZ=GH_%_Wud_R)#Ri^q|YWtm$1rX0#8lx zE?dNy`MzNaSU+<#K-GcC#6RQZXt?KhV;%Y+|IW{t8ZoMI7|jZT_OOXLUR%p`j&nw-)DW>UiivaYy%#JplD_ULvj3w2fZrn%L70Q&lY=Z4NC07mH4wkL-2?hG8v9@S<3hJCAg$n2RF|d=1`fDr>vZ?iIO^;<+v9i#e(zaPy)BK5_%Qs{k#ut10! z^X0wpJ0lvnGsr2On839po?VpAs~7?=eKGvtR+P*!Y3A_0X-3f?&;!DTO`{<|JW=;3 zfJH$mtcA=Gg61Pqr*CvVQB!?Vrq(2KAVnBn%si>XUvYzQtM4L^b2wW2liPVER#L_! zH$nTFMQUA#M(I&bcaC9y=>pknclZzLn5t~+lrxf0HS!Z| zh7TeQ(LsHMP2z~5u9W!2K=9x1U5FS{vwPj8C%9 zlq2ZkS=ua}_f4$}2VJ}X{Jx791p{5YEGdikzPD+fURop%y%1CvjC=QhCjXQcmpiE| z^ZD7CqGC0Mx3y(fzQ|PP+2!L`X4Uzo3~A1^I&nw45({iX&&pkii95Ecc{-4J>cQxi z5SfV^HLM_4!wBZpvh^gfXLu3S_ z_3>h4jeF#QlMpD4r??rp4OT4J5qVN3=_RI_{m9-BlQB*&_=iB(NuAmX{h|(&9JJ;G zr39go_oeLjgzF9LlK~94A8(j7vGEzv6;k6)k4}5|n5E{H&?3DTb(4ejV=KI&;PM6P z8KQZ%b=YF)rsFU{8nFR~qz4C{Wzf;vMCwn{7VJJ{E8a8}>)l-vaggGCd(Y4-^Z_Bb zMC>{>bE0N@KqmNtgdGimrbKYHIb@MeK#VUMx~M5L&Tl1vrgk46#Ki~KIGB3ueZ+C9 zu7n6H8flp5l&YQ+O0J&eJ1WzlPbmQ!lNrodSZVs?2AV^3Mubk9>&&oYPd#8NMo!nI z9T){~1XkW+I5TE1v{^uLf+-6am`8V9lfq0|?#>%`2n4aq`O18PU#RTOp_^d4p10*0 z1~a*-H&jK;8}q_uy4>z%GYsJPY%7#urgehlZsb$#py6j>k0+TWEW0GebtlhJZ^u6N zN)6J6uSu%>pga9K<@M_v&+aFItrrs;GBK@`{5S6hP#10veQKL8eXI0dl_5>}c2R@g z2F-8{D$b1QlgoD<0(8~KE8AfE=5l{s$%xRC)kjZvU=Hs@*CjkNh{_RI-b+N3R&=-u zZ4^Eeb`BlITiaUrwAG*>>JsMh^6>-WdVH%Wnz zJQP>PfJb{EBy?H_wVZtFHijHZMi~^`aZXlJQsY89@fCd}xiyoIZ?}=;j}==;v6`Yc zl4-8%9M8G=B&aOvopChtY3YCo8gA*1qma5zSEOI4+_7~vIq1_4dngU|DK!+MD&r|A z8>oJ2F-AT|{j{R=;TCnJ!8nCcb(O#vY(AlOyu5-C!(K;xW7(d9CxbHy66u@#1_U5Yy~e%Np|5lzj*f~P#x%yQHv-$WV3 zX{y5o+2(N8Hk~GmF)AOs%oe+HH#-$zTH377atWG_vg%qk&$>LcT;Qi%-bMCe44b+;kaNNM8P#q&OY=Rmo^8#V348KBYABGlHl_f@;QVk zMtMlURc+K{;pNO^^?uDf9h6cHF3&$4=`R!ku&VN>*{iW;S)`>4S5t>pyRU0#0i3$=@MLW#VyGlDNjNNZHk4mpN{RD6 zX!!6GVg-644SR)-ItiH@qZM5N4VFB|gV9cw8N4~{Ao=T7@D~~{86D^kC=+A6aR|3l z2pb~J8C=B4eh5!lZ&n|JXm9qJ9@LFlSjOj=W5gm}G)(mv^o7;EhyC{@g@KGSQCC44 z??xD#A;iIm9%E`S9R)n&f!&GHoeTzLpB32rnE!Czl^j0$n@}U3%K=Q~X>-Sxv>D zizm-ny6@ug#(*v!ao@!Y#h{=~HJKzx@J^H?0C=bBkB|j|W@RqO!==ffi+nT&T^Z5@ zdvP%?W28K!to%Oo$mgqP9~B&GetzioS>8E%{sl$D7;M;5A8igPv_D<}#;Lc_0zP@y zox`xO!I-gl^ukEg0gTx0+1kCq<82Cm5%EqL&J5%ux?V*~hSJQ?(&)>>gkREuB3?ZW zj0>$RqQzA5I+}#G6b1y|8tn9CzBHy$kJgopA<3Q2rT<;`UfO-VB)p$-~__dKP!4RUx`ki!eLOkoe4Lb~`LWmS*?3BHc`k?Yv8a!w^E|68}m;8|~!Nwg!D z@F#@l1kmCB3gID4_0MAu&a#6 zinid}HA}qqEM|8|m)0_w=Wt3cUx1Efx~*l#<>53<{o4taS-FZuKCcs3v0Og!ug58G#8-6 zNgzH!9i4a&@^nXQMqh}f_ic=VS=`9XFPrXV0RA5JX2(&1UpQScY$(B2`$=J^(mqc2 zaf~JaYfvWt`XtL4adLSyIf}6+l#_gKT60`sQUKdTSZO7EeHSyEYZy{y7$G12i5p6? zK_Jlt?=3sZWfn=0s3Rk>HP)jqjc8|#T!aa{fM_ijI{!>{NX@68wk)#8BIx8Rn-TW1 z=ier7hu$LFf5`%lgGgN_3h6Z=0}7##7zv#>VT%^`N-2ae^q?s4Fbw;o z)MTNwqz#RhgXcRluM-1TaRi7kaE&6e0XlU!eSkdq8DRkesR5dk{h!T`ro|lcyC~sc z1+>M8zMnEUWb=%O;vKTc*}O=VM9K*V$35GaI&#kOCK)#rr4&Re3rDFNN1G0^ux$~|BWKQ;#aOW$Gro*U zIt=q4yVN*;DQ0sfgrJxhs_3Y!?v#kW#Cu9d6y*}^eBvU{rHr&QHJH(3&Yo2Qmyt8R z{4g#4F8sNolu6XeeWI@gx2hXTPT%EP;uq7jMAJQ#(JPl5;)2rdQH)D2g$Eo%k90nj zcV(>mY^dlO`Gx-uZdTaXm1?v;l1YpbNu-HdPKc}e?8@%Y@(@L2bW3iC8b_n*fzBJG z+31>C#)VnrUA|y-XjYzEwieV8rxEAn8ab|ZQxfS2M2*|K@uke_nvyfC=Ca%7(uZc_ z+K^cpx6*^1Zns?sphSkcA}YKhgo$$%UWlthG^JY5GBb367Js3aMt}t}H8EO@=$4X* z-mm0ve;9TY4!NF%#0B70*iMGPvt24zWQ zi)bB7lEhd-31dx?5ZPr*NK%xgZ7dbqhBjLaB82&$llolsS+DE+`+k4_-+#F`H_l^@ zL~3n7m^6F(BRjCQw0Az1cEr%zuVAHHlk zdD#{C4=Yay45n0VlS_`+kKGI5_Z(P8{X4qY{qtV~ZIvG`uOwO-ek zqejcThL@uR)*d=pFm+8l`pN4fX|v2E0ZxsOsl+|gA@)dH(z%0-G2-*Xercah){e}5 zII^Ml02hm6VEw44$9|!W5y!<*lZF$AQPuIKQGgwKuQS5M^V3NnO5159W}F%A>8tz1 z^K$L}Af(A$%YM?w-az{!N693_ZlnwO&|Z7wQF0%JiQJ3wcQTs2KRZJq_yH3$Zca$1 z%Czn}&r}-6{SSyE+x?R)M~_VS+X{Z6tUK1Da@_BWzsz>A7M^=WSN&aAj|8U8-jnr5 z>^^efynoP*FUgl?1DuZguRE-)qL9<(C8)?F%R5K(I)2D#RpikCmimc+=+&#vT%J?5 z4T!n6U;RnI+TwsXySK4=oEEa0;V>TM+Au|O@0Vyq@@?qB6tvV_Pu$w^_#LP~d)l!5 z)*D*7ujgPIy{|7hM^^X5*f1h%h7cMcmP1}atZ2&z3b@FyEz_MV6?NSL}Ri!Dr)=%`!a|Dv_WyxK)8BN*isEPKxemdZ~z3&+j zL8MJpO6SQG4=`*;-Ef?!iKAEf0s`o^)t5t0?<(flQ+Of6Ehyk%`D0fXyn=<07HSU zof8P4gcbEbkHki9j7Es3h3>aTy}1lw96uB687`d$k)R+(ZbVG@h0(lUUGxc4!JQe~ zur&JQ&U)gK%A9o9hEq%y$H)9Ip>nta9Wvt+Jam3J8i;lSdY2UKDH%yZM%Dc1KIDcY z*IKsmkI8uF+zCPLAFAD1E|GfJ-eb-=ZE{UVvVvXZq2Vc+hiPj2yGp#KJ?;l?IzD*l zM1ggO|Guyp9ke1OT85L4`E|9tewelyA6222a3`%0ZJ!ffv~MIf>|(0aPUd^3=Wzcr z9>rRG@+Ej2=ceKW=RznBal6cd{KzXz#11jKN1kP9m_<^h;)9NFvAl$q;_ULo4TZkv zNLy|P=sA{A$Z2lf3hyZlAa92XaPh)m&=^npxpAXAruyE$74B|w<=8%|mq}3p3wKmo zGBP;~iq15c&O!*2kf-7H;ivUSLzWCQhQjii*Gx)MZ6Hng8vr?t!R}s&L@niY7l%j0 zS|JN=4DR!;LshY}PY&8??5BlDXz&>VkLST-riqSP=&7wwJ>eADAsA(4ePJJ8i({J_sKiS|`p?hna#8~EeagHjB(}PZ|0CI04 zd9rznz0i#GYUjlkP4^f@D;5rJ7Kvg?v-z9>$mhz1Fl#kraLTzCJZO4wx)m*rqijdN ziNg*$UYut!zyx@O-x7N2*z5W2nd_d`_33GB`SQdMd6;%pe~?Ht*58F9rYi$OK8fJ< zwqeWV^Asjlyg1B7I6HDVyg)xiIQO(CYtHv#hWxE6f;Y59TD){s`h2`Vab&Gh)uT;c zl`N%4s!PtSJ#4s5S!{11RqU1Pd`~>9XYPqCnlQherd@;R4b_jkx?NvW&Y9N0sx{o1 zh`eS0RL?@$0fr(3-F#{@nl0C>{xtrxNyjNp+zC*+l`kz41Hn`Ak+S3gJ?Z*kzP zTo@um>BR2QFf|R96rU>vCnvhDJw7Hn-CHjV$P0FWv9cG3Z@$W|o*{GX z*!I3ae?yd=ECc#Rr3F>yxL)_zk$S~r*T)&8BPmuGju-Abp=JTpYcU@@KIg!*9;y+Y zkvG;n;+L+qBMU$tRy-70b3V|~2WCA`NookaXzXmh9a`_yhP;q>9E zdDGaX%H2yfRe{gx6qXw7$B#UMT7(}$$PEls9-Y)#`doa=qSXJh-3I3%sarYt8vQLn z$_;&<#Y^j#W?ryDLiD|#?D_JFpg?xt2CP*P5p&;j+NOQLCz(nSBktv@Hg$P-Jwhhq ztxu}DF)i3HuMS`0Y_4T*=95)|G3N{@aTL2BJd3r^?>HzlpAzgWb<@%tz=pV9c(Bh| zSnw{Kd(}nyG}WUp`_bbakqoRj)cJad-=OCu;qEUvvW=AC@&iJ=nYS&~n(qUn62UpH zIgf2=)dSbgdFZ%BfBq;LoP0&}l-8Dw{gc?6GcF?j$9251XjM(vpQ`5;ku zZ&X9f#=W^~PWIgsWfr|${h9ZCotC_hTe%^EO`*6k3C?2vE z*29l_NEWBB%et=$mC0nf9y&l(d=?6IdDQ`ZKX<>5$CvAbj?^jT_Ao?k1$a9oNX3DV5_8Tx0D+1+-(ctmP?Ge`>01rvucMdii|uDR_*w#GIZU-9 z9WP})t~@(q|BQK%i#Zp+^C3SV#ccD?7KsQVl~yA#B$sdnctzqTiJSncy(6JGfs#wdkQsMaikJoxi(|;uC8Rh8?|fq6nZ=PU{AqQWHNW0-<aUVKhw~@o^ zOo5kt^9vh75VJ>2d%0GfIJcpWCzvUez%_7PhAC@QXQ=7na{d^<-RbrEc{~Q9gKJnB z&k6HzlDwL$!Fj5E%O*mFx1G*_Pf!4TMS~I(gSNG7vqy7Aok`J0yb&rk& z`wHhFK5p!;d+gt+ezE)9$Ia7qPlA`H`#*CJ>94A%N9tCG8bu6kRj==i^RLR1Sn1+< zoU8uc#gj`L*C;Sl9wCPWeuH_udq#G!yLg$?Mc=x3{SSOrV4i4e;Pb|1&GPK0qt2^t z_TF!7FOLVichm-vqWCEBlN{fP||VmT+ewQ&o}U%ZcEDC$$%*OtY#?tVHy5pl49 zf!wdv(pSTbev`{sH3y*m^(SN39UK(B+}_ZAB7&kMEjqoV)p13JnXISyGL(sg>5``0 z1Ed?2Zl5@A7dP$ha*=<4*2)Xe&ICH&Y|_>XG}Vdwoc!5NTw^~1*h`tpvsqeWdTk-( z{Xi_GN9U4o>!x0e&$04Vw{CBF0v9$HpDm9+^$9U~f9s8L|B@T8KJ9u_|L9}m=lYwM zhPFNb`e+{P;z_f+csdW*UA&{aC&4b>U3M35)Nu;z;sxDQj-P+z>j-x7bgJ21JPAjz zi?_L)-NpO3YXb`Mba_-mL<57w_nA?&Fb{U| zGB1H$yyjgW!7g5L9@xdZ=)mscrQHI%c+>q0@APix-2=OLYwecCLi9}8T|B4$MX-xE z&Fk{5;(6i;AI3ZU9gMCfZosI7AIhyF@VUG`hmI4lK9}uc*}v=o!R_*B?LSMJ|C7`t$TTO@W9mR zY(a4eq0|B9B}w7sOyRPD@$1>G)|@rs;xe{_j6G7aBbQ{4xV`~v($AdNMoRUCO37C; z@626vPGmhIsI$lu7l6}GpE4-d+{6}CqdfdgWufH+Z9Tnr%* z1hT!|lE8}G17saG%7XJMpQMyEe`R}W|G@SP{w=l#n!OdUXYJ?#n!UZd9e&65K(puS z>h?Rf_p{lf9QxkVTVZ=XKF5AGdw&J?P6h>nW-sxS)6Z-#`2QPh?@`l@z&jrr@7`%{ zZhqNZ71i>zx}_hC>CxJsKX~w9@WE2Z!?!mcGFT5^e14Qy_xN!NopqW1vWwm|NN-%A zPtSI;Se4z28u_O2=<(@6)0*9DUH3 z&GvSx-(6vQj1{&A`IYVUfo#w32itq~jqL#-+q?f8+p}L`dqg(dqk?P?{uA4CWV5{# z?KN5;+p|jhBipn3_t>7uuWauL{>-BE&us6d)=cZFA8fDSk8E$@p;KC3LR;`Sf$=%Nq`s zGFI50*q^XH+&%3FD{OC0D*oSOdk5KU5C5I*nX3+QwJ>Jq#;VudaB`cnAI4{-*4uua zXyQ8lm1&DOx;R-1PlW6!VYEHB1f)0u&n$HsY&i2}x7I^8~G2hwV zuJSN!!*{mF3@>dbtgt<11Rq{h?TU{B8*gSsWPs&(iAf0%P~AUykE^T27Dz}{s0+Pex3BtxBAy`RJG*$o4kA zA8hKxc>Too+;iF!O~ckE*E(#y+6zlDcga)KYbURY%o#Nc1WKO?A)-)omV2ZRib7N8$kC-72acL!_wcWVgFQK z;nt9VTY79>3lyhnq0pg`-fEuicg6ND$BuQvH`8|EbAz`u3wP*m*!uD*AEM|T$S+=UBrlX#;&d;o{H?WPYlBfYiy+j{>mcLQ+kRwE`1rozi4kH-01lzTUYMf;lmyB zHSewbSxWb=G%^nyVnH}Iub08iw81T9d=VNt2#g)+qpgjiNyyxQeqOAY=sRZIu^xS% z_e~t4&Kf(cnav_zj3eb9LfX9sTPs+eUV+cc;~nDs#p>R1oal~;e5HmEH!_zJuDN4- z16eFFx|=SXuGMq+^A(tGs0k6X1{&lX`8>$yS23{Z7p?Y9W;;HjG zoi1wcu_j6Tvb<}j)E^9T9TCvLA3kWFAn1I&v+9QB)(TP6o!u(yyCf*~h9)W_ATW35 zZFJ|PoGz|Xqz%;WBOf7r(6Xe+UAd}tRfNEAX1zT@qt!Ff@N(rjTeGW5{xQ@}rPdLQ z>RAKU!yu{YaYjnyq0g%yHe8YyCG@>m|Ki!657EQs2<4%?9>I3Mw+gSEb9=Y0$=R;C z^=R~$fzATu@LNt-hs_-ydU5m7RS%rA=egkePWzhg#nqbf2ai2`Yw`6XFpOwqPm%nK1Nru=-0RD$1tHwVXDzMUn@^dlo|zxb z_XDXOiz&A;E5d!V!o>$ScGKgoygF30Tf3zMH(28~%C>qRtk1mNclgwJZ)Q${=4o@&9 zjW{Fm_o_W-l9u$@R!=3fa$CdOcd^xZ>(3TEAn{bbi!xu+U}7GhbTh1B)Lx--PnnU* zi%wD9JeuYU(CW>7e!B;>dRcp)AAT?({EBK=wQ*uzgBsjC+T^w#c!_$L4;fA`?;^)n z@T642nnDRi8y0a&Rweo(6}M%c?mz2U;vZZnYOAC{Cur>++wf2?-S5pK?3hpcaBwulH1|M(m}@ypH6yFpUER0%P_wK8Q6tyxq4~a32Q)dbE&O z#?f}$6E9^rg!9lRpBpzYZ9Mq-8Sh>8xrbKa?VJ5K@denLTWwjLhaM7eILJidYOTly zI}cK~Fw5?}RfI>CcdOLUlwG)aqMsRsw5_%HbL-^QuB+`tb4J8$ww?&!qU;#4#IwEbAUQM3Sq zAi*=w{en-0V(aN!%sa8KC=SSKo;}8Aa)$Jiw9Z})I9pJllb3e31Y~>0qQ!G(D?zr` zyZSvPrq-U#_8NKxYtv$GePer;lQB2GvAufFa}jyx9!Ia9Wu8N|p6fE^ub?1$1vQO( zH}#^vQ@y8cUOo1r??9?Yjq+&a+DC!|%>6;xcKup9ubG^~5a)eFNQfIDm>6#c!Kl;r zz3nBx*AguxAW?;J&FWm}ecThhf;{N>=C=q@qJ&0y{0`m(m{2g{g2*DB;}*c}nngS1 z!jV-DE<1(xl;a;#U>lmSawlNsyhuI*|lAS9zE5vg7f4?n6I-uodWtGBz}-br3q^$DFdW>S%6MEz*UZK>q9*GM)f%9 zh^(dzGhSqSA+Ui32K3yL{h1kReb~+DOimy(d=Aeu4+jH!xN=#RGjd-RigH5bJOFGb z!In*6@m-hs%aP-0>x54@ts+1@aWD)ap$uGNhC}q+z&kL2Oet9WAeIBXY#<>K&M?cW zEX+cdO()s}hXQehZ8`ot0mw{*xDk{*aZn7!Dg=o^(4l9EP+8Lr026jB3pNYQwIXwH zbznv7Art_Rpd%;Rvc)-bq&o1WeRu;pu#bR%Q8WSBZ2Tr0vJp~@nqYtf4mu-YO$f6A z1W*o%C1k6v%DC%w?uiu}>~WC^53|03J$lj#*b5CzVlgw^1|bAiQzB=1qS>9K9^5yu zM=lrv!Cn?ng)5l&4eXJ>fjx3U06AeVAt!rNkq}ePEFnwa8`u+~=h)~MC!>M7Zvj2g zz;9rWxXr=2cqow#_I57hsBXG)cvph`F3A2cEP|c`g1yT6GZn(hjUCy|02apN9>?Wz zkV@|Nn~jDg3=o0*L>KI*Q6T zub8n0*kG?A9VU{6(sjHlbRpF|0n+MSjU4kQ0;PAjg0!x{L3IHEza!qD&Qn=TX}1Cq8- zD|51P%V(4&5fCBD-X{X82ElP|I7kXFfi{( zOloh~&6^Kyf*e^A$nU_xY(+|UIkL^(S7VrzFb_b?w|ragVaDNgvu21@#5Q|A5AaK8 zU^hh&nK?J!f5kH9_Vb)k4%Kdma5RX#C=xv?be5|ixZ^hM0shoNKFgWo-Egg0IXr>5 zg)6Hrjw^*lDU=qeN9^Y3G2x;ftU97tr6zKdUXNEJ=heKxSC5{twz@X4iwnUl4!enu zWYVM$@qgS^W65kVOSs-Wg4du`krN^GK^_=In&}VJFO;P*Z*e%64LrDO@ZiR+qFb93 zt1a%_pfie14>?Ys1i~F}OZ(j})#rIfq4k&hER5!VYD%)|&aa|bBoqN3o4C2i1z5#Q zGaQn;4(}cWJJ3+Lt}maHdOquGZ4PMmaBQ3mvDSp{;?InH-0r~-l z$>_lfl|$O{{a7gA%I*#`eMMCO&LBE`ScJS|bnFbg=TLG_qJ_=&P(t+k7go3RB`t}x zZmz3PYEPn{;8Fj^_Bg4RMnJY_*tB^*BP%Pjhj6F*2it2oiv`ybf^1K4p^Z9Pw8Hib z*=(=0*%Jx@*`Bu||81Qv-}JWDoDO9oa8&pww)YCKqy1oexQ8Iy6Dd!#DD|9U#7Xbz z+DLs`4!Osm|Xq$Ejwy8C%IhN5Dv(6uZiO^of@Q}ATb++Z2xKreXK zaPxnnN1M5DJZi#g(pzo3u{=xIFZ9*Ms+$oq{PazI$(uLB9<4dBSmT>sJxljL;>kZt zv*>KY&t%ck4wG~C^mljn<(|ElEyh1ZaVUP&XD5mE>3zQT^K)j^?br%{i^yeA2ylvR z7W={Wl2+Iry;SiB+v_mA-Eiq_Bdb(bh0%2C4!7isqz%m8u4eg^qSdN%R&2J%%Vv9q z)up#Uwzp)(+{|Wsr7LXj^>?;6v%>Z)|B~$utY))4b&&0;_R>0G@TRig*dFp5+k*pa zwx_(p_NYJD9wQ!Pdrs7EY_A+)*ZGa@b#l9bZ144Vw%1PL*{pKE`5W8YL1ME#VUX=f zl0OrEus!N`w&%RU_NZ*Or$hW}wub`M_zK%A$DDc$3twS--Q12K+v7pr0@>a&0%UuY zAlsYdaRs<9cXB&X2iuzPC}&_l38=LMYWRnBn27Iej|pDee`9-e7}EJW+k-O^P5_(j z!AXD)8HEJd9_e3f&xwqH|AFms$bV;hC@S|CXP|9`?L990Q?|DmWP7w9Y%dcyafHqG z;J>lGY>eyAY>x`Ey*J$Ozh!%9knLfAWqbO+XM6BJWqa5@`kn3d(4$w_p36V6J@_Bl9)}R!^>=LV$nV)6 z@(0^9BsCErY_`|!OkZJp($quFzp*_zD2^r5%VvATe~0a%{)=o+_J5r1xwia^?L8G( z+jn!Q{WrGP@*CT;T&4bl?WLE*3;v7k9j6v<`DeCg_%qvU`-SZt|8Hb_fh%m!>{qro zvh6$DOXLmDxRPe|jqMp;JopE;7YafA!uF8g+1>#*+spci?eQJKZ~DgeJ_BAFT zkbG>mC$_@&WPDnH58v1x60ySe$fPw$knKqz`Z0!o!S-k#S#B$A@6%tfy})1Cp2|12 zhi6V-{&Tj6H;Uc=3)|!U#`bc)v%Q@wY!8O`UtxPxlRvV(#Gl!o0OH?adv?FEJzJ`< zhk!l99g*xA^_}fCd}n*&AlnQ7&i2}W$M(=GY){|^+avw^Z12PAlt)zXL|$^XCoDW(WbcI z#?-%Kd)B|OJ@a4L-UVQV?HT=x?VV9Y{>=8Gez3jQf6n&Kf^0ABH?}7Tvb{Bb$M*QB z94Fs{Y|r#RVtbVL<2$<~!Tt0NGyo54MN; zBiloB!2gl$p?_t2%pYuT&kwe@{wKCK`44RG#;1jYW8MB!w&(hfZ1416vAyhH*`C5Tw#Wa!!uEJq*xudWvpvqA*)U)Z14J? zu|2_mVtc;-0oz;so$Xovx3RsXU)dhH=?B~U^quWp|CQ}!?ptAdP!2ZR1Ab$B9RFi% z?~MOnu|4Pi7Pc4oGuykhFKvbGN&m|B(7w3;&1|pr4{T5BKVf@4Ke0Wze`0%#U)f&M zzs>fjAlpN)usx^0V|&u#bI{+|-a6tBw&(NrY%g@}H@2rLi266!-ddQJDhvJ}u{~7O z54Okg6WgoWs|8p6udu!Pf3ZFMf5i4`|D5d+|Ca43f@}}XW_ttQ*d8Vd@(*mUKhonj zwx{&JjqRb_cz}8~Kgxh5jwu3uUvt&!H=9PxWWEXAD4ze_(r_f5Y~o2>*j@FW^_UC;5ZzU5L~r z`~};?|25lN^A~K7_h+_;W3xTg?`-cljR%xbR+jF8>!sBK|I2I-_ygP1{>Jun!(4x3 zdvcMkbCG|-_G*4&dqXR15AiRyr~4DzBZF)Y^@Ht2sA+|%(cnQVY_H}A+fxDKb`js% z-dLnFDsm5-?Tt!*xu0}Z12n-=hMz0+nbC0J=;^62&F#RWjAr5Bwk1V!e{jtYoo)y z+rJ#Oo9fXYBbSUESm&Qz#&N)D%+;>xec7znlP@Q?I~+KF-2dp8u4jWeQfD(FD+Zkt zL$RxlKk?V_3SdQTSQQ-~pn4(T?3=;Ux90-a`^Fwui@#(B6#D%z>elc%B;ztPo^y-YevDq!H(}z8|_7Y%H#ugU@ z7gFruqSX1BP49&u?ieJ0^}WN_cP3G79i#1HG|$&UT!@;ELbvQ(kgEYmz(Ech7-X|HhjRio zXi~_&;CdiECB41we$)n!p)eU5U_|HN?1&CZ3lmBURYYkVr9s8gLf6=5Y(>Gv=0a^y z&^62?uzSk7aW1+h9%bseq!WPlq=oT-(LGw&(NGTgf(|8yt!G-eJt|BnK=$<9k`OBR z{7}?-+Oh=YG@I=ue`9-zVTw5PC%sc+AluVgI{!q!`!a;diu$N-bs2-uiQQhRH(K9rv8*Gt&ip%vO7ZXh~$jlnH;13r5(=WxfJ2mzx+C9kPp+1{>_ z{nN6KlA{z-g4QDKA19RKsrHp5$nB5>yj*S77KmIZH$LJ-5g@bas%hqHTD3 zf$@lR$t!Y5>VBxZ4zDLSa5E&ojpP}Mq?05e&(efw3r@Fjm}j}eM0619wGF^*$1u>b zUo`w{KYkLq;X5QSuyNa}EBb!L*Ju0pvvwFp;@dGTZ#ZIGa8#dVQGmo3Z%%R|3msTt zdjlpL2H=C1GI>(S&7x|AP|`y=BA3(2nJOyZK1~_Ajs2^+_}yPoEfG*nHA<`A_QETv zT&&vK=X&Dst7~i)iJd81mul~=);ny{K4>BYutF0hp>xJC5mp-UzMjzTZOv$t%|=|F zIhc3bA$};lN9fwq>-hxmYfeYObocTB8=&qaiA(;=;U7)?_ReB4kCvu)`$gt#Bx}LA zrN{!%AP+8}?%d~$0v2xIqm1ZccvR8e==Gl2Uane&!7%rMKE36K0{czI?`+RPs=xZs8EG%+ZOWp%>Oi))w=OxJMF-g)r|3MEw(06UyHHZ_)p(Mo z5)ov3)iC}meU6J^|nm<@9<1E2+~w($Q%7bd9V++1y0a-b~U- z9=L_qSvl8jrGXtA>AoH9EP4d#y!m4MD#b;Z4_+#1ccIBsW8MfJn2xYlu-1NxS1@nq zu7cH}aT=bX=K1N4#n&1|)jMQZNzH7w7n)1Fd??{s$1$bp-g~+urz`12w?MY%D|dKv z&(uC%uzzgd60W zpVkVgQ!xb$>!v4()|=>bfzVyUzFh<}h)F<0iKEVTy-x>@*yJxQk~V6Pf}|P}@w22Y z8Qcwh(CkkuY>#D3d0=tlm4pf@Z|kybnJ~tEPlWoJ0ZQ%)+eJv2eNseFw4i-? zH&)o5DaiJ?jXRDP+lbw#&c>T>?l|cD)xykmzakIg&UWRK7r3{)Ra`7+;aZhMo(@B9 z&UvJ?<9HXy_NeNieo&xdq(`@5^>yZH#i*T*Qp`n7J|UinQ&+B#_<4^}tMV`*9y-#( z+PSxRCc{PF4K+))O~!@vlw$j9uWZ!nN!9Lw378t61zO$X>)yG^oi$|a?ik2f(`Tmg zp1S&deO7!;L!JqZD_l%rF8-wF5s~yoBS+_+)CxbQf`krQ$B%k8Q0WS6pL!^YH6oUj+R+BKyMhM~e_+c`h}!U2GtIH>E$^@yT0o&Z_Sl>&;VD2xcy_A+lx(pWpy?{H z3gRlfN+tkkA}(|y0l5w|KA=_2n5?!cBTKB)IQoz-@Q|miT?~P{quHQ}7#)B?*9JtX z5}MTHmtjHmg&^i~XfbJfD?DH5p^;0uxlg6)0;_;SD-}ZBONH%y;$pbD?2HJZYLAv<||I zT@omM&LzF`9J(|Z6-h9V8Api${TjGciwYYcz@b%(DbFjW_+?_An)4)kaM#MB_Irqp zRun;c1s+-viVGBhE#(OzLH;GAHjWFNXXcn3#74J^2^s7^>i_(oao4CE`fq0LFi8i5dOSrMz(jj+b{CIl=kbZsGeLF=Zx;JU*LC9=kO3Hp2DqKZ-P@i0EaDkO;%^|zqo3B?JcM9y@ z38-e9ng+Rwi@b+D%g zvc36-$H&#PV9Frd6W$e~qLH(z6l8k~Ib8=da-~7G_hg=)+^BI?z0^y6S73MMGRXEW zC0Ty!=^ZOHi5=Mqvb}S**NfehM;)FEJ*#d6dwLiT$I*I_?ai2+z>K+oZ0|8&O+^yO z_FCb64}-y;UMa)K>}LP7M*ro4*iVOjPqO+RkApouv5}+fo?fO#-ILPsW2-m48Vlag zFg-RN(0%ju!OR=Crb~}XygkY8>G^zR_w+Kl`&G2=u8MODRcsjG`GRYfP?vX5Fp#Lv1hYAA2!>|w_>xs#U&+>?cJ~d*Wx~QR43&hBPh(VV9nog)HP> zYn(BP2XS8T*OzY^zT6I(XU2p~y<5k6`y_t(UUA4$)Y02tIk2ob)~V&s*UsqF-|_$Y z=5|9zZJ1h#7;EOTPWfF9xIU2i3V7`V+0_IPvY-l1EGv5$6#T6Z4SNOcaza3xV9t!* z!_JFfRWFS3{7lx@1O_Y!5TZ7tO~F2Z9gK&H&>`XA2C_pE&$Af|`~)=N4!;f+|ITRx z)i7+c7&hm|WgR&~F}ZLRuvZ`l(=s36RolatdRYfIz;YmoDfK?xlRf7yspV(5VP6>H zA(g8!YxdT~URr zQV&X{6mv2Z8*|$4i$g5I_rP1e18M^_Z6NVz9TQ&tMZ>*CWUi~nN}D4zcImg1A$rGaeBLe zMp`9a!M}GBOz`#I+4jc--+EJm?TJAHFu|w31>8PlWdJ7l457FK$z(9W=gdyK?QF{jCiw9BITf@VauMp2+SYaT+D(LLFu~^ttugcZGs~w4y)!mj zwG~Z7S%H=h+I9EVyvp?ny}5#fh}ETx7%cjuO3K|kwt4BlT0ZWxzgj-5wA=C(Fu|8g z|AXcGk>ImLpKq&bYqf|mpVEtw^ZwAtq!GacUmFWh&Xr!2!s1l|0(Zu}ne{BTaoI4g zb^PS)@V*_?^%rNYH_fHDW|@uwYOhRVMn+c>d}@@k$JR^#&ra}NNJ-67US8S*?~O+%vOl>}eNuL(XN`+I^vD)UnKb4gnPjR9}#-( zJUhYHVO{UFGj;!h7una&y5VY1b{fCr7PjTH(zvoXS0Ftl$#W4Z1zNr+;Rbt)99`78 zBZoN^YG&A$@BNkAbD-tpjnY}a6*tqn#Zo5xw1$oh#-1sg%Xc%*c;PJ;tDrnKNR09? zY3A_-$MXjP>73Lsi8o}!|o@VwR%Jo<4{?)#g(@+9adbQT$qCELEOKl;Z1d zimhqXv|qCS7}ndgCCBHAggk zm#Fx6%SV&9_+j}*LCaU&yHze{`+AFO(O)Jz3skS%aw?OzaC|t-#Y0#1Iw!bd`D`u< zZeFo`tmo+$aS_sGi(EmyY|F=KnOAA!%?Vn*-U34ZKzwW_+wy&mbkF9v`dRAy)7_xu z``mUl_lv}fp2N}Ixa&VG-|VK|q<#lXMX5(7=GO4mG-#zoo%&HHtD$4vpYB4$P78=! ziuBS(wIl_vx7k-1Xa4+VH!6w|qi1u#ugX!>YlxU@yVN6guwQ=UeyfU-*nNOik(0P% zigMZDq091u{A*TuxV-Kz9yynd@f{y3l~-54_1th#;kkgfVp#2`-e3*!E46hy7-`y$ zm$hpOocG0kd04OeX2H03sP#bW=I%g=g}dh>@K;=_QCrowc70kJ8tJ`>4gaDw;JKY~ zx46rpQYNwI#`>9c_d|_N;8F%XLTE~G@2lsE@9=&y-Y9*r4kPt}j~1p=C&?=`!PhPQ z{+isxrnIw%(mp0UIQH(Mu-uME>+=o7^)U0#Kho9|zBu;6w<&VNApOvj@V%IvkIYTu z1+f5ZIp6d-+`XH6?pR5(7(`&p#)io#=h!gJi?mzHrIt2Z_Rmb4e`2~`NkHCtA9mYi zxii=11Ijmdcg%_HH(7JoTK^*B9X>J5M_-CHju&wbVgqi>o$J)_JtoatAQ>xM#9?N8 z%UKe=BN=Yj@;$!y^&^Uvdg%P~J-+2u>Gb30dbsAIY%O^AO4!;8$(e;|9?G`~CF^ey z%tQ06bvOi|SG8G@t#=-xY+*LpQKQuSTCB`9LS{b%O+;B?=4=TmMuLLaH}t(MCI+ds zV~XSC+w&3gHo?oVwe`|igWS~`)!#W^=bFvt30!L-T&xy+3hh|snr$7&ESIQ!{h61E!KbplSIT=&u2n=yPsX&3kJ)3WF%ML>f<<0a~xFi zTX|253R|QlYBk~a;UK(J4hxnfS`zo8yvIy@O5sr0D4RirX`_*;uCM?c#Eg{eOyVyg zz%>APT+^l_q!bd(sFTF8lLR|YMrbo-_Q-SXxNvMYGyyjS-&yBs*%_+_LN+FR4+7<| zmTPYlRydq{dpXRsJoar%Fn z!vwT{+)hR?4I<(|8iGcG9R|?abR@YF5j1@Mb9BN{A&#uRofP@=e(jqaNEh}##~uOF z4O%%v%P(j&C#-#!(5#v$)4p1Q2Jn)Qo9j%5o8V}A5?2;rR*~UMxMWt2Pox3PIL;?^ z_1ZofkpsC#M2viN09TWu{j_3$02iy~QD; zbxyPmEi91*AiB8GI8L)r9^FFhaU6sN6ll$3yEe*7;GoK^3xHA`ezOCHdO*v}1s2ht zS?!EPlenk~mn}ol5W14p02WR|v#4l+3mgJM$TgfrIlCb7m3XeR*%+eiG8wXN6Mt3U z1t5#-@?D^DFuQ0TOThuI)rjk7RcZtIw^H&z$fwzHRiH3$HAQxg1gsmu;&8ue!Ot3KyoDTR~cV*pN?LxE$N3 zwCO?BIYyNsp2L6u7iW}ce8p;X;Q5E~>P_+LxNnfpkPZ2ebPjP&%>ILAW0dMjP9UeF z%whlykT`U>5IfDTnI+_TUAS!W73*MD15qrO*_To8oqu@}f_jnp!l3|7arZ(t*I?x>&AyG6ZGg%riyEYfR?= zNZbu9G_WD;j@rp0fQc9{N4;&sTbrY&%Fkfs+q;9qa_EtXt4dj@!A)gu!zMR`kAoG+4 z<=LLQ=P;)4_)s{SMqAFvI8l+ITX&l>mL&Wlar4GYA4y5;m{49C@S-mhc32BKmeeK0 z`N;u;(|N!(2mt^9LoAuYod+1uOe2Lfi=udOTrdIX6MFpvRD?gQ-xV$J@9~_ zoF5&eR5%9ZW?Vh0&8fMkOKS-qgX`g=BGz)t$b(NaAeuT|61O0+LOqx)&pBosLAh%a z`Drn!rkioApS#E46~2U8X``ehMSi+BpAGqTEOY|G(#m_fKKMPE*D?5Nt~Wo*BgM@R zE+aPc=6KwMU*E)rd|WG#PjWL-hX09hU!wA6;L#edmo+|t)w4{03JCeA7F{6ZE2pKN zB4=&x@2cv%5_s>j7(ZCn@oVeXG>kfV*x=NX?)(cu5T#cWlhG79z3R@X0i-tVWyj$Q z+e5K2B*@G3ySAY(J1)I^cu8mK;)|l%7sJy~Zr01ykAOg*Q)N8C0neFVAWmG*95!LIGe|gJg03FC_TOtdEOqnu-wkPj9va9MGF z=xsdQiT`QvIEw*Ww~R%BdhYeR!6OqW=Z^^Ij{!tLe|(&9Z8bAa7%+8}T2SO$s-c0GUuwoMNE-b8$(_rYSS=)i>LlaY* z%kdZ%)@R+MN$`BooB2}`GarPAQlN@ zBV%e#?tV}gT6K0V8vDZf2){pcqIaoUWRE3R=tBYyeWWBh3{@T?5l zpuu{^gELyjG~~N9QK4UvD*MuokSarUZE+gjFeVAW;AG@|uxpQtru*)|qd=B+8qgS~xOdv!Hgss>I>?j|AU!PBDdNV@+4~KP_|r zp5Swp5%DXtg;$M_zkl&9!8h=%bZsxwrR7_KPfNz7H9=-OJHhw9^_c3>4=>pXzO9l` zvU~c$1YeR-zQ?P6Fu}LiuJtNw&kHcY2iyPg!>boxjy_Gly&kdm<(&6B<>PL7$BWD_ zXx1cd&)>WG%T&&bcX9_m?!Iu0IdCuOep!l>(D2)**Y>}u4YEDpUT{6%>CN)%FI!UP z<$Xt%LjV}J;_b`*==+IkjjJg7NRfwUnsOFNE&7~_)npme8H1L1F740sJKV>t@5LV; zszBVr+U)3T#Q7>j=?(30@ZKhT@1RwFP=BGfk$BS03L`@J;)Ic8j7HbCfw&z$CJWK~ zrcC6H`l^{K6q_G5Rjlf%R9Cw3dFnx1J>1t^4Y8`qT%$XA)cnnYgBwosZARRqw0F$Y z1%Bgg`NeylG2Jj*#`hIUSTFjvUt}GAx1&dMlauw;b3V}rWFg1u!?wm9F6VW}7#^2G zJl<-!xzy_X`ZXPq2)+PFlo7HX7JpjnPPV*AWQ8PLG*`GyOhgKmEu5;dr+}CIoL7d| ztlj}7WR?DYNMc`@zHGvlXd%xGi}#+XqEs@eCTHJ1YT7fLtT{L79(!395s+o_;{A=Mfp-K^Z%i*5J3k4*+q=qy4xE_2yyIPT z)N9R6E~qq3sZ_To-p{BW+1vF~h1FRJHaYt-LgD&-Yf~(&fvAvi>iO63T}%6|o%M_v zJTvmN?mez6lH>5><}%mariA8q?8 zaosy$z{ehzDlO>FH}loEAt^HOXuc80qF*aq&*Xy5F4i)~mKXd7m%) zojGXY9I25IF1=}ddF|0|)`0ejo{L82$5IaU?V5!%3yk>Q*oa*mgBN*igCOiJozchB z?_?JxQ=NuHEJugC`$OKL^HVfCR6kC?=iqD1IHq%aIpj8JolKW>$IUU#bEl&*KKpE_ zx9V@;Otgs5#|(!%mR=C-^c@Se5NNW>Qg z+!J@;jd9FK5U88miao)5&MlWF*dDMAa)CGY;67eXp|{}>?$}sgrC0&wJNlS~-2aQc z`;KaI-4}iTrYF=;1*C)~9cdzG`b2&iv zf`F)qs6nKo1O!Dya^HY+%{kXv`|N$r*yrAH?>%EAVLoTVt@m=cc-bD+SFkk>$ zn9lg3M6^T-Nnihm4X-c($mq1@(d$VxHiBjStV!U4_hrV>OU1awJ2v5N3A%6J7rfe; zAg9n}X?7+-VrY)43(m6JnZol)040zp67(beSV}9-ADh_DI7x)1fb;$DbU<`!xDE&D zio%>oVth`3^O=1BS{ZNYn}7k(M0q2CDCC>K&&6WOM4*9(#Z*hP98*5=1sO-l%xCdo zx`k-vF1%QX;Nfo>W$d05LxG+|QXWB$9r4HUc5DBxw7sfz5MpU<^;Z zU@Tl3{?vAx|4x2G`%a||dph+EKV~GyWXpLJA{cjOoc9d zgmPAWlfo5c?3CzB>$;0tZiO4g(YtpHc3xde@R7g-A8LrB5L{7EJKf(vCBr2Q=m^09#YyW`mqF z?&=*;6T@e9c1Nx!__Vl>Teq(z_{6{jA5eE`Cz#+%0kq)dFSy7IaS0>=9otjdtbx$9 z4;SbmL77~doCIGX3Sfc>KE+Vy`Qf5*&j(6xC8>5>=KDX2w#iAVB&nllq-*2^v~~(f z{pZB9#09*p#*R*VpZPu9Oksc;(Z!=rr^Tg!3BE0*8#oER;$$+9xVFZM5iQ3bOz>T^ zF|l_Mw*uwa63kK*9t4$(^GgMU>F z=T%fg!i)qTA956>->850MMePbZgT9=?9?qah(?K?`Kj;xF)B%;FlWYH|I6Df3gN?S zV!K32Z@NA)^jYjiYx&fih+Vu2!Q7Jz9c99i!oLy&9~IlQ2s89+8&wk|PZ}ykedo8i zQ9j0iE$j zJgA`G&Mo(}=^bWq{RK-bA;hC=a6@VRAn&L7N!wdcWj6Hg#kRi3^vkVW{KpTo16WR5 zxA!U*Mz?QP85%QU3%ov1cbM$EIyxRMJMQ}NWd7N62D!N#o<1APED?I|QRYKX1zWqf=P^0qNI16Suh=IABzpS;b&Q7V}v#@h=F&<#7t%C~tc?{TXO zYU@;%f(brf^ukFn!B>cwRZRy*=1fOIoC&A}?)(A}S`KEvgK65a^Cv2e>N|E_QvnsN%;ISxTqF%Wo zLjhsi84KM(y0r}Vz%VvWPURqh_!{!1aiXYEO@F9Ck4-o|{nC(T@ zlpQsUB4Q#k;!^TNmI+3fpqibF7ta2j;8S>%&q?r+x6p1B2dhYpfC)apOp9vQmF+Mo ze4(N+Ydyg?L)&RjBZ*}cYe6$6AaVw^oCKdILN1s~zLV_uKvBu}lDl^bC&34k_7_J7 znC3_)NAE4%hT+KPym2*fN6BA7|j;0>APCj6oyf>O^YmL}CK;k6$8hF)iOW1)4 zJ{BzJDMpQ0CXI#Rb)ZjNR2q8Jw3UhHZBfTul#V7qMGY`aS+Un&6O+91$S1{m#q+3F z^UikVotwri`^QQK>(8we`bmQj^;m3z&0btG-PRZ@88 zh|OewAqkL$Z=uRDcU4tTCD0Bty2M&v$HAJ?J$JiwaGiw%4&<8av09Mc!RNwX9a}zD z2?f}93>9_nlZIPLuiWZJ?oSb-_f+TgBlXK((`+IqgGW#9bgQ?V=&WKad z8C!^V3xcm&_fX7OQbM##2W}~aM<7p_)j|lG<4~~}98o{TC5v#;HA1FrBl<^)%+Gx1 z%Wp5PYGVwr!0AA0?@aFt9-_S)RU(+^;Ykr@^y|5~%1m)hp5(Ltfq@^rN~+NA{aDFU zlX7jDvTB3|0v-d(TNgvD`T8`dt@8YGQkQ*D0;igj4UkaljxTV)7H~v114;e6uygp0n`9a)+hHxi=it>J=9TwfN$|CJWgYLo82hIDUlV+dZ!Vp?sL_Dw zSMche^v-Uf)`<8p1j@*VsC9=ho!fjGE=XuBCyO!wo{8QI!9H0PDIaV(6}~Lu+veE% zw3lZ>8AP>UiU)&;XJT6RpwFeCQVQ;AngE-$#oM@p=UUG`B=}E>X zeo%nY1HlR(5RTb9=O(my8R5zx%P@T2#SVP?{ErG>N-6$hVA@vYOONeST4(CI~5p?F{*zLsN<3mnTFI}W0^%-Sx73MhVhHnPTRRcDtJ;l+osCHEL>1^^s258A6F!>ePvT?H5(GSD#8) zrF1;W>#!Ts^$j8i2W2F-MWzIWSjoQ(8QWQ#glW|Xd_Sf#733_Mt7Dz*qA;#2C?1D3 z!KhH$eq==jyGDf{2z75C_Z*GK?T@=Ru5D|^kC-Sa4M>R7eqbHU_axBSKA4i`k?%CY zR`Q>4Uh&SQp;Y5ADXWxo`m$$=+nO3t8PXw{O{jNh)Zsl;dQC8yF~L_BB$&gg@D*GS zDFiEg%;40xV9M_bAL?C1i1hM=)ow=qy~)DvknGOjcLvmh^hulG5F7F&DhG8~4DB%x z>Oq4RjD>pOQAH`C3VBmm$3w@pLoKr@`|%-UCbU35gj_?hF@Px;B-$`2u_s~oa;6V5 zr>_>njp>uR%tS}RU}@9T$~DwsEOH++xq21VYz56)^^Rao6~>WCdGM>!=sQ->l1DQI z#;~2dls5f|#I%c#!od(D1WLLMi?$1X6QiC;=;y*F(Wkxar* z*)~l%>0^A-UeKip0V6_Z;%(fjCMx>qTW(msz^9l8)amK+?B9?N>2Gy5JHD#|~V zoHtt_I<+*+;(9$fuYb6G(;P`_?wsY3$@dRFi_XSlL%6R@zPWc0ENayof6o4fkvcIJ zAnGHNK3jbcbt4Dr0dhXZ;b%FA3f|A((2P`|K{tH&W^bAeE{=|rrVOZToorgAe7+Yl zy^0bu2|L{!Su2h1T@BCYo7*&t*^(Zac?hiVk=>P34=&AUe?N4r`SaJ(7~EL%tZj`D*mp*Mh0fqt)I-r(F?jOy<^u zrD-sr>eim$Xo#$igwR;39Ba1{Y&6{$eF~4AAhb7X-5Uau^d|g@!2aG{?%hme<3zHa zazcL$hQ5<(*-6UTd*kcs0Yg`EBp&PR!F}QNnV?SpRw5MLh`I5Bn-3t=;~ihxQ)^`E zVK+w?(m=&Waa*9eY}>L2RD5TN?msD~!Tz2PMiT7r6^ir*oDYg7t@ZaBIsLtf^XQt~ z3skVbNAbxJFLDL@dq^!p0y;X$r&l+dK~bkeBp6_S52-!?k#I_A^MacWKyY}3taZW; zPJhpiY<-$du7JOM4a-R(E3t^Y(FsaS(dg)e%Atfq=a5D;ge)C$z#IMk3gp9HYFtF( zI4Z$|wrU4FS7M0`G+tF=LDQP!`fjXB9)tCLPcRmY?VDYVC#%)skgrAmU2vl#i-rQPpP~K@UEqOY?c(wFiJU9%d?C` zN6};gm$$-*+}orjo))4)sXEFV3A*l$Q^d3UthVP zVKU3@u2v=lC}%Mp`^&jC(Cn9gQEnyq(<&wKMq zy}utjhV?qbcJ4)+J8tn|j^9f4V&EA?H*As(1w99mNij#de>h%HY4>_#vPJ#7?m;BzpvHgBwYd-OypYTFA=ij>Ju&cHR2c+p0?0Ux`)B0pQtrf z9y9Tw56aecsoqhq*NL?js*@u(IEXg|8eD>&2)5hrvTapp#H2_8|H)*>`{*1$*tdav zW8@n;!(w)IB+b=wSHnkFw&d}0UfCqZAvc@zg^D)bKn-cbTjK66p=~tQ{<8hAoW}Cc z880(WA%_jY({SMbpXgG4Lv1yxo0(*qhi9+w3#&_h((aVY3gi_vn_&QDY44S;=AVB* zjx7h!66A}r5F=*qmG@1dRcbeVb)K^)YFax|qgl#N4wKu|A|>w3EM7xuNj$23RuHQ{ z7;<1KY)9`D+{N(V-E+g)n7a|*xizBB=A_zW91OSdD4E`x?nVlPwMLkp2ZUt$t3Ed4 zu8El{HvrYI8A>*Z2+Wjtxg~H+9foQX+8MT~V8ceHZrA2JH291S?evvbLhax9U}cpv z8p0J(E2n1a&mQA}Z7t8_h8UU{O_v+9N3NDXb8xLj$c@(OgwH8o)2q5^xJUmha>diDU1nf}j=+SH&K?5bW{dSv!P{uJe%+g1g(nuL|59ck9cNPYHaF*$?V-UEjbHVNDr%?koXBIEeA#ChPMDWD7}D$g zpsuy@Sd9W}z*Kdrm4`p(GhDv2!+>o~YZG+gao~+^H*#TBQNxD81RwGiG?Dux{$q?% z?*lNwm$ug)Oz^RYVJ=AGT7s`Ld%r%I;44sAOYjW=M03+tFu`Yq355( zTdwdf)?7Xmqx@*;LTx!G!Pl23Tbx~TX@3uf>g!Dw@k>#S+IFV-F5-HGiXtTKVX5_X zK~k~5pr$RR&*D{Sc1;BuwRy?oQ)a0!`<=Y%kt0LK@J-jBX24~f2mqkOISpr1pe=hF## za7Xa8P@vVT8o?(LvBz7b*sWZ*pai&Bulj*RTKc7oCOQPC?nJ@9y74POm>*rm?YGE( zkGy!pp68(FohCFi={z4&K*iMNOy98J>vC0%aN92>{PcqItnoU^QOA#bJEbvKbqmTV zk~VvC`vdMEGde8pZWO%Gm3ZsJqGkga+iM~PqNNxgzw~hn{wP*xnc0%E&GsYT*yE9V zxXByVKuqS+@(HL+HZKL~RV0bfqbGGyQC{a#EMd37o$G zTdno3P?r*54-phBRcMocZ%RG;#Gi|k;3Ib>9Zs#TQc&3x$g)MxyA8=L>2F#J=FNPe zg%Ub=26+QbRkC7U%aSzgvJI*eFWbIf>gcT}d%A0L|48r|*V`~se<%2Ki+Y!;4b~HU z#c!*}wy!1lbm`BU#_?+jKE2Y}t>YG)1YcZ3A&Pg>#`ShzP7bSd^R-EbqqkplW;R>_ z6MW9;68+`ITPj_j1-n*(3BI`F7rc0E=U?FE)v%hsKOglsq~2 z<#_$i?y2ytcSl;rPCU8u{@ZF@<1Ba(_xZLDE2~=>bH7T6LU);4FW+nxy3PuejTz>P zUviY-o1?n=Dhl2(c%-{JLppeOMEXR|eG|?3jPy?*6-*2n4xr`x;4`WoZ+Mqu`7UxS z->sV*%eR+f`EJ#7ET0U=@)^}|EZ?{{X!(q)IhOAV$MW5-;8?!H9Lr~PiDUV;axCAS z5{~6#dx4g3TQSG-b#N@-w!+V#<;(S&jbZ=1W)51uEFUnzw^GST@Lll%E#KXXzxaN1 z6|Pyn?Q52=jAQv$>b8TH@2EAH;QN(q4_ZE@w{xK7OX66*EB&D5YdOM6@MSrFyF1=8 z8=wA@$$jx#+h*gL^z@ilYVkiR4&VD~!~bg{F>bkk{O;n7^dB<^FU}9m8h^UaANS~N z{7TB^`#&)0s|&EWUo+!(ett;*zVzhcmxUW9L$m4eP1Eu0;Mx1^3@HGK8{ox3A}>Is zajz8VP!}oKy$=a{-ofhj?&y4|Nqqgvfw1hx6e>402&8}6f=hB^^4SwnngsM2T%;Qv zt3|}b(P5YAT!I_86V7A&as46mA1?`>@0k6Q%%wR3|78fDrW7{eBGwkH0Aw>ZS>Sr4 z_I-beLu&y%VGlIb6NOeKg+pbyH$l|10dzycR`tZKN#>#-heZAMA|5=@=`@$fqi^j@ zB+BlQaFKE7Oxzl6uBI+4I!5Q|#@V_N43f;nxkzv=Gl9Ng8EEN|u3@QgsOZcC@p)gV zgb%o}5^>`_icz2#^fyrW*n3D$say61RZhOHNTpcrF__@XlvHaf?QD@#KUJjOUHa%{ zsfPc5;`f9B;D12))?0jk4e|Y_a!>Z3Lwx@|a*yEU0=D>^yaU&Bd|-?3pF(_ueg0sJ z@1H_^|8JCgc?J0(-uo}gy{i>hK)mKehaHzc+Z|{i57FUsLpJtdD+Zb5>Flf_DNa<|_(HZiRE1TXqn#{I~H2P$7ygxb))p4tzT?Y!j8_=8im zK)>h7@q3>Cso#s^wD>wwBc8aNr~&<+=Md=kN>V|;=iW>J{hruxg2+GlJ$VD|2WV%o z3&$JqKo0bK%Owv@;)ZAs>0pabcw=H36Qd-{@q0IyUwb@iVCPO-GMw9_RSI(7*e=8S3Bto}=8l-z%#55B**@`g~{E zZ@+g2$MJh9SkUh=IDStSkWUv<|Bw8h!P2P?y7i}Zzqi)n+r3%q{{w#Su;7t3zc-9F z;`lvAk{amuJP4rQt4$C9{hmC>?^S?)4|>)e^m_;Xt=|g;{obY{WP5{;JbuEW5&(&+ zt307{hkjoQf&l|touFu zf6ec8D5(A$zt^!b;(y)m=_-8WIY4NWdX8Q5dj|l}@4?R+^gzl|vHr?yqf7?tr#Vh zv9MD{`k41Xi!9$~Pn6V00$|?#m4P zg3GI0!kb=Pt2&n0>n}n|F-GLKY49-8^)vogNG9#dj7)&wIKh@VC^`=*bjF8Uj zJL~Iy^b&7qk9^^S_wix%Hx-S|`&A$Fg&jEk*6z(T!LjmyUQbk~;g_$OHnMLn&-}P~ z&8gw;WYaK_Y<4!w*t|)~;-kGsp-SEEjw_2hrpV?Ik1l#O-r2y*bEHVNjdo_yHJ&F_ zR##Bw4)d58W~JkdZC}?Tb}W}R#cSqDbRu8*Qm`StZFIZY#-~lbJ?S@gfKAi4ZB=Oh z=8&Jg(MhG_E~J1j(eJ_s3lcKsR&}SL@22JVmC0Op*c!Shb$F+%_ufo$h8*shu>HgD zWmTtVjYXvcDR=geus0qb=*qEn`(E&pA%>D3HQjx#en(>s(3Vdw(y?k78BMJo)lbQ@ z!*kV*k}b+xTx!4YV!CPd-&O0q{iy6&l4tup{sIWmM{GNiHps5tGH5(moAKKwQ}vI zq*~C)dZE|#Jp(UoaIvs-U*IUdd>TKb6Md}a<{JILgW#01`pSCz1w2zUwq; zcob3)gnWIdWf1b=U=B@bd@s`;lDGm`w0Y(2^&sRUq@Q!n_^!NtZw=(DHVkSbB6gKF z*};K)F(BmALJGXuaGZs)WkF=tAfG+~w!+HP2mO*iDESB|2M9(63jvWEmlppor>vJw zC@sTH1q7JsBqGNQ7KMe_(6jyUB9%2TogP>!!zhdZ_sQSci$l5MVCS_EhAhPZ47c}5 zvaf#zwhyjDfNvfX9znwZ0^Fg;EiQsw!$7RiwL5#@hD7+V0bis|uBT0&4i1$g$m`2g z3B$|I_Q2(P0EZqp*yZb`pFd;cP<)kVzYTY;xQM@CCyVU83h0Afz8BfYBQ6-e;kTd`a}kTrED4MJfaehq z{56~IKR{54x#RvAfCbleqU*Ah;ogu?r}Q6!nLiaFvJptF9zfiya2Lq@YGUm&5PVD( zZI<#XSkoiI4>$o^n0kV?C89a5Rm`s!`J5`gPYUN?foFmut4=^Ji$8~vae|StmsSd9 z@r1x4AEZQTt;i>YFLNbT6=8teYehc!sRA|=3Bg%;(W@rHM}vkUgVoc@Zzkl z-mZ);xbmp^it3vyhG3D8QE?V5@?k4NHdN@?z~27gzoB&%Eb?W9a*BM%d!RDd3w+yn z<_&pDmz4yG<@qA=?lmw&Eud)Et2``V0M0x+mJ49`*l7=QD}`AQIQGi{AL-w(y*H#_Ep-HnTD0U=7O0?8()QG0WmoJvH-~;xm=N z!ye&{KDCl}Y6T)L#1Gce-q!MOw&&~}J7*}= z5T*huzKAQkgzkiFLxr)Yn`WjsIlkj>h2f`QEntqX@8-DO^+flK0kh`z)6ELm&9`cs zi+h`sR4aaMyJas>k+{r%oKc)n1-At-W(~lFjki30@E4w{D?i9^bIxecYBt((z^>%r6T-aEoVglma*Ez^DVPCAgD zc|I`5_bm#zXLKVMdk;mwKJxZ~)y5mGk6VlnHaG~}=*3mr7x^rl2FM5R%O%~v=FB(B zq`lQT`ctjqi&nO?P(?k_;XIh*>*3+1RR~oT+v1Qyw}cOb!NOLq>Wf!!Ve`t=Ze8LQ ziCfF@c^FlnU;{uKPz2`qHm25Ba{+spd}nBB_Rj5@IQ|mPjPvTe4qBCt&h05q{8fx? ziame~nB!wY23Wk3jEBWDe0254KizDVIgURIhq8lQzFEVkM6a^0Zi{&P_=e;Y2W_})4_{x6%`Yv8I4j2G01a?@eC4ii z0~Cg5I_{W(i~>)53)+32wo89%uil5|7w_rL-_T=|y}GT#;zzBnVfMgDKBG5K4NzeN z#q(f`&y`_u^1?;j#g|&GO?PpU008s=ooD!?F@QP|CL__6s8$8RLFJyo&4j@g-?N9o z^MKql=rJ{s*6n>KZg+M(c&x4k9JRe!LVTgz^1`tMZSf9pr$2Ctgv!OjB#95f7N0mS z-+?z|$tfLd@fi?bUZpj?z}|7E=LR*bs_sHbIf(R+GET4P(0hBZS^TR4R83=T5< z_`9Z?xRA&(aO9u&G=G9ZAMBH(tElBv7kb^jj4+$1OrC`gAl^gnGJ(f2x$ZF^W-)nInOKnUfq2hvcv*W`w0Kwo zBzzfh87;#&O>;3n$wZLw;Q?CS1`8bA43GBk2UH?NZs37^*pK?%X7a@w7w{PVeB?JN zi9{k4K^55zAkj{6r#Yw(Ncf1*I*{;bz1nI#Dw#dfOyUXw2_Iu5P<^`s@l%N`0*)UI zEH-stBYXj@k&HPmbxjW8v!J1rvB+b7BWyhU4Gyl%fGsbL?#e)^-{TOzm^7#+=-1TV za|oXq5r8v3x`2ca2OnaLZ>OhRWkF*>!dHW+XN>P-Y)fQJ5}d{=q_;_dgimXY@Bv6A zknoWJBms2l({P#(ts6!FMjRj$4%%n}5fbozqA46{OaNBBKJ9!z(Y^~H0LTp>;lqQ! z1xq3T1Yf>yFug{&SrdMrZ|v&om*OL1w}&}|@Aa-}I}(TRA!$6X zyQibmrfJGEyJW{4OySDXBJlgd$h{)3i#dc(dzBxfHK!}h&BlLODh8s%!3PSi^@(LX ze@b??xt2EoZ1EkLZQM1zygJJ!0$BDe4;(vgSIe^RWo^-0!o3%wk-LNVhXz2p)4yU_pC!e)Zn8w#ipG5&W*NJn=JIXTLZO ze+}Ya*mqx85Nz=QbJ}}HcHS4ZVe{+7L%GI+a* zz=j^-C)fF2I#IzEANmGg$al<#?qxIVmIv(72N%C?iRa7W6FF}(hu+LRj)%(L|8XJy zD;)ppB%3x-!v19>v~+8j2HAo9IV1Kd?ejqQV*Tu5bNXi_;j7&o7wyaP;EmNF6Eu?e zS(#zC$d84ig@1Ukq>&`#H<7>rEh$nUBDP%1T5exu!bP(Ao|6B#qSBV zmi^~`FRb-n{N5{g?SGfwL;PF6=MnlePp|PGevkP#zxP4xPrn!Nr{9|scm0dsBWG&= z>Gzhj{^9p@lK${}X33!6yZSf3=k(v`_iW^U`#mPd?@e+1ULRAQ*PP?`od4$cf;fK9 z3iNxC2+;3A6hXfy_^01HgG34kx00>6Dj)KZ^=eC0B*-Phu#M%aol+8VOLWlh?GFb1 z9%K}2dwU;R-08R98>5-0sDOTN_)otlzUKFAFcQKwrc^I37c)qj*b?(%oUoGz4?<2E z^n2&m{GNujumR}zo_q7z1QaCDu7ZBg^0(i+;LSrS%klp0_pWB^EzK!%{9f~Kzt^G+ z`n_By(C>*_|Mq*XOwjM?>4!|@>dBEozt=}3|LOOX{_uO=408MwG1m{V=J&Qa(bxT+ zc^`4j?=}9j-?Mcx#d7@KZP4#c{^9oy1#|o!`QQ6J7jJew$L|%%#vO3}i{E3Cbx4Ww zhX3UELf?2tA!aI2Ykn^bQ5h0MLU_94K)+YZ@p}jU^m_-+>#g}c?tk@rJYW}f#V@!SOVajKmssYL`z@rG7$881^~eEdzcBPO!#lVmj+q$d(!KE52I{j`WL?^ z#7In_5kbF)w7|>JP7ZMV-Xp*aUxWh)0-J~7z(=RQ`aJ`V-`mgedjjN`23b*A3pW8g z%?k_qJ^Y&A+b+iOdp4%O{oba(_&t?%zqi)ngMcl*HNR)ZtWx&_{oYdmkp1oVZ2#Hs zg@Asq?jL@ym3F)t^n1e=fR!^*^H0C0{oC)MvH$G%EJ44Q1k}LGv$&EN`Qm6iI`-+h z-wWgTJ^H%eJBUfI1X&G{HNVFN`aMd7 z4UbL@Espp%zsD;+r@rF-FMdxP^m`dxXaDef=1Hd|fHl8&=zq%Zm9F`{5c;~`qs#r( z??p0UGEDrM-=lzj&->r_y~h&z|LXU8E!O;=;;_hNzf#jvFW3EE1BsX8_jHp$zh@<= zH%D6Ydrh$Njdj2M-YZ4W?>Te)o1FHPtKlgjH|4V-F`81u*Z-_2?usN_yOE^_Ag~--XM+%hqVYRc zTj-vtc2;P&>!(JE!AuR?ErsO`51M(Dn{V!;I2T%4*;^JFWbn1M@9b|cT+-beV@ar{ zI#t*2TQTRiv$6=Y2%0fI5M$MT)+%JhAhg=b@s3s4G2KH$R-31-4)^Os@a$CExU+tO zB9sSfj7Ss-R*&=*(C$NdC2=2n3K*W*o?3;8W&%Qa9VY^@8iPnN?Igda)MK46?x&co z!GMQNP%MESm`66E5Qt!j=?#BOkbhDw3NMk$63( zY)*ofXyBx2aEPc=bWU)7PUx+ius5Pv3<_!>F?WgV8ZGL|NY2emawQ~6c0#JkZQjq!W(pFt*N14#}ek zTp;D=ow=2l`X(>UkSZ3PkgE&i-~cgVzCBe807U69zG&N9*_r2xs5`rG#;lH9 zu`V)GGeU>R7MiY1sJUK(xq5r5LOkMWb_4DrDT^*HvGvxyk=Cd2II+va_onouK^iC# zO?|bHlz;_ud|J7Aq_`DI06-ilbQq|Si=EKjtCghPoD}MY1pr1@lb>@m>3N0!?PQRz_m~?O&5JSrITu z^UfTcgN)@fplA2_JQ6ZE`M3eeevhmEV##${@i-&(3HAO;5gJXfYeoDuaDdAz z%4E$)z7@Iy&Ejt zKe#k(R%rb!(^Be&!<$0v+ggOAcH}^g*4rH7_6CQyS9|4rJt5!@j?6pE%`KR-IN+fX z3M}$vrTE;6)lCNpUky<;nBrbTG+|O(_HziI9Gz3-Bjbi1fP`-u#@!>LQ{&OHmVU84&mDb7WvT0n|g+xiJb2ic^41PDFO*!@H6)7)Mvj5-%koI7>L3?H>AHC z+#{?OI`krvA~LY2h=%$ac4i^0zGNt&Dij^VBuWrTh5qly&I@TQL%8vKx#{le{b%9;7Xj?aMCCU_?*VwydPR_XyjSKp62^ou1gjDzt}ZN7evR(c z)0TIsA-?GINwIX@GO8?tOW|{u##BJXI*BJ!2$)Smo4E+wH1|#sHQytzjXgkcJ$ry@e_I$oSpAKUXyD0%mJmz^r*d8+!1{sJHQ#HNVFf zXeu3O<~L~I&b%GqB3By~H`UQ^cL{U5=GMAF0e)7FIK1j3a4t0@-J&|v&AEd3K8eYN36YwH( zDAO3agMP3-2;Jb$QG9twx;t6GbrrRHY5ZuAP_<+zC(6e>{JiN<(dvBdu6edR5h~91 zR^|^W&WpsQ52$%eHm_1<--mo&MM>-pJ3SCtuZeykeYj9_PI(ry^~QYWIga9U0~Mdx zXWb3q#|A#1W`(Y7n$^cn^RZE*q9I|$;~TW$r!~=Yr$NQn04hE>sQ5e)`zkn!&p18w z>ZUnz-ci#7M~hhF@q9KvRt}htdv^Xq@uh_MVWZBkDZT)uZ$VeW{P|IqCair2zU{}) zZgFJ2vU<}shKM*3l|!D6;Q#Js@I7+x@qt|@qBfieH<7w2ZF#*rYCom+6eFrjGzwAl zCG37w-0Sbz?cYv44;7k?vXflM)#M(w7VP*oOx_yJ-lrLzl3o{maf##i_(v$uqjerc zr`;4xXGg1g`84BonVnFz8ffx$o6o$aEB(l;-ZsJ@SOt!~n)> z#{@Y&xub;$cRK55kSOc)ELZGQwo}qZu*K&+OUlvRuZ)6gA8(vEc`cZ%Daxai;#7$K z+0sLV=$~EieU^>;sqGW7CwvxcA)O*vUQ}*$eR1B;rx6|87~f3sINNx>hO|$s(Mw>5 zdk9%{35Y(5a{USH*hcZA0;k{Pdw?yzW|90>u*G*Xhy?`~wpPs|JIpaL%}{X~L=D|= zxF$i822rqkQCm^l^5cvTika@G4!_ZBKQ*44`w-czr!BD$C#zJmq5TY6{d8VRbsTcp8a!xoI&M(7r8hue%NCO5dI2vVD9lUIzmBrwOU%porj zGVp}`RrEnugnkX*`zLH2Dz>Hd>$$&x>p6MPS3~ zdaVXcYP^Pr@a&TeG!JC^_;YYIJDdXlF5W0hkvg>`n<87+=ISU1y(Fj_&@&l1D zHOuWG$Xk|x zo{2R^r;I|6M;9vY#;*p9m=q|}KAD)!Pq-7%Ts8&9(B2vb{_E<H!{@?Hxr)MK%n1a7t9@sw+Z~!t%K>Si4uAwdQ;<3nP_ygB$rO@uF_0CN?CN?p98)zcKZ;s`j4b z(Z^=&M02FP(gVmPE$|Rv&GVCBi|>v!c5=fLt2X0qp6?sGoH)-CV>BghGSy6ddGPiyRp9EJ>?`B14D5?gkIco#xL`V$x03z{xjR4V z+8xNq>kR9X0`RGEH4q>*5{ejXO%=$ihHr|X=t)LyGF(aNkY(IQzDVm5G zJd%p4Nj<|xe>i+S|Jk8#9w3v3(qB625TXY;@g!_am+hP$p#=l(p?BWpsw1BYtlw&? zC;#hJMc?_l1;s-PJx-5sFSOx`mby}j+=dP3TMXNMKgxOBDlH{;9nn_wqY|AAPv%yL zh2SEoT;6_xiK0ADBb}(Wz${7Ru6?)+Qa5+pJ%L||2LLYSpI22Nu-z5xg>tWDWuy8B ziOx6+NlC5gs8v$>7(jtX2$f(-btHYRiCxA#y+)eick6o3EJOUy(-{YFZhib zw54i5*cqsQY>HFb5p3&IIW&5G;nLIOt{n@`{W(dId%jg%w;PhR*|bGuXRc(1!cCv7 zQz;&}c`@sg&QQIR_OI`bUdpi_lHEEGPCR=*@y4#P>AoLR-~H5&bQ~M){Xjw+C?cY| zVo}v5h%67q`E%6meLuk#pXa&mYpg-x6ru8g5{dd|?mIbm9u%^xb-)&%w&374Y#fv* zj5Zv$vyJ&ES)TX1#Wzw2w)mdTpUH}lBiF^y_db;}J8~p}e^BcO&k?8ED}g;+*%5N^ zkCE#wzN&xQ;=B2m7GM6k7nQ$Te1_fOf3)~c9r{O$?^LV8KezZM_5Nt_9m-yB@iqR@ z;yd@d#W(W1#kXT@+ggjSG5yebi?8>0i*Mw2i|@jR^%kGLZ4sx%=fi$A$Z7Futhe|s zuebQ**IRsx>n*;p^%kGjdW-Mq?-t)(PK&R2y~W2bu-4++`g5(tmwsri#TW6mnbYE% zOW?Hle%Q)^evjW5^n16~T6`UAe(yHN?@>5@&#;N(_jYpp-tDy(A3vwXcYCeH_nhPR zjH)<(FPG!@ZeQW}y}ca2x2>Gx_mns-zB_9zzS%XucY)*g?sNR!dW&ziU=Z|sSN_rB zySvunyRq)~Ryi%cI~>2ay@BKR-o9a#o3s>Jf`0F(#bR~*jxGn#?`^ne0k-&R?9zU| zL-~Hc%idwPhd<^$cl=WG=6iD?=_{We#{GDDpylhu^yLY=iwpfXj3;iS$95l#|Cu*? z@4E{BD$6`><+x80ox)0>8&LX z6-xwFC51xi37C@EEhQIUKGb0`gfk@~L2!-bZ4~HJsQ`%ns-(%@M z{vS)HS!{o+ZuCi>?!os@4eG|9)5{{I9d0*Ff<^HSe9vwl4}4h@@TAz`&Nu(p%}2)@ zpWV4R`+;$KT6&l7G1f?DmfBwFX7KZ;Wp)>LwJd*~zFl?jLwC#R&>5!BX|{~x|Ha;Y zzctYXioTx|k`PJ)hAKj60#c+{P>|k1q)1aiIsp-pCY^+q&_h!|N~qF7v7mx9QAE^W zL6F|0BTWcx%-}b?{lAfp1V)k=P*CaGylL^Yo0apS>G2;TW#Z?B2+%SX#Vpn z@5|d8%q=f=|4hy-%p|n5fZ*$;|BI!&`QO3P(f<7{-LnHrcVOw99OZioS#K$}bEE(F zvUFYtmhQmP9ay>pOZShZ^Ag1ThqrW%|BjZf@xam@Sh@pC_wQlpo*r1b|K^sCcwp)N z<663B2bS)@(j8d3150;c>HejKcVOubEZu>nJFs;7ExZFu_dk`TW0a}?Z)oXe4=mk* zrTf$0#c1Y!r4PbHw_{QqxvTeoV{`Pug`b?qpD~#2m+vTp zUt_FSf10|<0{no~{bPU2cbg0&H-4i3nz^)pGjoXlZ00_(*q>Mx+Ij@IOJ6Y+wJ_g5 zoWz8J-Ot|TkeIuWt2+>;Wlm|KsFri~tp5*S4hGnbYxfHMZQcR@XgP+7M@I%9$vTRD zFRU9TC525K*}ha;>UijZWA(73%(CP0Jx5tqCprGfiZ71xDo)@DW2gND-YGAq)2=o( zofAUwPG@QzkJe85G&w2Xeh?@%cI({B$Y4f;m@f;v|RyqIwG(sF-X}$N7KX$ zWySeaPYP+1?{dQIh*dbwAPYNW;9}=`+;W-G>R(`-lWeNlNI~yJ$qf`jd{{-&*b>e7^6R~46AZy3WX69cTm-wELv~S~nlcjTKg8t3M z5yZ=87c5#6MrM5YiQi2x*i`cryb9(!SQp&*2%|@4=cPH4* z1g{_*un4=cxrnTJVG}|v1DQ55>n2XoE1!$(nirOxYkof~ANbkZej(Ow<~M11lOKR!zv&T#AvtD;}JYoTI zq8BU{ix@&IMi8%cTP}6>F|CGRLq?6Q2`l*~fEpAt(=V`wz?KFwpt`ZY3KJ!IOWZw z>k9Icedcbzl>o^u)-mmkh&G)yx(@Q)3v&K@uL-Xx+UAc4y(Oty7x!>B&GPS&Sk>8) zShYX>!FoT^$6_q7i0&6i@83S;n@ZC7|)9NZ>%GKwUD`OD#njQD1wcG5yqXCXr8C-M& zbR#@nBQ_mJH(GcISBKo~ZuoOok!@2J%&b}mzWdvPn_d?NY+ncD+AUpuqU9ex`!{mu zJ}+Ik>1TB)sNh$K&aIGJ4}w4Zk{h@c4zfppzXHj(_K8@e8%k9My`Q<0s)tINSc98H z2J(|gv{#(q?~7rtXZmFR>D&?i>D;YEDP-+;?hucfn9Tp_+$nHFzl1Vo=rU?IlHzYk zX~(9j{|l1S_j`o>i{wQ91<5IHH`9Ublm8$&lWjStABF+T|38u3)Bj2&w{PSs_KjRt z=>NNs17pR*cocX44axQI8lWzG5*~L>sjP=`yGBlml~833`Ooq5?1i- z(P%c_qLTXIEPEy~vz=cCZAeij+{z!MJ_)L1fD1j=rAEq1MT-}~vYktkB6ChTUKyLd zYRKSk%qrQqYJP+v34OM>(0(!!!*F%^qRG2r=wY$aV|m=dFua;m|PBU`-=L5tSKQ^Irk^ zJ=`jqWbdvto`j=e*!+G4S>BAj!+|S95fL?hr%=N%VQz@>A0+^Y6K3p^d~oB(-npIM zYcrqfZh(93B>3ua&vNV+?u`{UEQ}5JSH`LRytpspNalJBNiWT!LGDKv)D6W~@cS}O zA?>WnzKn~!u=`2fLL~C#2X?t5pHoasRuAD45XSp34z~~EV*fLYYrCY7Meij%q`TZv z--mI!>PoJsO>I#Q>gu|;6p4lVFb*`Q!@JHfPOF+do|(D?_F%uM7H3*g5gNQA?}12M zMhxIP09BJgCH2jyYTCQML4ZT1vs?lGThpozyi?!RZMuG@sFI~C=t{$;N7a-cp1CxV z0y>+{5=(P}k5yJwo~4CDYvu(s1`|yaDr99$khOB*(c`MDd&O~3!M$R^m~-lxd9l88 z=2#Xc?$3*=%T$pfb=2*R3%Vj7SK5%zYBzf8Psv0x06gCJ->IjcNR2`%S4vDVYp_=w zy*tfdWs-@|PPY<@yE4wFy`}Qame~mB9QPblENoZ(qtpAN<%W!N5{J^1tXj^sQ(`xB zkx4qnzE{KVi)z@qy2%$N34)b`b|#F}s;Z(h{e}=`h2DK z;jj}Q^;^DroU1$QXL80}+4fi>`k}W!6MA|6QuBKr}e z5c_(hAa|QsLm-nyBZt0I462nQS{v|@nv8wE`a;P$^(Q}G>^*YnZ6sUjVL_?PGl%{9 zm0&=;Y@IP~yKyT0!aqDN(h$Paz$lTM2sX^zEj}-NjDc}Dwccs9B-f`X>5V>p_eA>a|WykvmnfLLtVw7|InPs*tbsc}C z)DbBMxq3s`@H)e-OkMxO3VN?MI`4^}nPG(x2UHayfX=wP!1K%5KLY*R?i_jPJD`Dr z^ORRaT+xqpL|;;mwQLq-zfaL=8mahgn(VXEhMgw7RxNr(zHY)6Uy6=DGQS!x;x`rY z;=yavwVP}WnLot8tI;V%E;wH)CNDd>u1Tzq(Brs5*0n#c&n>=6QrZ(1N29yXZ#-e& zI}hhSqo{o@s|`|+iHC1-lTpTcYC#+okQ(dPjEWp>=#0t3?a$(6rp8f|7H}qxu~%ok z9I)2_B8+l|8vvh;v1$XY#-4A~#C7#kl>j35u00Isnu4PrM)3#(+*G46R(C>&IsdE( zGHW9l8VwvC&1zp0R zT+e%2gzer@4DJ!6SdpTrh`rdipSR0}sKHp<@^5Xh0J`#ei~;?nweo_OEm=G)C44~3 zCu2nC*94D4RQ=Di*lu217ZL|ph^~O*;m^do?4r=oq2<-}lgxmPI&U;>dr_b;P|d`q zwLHT6WcgJK2a~971#KL@+((?E)~Rn2o%Z-)Sq(+w0#iZAEUW}K?sR_&N39E zC!qPA*2X9&vuvzFF5S{yF<4s8H0-5XItILA_(Joy zXV{8d7Ds^~E8~lF=1U~3aWv72!&ENe^3Fum$NpDG_T;Eh)!0Air(HTK@@eVSQ=%Wp zT}I*Z8O2i566R-ujces^H&jnc`=05xT9(iHr-c_pxhkWO^Qn5jg?C1k&r2b9QflVR zwXGh%7k@3C+ox|qAHw$(Xt1zK6{ctOSd|k+EE==_wD4lriv*bwl zyc+x|fA2)O;ozJ}`m@hvI^W7K)XZBn!tQ;jnVOWx_v zhY&}eJpEMTCHW(GcscxZ!63_zpihH6Yqh6etY1IjxA1&)uk2Cyp7aW7lspPoZG6s> zyb^Qg@;GyZ;*%r$Ej+8s6Sx+|2I=J0B+TVWK2Wjl9P3)@hf7oYExf9~ExbFI{#v?w ze_MD~m;Sc!ivL2m+J@ak;-w(zq5w(xG*{Iztq|600`t&uBW z@Q1&a4r#k@=|Xz{v2?ckmM-Me-xi*(?S2a{{L4EgycaBnT`_9asJGAtk)LDq`2@M$4a6R`BJW_Et4zS|W5+H(O`{96thq=*lC6#qsV4~xu&so-C0)8LML43_v#TRcJ|7vY8P z@TVb#_)xL2AC&mU%bjDOLLXa0D1zfITlg~oC;cYbiXC z>&3;ambNS~BOCmh?E~c0tLIb`bMF7o6PNoR3*rvqa(53v+`mIy?f}Fc#N|F8fVk<2 z_VFZw7o)!6&3mQW5U|uc>(Keki|opU56>Ty@8rLyHKUp__a-(6n-N$+o+?{QK8VX5 z#N`g+a{o)klgmV z$K?({-1!3#_rFA3?f}Fc#O3~j#N`e^+yRI?0C5K(?f}FcfVcw?_pjBs0}yur;toLE z0f;*QaR(so0K^@Dxc`74ZvB5N5QoQC-Uvrl^srZw!_ zH%j_lS~}%f`pu3E;+NYu!td1mi-5b4RdXjRYu~|L%ckv9xQE%~f1z-RIUNaitIBgT zL-M*N^TBI0@E2_jEPV0opCp`p+5O^s75h~<=kh^n#e+W;>p+<^6 z>iZ{N^e?XsynOHt?EW_U?c2BN!R5ZeZ!JTUQ^Q{;M!@Znjm=STY;5$w_|Nt6PvH1` z*TkQdiK)@asmXsLac`yJ*_PYb?DfYuKL0b zGFI3iSMPpNX9Bl^$57Y(;@2s7&G;QcP05>dar4S6ZyuDsy(8;R0$m2_@b%V!n_oJ$>b@mFM}1z1XmBsp;&$Zdj7V(FC11a*GoiIh&+0Y{DTCO#k!?I{pKEYCBFW}4bPoi3)Pp>j@V1jAgjcN)!H&v85! zixB{c>rmmFGHmxyg*(M@s8QKRZg3}(uU;v@wPVmG-WG=uuN(CB=~byjIq5%TWic;YoPE8?ZwMK5$tE%Gk@*4o9Id$DZ=Wj3XnWA-V9(OHC}JpIKnk7| zeXt1OTL7E0lMIICBUO$R|f zj`k0NDPHv}=0^299k4!CaA_9FA>F|&enOi!9v7!9!bs6@j>os7IDDu#CGw>v&CpLz zg-NB|0=b=!)sVWh%6xRLUF=q>Zo}W(5N5w)lFDEj)E3bd#V4HWB3-b?dc!mM&S?Xe z!-V^W4#{g727*Y*%%Y;Jygj_P=8;KVH;qKUnDRgLl53DBpC&oa%vt_o#5 zwj>*c@3BW{YenYY5dSDVmkpAII^{WUWWmmH$Z43+KQT9tY4h&kJ`jFuve<+YIPVCd z47@)|xJiBE*3QmwDJK;KCw8iHq?VlO`NVup0|%d)9cos~*e{lrsk}#b!sv9@WrH(T2320YPrdG{@4VDYV zriIRZA|^+0YhZ1f;lZZxxlhyajpk!6-n<~I}l_{uT!2`#u}>gWRQ@g6Mx&Xw{Dn70;e=wFSl zv(;u}H`^oZHw!b8TvWf+TNj}pmAaPesD5s}a*lW`dTLgeYj~Bej1Ne7Y@talSG=MZ zyx!>Eg$Pu*Hsmga}k22_~CmwlI{6nlWv(ifz`WkOxzlQ$)J@>a#}Krv5_MIPA$D%H4{rrE_@UUTmukB`)+So7jkR?f^< zEO5t}c;9|=JmH?A9m_Qv-;?FgOa$#rqKnkslQ@-=hs~9q_h=!{N|foWReY#+RcJk{ z^6UJXhE)x&pcdA9>QzJIi4j-YCm*=PM1Y{=`a~immruL;1rOT~2a$Dy~F0Uy{Hy!_T3O znZ{ofCzQOp*%5SEJHTj5<^D#6_=wzexMZiAG;f_nb}re2P|QO6s5JUz?ADI!z!IJ$vezYGHHrXK{9}`_V81#^*FXwj=PQGNGqq@X^hL&i_5mQ%;S!CE5sC8`xRKno3k-l)W;u( zMef=&R9Wk~n=%0as+{6>ubg+r8$|$Ov}e$+csM{8@esr$(Bn&Cti~7l23-*BV<*iW z61%c+AF!~a0STd*3FU2QM|#o=>$441m6x)K0dmPN31=N>kUl{eU7X`PB?(`il;4I4 zq%pPN5u@dtK6FO?F$h1AS-*|tqzPxmZEBjz2D2xgK@N{LBf`3&>17}>?bIFI z4@ChZEKD13dwwYT6e_MY}(F=R$d72`Lemj*hg;^w}{AS8l7AGGKU;_|r6}szGI2xPE zTo35?X4|Ue=uvSgG{Bb5SeT8oAInCYz|eHX!xG4nAnGnY^-%@z=xNM(xnyHCMvE1o zW({Lj&k$*n@!E_L7=z2p=E(zMAN3*b_{7^Z+_`Mr3Lb(7?GeZ6z>H$XbvhgX7^27w ztSe%&fY_cl0C>Y)O@I?X{)B%1cOH%$Z+N^t15AxU-;@!$BE~6;D0D;!(1DGI&L2zw z$rb6{Eler^D9a+x*h_Oh%lF0S@5mPL&=CL~B2vk^Zd33pyTE`g%Mb!*0R&<7l7prB zi`m+dPasPuIE0FTb~EU+Apj~Qh?b9W%0@+J7Zhfb+aOFt{!SW@N5#$IQ@8L)wiV0} z4Pf5Fl-P*yjY0I;N(X5;wm4>sN>5N0X0v^_frdfLGFcep8ksUeyje`fF%0y)Oj`2X zZ;S)AAmCXpCm^P*pKL&4U@;Nd1MMMjUXIZ%%m)B?0*J%t{OeEefMW;pMWoJ|bDDBJ0^Tll{j|%iiZ0Og>+DnWF(x(p?WyX$GtJ z3?VQ&3Z@E(10bHssPJBZw=~ioxjw+GI#?wh4B(l7w`Z!C${B%H1a1&6HCX)?nj{!f zUIT3qsHzz}7B?K9a-O%gWgrJMDFrHU%V?SWPQa$To)YZavAMQECugv5iR$hOwB)aWte~=&klz$(IR!l*j}$ zPBc<4!_y?Q1gMadO{nCx%Hz))_0^$taoCnSE8tx+cBV1b2e`S?puSM06;eJK`Or`> z?-cOVWJS#6?eoV5iIWsb%e&95uc;Z#^Nd{L9^<8&8Pqx@)S7Q&eCTzTbKv?bDB*{I z7kKz_eKyWBr|wVi6LYy_#lr~ZkVi2K_n4Rpq;j6lR5XgCINo_wKQjR`&psdchMXd_ zTk{JK2W4r!@Bc%Q#D~u*+C|8i;QGMI~IkL5?@lOkzVRhQ}Gh?}? zmuD+>nOe`MH4Qv#f`4vGA7`CuP3on3(TykPX4lWjtFOE0*|mHhvcEgWLaW#|$pGr1r&scwLK_2k zp$koLVK{tYsGGI|EHps_k8z~-yw^QeQr6xeDGO+xr5ix$tBZ7F2Nd%#VA0xg!V$XQ z2|G+{T?0PwtYmUD`@RrKTwHvAy8b25` z&yF5hc8rl+vhMc%ZK_U_aG$w_VTs=P(cfRDOZv>U`yO?4Tp;!N9?Z8`unnY34`dFX&64aV>Gi+v zfQq_vb$Zva+rT`R_`-_HT*obu`|ImF+;=+Unyf~BC6k5VAkt#6tYNT7no@FZ=vCOz zn)y&y^H9$bmG0po`jO#=^`Vcp!+lG9dN+r^H4kT{4-bL6!(+{dM{ND9kBoe;QJ+lW zHOk{Urv|ipaB5=V>L#eOj)1rcN0l0I)q7-TNp0>t&jy}xn1X0Z;*Ro$ej;#~k1?Rs z;Kt+7OC}t{-q8A1+;Hp1-MsO=_0jY;G=auEgCE;=IV(IiMqy)s)5edzP~}tMd8CDL zG#LxNk6t?h|4hSanjpni7|y;J1!du%v2d|^SeNyLktuTR$hcuIi$*wfBM-NFZq%S{ z3Z(|DC5>N@!>Hp~HD16j2cl(Ur;Zn#_G7j6wAhJ zM<01Z!=dZ}7d0T%7&vb>tu)54*^JY9fr|pi7`Uku26C7XJH$DA;Pf7bX=Kd2b{0Oy zU{~*KV+_FSVKMf=Q56(i4enAuGuw;GUuG~@1Cpt@Fn)OS{^`kf3*_F3JX5qI@oSJA z22P#PCjoC{F$md3;vNPyHW?;UO@5CPe}U5+8@bTCsK2^sKE6=5hdJjx3Q~cg{L#7< zOeO0g8+VDws8+&ki3%iD`b#Q1Q(U|sCWpJ`uSAmuN$sR8MGn9sGizI>c; z>yk0s3he5amVDeG|KdRMVqNWgL>j<0^5d!rDuzBkGqB7T!PzLoGebnA$@2WHo%!vx z_$ME?>-7V2bt%z!<>3ep1%hj6%p%K$MNGlsgfVdF>MGnDqJ-VB8(G!*vHD|=M^JT5 zq-CWod~KU`RX=rkrhg5jt}MO#tZ;!tv~FoA8Bn6)hR5cWM%UMmZE8ns>RiB9u&o7R zS-dWgZ>3@eiOld7^q{?Pd-#tFEi)5z7L+%{kZo>($n4zDGKgIoG${k=jHN2S)mP-> zu1*Zr$A}xVY!Ro8@Bd^0C*c6omMnB$Wm8{$6+XJPWrDnryjh8nA|-JTmG?NBpkoW? z^Oxtu>VCc6`;{*YwAPD8$&D7*)UJ$J|2|Ov3U^{qU?&%ho!u9iBX% zcwuvW9{T9VWED8N`^a}=Hws9$|8gM}v#>v$Zg6bTzfFUm&F=4w2!Nw?n}EpPS_F8Q zb#Esf7*7WGFjx@IDq>9^Q;%lkka5<-j%rd^M2$MQlD! z>1T)t>KF}toHopob9rB4^XdEf+%p`tq2-@uF3{9tSVb>=o;4*ar^>i|`#fh}Zdw{V z6?bFaqT1$>*YvkcCyP3V&ScTceV*s*-M-Yi4E8O3dnmKjTzdKIvTYO7WPZtvej@jY zXKSoSuk^3G##og4pud!1taAFUCvvba<36=a# zBS$wm_)<3mi!xnN{>&^lDxLRx4kVjLxm>V-)R-*@#ZYa;yGhVqvwVGQ>QoLX zQDT}7hM{*mxwWutI(Tmbby%`y%lMkvpqAkrpIo?uTUSb2mO6-!^bv8W70<2)iIQE*%6x_5v1823g zeu^~rT3<60xc!bnj}|u_p1*LR@Sm{Wnz`endG-m7!Q;0stHo7|v7U&Wp-dRVl*v;k zJAY+oGs6bYEc>XiFYNg-Zn1$gPekkpO8V9VNgTgbzGcyZevP*}rRsZ`UC6j*@8AKR zJQTmif?ZP^ZYgHGL*F5obGb?CA0Ml?S)+4vTxKSN}uGqr%vzcw~l zbe3JwQnX~D&YwSIq2Z8#`RyURjUuBit=Q*YjE5RGie}rj1@5zU}!~w?1C<`(4@76IsY~-P#G`K{dI=c-v>hK~JM4b7p zjt;^`3tyq4^aC}Z+1MD##T4{~k1!~Z7^9Gz$S7La93SV573=5Je0CGfi(r%4ReB>R z!p0)PdHtv}6Sq{a$^fP|5GE2$TD` zUV@QcVP+rLWzfPzmM>X1U_x+LIdzrHkw+}kdcen4|Qaad^9%zE$ss zRq7r2sRB{8a-6L=)jKY_lwB0imOh5{Vb{u1!q2m!1*!1B2N@4PyI|wd3BdshqVoHD z4mlQ|ct$n^(&$`z0ngs#3;nzYqUP1?6;%R@TAA$Btdt<`)H*W}&M({)Wt~Em7=jRR zM;zd)=hb4%kCOYw7R8~ImU0~*1=RH;@{S(s0~5@I1>Bht5Q+)L84j^!w4cVIP3z>b zH0)MZr?upt_{Z`koUgQw0_Ak9uX1Z$2mr|J zKglwu>v;IDyPc*CW&>XDh0D0-bk*0M*Z~6KPoj9D38^>H4i6MsnN;E|v*qEoykl?^ z7w;Iu3412DKw0iSZ}LLB1BT3f9maVxE&}Fw=$@jKxaG}+FkMH6-LIY7&*#G3BN;>W zU3du8&ct8$H1r`lcTZ(=X~y5IybTATm_T9&jT_3Uwc#qbOY0O2GZH!UKto}X&JgNi zHWf4UM)X=&v_j&lykXGG5G$E9)Yi@BH2X*fwyaMx)cW`{$7M5bIYPQ|@@J>N&=AiJ zbXmTgj#A)&F=nl(!7F3SbUwAch1+PRTyt~R5iG);ThtY2{qoEzMu@i>dokzo{c59( z_K%)+ruK%#OqO~B!c~Ahd&cQIGukp1tPlCPV}H3_mc%pamvg<{OI1UDKg%dCJWx%g zR`Q9Je1xtdQ^1?TX3-jcHJL2g{ZW=t9%$%Q&znG5@-<>%B>+7rQTtC^K2I~zAe(>_1(D$#ymezaK2zYR-cQxd@GF2 zpLUJW!HUA;rI_*8>O%c3W9o7IJp9?;Cwy+t^iSW{uo+LOX|lF34q6J~-#OR%Bq&kB zGDQcq#!!^vl8w`Voa0-2Jink6Nnlu-Q(msZayg2p(U1Q+jB0YE1X3y@)|@yZ zn}NvW@&d#LmeUulWD3}QYGrGxVfRFfQiwPlYU6TSi-$UIQ`_x&b-tlCrgatmown%} zbv&O&8C_jSStC(aL*z<(oQcNK(Dpp6hIp>VU94b$cE+=bt@BsZjTc`ccC<{S&YALcmP=}z z8=byrq6_l>_7$f6WRMaFB@SFb;qtL z!ZoKTLFG|Plc>`K;)z3)!*5cLIG_Zcvd3c6qA1cWXLYW4zDx*IaK&kkLgTv4>Qjhh zC=eYo9Rxmy_I+%u3rX;0gLAk#{j_VZ*qN*Y&VkBAN;uFMBGf~T9rB^*8ak8kE zt;}apw;i*~oNYMkdG;S}dpy1EsjtZG4UNM?0Q)x)fd~K~hH0U=0V0P<6ib(0-jKde z6Gh}czp|`OoV9M`Y;5Nx30VE{RQCPP%G|yhm8of@szlweaW0OnJH##Jx(XgQQdIQT z^NvWYJGCnt`YNuiT5&1JsIOV5t_6 zSy?UpQ9LB5pJX60etLMnkTtMJ+T@x_zQUxud&zAZI){ZQ03Q;uU`$NcDWI z{vkm;IZKb!%lqQ4ND3r>jmsP8{cy75$gl+JG#21-L_PL1Y-A?NS)f230`Vdhc?fIH zd(H&n&iHzZNrEkIp-7A*UjI|1f@xL+=3N|NUuzs(OX||KQOYBg=d1bMhEC<*-BMb) zpRZcZ=O_-?NSz1l;h*^cH04z!mBdN~00Pm3Vt&TI<2JDsl_;?zgc>(0h+0vL1fb|H z{h0Cs{!B_fH^rR_a1bRTXOG8W>9?>(7dcoDi^jWY5tlu>V{$2yisjj3QKD*niCDUG zP4AhX@gf|>Bf0c9Sm>#KOD_ux-)1cbWmyH+ScNoOg}$>28@38x zvWnQXBC=SMj#x)ZTSuL5c*#gvr+l8M+YZfKAJ(M|drlD$x?oVX3O#O@ZV?ReG3!#Gg0p37TxWUkfoS;BCv9|{3`ht4%#W-T@ zJxM(3C39qqUkn6A^nee)G!?w07wxe^lKV{oKOZr9!i<3RLoOIdkhsggJ+SSxwM^*0 z^ep(&^`u^&>-Ub&Lew7E-A@IM1(KL4m#3R?9N&h~dT=WB$|-+y#Us#Zv(aERF`h1B zu-=;)C1BZ^!Jn^DckSL+CtNUYOx;zO!Df`$lQr2mIa0ZkkPxQ0oxHugRm?RM= z6WF3c>p81BCQorXQpcPEp0|6VoYi$~&T*ntjM?>Nlb0GNwGoA|2`6JVSPiMe;IYK% z?_^JWil!pD=nY$d9((G7v!ElN(oVuiGsIA43|xhDR?c~E?^9hbW~n+ zaWK}f-%NIN)eN;Bhz&$ub*0!Hp}4U+`gKmn+uDRQx_Z8M4N;`}WPOhcM7h-VyS~3< z`*`@4IP$Fm)Zfl6;1txABI3&V-43B1Vvle|kzo$sS`NA?T_O>v(6^*Q@k7JNkD8z@_Yo=qh`e8(k4oUpEBb5b(C|V zH~d=2$Z`lj>Z6@o=*XRE8Lz;{i*J*cle4@?<;#A}%k7A^etyceQ(k#}?va!qk~P=Y zo;pk0-B5M4`Ng?J&PT?FLoKq%ep&lldGmgHOJDZLlcyrZR$^8-9ei|dB%AzD+4Rg~ zUb)Uc7va4?+%Mk!_R4=uhQ20{>OHztW}0LeS=?^;{#=RhMqI3q&#{{kBQE&qEd&u~ zKb~4vpb@%WU7Ou>J=gF}APpsQ6V*7MqmTSNfD9y@RAjkrep>Qf(UOYuGZdc7!M-N!rDGHdBni?3Vx zA{TN#CJC;b}8#W?8`~@c6?CbD$0s%v5{!XXm z94>5HN(Q*93UZk_rnSm_AVeK2hk9ryTQ_bVTd|A9LQh!S->)~4Xyjoa@pxI>tGkKk zWMS`zDK1p~!mO$sZw3V{^l1hqP!*+F54qtc`|6FST%hA?(^%jBB*CgUe^o{=YJNE( z5}fZrQ3TLTv$l7M@1AN=;(jQ~9i5zu6$ozZNTDj6y(^&I(SV{iWKJlknxi!DHk`W2 zuP~0_TmkHggOmrFLmSgk6pm0E2K5fIVh|VcuEJd~S4J-qMTk}$XpW*HB`N!}YNU8U z?6EEqw_;?G99+E%!Y>=cCmzXLsDJmReq?`Oq%6ETA}S^jakQVvY!5wJj|;Sq%zYVY z7-)D3_`~g8LNfWoZU5)W^(Y|e5a|~o?pqQsN2%B zf?`i3MgyDI_5(g5(|2c<0XvUxudzAz&mx{;C@G z{C*^X63kBxtDg7~Ro`(HV7#FWj0f6uCg2^s-CKyt4fumP*+KQ~MzlCJXvux~*2$J|0bbAh4@jnc7===R z!uu(X86fz#X6S$Vu2o_n)}9Wu_aq<;w9`&V$dzOt)0i`urGhis#KJvRK+#bTdO1H$ z%)HifOa6OL&S~G}#VudA&?4Qa+E6|A4`zuyMi{pCIey}dVO!m@GD z?m67=z0;a)DkKBkqU+e<-)Bio);ovq0oiJ-{6{&>X~cpwUV%Rngo}Tk=l(FTzwme^ z%10FP#-(~o*Re;H3GI?G_6t)Xb;!amRh8kTposu<=i~s9%T|sQ;h;#pA_@r=rZRYP z1dgdP%IMjUPQS7L9HD>S84`XdTLHjB9SX-(9|7KPb@h6Gr(m&`MQy4ME8MZ#9Cle( zokibIJ8FTyi_?glq|fi|xf#cdEqRUwsfB^|ZBEy0gTXD)EQk0r-<^w7b-ugfwS^Iq z_GwRud^d03vhx9FH!(-iTE9N{wA+eNuSZCWnW{kF)wgPq*UHqyKAMV|+)CP;6u6-f zIM$Z?IPbMsNSZA~4RP7o*Hpx43>z5=8yACxZ?kAkI0l>u>Q&%n6ryk(HS4p#64h28 zt+x7QKno3iMt9ac<$v?(gvAuK0}x6R{~9O3&(KQMvlVy9J7n?u>l3B+4JT@a*~P_2 zZ%3$YHIbfbLfXdR@M#k$o232ygyAXS?A`4@$6FzHT+0Z%WkJ1X2(<5Ix1eGu^tqc*Ihq>&H<^v znRvM3L8V9dpSECtr@{E*0$N+#_GLbEcZd+j60>)4{pK2Fy z+VbyXa3?Mq17?x_ucne4C!mb!PtSY1Pidb%L472o^Wm^)^4hns=@++{LKP?CB=WwamnWu$CU`K1fD`~10`*3;gn$}xU-Ta`O zS3~YDr@h@FaTefCLzVCYT+Jw`7Iet9$@t+kKNfLKhMDt7iVb(gyd-rc(1}oUUqOiA z$PJPDlXA5GnfTSAsgJg98_hD;PL~QusIoO5ItO;W_)h_m1#bF=2Nb?I|NZ;_|3?}p zCVph&9C$dyIoR=!gyA6?4piWm(nAM)tO5!C!JM6TqYnivpdOne9Y}_=0CaTcQSmqq zItm3T1#}@F=`qhgOqK*N$e|trnTN}eVMBqWhc@Zy!lrIF8F=786!=)i2GB(U5Yz)4 zArK$XfVZCpq(UAhn9}kna1L*2*XaHcuJDhQ?I4*+;O)KLW|I_#ne2`-q0MG?F3Wbz4;A4&o zxn7S92f$$xvzTBKV3^n;hGi}jHLPIfGD{IA;55uXd79X6@Z=o@m@IxFR6qo_xx?dl zr#L*^CJ-T20~TQFHs|q<<^C~`k#W#u`_NRLI5io0G+_V$Xvj4L;tC1;^9XH>VypJk z0fIIl6c;ha2L1__f5;;!0B8UrEYl8~0iZtCs-pkIC}s3v(G}caLjPeX z6AWn!f&w5*)8Oa|AovegL=*rZ=!HOg`U4w+a&991CrK{?gny#zAE0=^KUWY?fo$}j z9xdNL|5>j{6yTq15C|~&Wz4aXwXB&zrdc;L|BrlllQKK3Ovd!_R?E;sh5smqIfnzo zGO5t6oWX}*1@exG1ok7sdq-OZ8`y$nCLWGcss`dGEXH1hvXx=%V+Fz*$;6|r@5t;$ zJ_{1jR%WuGorq-x0$83n7BlZCY+7S0+u5RZwu=MZXEsL%WX$3?8jEfAJVQhr5SO?| zNUR#k@)B>Et1`naE)I?>+p5{Ny4JmJziNx!fZ_HtU|4{6JRm9A3gN4tk%vjrYlb%< z*F`Z%#YZ#&f^Ja;z3N?Wdy6Sw`fj(s{{1gyv@~%GI+%s^b9*1Y~TuvMGuU=zF8mmRjTldbGoB751+ z2DY!CE$vQ6d)n5fbhWRo?M7#N|J&Xsbhp1P?mdTl+~%fpxzDZcHK%*s?k01)-!1Ph z$9vxPwsO7it?wr1d*A*xa=-sA@E-?!;0DKW!4IzR7$}D5s*3Yi?VwQdFUvInHw+{EXUw!U$pSs=e{`9=-ed&Df`_can_@N7a@INoS;dhSs z#NT}JjGwvVAOG^mOMc~)k+1y8FOT_=Yku<|@4V+X4*JkveDtKBxam*-@YJh*;jC}{ z!Cw#ify;jO|E|65_l^79-+TAGpSSOS|L))mf8E3{{<)8j{BbLP`QL87^S2HC=wEyK z)StHXum9}qYk%3??|!ns5B_3{fBeBNzxjWS{`Bv9{p`QB``=&d_{%@m^sj%b?~ngg L>wo{J4hR4{omW&z diff --git a/doc/symbol_nav.png b/doc/symbol_nav.png deleted file mode 100644 index 91acd96faa52a66b33dcaf6fecd38a79451459f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83242 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