Home
Fortran Library Reference
Contents
1. If declared INTEGER 8 index will return an INTEGER 8 value when compiled for a 64 bit environment and character variable a1 is a very large character string greater than 2 Gigabytes rindex Last Occurrence of a Substring in a String The function is called by INTEGER 4 rindex n rindex al a2 jet stasacres impt Meins po Return value INTEGER 4 Output n50 Index of last occurrence of a2 in a1 orINTEGER 8 n 0 a2 does not occur in alINTEGER 8 returned in 64 bit environments lnblnk Last Nonblank in a String The function is called by n Inblnk al joa onacaccer mpat Sting O O Return value INTEGER 4 Output n50 Index of last nonblank in a1 or INTEGER 8 n 0 a1 is all nonblank INTEGER 8 returned in 64 bit environments Example index rindex lnblnk Ki 123456789012345678901 character s424 abcPDQxyz abcPDQxyz INTEGER 4 declen index first last len lnblnk rindex 42 Fortran Library Reference Revision A February 1999 declen len s first index s abc last rindex s abc lastnb Inblnk s write declen lastnb write first last end demo 77 silent tindex f demo a out 24 21 lt declen is 24 because intrinsic len returns the declared length of s 1 13 Note Programs compiled to run in a 64 bit environment must declare index rindex and Inblnk and their receiving variables INTEGER 8 to handle very large characte
2. m Variables c 1 p s u x and y are of type DOUBLE PRECISION m Explicitly type these functions on a DOUBLE PRECISION statement or with an appropriate IMPLICIT statement m sind x asind x take degrees rather than radians See also intro 3M and the Numerical Computation Guide libm quadruple Quad Precision Functions These subprograms are quadruple precision REAL 16 libm functions and subroutines SPARC only 56 Fortran Library Reference Revision A February 1999 In general these do not correspond to standard generic intrinsic functions data types are determined by the usual data typing rules Samples Quadruple precision functions REAL 16 c q acosh q hypot q infinity s x y Z Z q_acosh x i iq_finite x z q_hypot x y z q_infinity CALL q_sincos x s c The quadruple precision functions must appear in a REAL 16 statement FORTRAN Library Routines 57 TABLE 1 6 Quadruple Precision 1ibm Functions q_copysign x y EAL 16 Function q_fabs x EAL 16 Function q_fmod x EAL 16 Function q infinity KAL 16 Function iq finite x E Function iq fp class x Function iq ilogb x Function iq isinf x Function iq isnan x E Function iq isnormal x Function iq issubnormal x Function iq iszero x Function iq signbit x Function q max normal Function q max subnormal Fu
3. ran seed Explicit typing in the example protects the library calls from any data type promotion when the r8 and db1 compiler options are used Without explicit typing these options could produce unexpected results See the Fortran User s Guide and the f77 1 and f90 1 man pages for details on these options The more flexible xt ypemap compiler option is recommended over the obsolete i2 r8 and db1 options and should be used instead You can catch many issues related to type mismatches over library calls by using the Fortran compilers global program checking option X1ist Global program checking by the 77 and 90 compilers is described in the Fortran User s Guide the Fortran Programming Guide and the f77 1 and f90 1 man pages 64 Bit Environments Compiling a program to run in a 64 bit operating environment that is compiling with xarch v9 or v9a and running the executable on a SPARC platform running the 64 bit enabled Solaris 7 operating environment changes the return values of certain functions These are usually functions that interface standard system level routines such as malloc see malloc malloc64 Allocate Memory and Get Address on page 69 and may take or return 32 bit or 64 bit values depending on the environment To provide portability of code between 32 bit and 64 bit environments 64 bit versions of these routines have been provided that always take and or return 64 bit values The following t
4. call free ptr end See malloc malloc64 Allocate Memory and Get Address on page 69 for details fseek fte11 Determine Position and Reposition a File fseek and ftell are routines that permit repositioning of a file fte11 returns a file s current position as an offset of so many bytes from the beginning of the file At some later point in the program fseek can use this saved offset value to reposition the file to that same place for reading fseek Reposition a File on a Logical Unit The function is called by 20 Fortran Library Reference Revision A February 1999 INTEGER 4 fseek n fseek lunit offset from offset Input Offset in bytes relative to position specified by from or INTEGER 8 An INTEGER 8 offset value is required when compiled for a 64 bit environment such as Solaris 7 with xarch v9 If a literal constant is supplied it must be a 64 bit constant for example 100_8 from INTEGER 4 Input 0 Beginning of file 1 Current position 2 End of file ia a ao kaa aan eka ag Note On sequential files following a call to fseek by an output operation e g WRITE causes all data records following the fseek position to be deleted and replaced by the new data record and an end of file mark Rewriting a record in place can only be done with direct access files Example fseek Reposition MyFile to two bytes from the beginning INTEGER 4 fseek lunit 1 offset 2 from 0 n o
5. The term x86 refers to the Intel 8086 family of microprocessor chips including the Pentium Pentium Pro and Pentium II processors and compatible microprocessor chips made by AMD and Cyrix In this document the term x86 refers to the overall platform architecture Features described in this book that are particular to a specific platform are differentiated by the terms SPARC and x86 in the text Related Books The following books augment this manual and provide essential information m Fortran User s Guide provides information on command line options and how to use the compilers m Fortran Programming Guide discusses issues relating to input output libraries program analysis debugging performance and so on m FORTRAN 77 Language Reference gives details on the language m Sun Performance WorkShop Fortran Overview gives a high level outline of the Fortran package suite Other Programming Books m C User s Guide describes compiler options pragmas and more m Numerical Computation Guide details floating point computation and numerical accuracy issues m Sun WorkShop Performance Library Reference discusses the library of subroutines and functions to perform useful operations in computational linear algebra and Fourier transforms Other Sun WorkShop Books m Sun WorkShop Quick Install provides installation instructions m Sun WorkShop Installation Reference provides supporting installation a
6. demo cat tandornot f print 1 and 7 4 or 7 4 xor 7 4 not 4 1 format 4x and 7 4 5x or 7 4 4x xor 7 4 amp 6x not 4 4012 11 end demos 77 silent tandornot f demo a out and 7 4 or 7 4 xor 7 4 not 4 00000000004 00000000007 00000000003 37777777773 demo Example lshift rshift integer 4 lshift rshift print 1 lshift 7 1 rshift 4 1 1 format 1x lshift 7 1 1x rshift 4 1 2012 11 end demo 77 silent tlrshift f demo a out lshift 7 1 rshift 4 1 00000000016 00000000002 demo Fortran Library Reference Revision A February 1999 Usage bic bis bit setbit call bic bitnum word l bis bitnum word cal call setbit bitnum word state LOGICAL bit x bit bitnum word bitnum state and word are INTEGER 4 input arguments Function bit returns a logical value Bits are numbered so that bit 0 is the least significant bit and bit 31 is the most significant bic bis and setbit are external subroutines bit is an external function Example 3 bic bis setbit bit integer 4 bitnum 2 state 0 word 7 logical bit print 1 word format 13x word 012 11 call bic bitnum word print 2 word 2 format after bic 2 word 012 11 call bis bitnum word print 3 word 3 format after bis 2 word 012 11 call setbit bitnum word state print 4 word 4 format after setbit 2 word 0 012 11 print
7. end structure record siginfo sip address sip fault address write 10 address 10 format Exception at hex address z8 end See the Numerical Computation Guide See also floatingpoint 3 signal 3 sigfpe 3 f77_floatingpoint 3F ieee_flags 3M and ieee_handler 3M f77 floatingpoint h FORTRAN IEEE Definitions The header file 77_floatingpoint h defines constants and types used to implement standard floating point according to ANSI IEEE Std 754 1985 Include the file in a FORTRAN 77 source program as follows include f77 floatingpoint h Use of this include file requires preprocessing prior to FORTRAN compilation The source file referencing this include file will automatically be preprocessed if the name hasa F or F90 extension FORTRAN Library Routines 39 Fortran 90 programs should include the file 90 floatingpoint h instead IEEE Rounding Mode fp_direction_type The type of the IEEE rounding direction mode The order of enumeration varies according to hardware SIGFPE Handling sigfpe_code_type The type of a SIGFPE code sigfpe_handler_type The type of a user definable SIGFPE exception handler called to handle a particular SIGFPE code SIGFPE DEFAULT A macro indicating default SIGFPE exception handling IEEE exceptions to continue with a default result and to abort for other SIGFPE codes SIGFPE IGNORE A macro indicating an alternate SIGFPE exception handling namely to ignore and
8. gerror ierrno Get System Error Messages These routines perform the following functions PETERE Print a message to FORTRAN logical unit 0 stderr gerror Get a system error message of the last detected system error Tarrio Get the error number of the last detected system error perror Print Message to Logical Unit 0 stderr The subroutine is called by call perror string string character n Input The message It is written preceding the standard error message for the last detected system error Example 1 call perror file is for formatted I O Fortran Library Reference Revision A February 1999 gerror Get Message for Last Detected System Error The subroutine or function is called by call gerror string Output Message for the last detected system error Example 2 gerror as a subroutine character string 30 call gerror string write string Example 3 gerror as a function string not used character gerror 30 z 30 Z gerror write z ierrno Get Number for Last Detected System Error The function is called by Output Number of last detected system error FORTRAN Library Routines 73 This number is updated only when an error actually occurs Most routines and I O statements that might generate such errors return an error code after the call that value is a more reliable indicator of what caused the error condition Example 4 ierrno INTE
9. parameter NX 1000 pointer pl X real 4 X NX pl malloc NX44 if pl eq O stop malloc cannot allocate do 11 i 1 NX 70 Fortran Library Reference Revision A February 1999 11 X i 0 In the above example we acquire 4 000 bytes of memory pointed to by pl and initialize it to zero See also free Deallocate Memory Allocated by Malloc on page 20 mvbits Move a Bit Field The subroutine is called by call mvbits src inil nbits des ini je I Initial bit position in the source 1 Number of bits to move E Output Destination E Initial bit position in the destination Example mvbits demo cat mvbl f x mvbl f From src initial bit 0 move 3 bits to des initial bit 3 x src des 543210 543210 Bit numbers 000111 000001 Values before move 000111 111001 Values after move INTEGER 4 src inil nbits des ini2 data src inil nbits des ini2 amp FAG O 35 Ly car call mvbits src inil nbits des ini2 write 503 src inil nbits des ini2 end demo 77 silent mvbl f demo a out To OS aTe 13 demo FORTRAN Library Routines 71 Note the following m Bits are numbered 0 to 31 from least significant to most significant m mvbits changes only bits ini2 through ini2 nbits 1 of the des location and no bits of the src location m The restrictions are a inil nbits gt 32 a ini2 nbits lt 32 perror
10. tlu fn rn errf eoff eotf tcsr WRITE 1 rewind fn rn errf eoff eotf tcsr BO Es 1 3 eoff false DO WHILE NOT eoff n tread tlu onerec n tstate tlu fn rn errf eoff eotf tcsr IF NOT eoff WRITE 2 read onerec amp fn rn errf eoff eotf tcsr END DO n tskipf tlu 1 0 n tstate tlu fn rn errf eoff eotf tcsr WRITE 1 tskip fn rn errf eoff eotf tcsr END DO END The output is open 00 FFF 0 rewind 0 0 FFF 0 read eins O1 FF F0 read zwei 02 FFF 0 tskip 10FFF 0 read ichillFFF 0 read ni_12FFF00 tskip 2 0 FFF 0 read un__21FFF 0 read deux 2 2 FF F 0 tskip 3 0 FFF 0 102 Fortran Library Reference Revision A February 1999 A summary of EOF and EOT follows If you are at either EOF or EOT then a Any tread just returns it does not read the tape a A successful tskipf tlu 1 0 resets the EOF status to false and returns it does not advance the tape pointer A successful twrite resets the EOF and EOT status flags to false A successful tclose resets all those flags to false tclose truncates it places an EOF marker immediately after the current location of the unit pointer and then closes the unit So if you use trewin to rewind a unit before you use tclose to close it its contents are discarded This behavior of tclose is inherited from the Berkeley code See also ioctl 2 mtio 4s perror 3F read 2 st
11. use date_and_time instead demo a out Computing time differences using the 2 digit year from subroutine idate is not safe after year 2000 The date is 7 10 98 1eee_flags ieee_handler sigfpe IEEE Arithmetic These subprograms provide modes and status required to fully exploit ANSI IEEE Std 754 1985 arithmetic in a FORTRAN program They correspond closely to the functions ieee_flags 3M ieee_handler 3M and sigfpe 3 Here is a summary TABLE 1 2 IEEE Arithmetic Support Routines ieee_flags action mode in out ieee_handler action exception hdl sigfpe code hdl CO Fortran Library Reference Revision A February 1999 TABLE 1 2 IEEE Arithmetic Support Routines continued h t mode re res Input h h Aa Ka h t exception para eased Input hdl Ka See the Sun Numerical Computation Guide for details on how these functions can be used strategically If you use sigfpe you must do your own setting of the corresponding trap enable mask bits in the floating point status register The details are in the SPARC architecture manual The libm function ieee handler sets these trap enable mask bits for you The character keywords accepted for mode and exception depend on the value of action TABLE 1 3 ieee flags action mode in out Parameters and Actions action clearall mode in out unused returns 0 i mode direction action clear clear mode in mode precision on x86 platform
12. 39 Fortran Library Reference e Revision A February 1999 index rindex lnblnk Index or Length of Substring 41 index First Occurrence of a Substring in a String 41 rindex Last Occurrence of a Substring ina String 42 Inblnk Last Nonblank in a String 42 inmax Return Maximum Positive Integer 43 ioinit Initialize 1 O Properties 44 Persistence of File I O Properties 44 Internal Flags 44 Source Code 44 Usage ioinit 45 Restrictions 45 Description of Arguments 45 itime Current Time 48 kill Send a Signal to a Process 48 libm Math Functions 49 libm Intrinsic Functions 49 libm double Double Precision Functions 50 libm quadruple Quad Precision Functions 56 libm_single Single Precision Functions 59 link symlink Make a Link to an Existing File 64 link Create a Link to an Existing File 64 symlnk Create a Symbolic Link to an Existing File 65 loc Return the Address of an Object 65 long short Integer Object Conversion 66 long Convert a Short Integer to a Long Integer 66 short Convert a Long Integer to a Short Integer 66 longjmp iset jmp Return to Location Set by isetjmp 67 iset jmp Set the Location for longjmp 67 Contents v long jmp Return to the location set by isetjmp 68 Description 68 Restrictions 69 malloc malloc64 Allocate Memory and Get Address 69 mvbits Move a Bit Field 71 perror gerror ierrno Get System Error Messages 72 perror Print Message to Logical Unit 0 stderr 72 gerror Get Message for Las
13. 755253631 demo rename Rename a File The function is called by INTEGER 4 rename status rename from to Return value INTEGER 4 Output status 0 OK status gt 0 System error code Fortran Library Reference e Revision A February 1999 If the file specified by to exists then both from and to must be the same type of file and must reside on the same file system If to exists it is removed first Example rename Rename file trename old to trename new demo cat trename f INTEGER 4 rename status character 18 from trename old to trename new status rename from to if status ne O stop rename error end demo 77 silent trename f demo ls trename trename f trename old demo a out demo ls trename trename f trename new demo See also rename 2 and perror 3F Note the path names cannot be longer than MAXPATHLEN as defined in lt sys param h gt secnds Get System Time in Seconds Minus Argument t secnds t0 pp a ee suas Return Value Example secnds Output Number of seconds since midnight minus t0 demo cat secl f real elapsed t0 tl x y tO 0 0 tl secnds t0 y 0 1 do i 1 1000 x asin y end do elapsed secnds t1 write 1 elapsed 1 format 1000 arcsines f12 6 sec end FORTRAN Library Routines 81 demo 77 silent secl f demo a out 1000 arcsines 6 699141 sec demo Note that m
14. 87 statb 1 Device inode resides on statb 2 This inode s number Protection statb 3 Number of hard links to the file Sharp User ID of owner statb 5 Group ID of owner statb 6 Device type for inode that is device statb 7 Total size of file statb 8 File last access time File last modify time statb 9 File last status change time statb 10 Optimal blocksize for file system I O ops statb 11 Actual number of blocks allocated statb 12 statb 13 See also stat 2 access 3F perror 3F and time 3F EN as defined in Note the path names can be no longer than MAXPATHLI lt sys param h gt statb4 lstato4 fstat Status 64 Get File 64 bit long file Solaris 2 6 and Solaris 7 versions of stat Istat fstat These routines are identical to the non 64 bit routines except that the 13 element array statb must be declared INTEGER 8 system Execute a System Command The function is called by Fortran Library Reference e Revision A February 1999 INTEGER 4 system status system string Return value INTEGER 4 Output Exit status of the shell executed See wait 2 for an explanation of this value Example system character 8 string ls s INTEGER 4 status system status system string if status ne 0 stop system error end The function system passes string to your shell as input as if the string had been typed as a command Note string cannot
15. Current Process The function is called by INTEGER 4 fork n fork Return value INTEGER 4 n gt 0 n Process ID of copy nx0 n System error code The fork function creates a copy of the calling process The only distinction between the two processes is that the value returned to one of them referred to as the parent process will be the process ID of the copy The copy is usually referred to as the child process The value returned to the child process will be zero All logical units open for writing are flushed before the fork to avoid duplication of the contents of I O buffers in the external files Example fork INTEGER 4 fork pid pid fork if pid lt 0 stop fork error if pid gt 0 then print I am the parent else print I am the child endif A corresponding exec routine has not been provided because there is no satisfactory way to retain open logical units across the exec routine However the usual function of fork exec can be performed using system 3F See also fork 2 wait 3F kill 3F system 3F and perror 3F FORTRAN Library Routines 19 free Deallocate Memory Allocated by Malloc The subroutine is called by call free ptr free deallocates a region of memory previously allocated by malloc The region of memory is returned to the memory manager it is no longer available to the user s program Example free real x pointer ptr x ptr malloc 10000
16. and Sun WorkShop Professional are trademarks or registered trademarks of Sun Microsystems Inc in the United States and in other countries All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International Inc in the United States and in other countries Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems Inc TM The OPEN LOOK and Sun Graphical User Interfaces were developed by Sun Microsystems Inc for its users and licensees Sun acknowledges the pioneering efforts of Xerox Corporation in researching and developing the concept of visual or graphical user interfaces for the computer industry Sun holds a nonexclusive license from Xerox to the Xerox Graphical User Interface which license also covers Sun s licensees who implement OPEN LOOK GUIs and otherwise comply with Sun s written license agreements 90 is derived from Cray CF90 a product of Silicon Graphics Inc THIS PUBLICATION IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE OR NON INFRINGEMENT Copyright 1999 Sun Microsystems Inc 901 San Antonio Road Palo Alto Californie 94303 4900 U S A Tous droits r serv s Ce produit ou document est prot g par un copyright et distribu avec des licences qui en restreignent l utilisation la copie et la d compi
17. be longer than 1024 characters If system can find the environment variable SHELL then system uses the value of SHELL as the command interpreter shell otherwise it uses sh 1 The current process waits until the command terminates Historically cc and 77 developed with different assumptions m If cc calls system the shell is always the Bourne shell m If 77 calls system then which shell is called depends on the environment variable SHELL The system function flushes all open files m For output files the buffer is flushed to the actual file m For input files the position of the pointer is unpredictable See also execve 2 wait 2 and system 3 The system function is not MT safe Do not call it from multithreaded or parallelized programs FORTRAN Library Routines 89 time ctime ltime gmtime Get System Time These routines have the following functions Standard version Get system time as integer seconds since 0 GMT 1 1 time 70 VMS Version Get the system time as character hh mm ss ctime Convert a system time to an ASCII string itime Dissect a system time into month day and so forth local time gmt ime Dissect a system time into month day and so forth GMT time Get System Time For time there are two versions a standard version and a VMS version If you use the 77 command line option 1V77 then you get the VMS version for time and for idate otherwise you get the stand
18. cos err function e448 1 floor hypotenuse bessel FORTRAN Library Routines 61 62 TABLE 1 7 Single Precision 1 ibm functions r_addran r_addrans x p 1 u r_lcran r Verans x pl UU r shufrans x p 1 u r_lgamma x r_logb x r_loglp x r_log2 x r_max_normal r_max_subnormal r_min_normal r_min_subnormal reonextatter x y r_quiet_nan n r_remainder x y r_rint x r_scalb x y r_scalbn x n r_signaling_nan n r_significand x Fortran Library Reference Revision A February 1999 continued Function random number Subroutine Function Subroutine Subroutine Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function log gamma TABLE 1 7 Single Precision libm functions continued Function Function a hyperb sin Function YP Function Function ET SINCOS x Sy TC Subroutine sine amp cosine t SBincosd By By a Subroutine r_sincosp x S C Subroutine r_sincospi x s c Subroutine Function tangent Function r hyperb tan Function YP Function Function Function bessel Function Function m Variables c 1 p s u x and y are of type REAL E m Type these functions as explicitly REAL if an IMPLICIT statement is in effect that types n
19. fputc status open 1 file tfputc data do i 1 11 char s i i status fputc 1 char end do status fputc 1 n end demos 77 silent tfputc f demo a out demo cat tfputc data OK by fputc demo See also putc 3S intro 2 and perror 3F qsort qsort 64 Sort the Elements of a One dimensional Array The subroutine is called by call qsort array len isize compar call qsort64 array len8 isize8 compar isize Input Size of an element typically 4 for integer or real 8 for double precision or complex 16 for double complex Length of character object for character arrays Fortran Library Reference e Revision A February 1999 call qsort array len isize compar call qsort64 array len8 isize8 compar isize8 INTEGER 3 Input Size of an element typically 4 8 for integer or real 8_8 for double precision or complex 16_8 for double complex Length of character object for character arrays function Input Name of a user supplied INTEGER 2 name function Determines sorting order compar arg1 arg2 Use qsort 64 in 64 bit environments with arrays larger than 2 Gbytes Be sure to specify the array length len8 and the element size isize8 as INTEGER 8 data Use the Fortran 90 style constants to explicitly specify INTEGER 8 constants The compar arg1 arg2 arguments are elements of array returning Negative If arg1 is considered to precede ar
20. from Tape 98 trewin Rewind Tape to Beginning of First Data File 98 tskipf Skip Files and Records Reset EoF Status 100 tstate Get Logical State of Tape I O Channel 100 ttynam isatty Get Name of a Terminal Port 103 ttynam Get Name of a Terminal Port 103 isatty Is this Unit a Terminal 104 unlink Remove a File 105 wait Wait for a Process to Terminate 105 Index 107 Contents vii viii Fortran Library Reference Revision A February 1999 Preface This guide describes the routines in the Sun FORTRAN 77 version 5 0 and Fortran 90 version 2 0 runtime libraries Who Should Use This Book This is a reference manual intended for programmers with a working knowledge of the Fortran language and some understanding of the Solaris operating environment and UNIX commands Multi Platform Release Note The name of the latest Solaris operating environment release is Solaris 7 but some documentation and path or package path names may still use Solaris 2 7 or SunOS 5 7 The Sun WorkShop documentation applies to Solaris 2 5 1 Solaris 2 6 and Solaris 7 operating environments FORTRAN 77 5 0 is released for m The SPARC platform Preface ix m The x86 platform where x86 refers to the Intel implementation of one of the following Intel 80386 Intel 80486 Pentium or the equivalent Fortran 90 2 0 is released for m Solaris 2 5 1 2 6 and Solaris 7 environments on SPARC processors only Note
21. ime Call For dt ime the elapsed time is m First call elapsed time since start of execution m Subsequent calls elapsed time since the last call to dt ime m Single processor time used by the CPU Fortran Library Reference Revision A February 1999 m Multiple Processor the sum of times for all the CPUs which is not useful data use et ime instead Note Do not call dt ime from within a parallelized loop The function is called by e dtime tarray tarray e 1 0 Error tarray values are undefined eo 1 0 User time in tarray 1 if no error System time in tarray 2 if no error Return value real Output e 1 0 Error e 1 0 The sum of tarray 1 and tarray 2 Example dt ime single processor real e dtime t 2 print elapsed ej user t l 7 sys 77 2 do i 1 10000 k k 1 end do e dtime t print elapsed e user t 1 sys t 2 end demo 77 silent tdtime f demo a out elapsed 0 user 0 sys 0 elapsed 0 180000 user 6 Q00000E 02 sys 0 120000 demo etime Elapsed Time Since Start of Execution For etime the elapsed time is m Single Processor CPU time for the calling process m Multiple Processors wallclock time while processing your program Here is how FORTRAN decides single processor or multiple processor For a parallelized FORTRAN program linked with 1ibF77_mt if the environment variable PARALLEL is m Undefined the cu
22. out is underflow i flow address of handler routine or SIGFPE_DEFAULT or n Ow Or Overflow Or SIGFPE_ABORT or SIGFPE IGNORE defined in 77 invalid or all or common f77_floating point h Example 1 Set rounding direction to round toward zero unless the hardware does not support directed rounding modes INTEGER 4 ieeer character 1 mode out in ieeer ieee_flags set direction tozero out Example 2 Clear rounding direction to default round toward nearest character 1 out in ieeer ieee_flags clear direction in out Example 3 Clear all accrued exception occurred bits character 18 out ieeer ieee_flags clear exception all out Example 4 Detect overflow exception as follows 38 Fortran Library Reference Revision A February 1999 character 18 out ieeer ieee_flags get exception overflow out if out eq overflow stop overflow The above code sets out to overflow and ieeer to 25 this value is platform dependent Similar coding detects exceptions such as invalid or inexact Example 5 hand1 f write and use a signal handler Solaris 2 external hand real r 14 2 s 0 0 i ieee handler set division hand t r s end INTEGER 4 function hand sig sip uap INTEGER 4 sig address structure fault INTEGER 4 address end structure structure siginfo INTEGER 4 si_signo INTEGER 4 si_code INTEGER 4 si_errno record fault fault
23. tlu 1 tclose topen twrite LOGICAL islabeled false n topen tlu devnam islabeled IF n LT O STOP topen cannot open n twrite tlu recl IF n LT O STOP twrite cannot write 1 n twrite tlu rec2 IF n LT O STOP twrite cannot write 2 WRITE twrite ok 214 1X A10 n tlu devnam END The output is twrite ok 512 1 dev rst0 FORTRAN Library Routines 97 tread Read Next Physical Record from Tape The function is called by INTEGER 4 tread n tread tlu buffer i n os a ee buffer character Input Must be sized at a multiple of 512 and must be large enough to hold the largest physical record to be read n INTEGER 4 Return value 130 OK and n is the number of bytes read n20 Error n 0 EOF If the tape is at EOF or EOT then tread does a return it does not read tapes Example tread read the first record of the file written above CHARACTER devnam 9 dev rst0 m onerec 512 INTEGER 4 n O tlu 1 topen tread LOGICAL islabeled false n topen tlu devnam islabeled IF n LT O STOP topen cannot open n tread tlu onerec IF n LT O STOP tread cannot read WRITE tread ok 214 1X A10 n tlu devnam WRITE A4 onerec END The output is tread ok 512 1 dev rst0 abcd trewin Rewind Tape to Beginning of First Data File The function is called by 98 Fortran Li
24. xiii TABLE P 1 Typeface or Symbol AaBbCc123 AaBbCc123 AaBbCc123 AaBbCc123 Typographic Conventions Meaning The names of commands files and directories on screen computer output What you type contrasted with on screen computer output Command line placeholder replace with a real name or value Book titles new words or terms or words to be emphasized Example Edit your login file Use 1s a to list all files machine names You have mail machine name3 su Password To delete a file type xm filename Read Chapter 6 in User s Guide These are called class options You must be root to do this Shell Prompts in Command Examples The following table shows the default system prompt and superuser prompt for the C shell Bourne shell and Korn shell TABLE P 2 Shell Prompts Shell C shell prompt C shell superuser prompt Bourne shell and Korn shell prompt Bourne shell and Korn shell superuser prompt xiv Fortran Library Reference e Revision A February 1999 Prompt machine_name machine_name Other Conventions Used in This Book The following conventions appear in the text of this book m Examples use the csh shell and demo as the system prompt or the sh shell and demos as the prompt m Code listings and examples appear in boxes WRITE 4 Hello world HUN m The symbol stands in for a blank space where a blank is significant n36 001
25. 4s and write 2 ttynam isatty Get Name of a Terminal Port ttynam and isatty handle terminal port names ttynam Get Name of a Terminal Port The function ttynam returns a blank padded path name of the terminal device associated with logical unit lunit The function is called by FORTRAN Library Routines 103 CHARACTER ttynam 24 name ttynam lunit Return value character n Output If nonblank returned name path name of device on lunit Size n must be large enough for the longest path name If empty string all blanks returned lunit is not associated with a terminal device in the directory dev isatty Is this Unit a Terminal The function terminal isatty lunit Return value LOGICAL 4 Output terminal true It is a terminal device terminal false It is not a terminal device is called by Example Determine if unit is a tty character 12 name ttynam INTEGER 4 lunit 5 logical 4 isatty terminal terminal isatty lunit name ttynam lunit write terminal terminal name name end The output is 104 Fortran Library Reference Revision A February 1999 terminal T name dev ttypl unlink Remove a File The function is called by INTEGER 4 unlink n unlink patnam Return value INTEGER 4 Output n 0 OK n gt 0 Error The function unlink removes the file specified by path name patnam If this is the last link to the file t
26. 5 bit bitnum word 5 format bit 2 word L end lt output gt word 00000000007 after bic 2 word 00000000003 after bis 2 word 00000000007 after setbit 2 word 0 00000000003 bit 2 word F chdir Change Default Directory The function is called by FORTRAN Library Routines 9 INTEGER 4 chdir n chdir dirname Amame character input Ditorymame eas a a Pap ban Example chdir change cwd to MyDir INTEGER 4 chdir n n chdir MyDir if n ne O stop chdir error end See also chdir 2 cd 1 and gerror 3F to interpret error codes Path names can be no longer than MAXPATHLEN as defined in lt sys param h gt They can be relative or absolute paths Use of this function can cause inquire by unit to fail Certain FORTRAN file operations reopen files by name Using chdir while doing I O can cause the runtime system to lose track of files created with relative path names including the files that are created by open statements without file names chmod Change the Mode of a File The function is called by 10 Fortran Library Reference Revision A February 1999 INTEGER 4 chmod n chmod name mode pome character impt Patnam OOO mode eharsieter Input Anything recognized by chmod 1 such as o w 444 etc Return value INTEGER 4 Output n 0 OK n gt 0 System error number Example chmod add write permissions to MyFile character 18 name mode INTEGER 4
27. 99 TABLE 1 5 Double Precision 1ibm Functions d_acos x d_acosd x d_acosh x d_acosp x d_acospi x d_atan x d_atand x d_atanh x d_atanp x d_atanpi x d_asin x d asindi x d_asinh x d_asinp x d_asinpi x Function arc cosine Function arc cosh Function Function Function Function arc tangent Function arc tanh Function Function Function Function arc sine Function are sinh Function Function Function FORTRAN Library Routines 51 52 TABLE 1 5 Double Precision 1ibm Functions d_atan2 y x d_atan2d y x d_atan2pi y x d_cbrt x d_ceil x d_copysign x x Fortran Library Reference e Revision A February 1999 continued Function Function Function Function Function Function Function Function Function Function Function Function Function arc tangent cube TOOL ceiling cosine hyperb cos error func TABLE 1 5 Double Precision 1ibm Functions d_expml x d_floor x d_hypot x y d infinity id finite x id fp class x id ilogb x id irint x id isinf x id isnan x id isnormal x id issubnormal x id iszero x id signbit x continued Function e x 1 Function floor Function hypote
28. E and SIGFPE_ABORT See f77 floatingpoint h FORTRAN IEEE Definitions on page 39 x In 64 bit environments signal must be declared INTEGER 8 along with the variables receiving its output to avoid truncation of the address that may be returned See also kill 1 signal 3 and kill 3F and Numerical Computation Guide sleep Suspend Execution for an Interval The subroutine is called by call sleep itime The actual time can be up to 1 second less than itime due to granularity in system timekeeping Example sleep INTEGER 4 time 5 write Start call sleep time write End end 84 Fortran Library Reference Revision A February 1999 See also sleep 3 stat lstat fstat Get File These functions return the following information device inode number protection number of hard links user ID group ID device type size access time modify time status change time optimal blocksize blocks allocated Both stat and lstat query by file name fstat queries by logical unit stat Get Status for File by File Name The function is called by FORTRAN Library Routines 85 Status 86 INTEGER 4 stat ierr stat name statb statb INTEGER 4 Output Status structure for the file 13 element array Return value Output ierr 0 OK ierrs0 Error code Example 1 stat character name 18 MyFile INTEGER 4 ierr stat lunit 1 s
29. GER 4 ierrno n n ierrno write n See also intro 2 and perror 3 Note m string in the call to perror cannot be longer than 127 characters m The length of the string returned by gerror is determined by the calling program m Runtime I O error codes for 77 and f90 are listed in the Fortran User s Guide putc fputc Write a Character to a Logical Unit putc writes to logical unit 6 normally the control terminal output fputc writes to a logical unit These functions write a character to the file associated with a FORTRAN logical unit bypassing normal FORTRAN I O Do not mix normal FORTRAN output with output by these functions on the same unit putc Write to Logical Unit 6 The function is called by 74 Fortran Library Reference Revision A February 1999 INTEGER 4 putc status putc char Return value INTEGER 4 Output status 0 OK status gt 0 System error code Example putc character char s 10 OK by putc INTEGER 4 putc status do i 1 10 char s i i status putc char end do status putc n end demos 77 silent tputc f demo a out OK by putc demo fputc Write to Specified Logical Unit The function is called by INTEGER 4 fputc status fputc lunit char Return value INTEGER 4 Output status 0 OK status gt 0 System error code FORTRAN Library Routines 75 76 Example fputc character char s 11 OK by fputc INTEGER 4
30. S amp Sun microsystems Fortran Library Reference FORTRAN 77 5 0 Fortran 90 2 0 901 San Antonio Road Palo Alto CA 94303 4900 USA 650 960 1300 fax 650 969 9131 Part No 805 4942 Revision A February 1999 Copyright Copyright 1999 Sun Microsystems Inc 901 San Antonio Road Palo Alto California 94303 4900 U S A All rights reserved All rights reserved This product or document is protected by copyright and distributed under licenses restricting its use copying distribution and decompilation No part of this product or document may be reproduced in any form by any means without prior written authorization of Sun and its licensors if any Portions of this product may be derived from the UNIX system licensed from Novell Inc and from the Berkeley 4 3 BSD system licensed from the University of California UNIX is a registered trademark in the United States and in other countries and is exclusively licensed by X Open Company Ltd Third party software including font technology in this product is protected by copyright and licensed from Sun s suppliers RESTRICTED RIGHTS Use duplication or disclosure by the U S Government is subject to restrictions of FAR 52 227 14 g 2 6 87 and FAR 52 227 19 6 87 or DFAR 252 227 7015 b 6 95 and DFAR 227 7202 3 a Sun Sun Microsystems the Sun logo SunDocs SunExpress Solaris Sun Performance Library Sun Performance WorkShop Fortran Sun Visual WorkShop C Sun WorkShop
31. The returned value from SECNDS is accurate to 0 01 second m The value is the system time as the number of seconds from midnight and it correctly spans midnight m Some precision may be lost for small time intervals near the end of the day sh Fast Execution of an sh Command The function is called by INTEGER 4 sh status sh string Return value INTEGER 4 Output Exit status of the shell executed See wait 2 for an explanation of this value Example sh character 18 string ls gt MyOwnFile names INTEGER 4 status sh status sh string if status ne O stop sh error end The function sh passes string to the sh shell as input as if the string had been typed as a command The current process waits until the command terminates The forked process flushes all open files 82 Fortran Library Reference Revision A February 1999 m For output files the buffer is flushed to the actual file m For input files the position of the pointer is unpredictable The sh function is not MT safe Do not call it from multithreaded or parallelized programs See also execve 2 wait 2 and system 3 Note string cannot be longer than 1 024 characters signal Change the Action for a Signal The function is called by INTEGER 4 signal or INTEGER 8 signal n signal signum proc flag nee cua T proc Routine Input Name of user signal handling routine must name be in an external st
32. able identifies library routine provided for use in 64 bit environments Fortran Library Reference Revision A February 1999 TABLE 1 1 Library Routines malloc64 fseeko64 ftello64 stat64 fstat64 lstat64 time64 ctime64 gmtime64 Itime64 qsort64 Library Routines for 64 bit Environments Allocate memory and return a pointer Reposition a large file Determine position of a large file Determine status of a file Get system time convert to character or dissected Sort the elements of an array malloc malloc64 Allocate Memory and Get Address on page 69 fseekob4 ftello64 Determine Position and Reposition a Large File on page 23 fseekob4 ftello6 4 Determine Position and Reposition a Large File on page 23 stat64 lstat64 fstat64 Get File Status on page 88 time ctime ltime gmtime Get System Time on page 90 asort qsort 64 Sort the Elements of a One dimensional Array on page 76 FORTRAN Library Routines 3 TABLE 1 1 Library Routines for 64 bit Environments continued abort Terminate and Write Core File The subroutine is called by call abort abort flushes the I O buffers and then aborts the process possibly producing a core file memory dump in the current directory See limit 1 about limiting or suppressing core dumps access Check File Permissions or Existence The function is called by INTEGER 4 acc
33. ames starting with r to some other date type m sind x asind x take degrees rather than radians See also intro 3M and the Numerical Computation Guide FORTRAN Library Routines 63 link symlink Make a Link to an Existing File link creates a link to an existing file symlink creates a symbolic link to an existing file The functions are called by status link namel name2 INTEGER 4 symlink status symlnk namel name2 name2 character n Path name to be linked to the file namel name2 must not already exist Return value INTEGER 4 status 0 OK status gt 0 System error code link Create a Link to an Existing File Example 1 link Create a link named data1 to the file tlink db data 1 demo cat tlink f character 34 namel tlink db data 1 name2 datal integer 4 link status status link namel name2 if status ne 0 stop link error end demo 77 silent tlink f demos ls 1 datal datal not found demo a out demos ls 1 datal rw rw r 2 generic 2 Aug 11 08 50 datal demo 64 Fortran Library Reference Revision A February 1999 symlink Create a Symbolic Link to an Existing File Example 2 symlink Create a symbolic link named data1 to the file tlink db data 1 demo cat tsymink f character 34 namel tlink db data 1 name2 datal INTEGER 4 status symlink status symlnk namel name2 if status ne 0 stop symlink error end demos 77 s
34. ard versions The standard function is called by INTEGER 4 time or INTEGER 8 n time Standard Version Return value Time in seconds since 0 0 0 GMT 1 1 70 INTEGER 8 Output In 64 bit environments t ime returns an INTEGER 8 value The function t ime returns an integer with the time since 00 00 00 GMT January 1 1970 measured in seconds This is the value of the operating system clock Example time version standard with the operating system INTEGER 4 n time n time write Seconds since 0 1 1 70 GMT n 90 Fortran Library Reference Revision A February 1999 end demo 77 silent ttime f demo a out Seconds since 0 1 1 70 GMT 913240205 demo The VMS version of time is a subroutine that gets the current system time as a character string The VMS subroutine is called by call time t VMS Version character 8 Output Time in the form hh mm ss hh mm and ss are each two digits hh is the hour mm is the minute ss is the second Example time t VMS version ct ime convert the system time to ASCII character t 8 call time t write The current time is A8 t end demo 77 silent ttimeV f 1V77 demo a out The current time is 08 14 13 demo ctime Convert System Time to Character The function ctime converts a system time stime and returns it as a 24 character ASCII string The function is called by FORTRAN Library Routines 91 CHARACTER cti
35. ata type as an argument and return the same These non intrinsics do have to be declared in the routine referencing them libm Intrinsic Functions Here is a list of the intrinsic functions in Libm You need not put them in a type statement These functions take single double or quad precision data as arguments and return the same FORTRAN Library Routines 49 sqrt x asin x cosd x log x acos x asind x log10 x atan x acosd x exp x atan2 x y atand x xy sinh x atan2d x y sin x cosh x aint x cos x tanh x anint x tan x sind x nint x The functions sind x cosd x asind x acosd x atand x atan2d x y are not considered intrinsics by the FORTRAN 77 standard libm double Double Precision Functions The following subprograms are double precision 1ibm functions and subroutines In general these functions do not correspond to standard FORTRAN generic intrinsic functions data types are determined by the usual data typing rules Example Subroutine and non Intrinsic double precision functions DOUBLE PRECISION c d_acosh d_hypot d_infinity s x y z d_acosh x id_finite x d_hypot x y d_infinity ALL d_sincos x s c teow wea QN N HN These DOUBLE PRECISION functions need to appear in a DOUBLE PRECISION statement Refer to the C library man pages for details the man page for d_acos x is acos 3M 50 Fortran Library Reference Revision A February 19
36. atement flag INTEGER 4 Input flag 0 Use proc as the signal handler flag gt 0 Ignore proc pass flag as the action flag 0 Use the default action flag 1 Ignore this signal Return value INTEGER 4 Output n 1 System error n gt 0 Definition of previous action n gt 1 n Address of routine that would have been called n lt 1 If signum is a valid signal number then n address of routine that would have been called If signum is a not a valid signal number then n is an error number INTEGER 8 On 64 bit environments signal and the variables receiving its output must be declared INTEGER 8 FORTRAN Library Routines 83 If proc is called it is passed the signal number as an integer argument If a process incurs a signal the default action is usually to clean up and abort A signal handling routine provides the capability of catching specific exceptions or interrupts for special processing The returned value can be used in subsequent calls to signal to restore a previous action definition You can get a negative return value even though there is no error In fact if you pass a valid signal number to signal and you get a return value less than 1 then it is OK 77 arranges to trap certain signals when a process is started The only way to restore the default 77 action is to save the returned value from the first call to signal f77 floatingpoint h defines proc values SIGFPE DEFAULT SIGFPE_IGNOR
37. brary Reference Revision A February 1999 INTEGER 4 trewin n trewin tlu HNTEGER 4 Input Tape logical unit in range 0 to 7 NTEGERX4 Return value n 0 OK n0 Error If the tape is labeled then the label is skipped over after rewinding Example 1 trewin typical fragment CHARACTER devnam 9 dev rst0 INTEGER 4 n 0 tlu 1 tclose topen tread trewin n trewin tlu IF n LT O STOP trewin cannot rewind WRITE trewin ok 214 1X A10 Dy tlu devnam END Example 2 trewin in a two record file try to read three records rewind read one record CHARACTER devnam 9 dev rst0 m onerec 512 INTEGER 4 n O r tlu 1 topen tread trewin LOGICAL islabeled false n topen tlu devnam islabeled IF n IT O STOP topen cannot open DO r 1 3 n tread tlu onerec WRITE 1X I2 1X A4 r onerec END DO n trewin tlu IF n IT O STOP trewin cannot rewind WRITE trewin ok 214 1X A10 n tlu devnam n tread tlu onerec IF n LT O STOP tread cannot read after rewind WRITE A4 onerec END The output is 1 abcd 2 wxyz 3 wxyz trewin ok 0 1 dev rst0 abcd FORTRAN Library Routines 99 tskipf Skip Files and Records Reset EoF Status The function is called by INTEGER 4 tskipf n tskipf tlu nf nr ANTEGER 4 ANTEGE Input Number of physical records to skip over after skippi
38. ce Manual m Sun WorkShop Visual User s Guide m Sun WorkShop Memory Monitor User s Manual To access these HTML documents 1 Open the following file through your HTML browser install directory SUNWspro DOC5 0 lib locale C html index html xii Fortran Library Reference Revision A February 1999 Replace install directory with the name of the directory where your Sun WorkShop software is installed the default is opt The browser displays an index of the HTML documents for the Sun WorkShop products that are installed 2 Open a document in the index by clicking the document s title Accessing Sun WorkShop Online Help and Release Notes This release of Sun WorkShop includes an online help system as well as online manuals To find out more see m Online Help A help system containing extensive task oriented context sensitive help To access the help choose Help Help Contents Help menus are available in all Sun WorkShop windows m Release Notes The Release Notes contain general information about Sun WorkShop and specific information about software limitations and bugs To access the Release Notes choose Help Release Notes m You can view the latest release information regarding the FORTRAN 77 and Fortran 90 compilers by running these commands at any shell prompt 3 77 xhelp readme or 90 xhelp readme What Typographic Changes Mean The following table describes the typographic changes used in this book
39. ce channel and remove association with tlu tread Read next physical record from tape into buffer twrite Write the next physical record from buffer to tape trewin Rewind the tape to the beginning of the first data file 94 Fortran Library Reference Revision A February 1999 tskipf Skip forward over files and or records and reset EOF status tstate Determine the logical state of the tape I O channel On any one unit do not mix these functions with standard FORTRAN I O You must first use topen to open a tape logical unit tlu for the specified device Then you do all other operations on the specified tlu tlu has no relationship at all to any normal FORTRAN logical unit Before you use one of these functions its name must be in an INTEGER 4 type statement topen Associate a Device with a Tape Logical Unit The function is called by INTEGER 4 topen n topen tlu devnam islabeled tu Tape logical unit in the range 0 to 7 CHARACTER Device name for example dev rst0 islabeled LOGICAL Input True the tape is labeled A label is the first file on the tape Return value INTEGER 4 Output n 0 OK n lt 0 Error This function does not move the tape See perror 3F for details Example topen open a 1 4 inch tape file CHARACTER devnam 9 dev rst0 INTEGER 4 n 0 tlu 1 topen LOGICAL islabeled false FORTRAN Library Routines 95 n topen tlu devnam islab
40. chmod n name MyFile mode w n chmod name mode if n ne O stop chmod error end See also chmod 1 and gerror 3F to interpret error codes Path names cannot be longer than MAXPATHLEN as defined in lt sys param h gt They can be relative or absolute paths date Get Current Date as a Character String Note This routine is not Year 2000 Safe because it returns only a two digit value for the year Programs that compute differences between dates using the output of this routine may not work properly after 31 December 1999 Programs using this date routine will see a runtime warning message the first time the routine is called to alert the user See date and time as a possible alternate routine The subroutine is called by FORTRAN Library Routines 11 call date c Output Variable array array element or character substring CHARACTER 9 The form of the returned string c is dd mmm yy where dd is the day of the month as a 2 digit number mmm is the month as a 3 letter abbreviation and yy is the year as a 2 digit number and is not year 2000 safe Example date demo cat datl f datl f Get the date as a character string character c 9 call date c write The date today is A9 c end demo 77 silent datl f dat f line 2 Warning Subroutine date is not safe after year 2000 use date_and_time instead demo a out Computing time differences usi
41. continue execution A macro indicating an alternate SIGFPE exception handling namely to abort with a core dump IEEE Exception Handling The number of distinct IEEE floating point exceptions fp_exception_type The type of the N_IEEE_EXCEPTION exceptions Each exception is given a bit number fp exception field type The type intended to hold at least N IEEE EXCEPTION bits corresponding to the IEEE exceptions numbered by fp exception type Thus fp inexact corresponds to the least significant bit and fp invalid to the fifth least significant bit Some operations can set more than one exception IEEE Classification 40 Fortran Library Reference Revision A February 1999 fp_class_type A list of the classes of IEEE floating point values and symbols Refer to the Numerical Computation Guide See also ieee_environment 3M and f77_ieee_environment 3F index rindex Lnblnk Index or Length of Substring These functions search through a character string index a1 a2 Index of first occurrence of string a2 in string a1 rindex al a2 Index of last occurrence of string a2 in string a1 lnblnk a1 Index of last nonblank in string a1 index has the following forms index First Occurrence of a Substring in a String The index is an intrinsic function called by Return value INTEGER Output n gt 0 Index of first occurrence of a2 in a1 n 0 a2 does not occur in al FORTRAN Library Routines 41
42. date otherwise the linker accesses the standard versions The standard version puts the current system date into one integer array day month and year The subroutine is called by call idate iarray Standard Version Output array 3 Note the order day month year Example idate standard version demo cat tidate f INTEGER 4 iarray 3 call idate iarray write The date is 315 iarray end demo 77 silent tidate f demo a out The date is 10 8 1998 demo The VMS idate subroutine is called by 11 idate m d y VMS Version oe j a a ee a cai Using the VMS idate routine will cause a warning message at link time and the first time the routine is called in execution FORTRAN Library Routines 35 36 Note The VMS version of the idate routine is not Year 2000 Safe because it returns only a two digit value for the year Programs that compute differences between dates using the output of this routine may not work properly after 31 December 1999 Programs using this idate routine will see a runtime warning message the first time the routine is called to alert the user See date and time as a possible alternate Example idate VMS version demo cat titime f INTEGER 4 m d y call idate m d y write The date is 3i5 m d y end demo 77 silent tidateV f 1V77 titime f line 2 Warning Subroutine idate is not safe after year 2000
43. ee also getc 3S intro 2 and perror 3F get cwd Get Path of Current Working Directory The function is called by INTEGER 4 getcwd status getcwd dirname dirname character n Output The path of the current directory is returned Return value INTEGERX4 Example get cwd INTEGER 4 getcwd status character 64 dirname status getcwd dirname if status ne O stop getcwd error write dirname end See also chdir 3F perror 3F and getwd 3 Note the path names cannot be longer than MAXPATHLI lt sys param h gt Fortran Library Reference Revision A February 1999 Path name of the current working directory n must be large enough for longest path name status 0 OK status gt 0 Error code EN as defined in getenv Get Value of Environment Variables The subroutine is called by call getenv ename evalue value character n Output Value of the environment variable found blanks if not successful The size of ename and evalue must be large enough to hold their respective character strings The getenv subroutine searches the environment list for a string of the form ename evalue and returns the value in evalue if such a string is present otherwise it fills evalue with blanks Example Use getenv to print the value of SSHELL character 18 evalue call getenv SHELL evalue write evalue end See also execve 2 and envi
44. eled IF n IT O STOP topen cannot open WRITE topen ok 213 1X Al0 n tlu devnam END The output is topen ok O 1 dev rst0 tclose Write EOF Close Tape Channel Disconnect tlu The function is called by INTEGER 4 tclose n tclose tlu ve ae an Bb ua Return value n 0 OK n0 Error Caution tc1ose places an EOF marker immediately after the current location of the unit pointer and then closes the unit So if you trewin a unit before you tclose it its contents are discarded Example tclose close an opened 1 4 inch tape file CHARACTER devnam 9 dev rst0 INTEGER 4 n 0 tlu 1 tclose topen LOGICAL islabeled false n topen tlu devnam islabeled n tclose tlu IF n IT O STOP tclose cannot close WRITE tclose ok 213 1X A10 ny ELu devnam END The output is 96 Fortran Library Reference Revision A February 1999 tclose ok 0 1 dev rst0 twrite Write Next Physical Record to Tape The function is called by INTEGER 4 twrite n twrite tlu buffer Tape logical unit in range 0 to 7 n INTEGER 4 Return value n50 OK and n the number of bytes written n 0 End of Tape n lt 0 Error The physical record length is the size of buffer Example twrite write a 2 record file CHARACTER devnam 9 dev rst0 m recl 512 abcd amp rec2 512 wxyz INTEGER 4 n O
45. er l inbyte integer 4 c read getfilep unitn 5 external getfilep write 4 a S What is the digit irtn c read getfilep unitn inbyte 1 write 9 inbyte 9 format The digit read by C is a end Sample C function actually using get filep tgetfilepC c include lt stdio h gt int c_read_ fd buf nbytes buf_len FILE fd char buf int nbytes buf_len return fread buf 1 nbytes fd A sample compile build run is demo 11 cc c tgetfilepC c demo 12 77 tgetfilepC o tgetfilepF f tgetfiler f MAIN demo 13 a out What is the digit 3 The digit read by C is 3 demo 14 For more information read the chapter on the C FORTRAN interface in the Fortran Programming Guide See also open 2 FORTRAN Library Routines 31 getlog Get User s Login Name The subroutine is called by call getlog name User s login name or all blanks if the character n Output process is running detached from a terminal n should be large enough to hold the longest name Example get log character 18 name call getlog name write name end www See also getlogin 3 getpid Get Process D The function is called by INTEGER 4 getpid pid getpid O Return value Output Process ID of the current process Example getpid INTEGER 4 getpid pid pid getpid write process id pid end 32 Fortran Library Reference Revi
46. erox Corporation pour la recherche et le d veloppement du concept des interfaces d utilisation visuelle ou graphique pour l industrie de l informatique Sun d tient une licence non exclusive de Xerox sur l interface d utilisation graphique cette licence couvrant aussi les licenci s de Sun qui mettent en place les utilisateurs d interfaces graphiques OPEN LOOK et qui en outre se conforment aux licences crites de Sun 90 est deriv de CRAY CF90 un produit de Silicon Graphics Inc CETTE PUBLICATION EST FOURNIE EN L ETAT SANS GARANTIE D AUCUNE SORTE NI EXPRESSE NI IMPLICITE Y COMPRIS ET SANS QUE CETTE LISTE NE SOIT LIMITATIVE DES GARANTIES CONCERNANT LA VALEUR MARCHANDE L APTITUDE DES PRODUITS A REPONDRE A UNE UTILISATION PARTICULIERE OU LE FAIT QU ILS NE SOIENT PAS CONTREFAISANTS DE PRODUITS DE TIERS Ca GO Adobe PostScript Please Recycle Contents Preface ix FORTRAN Library Routines 1 Data Type Considerations 1 64 Bit Environments 2 abort Terminate and Write Core File 4 access Check File Permissions or Existence 4 alarm Call Subroutine After a Specified Time 5 bit Bit Functions and or bit setbit 6 Usage and or xor not rshift lshift 8 Usage bic bis bit setbit 9 chdir Change Default Directory 9 chmod Change the Mode of a File 10 date Get Current Date as a Character String 11 date_and_time Get Date and Time 12 dtime etime Elapsed Execution Time 14 dt ime Elapsed Time Since t
47. ess status access name mode Output status 0 OK status gt 0 Error code access determines if you can access the file name with the permissions specified by mode access returns zero if the access specified by mode would be successful See also gerror 3F to interpret error codes Set mode to one or more of r w or x in any order or combination where r w x have the following meanings Fortran Library Reference Revision A February 1999 r Test for read permission w Test for write permission x Test for execute permission blank Test for existence of the file Example 1 Test for read write permission INTEGER 4 access status status access taccess data rw if status eq 0 write ok if status ne 0 write cannot read write status Example 2 Test for existence INTEGER 4 access status status access taccess data blank mode if status eq 0 write file exists if status ne 0 write no such file status alarm Call Subroutine After a Specified Time The function is called by INTEGER 4 alarm n alarm time sbrtn time INTEGER 4 Input Number of seconds to wait 0 do not call sbrin Routine name Input Subprogram to execute must be listed in an external statement Output Time remaining on the last alarm FORTRAN Library Routines 5 Example alarm wait 9 seconds then call sbrtn integer 4 alarm time 1 common alar
48. g2 Zero If arg1 is equivalent to arg2 Positive If arg1 is considered to follow arg2 For example demo cat tqsort f external compar integer 2 compar INTEGER 4 array 10 5 1 9 0 8 7 3 4 6 2 len 10 isize 4 call qsort array len isize compar write 10i3 array end integer 2 function compar a b INTEGER 4 a b if a lt b compar 1 if a eq b compar I if a gt b compar 1 return end demo 77 silent tqsort f demo a out 0 1 2 3 4 5 16 7 8 9 FORTRAN Library Routines 77 78 ran Generate a Random Number between 0 and 1 Repeated calls to ran generate a sequence of random numbers with a uniform distribution See Icrans 3m Example ran demo cat ranl f x ranl f Generate random numbers INTEGER 4 i n real r 10 i 760013 do n 1 10 r n ran i end do write 5 11 6 r end demo 77 silent ranl f demo a out 0 222058 0 299851 0 390777 0 607055 0 653188 0 060174 0 149466 0 444353 0 002982 0 976519 demo Note the following m The range includes 0 0 and excludes 1 0 m The algorithm is a multiplicative congruential type general random number generator m In general the value of i is set once during execution of the calling program m The initial value of i should be a large odd integer m Each call to RAN gets the next random number in the sequence Fortran Library Reference Revision A February 1999 m To get a different seq
49. he Last dtime Call 14 et ime Elapsed Time Since Start of Execution 15 exit Terminate a Process and Set the Status 16 fdate Return Date and Time in an ASCII String 17 Contents iii iv flush Flush Output to a Logical Unit 18 fork Create a Copy of the Current Process 19 free Deallocate Memory Allocated by Malloc 20 fseek ftel1 Determine Position and Reposition a File 20 fseek Reposition a File on a Logical Unit 20 ftell Return Current Position of File 22 fseeko64 ftello64 Determine Position and Reposition a Large File 23 fseeko64 Reposition a File on a Logical Unit 23 ftello64 Return Current Position of File 24 getarg iargc Get Command line Arguments 24 getarg Get a Command Line Argument 24 iargc Get the Number of Command Line Arguments 25 getc fgetc Get Next Character 26 getc Get Next Character from stdin 26 f getc Get Next Character from Specified Logical Unit 27 get cwd Get Path of Current Working Directory 28 getenv Get Value of Environment Variables 29 get fd Get File Descriptor for External Unit Number 29 getfilep Get File Pointer for External Unit Number 30 get log Get User s Login Name 32 getpid Get Process ID 32 getuid getgid Get User or Group ID of Process 33 getuid Get User ID of the Process 33 get gid Get Group ID of the Process 33 hostnm Get Name of Current Host 34 idate Return Current Date 34 ieee flags ieee handler sigfpe IEEE Arithmetic 36 f77 floatingpoint h FORTRAN IEFE Definitions
50. he contents of the file are lost Example unlink Remove the tunlink data file call unlink tunlink data end demo 77 silent tunlink f demo 1s tunl tunlink f tunlink data demo a out demo 1s tunl tunlink f demo See also unlink 2 link 3F and perror 3F Note the path names cannot be longer than MAXPATHLEN as defined in lt sys param h gt wait Wait for a Process to Terminate The function is FORTRAN Library Routines 105 INTEGER 4 wait n wait status status Termination status of the child process Return value n50 Process ID of the child process n lt 0 n System error code see wait 2 wait suspends the caller until a signal is received or one of its child processes terminates If any child has terminated since the last wait return is immediate If there are no children return is immediate with an error code Example Code fragment using wait INTEGER 4 n status wait n wait status if n lt O stop wait error end See also wait 2 signal 3F kill 3F and perror 3F 106 Fortran Library Reference Revision A February 1999 Index Index 107
51. ile status eq 0 status getc char write i3 04 3 status char end do end After compiling a sample run of the above source is demo a out ab Program reads letters typed in D terminated by a CONTROL D 0 141 Program outputs status and octal value of the characters entered 0 142 141 represents a 142 is b 0 012 012 represents the RETURN key 1 012 Next attempt to read returns CONTROL D demo 26 Fortran Library Reference Revision A February 1999 For any logical unit do not mix normal FORTRAN input with getc fgetc Get Next Character from Specified Logical Unit The function is called by INTEGER 4 fgetc status fgetc lunit char Return value INTEGER 4 Output status 1 End of File status gt 0 System error code or 77 I O error code Example fgetc gets each character from t fgetc data note the linefeeds Octal 012 character char INTEGER 4 fgetc status open unit 1 file tfgetc data status 0 do while status eq 0 status fgetc 1 char write i3 04 3 status char end do end After compiling a sample run of the above source is demo cat tfgetc data ab yz demo a out 0 141 a read 0 142 b read 0 012 linefeed read FORTRAN Library Routines 27 28 0 171 y read 0 172 z read 0 012 linefeed read 1 012 CONTROL D read demo For any logical unit do not mix normal FORTRAN input with fgetc S
52. ilent tsymlnk f demos ls 1 datal datal not found demo a out demos ls 1 datal lrwxrwxrwx 1 generic 15 Aug 11 11 09 datal gt tlink db data 1 demo See also link 2 symlink 2 perror 3F and unlink 3F Note the path names cannot be longer than MAXPATHLEN as defined in lt sys param h gt loc Return the Address of an Object This intrinsic function is called by k loc arg Return value INTEG Output Address of arg INTEG Returns an INTEGER 8 pointer when compiled to run in a 64 bit environment with xarch v9 See Note below FORTRAN Library Routines 65 Example loc INTEGER 4 k loc real arg 9 0 k loc arg write k end Note Programs compiled to run in a 64 bit environment should declare INTEGER 8 the variable receiving output from the loc function long short Integer Object Conversion long and short handle integer object conversions between INTEGER 4 and INTEGER 2 and is especially useful in subprogram call lists long Convert a Short Integer to a Long Integer The function is called by call ExpecLong long int2 short Convert a Long Integer to a Short Integer The function is 66 Fortran Library Reference Revision A February 1999 INTEGER 2 short call ExpecShort short int4 Example fragment long and short integer 4 int4 8 long integer 2 int2 8 short call ExpecLong long
53. int2 call ExpecShort short int4 end ExpecLong is some subroutine called by the user program that expects a long INTEGER 4 integer argument Similarly ExpecShort expects a short INTEGER 2 integer argument long is useful if constants are used in calls to library routines and the code is compiled with the i2 option short is useful in similar context when an otherwise long object must be passed as a short integer Passing an integer to short that is too large in magnitude does not cause an error but will result in unexpected behavior long jmp iset jmp Return to Location Set by iset jmp iset jmp sets a location for longjmp long jmp returns to that location iset jmp Set the Location for longjmp This intrinsic function is called by FORTRAN Library Routines 67 ival isetjmp env INTEGER 4 env is a 12 element integer array In 64 bit environments it must be declared INTEGER 8 Return value INTEGER 4 ival 0 if iset jmp is called explicitly ival 0 if iset jmp is called through longjmp long jmp Return to the location set by iset jmp The subroutine is called by call longjmp env ival INTEGER 4 Input env is the 12 word integer array initialized by iset jmp In 64 bit environments it must be declared INTEGER 8 INTEGER 4 Output ival 0 if iset jmp is called explicitly ival 0 if iset jmp is called through longjmp Description The iset jmp and
54. is chapter have corresponding man pages in section 3F of the man library For example man s 3F access will display the man page entry for the library routine access Data Type Considerations Unless otherwise indicated the function routines listed here are not intrinsics That means that the type of data a function returns may conflict with the implicit typing of the function name and require explicit type declaration by the user For example getpid returns INTEGER 4 and would require an INTEGER 4 getpid declaration to ensure proper handling of the result Without explicit typing a REAL result would be assumed by default because the function name starts with g As a reminder explicit type statements appear in the function summaries for these routines Be aware that IMPLICIT statements and the r8 12 dbl and xtypemap compiler options also alter the data typing of arguments and the treatment of return values A mismatch between the expected and actual data types in calls to these library routines could cause unexpected behavior Options r8 and db1 promote the data type of INTEGER functions to INTEGER 8 REAL functions to REAL 8 and DOUBLE functions to REAL 16 To protect against these problems function names and variables appearing in library calls should be explicitly typed with their expected sizes as in integer 4 seed getuid real 4 ran seed 70198 val getuid
55. l error getarg iargc Get Command line Arguments getarg and iargc access arguments on the command line after expansion by the command line preprocessor getarg Get a Command Line Argument The subroutine is called by 24 Fortran Library Reference Revision A February 1999 call getarg k arg Index of argument 0 first command name Large enough to hold longest argument iargc Get the Number of Command Line Arguments The function is called by pease O Return value INTEGER 4 Output Number of arguments on the command line Example iargc and getarg get argument count and each argument demo cat yarg f character argv 10 INTEGER 4 i iargc n n iargc dor ispi call getarg i argv 1 write i2 lx a i argv end demo 77 silent yarg f demos a out f DT EES Cot 2 yarg f See also execve 2 and getenv 3F FORTRAN Library Routines 25 getc fgetc Get Next Character getc and fgetc get the next character from the input stream Do not mix calls to these routines with normal Fortran I O on the same logical unit getc Get Next Character from stdin The function is called by INTEGER 4 getc status getc char Return value INTEGER 4 Output status 0 OK status 1 End of file status gt 0 System error code or 77 I O error code Example getc gets each character from the keyboard note the Control D D character char INTEGER 4 getc status status 0 do wh
56. lation Aucune partie de ce produit ou de sa documentation associ e ne peut tre reproduite sous aucune forme par quelque moyen que ce soit sans l autorisation pr alable et crite de Sun et de ses bailleurs de licence s il y en a Des parties de ce produit pourront tre deriv es du syst me UNIX licenci par Novell Inc et du syst me Berkeley 4 3 BSD licenci par l Universit de Californie UNIX est une marque enregistr e aux Etats Unis et dans d autres pays et licenci e exclusivement par X Open Company Ltd Le logiciel d tenu par des tiers et qui comprend la technologie relative aux polices de caract res est prot g par un copyright et licenci par des fournisseurs de Sun Sun Sun Microsystems le logo Sun SunDocs SunExpress Solaris Sun Performance Library Sun Performance WorkShop Fortran Sun Visual WorkShop C Sun WorkShop et Sun WorkShop Professional sont des marques d pos es ou enregistr es de Sun Microsystems Inc aux Etats Unis et dans d autres pays Toutes les marques SPARC utilis es sous licence sont des marques d pos es ou enregistr es de SPARC International Inc aux Etats Unis et dans d autres pays Les produits portant les marques SPARC sont bas s sur une architecture d velopp e par Sun Microsystems Inc TM Les utilisateurs d interfaces graphiques OPEN LOOK et Sun ont t d velopp s de Sun Microsystems Inc pour ses utilisateurs et licenci s Sun reconnait les efforts de pionniers de X
57. long jmp routines are used to deal with errors and interrupts encountered in a low level routine of a program They are 77 intrinsics These routines should be used only as a last resort They require discipline and are not portable Read the man page setjmp 3V for bugs and other details iset jmp saves the stack environment in env It also saves the register environment 68 Fortran Library Reference Revision A February 1999 long jmp restores the environment saved by the last call to iset jmp and returns in such a way that execution continues as if the call to iset jmp had just returned the value ival The integer expression ival returned from iset jmp is zero if Long jmp is not called and nonzero if long jmp is called Example Code fragment using iset jmp and long jmp INTEGER 4 env 12 common jmpblk env j isetjmp env if j eq O then call sbrtnA else call error_processor end if end subroutine sbrtnA INTEGER 4 env 12 common jmpblk env call longjmp env ival return end Restrictions m You must invoke iset jmp before calling Longjmp m The env integer array argument to iset jmp and longjmp must be at least 12 elements long m You must pass the env variable from the routine that calls iset jmp to the routine that calls Long jmp either by common or as an argument m longjmp attempts to clean up the stack long jmp must be called from a lower call level than iset jmp m Passing iset jmp as a
58. m FORTRAN 77 examples appear in tab format while Fortran 90 examples appear in free format Examples common to both FORTRAN 77 and Fortran 90 use tab format except where indicated m Uppercase characters are generally used to show Fortran keywords and intrinsics PRINT and lowercase or mixed case is used for variables TbarX m The Sun FORTRAN compilers are referred to by their command names either 77 or 90 77 90 indicates information that is common to both the FORTRAN 77 and Fortran 90 compilers m References to online man pages appear with the topic name and section number For example a reference to GETENV will appear as getenv 3F implying that the man command to access this page would be man s 3F getenv m System Administrators can install the Sun Fortran compilers and supporting material at install points SUNWspro SC5 0 where xinstall points is usually opt for a standard install This is the location assumed in this book m The FORTRAN 77 standard uses an older convention of spelling the name FORTRAN capitalized Sun documentation uses both FORTRAN and Fortran The current convention is to use lower case Fortran 95 XV xvi Fortran Library Reference Revision A February 1999 CHAPTER 1 FORTRAN Library Routines This chapter describes the Fortran library routines alphabetically See the FORTRAN 77 Language Reference for details on Fortran 77 and VMS intrinsic functions All the routines described in th
59. mcom i external sbrtn i 9 write i nseconds alarm time sbrtn do n 1 100000 Wait until alarm activates sbrtn r n any calculations that take enough time x sqrt r end do write i end subroutine sbrtn common alarmcom i i 3 Do no I O in this routine return end See also alarm 3C sleep 3F and signal 3F Note the following restrictions m A subroutine cannot pass its own name to alarm m The alarm routine generates signals that could interfere with any I O The called subroutine sbrtn must not do any I O itself m Calling alarm from a parallelized or multi threaded FORTRAN program may have unpredictable results bit Bit Functions and or bit SeEtbity xa The definitions are and word1 word2 Computes bitwise and of its arguments or word1 word2 Computes bitwise inclusive or of its arguments xor word1 word2 Computes bitwise exclusive or of its arguments not word Returns bitwise complement of its argument lshift word nbits Logical left shift with no end around carry Fortran Library Reference e Revision A February 1999 rshift word nbits Arithmetic right shift with sign extension call bis bitnum word Sets bit bitnum in word to 1 call bic bitnum word Clears bit bitnum in word to 0 bit bitnum word Tests bit bitnum in word and returns t rue if the bit is 1 false if itis 0 Sets bit bitnum in word to 1 if state i
60. me 24 string ctime stime stime INTEGER 4 Input System time from t ime standard version Return value character 24 Output System time as character string Declare ct ime and string as character 24 The format of the ct ime returned value is shown in the following example It is described in the man page ctime 3C Example ct ime character 24 ctime string INTEGER 4 n time n time string ctime n write ctime string end demo 77 silent tctime f demo a out ctime Wed Dec 9 13 50 05 1998 demo ltime Split System Time to Month Day Local This routine dissects a system time into month day and so forth for the local time zone The subroutine is called by call ltime stime tarray Input System time from time standard version INTEGER 4 9 Output System time local as day month year For the meaning of the elements in tarray see the next section 92 Fortran Library Reference Revision A February 1999 Example 1t ime integer 4 stime tarray 9 time stime time call ltime stime tarray write ltime tarray end demo 77 silent tltime f demo a out Itimeest 25 49 10 12 7 91 1 223 1 demo gmt ime Split System Time to Month Day GMT This routine dissects a system time into month day and so on for GMT The subroutine is call gmtime stime tarray ee Output System time GMT as day
61. month year Example gmt ime integer 4 stime tarray 9 time stime time call gmtime stime tarray write gmtime tarray end demos 77 silent tgmtime f demo a out gmtime 12 44 19 18 5 94 6 168 0 demo Here are the tarray values for ltime and gmtime index units and range FORTRAN Library Routines 93 Seconds 0 61 Year 1900 Minutes 0 59 Day of week Sunday 0 Blours 0 23 Way of year 0 365 Day of month 1 31 Daylight Saving Time 1 if DST in effect Months since January 0 11 These values are defined by the C library routine ctime 3C which explains why the system may return a count of seconds greater than 59 See also idate 3F and fdate 3F ctime64 gmtime64 ltime64 System Time Routines for 64 bit Environments These are versions of the corresponding routines ct ime gmtime and lt ime to provide portability on 64 bit environments They are identical to these routines except that the input variable stime must be INTEGER 8 When used in a 32 bit environment with an INTEGER 8 stime if the value of stime is beyond the INTEGER 4 range ct ime64 returns all asterisks while gmt ime and ltime fill the tarray array with 1 topen tclose tread tstate Tape I O FORTRAN 77 Only These routines provide an alternative way to manipulate magnetic tape Associate a device name with a tape logical unit topen tclose Write EOF close tape devi
62. n argument that is a procedure name does not work See setjmp 3V malloc malloc64 Allocate Memory and Get Address The malloc function is called by FORTRAN Library Routines 69 k malloc n Return value INTEGER 4 or Output k gt 0 k address of the start of the INTEGER 8 block of memory allocated k 0 Error An INTEGER 8 pointer value is returned when compiled for a 64 bit environment with xarch v9 See Note below Note Programs compiled to run on 64 bit environments such as Solaris 7 must declare the malloc function and the variables receiving its output as INTEGER 8 Portability issues can be solved by using malloc64 instead of malloc in programs that must run in both 32 bit or 64 bit environments The function ma1loc64 is provided to make programs portable between 32 bit and 64 bit environments k malloc64 n Return value Output k gt 0 k address of the start of the block of memory allocated k 0 Error These functions allocate an area of memory and return the address of the start of that area In a 64 bit environment this returned byte address may be outside the INTEGER 4 numerical range the receiving variables must be declared INTEGER 8 to avoid truncation of the memory address The region of memory is not initialized in any way and it should not be assumed to be preset to anything especially zero Example Code fragment using malloc
63. n offsets on Solaris 2 6 and Solaris 7 A large file is larger than 2 Gigabytes and therefore a byte position must be represented by a 64 bit integer Use these versions to determine and or reposition large files fseeko64 Reposition a File on a Logical Unit The function is called by INTEGER fseeko64 n fseekob4 lunit offset64 from offset64 INTEGER 8 Input 64 bit offset in bytes relative to position specified by from Input 0 Beginning of file 1 Current position 2 End of file nae kaa ea ak Baa a a Note On sequential files following a call to fseeko64 by an output operation e g WRITE causes all data records following the fseek position to be deleted and replaced by the new data record and an end of file mark Rewriting a record in place can only be done with direct access files Example fseeko64 Reposition MyFile to two bytes from the beginning INTEGER fseeko64 lunit 1 from 0 n INTEGER 8 offset 200 open UNIT lunit FILE MyFile n fseeko64 lunit offset from if n gt O stop fseek error end FORTRAN Library Routines 23 fte11064 Return Current Position of File The function is called by INTEGER 8 ftello64 n ftello64 lunit Return value n gt 0 n Offset in bytes from start of file n lt 0 n System error code Example fte11064 INTEGER 8 ftello64 lunit 1 n open UNIT lunit FILE MyFile n ftellob64 lunit if n lt O stop ftel
64. nction q min normal Function q min subnormal Function q_nextafter x y Function q_quiet_nan n Function q_remainder x y Function q_scalbn x n Function q_signaling_nan n Function a The variables c 1 p s u x and y are of type quadruple precision m Explicitly type these functions with a REAL 16 statement or with an appropriate IMPLICIT statement 58 Fortran Library Reference Revision A February 1999 m sind x asind x take degrees rather than radians If you need to use any other quadruple precision 1 ibm function you can call it using SPRAGMA C fcn before the call For details see the chapter on the C FORTRAN interface in the Fortran Programming Guide libm_single Single Precision Functions These subprograms are single precision 1ibm functions and subroutines In general the functions below provide access to single precision 1 ibm functions that do not correspond to standard FORTRAN generic intrinsic functions data types are determined by the usual data typing rules Samples Single precision 1ibm functions REAL c S Xx Y Z r_acosh x ir_finite x r_hypot x y r_infinity ALL r_sincos x S C ow oa z al z Zz amp These functions need not be explicitly typed with a REAL statement as long as default uU typing holds Variables beginning with r are REAL with i are INTEGER For details on these ro
65. nd licensing information Fortran Library Reference e Revision A February 1999 Sun Visual WorkShop C Overview gives a high level outline of the C package suite Using Sun WorkShop gives information on performing development operations through Sun WorkShop Debugging a Program With dbx provides information on using dbx commands to debug a program Analyzing Program Performance with Sun WorkShop describes the profiling tools LoopTool LoopReport LockLint utilities and the Sampling Analyzer to enhance program performance Sun WorkShop TeamWare User s Guide describes how to use the Sun WorkShop TeamWare code management tools Solaris Books The following Solaris manuals and guides provide additional useful information The Solaris Linker and Libraries Guide gives information on linking and libraries The Solaris Programming Utilities Guide provides information for developers about the special built in programming tools available in the SunOS system Ordering Sun Documents The SunDocs program provides more than 250 manuals from Sun Microsystems Inc If you live in the United States Canada Europe or Japan you can purchase documentation sets or individual manuals using this program For a list of documents and how to order them see the catalog section of the SunExpress Internet site at http www sun com sunexpress Accessing Sun Documents Online Sun WorkShop documentation is available online f
66. ng files E Return value n 0 OK n lt 0 Error This function does not skip backward First the function skips forward over nf end of file marks Then it skips forward over nr physical records If the current file is at EOF this counts as one file to skip This function also resets the EOF status Example tskipf typical fragment skip four files and then skip one record INTEGER 4 nfiles 4 nrecords 1 tskipf tlu 1 n tskipf tlu nfiles nrecords IF n LT O STOP tskipf cannot skip Compare with tstate tstate Get Logical State of Tape I O Channel The function is called by 100 Fortran Library Reference Revision A February 1999 INTEGER 4 tstate n tstate tlu fileno recno errf eoff eotf tcsr I L True the current file is at EOF LOGICAI True tape has reached logical end of tape tesr INTEGER 4 Output True hardware errors on the device It contains the tape drive control status register If the error is software then tcsr is returned as zero The values returned in this status register vary grossly with the brand and size of tape drive For details see st 4s While eoff is true you cannot read from that tlu You can set this EOF status flag to false by using tskipf to skip one file and zero records n tskipf tlu 1 0 Then you can read any valid record that follows End of tape EOT is indicated by an empty file often referred
67. ng the 2 digit year from subroutine date is not safe after year 2000 The date today is 9 Jul 98 demo See also idate and date and time date and time Get Date and Time This is a FORTRAN 77 version of the Fortran 90 intrinsic routine and is Year 2000 safe The date and time subroutine returns data from the real time clock and the date Local time is returned as well as the difference between local time and Universal Coordinated Time UTC also known as Greenwich Mean Time GMT The date and time subroutine is called by 12 Fortran Library Reference Revision A February 1999 call date and time date time zone values date CHARACTER 8 Output Date in form CCYYMMDD where CCYY is the four digit year MM the two digit month and DD the two digit day of the month For example 19980709 time CHARACTER 10 Output The current time in the form hhmmss sss where hh is the hour mm minutes and ss sss seconds and milliseconds zone CHARACTER 5 Output The time difference with respect to UTC expressed in hours and minutes in the form hhmm values INTEGER 4 VALUES Output An integer array of 8 elements described below The eight values returned in the INTEGER 4 values array are VALUES 1 The year as a 4 digit integer For example 1998 VALUES 2 The month as an integer from 1 to 12 VALUES 3 The day of the month as an integer from 1 to 31 VALUES 4 The time difference in minute
68. nit true false false FORT false You can assign file name in at least two ways In sh demo FORT01 mydata demo FORT12 myresults demo export FORT01 FORT12 demo myprogram 46 Fortran Library Reference Revision A February 1999 In csh demo setenv FORTO1 mydata demo setenv FORT12 myresults demo myprogram With either shell the ioinit call in the above example gives these results m Open logical unit 1 to the file mydata m Open logical unit 12 to the file myresults m Both files are positioned at their beginning m Any formatted output has column 1 removed and interpreted as carriage control m Embedded and trailing blanks are to be ignored on input Example ioinit list and compile demo cat tioinit f character 3 s call ioinit true false false FORT false do i 1 2 read 1 a3 i4 s n write 12 10 s n end do 10 format a3 i4 end demo cat tioinit data abc 123 PDQ 789 demo 77 silent tioinit f demo You can set environment variables as follows using either sh or csh ioinit sh demos FORT01 tioinit data demos FORT12 tioinit au demos export FORT01 FORT12 demos ioinit csh demo a out demo cat tioinit au abc 123 PDQ 789 ioinit Run and test FORTRAN Library Routines 47 demo a out demo cat tioinit au abc 123 PDQ 789 itime Current Time itime puts the current system time into an integer array hour minute and
69. nuse Function Function Bessel Function Function Function Function Function Function Function Function Function Function Function Function FORTRAN Library Routines 53 TABLE 1 5 Double Precision libm Functions continued d addran Function random number d addrans x p 1 u Subroutine generators d_lcran Function d icrans x p L iw Subroutine d_shufrans x p 1l1 u Subroutine Function log gamma Function Function Function 54 Fortran Library Reference Revision A February 1999 TABLE 1 5 Double Precision libm Functions continued d max normal Function d max subnormal Function d min normal Function d min subnormal I Function d nextafter x y Function d quiet nan n Function d remainder x y I Function d_rint x Function d_scalb x y Function d_scalbn x n 1 Function d signaling nan n Function d significand x Function Function Function hyperb sine Function Function Function FORTRAN Library Routines 55 TABLE 1 5 Double Precision libm Functions continued d_sincos x s c Subroutine sine and cosine d sincosd x Si e Subroutine d_sincosp x Ss C Subroutine d_sincospi x s c Subroutine Function tangent Function k h bt Function yper Br Function Function Function bessel Function Function
70. pen UNIT lunit FILE MyFile n fseek lunit offset from if n gt O stop fseek error end Example Same example in a 64 bit environment and compiled with xarch v9 INTEGER 4 fseek lunit 1 from 0 n INTEGER 8 offset 2 open UNIT lunit FILE MyFile n fseek lunit offset from if n gt O stop fseek error end FORTRAN Library Routines 21 ftell Return Current Position of File The function is called by INTEGER 4 ftell n ftell lunit Return value n gt 0 n Offset in bytes from start of file or n lt 0 n System error code INTEGER 8 An INTEGER 8 offset value is returned when compiling for a 64 bit environment such as Solaris 7 with xarch v9 ftell and variables receiving this return value should be declared INTEGER 8 Example ftell INTEGER 4 ftell lunit 1 n open UNIT lunit FILE MyFile n ftell lunit if n lt O stop ftell error Example Same example in a 64 bit environment and compiled with xarch v9 INTEGER 4 lunit 1 INTEGER 8 ftell n open UNIT lunit FILE MyFile n ftell lunit if m lt O stop ftell error See also fseek 3S and perror 3F also fseeko64 3F ftello64 3F 22 Fortran Library Reference Revision A February 1999 fseekob4 ftello64 Determine Position and Reposition a Large File fseeko64 and ftello 4 are large file versions of fseek and ftell They take and return INTEGER file positio
71. r strings inmax Return Maximum Positive Integer The function is called by Return value Output The maximum positive integer Example inmax INTEGER 4 inmax m m inmax write m end demo 77 silent tinmax f demos a out 2147483647 demo See also libm_single 3F and libm_double 3F See also the intrinsic function ephuge described in the FORTRAN 77 Language Reference Manual FORTRAN Library Routines 43 ioinit Initialize I O Properties The IOINIT routine FORTRAN 77 only establishes properties of file I O for files opened after the call to IOINIT The file I O properties that IOINIT controls are as follows m Carriage control Recognize carriage control on any logical unit m Blanks zeroes Treat blanks in input data fields as blanks or zeroes m File position Open files at beginning or at end of file m Prefix Find and open files named prefixNN 0 NN 19 IOINIT does the following m Initializes global parameters specifying 77 file I O properties m Opens logical units 0 through 19 with the specified file I O properties attaches externally defined files to logical units at runtime Persistence of File I O Properties The file I O properties apply as long as the connection exists If you close the unit the properties no longer apply The exception is the preassigned units 5 and 6 to which carriage control and blanks zeroes apply at any time Internal Flags IOINIT u
72. rom several sources The docs sun com Web site AnswerBook2 collections HTML documents Online help and release notes xi Using the docs sun com Web site The docs sun com Web site enables you to access Sun technical documentation online You can browse the docs sun com archive or search for a specific book title or subject The URL is http docs sun com Accessing AnswerBook2 Collections The Sun WorkShop documentation is also available using AnswerBook2 software To access the AnswerBook2 collections your system administrator must have installed the AnswerBook2 documents during the installation process if the documents are not installed see your system administrator or Chapter 3 of Sun WorkShop Quick Install for installation instructions For information about accessing AnswerBook2 documents see Chapter 6 of Sun WorkShop Quick Install Solaris installation documentation or your system administrator Note To access AnswerBook2 documents Solaris 2 5 1 users must first download AnswerBook2 documentation server software from a Sun Web page For more information see Chapter 6 of Sun WorkShop Quick Install Accessing HTML Documents The following Sun Workshop documents are available online only in HTML format m Tools h Class Library Reference m Tools h User s Guide m Numerical Computation Guide m Standard C Library User s Guide m Standard C Class Library Reference m Sun WorkShop Performance Library Referen
73. ron 5 get fd Get File Descriptor for External Unit Number The function is called by FORTRAN Library Routines 29 INTEGER 4 getfd fildes getfA unitn Return value INTEG File descriptor if file is connected INTEG 1 if file is not connected An INTEGER 8 result is returned when compiling for 64 bit environments Example get fd INTEGER 4 fildes getfd unitn 1 open unitn file tgetfd data fildes getfd unitn if fildes eq 1 stop getfd file not connected write file descriptor fildes end See also open 2 getfilep Get File Pointer for External Unit Number The function is irtn c_read getfilep unitn inbyte 1 c read C function Input User s own C function See 7 example getfilep INTEG Return value File pointer if the file is connected INTEG 1 if the file is not connected An INTEGER 8 value is returned when compiling for 64 bit environments 30 Fortran Library Reference Revision A February 1999 This function is used for mixing standard FORTRAN I O with C I O Such a mix is nonportable and is not guaranteed for subsequent releases of the operating system or FORTRAN Use of this function is not recommended and no direct interface is provided You must create your own C routine to use the value returned by getfilep A sample C routine is shown below Example FORTRAN uses get filep by passing it to a C function tgetfilepF f charact
74. rrent run is single processor FORTRAN Library Routines 15 m Defined and in the range 1 2 3 the current run is multiple processor m Defined but some value other than 1 2 3 the results are unpredictable The function is called by e etime tarray tarray real 2 Output e 1 0 Error tarray values are undefined e 1 0 Single Processor User time in tarray 1 System time in tarray 2 Multiple Processor Wall clock time in tarray 1 0 0 in tarray 2 Return value real e 1 0 Error e 1 0 The sum of tarray 1 and tarray 2 Take note that the initial call to etime will be inaccurate It merely enables the system clock Do not use the value returned by the initial call to etime Example et ime single processor real e etime t 2 e etime t Startup etime do not use result do i 1 10000 k k 1 end do e etime t print elapsed e user t 1 sys t 2 end demo 77 silent tetime f demo a out elapsed 0 190000 user 6 00000E 02 sys 0 130000 demo See also times 2 f77 1 and the Fortran Programming Guide exit Terminate a Process and Set the Status The subroutine is called by Fortran Library Reference Revision A February 1999 call exit status Example exit if dx lte O call exit O end exit flushes and closes all the files in the process and notifies the parent process if it is executing a wait The lo
75. s with respect to UTC VALUES 5 The hour of the day as an integer from 1 to 23 VALUES 6 The minutes of the hour as an integer from 1 to 59 VALUES 7 The seconds of the minute as an integer from 0 to 60 VALUES 8 The milliseconds of the second in range 0 to 999 An example using date_and_time demo cat dtm f integer date time 8 FORTRAN Library Routines 13 14 character 10 b 3 call date_and_time b 1 b 2 b 3 date_time print date_time array values print year date_time 1 print month_of_year date_time 2 print day of month date time 3 print time difference in minutes date_time 4 print hour of day date time 5 print minutes of hour date time 6 print 4 seconds of minute date_time 7 print milliseconds of second date time 8 print 4 DATE b 1 print 4 TIME b 2 print 4 ZONE b 3 end When run on a computer in California USA on July 9 1998 it generated the following output date time array values year 1998 month_of_year 7 day_of_month 9 time difference in minutes 420 hour of day 17 minutes of hour 8 seconds of minute 54 milliseconds of second 587 DATE 19980709 TIME 170854 587 ZONE 0700 dt ime etime Elapsed Execution Time Both functions have return values of elapsed time or 1 0 as error indicator The time is in seconds The resolution is to a nanosecond dt ime Elapsed Time Since the Last dt
76. s 45 cctl Carriage Control By default carriage control is not recognized on any logical unit If cctl is TRUE then carriage control is recognized on formatted output to all logical units except unit 0 the diagnostic channel Otherwise the default is restored bzro Blanks By default trailing and embedded blanks in input data fields are ignored If bzro is TRUE then such blanks are treated as zeros Otherwise the default is restored apnd Append By default all files opened for sequential access are positioned at their beginning It is sometimes necessary or convenient to open at the end of file so that a write will append to the existing data If apnd is TRUE then files opened subsequently on any logical unit are positioned at their end upon opening A value of FALSE restores the default behavior prefix Automatic File Connection If the argument prefix is a nonblank string then names of the form prefixNN are sought in the program environment The value associated with each such name found is used to open the logical unit NN for formatted sequential access This search and connection is provided only for NN between 0 and 19 inclusive For NN gt 19 nothing is done see Source Code on page 44 vrbose IOINIT Activity If the argument vrbose is TRUE then IOINIT reports on its own activity Example The program myprogram has the following ioinit call call ioi
77. s nonzero and call setbit bitnum word state clears it otherwise The alternate external versions for MIL STD 1753 are iand m n Computes the bitwise and of its arguments ior m n Computes the bitwise inclusive or of its arguments ieor m n Computes the bitwise exclusive or of its arguments ishft m k Isa logical shift with no end around carry left if k50 right if k lt 0 ishftc m k Circular shift right most ic bits of m are left shifted circularly k places ic ibits m i Extracts bits from m starting at bit i extracts len bits len ibset m i Sets bit return value is equal to word m with bit number i set to 1 ibclr m i Clears bit return value is equal to word m with bit number i set to 0 btest m i Tests biti in m returns true if the bit is 1 and false if it is 0 See also mvbits Move a Bit Field on page 71 and the chapter on Intrinsic Functions in the FORTRAN 77 Reference Manual FORTRAN Library Routines 7 Usage ahd or Xor not rshi te rshift For the intrinsic functions x and word1 word2 x or word1 word2 x xor word1 word2 x not word x rshift word nbits x lshift word nbits word word1 word2 nbits are integer input arguments These are intrinsic functions expanded inline by the compiler The data type returned is that of the first argument No test is made for a reasonable value of nbits Example and or xor not
78. s only mode in inexact or division or exception underflow or overflow or invalid or all or common out is unused returns 0 d iang ci mode in nearest or tozero or action set a kba Naats ng a direction positive or negative set floating point mode in mode in extended or double or out is unused returns 0 precision on single x86 only mode in inexact or division or exception underflow or overflow or invalid or all or common FORTRAN Library Routines 37 TABLE 1 3 ieee_flags action mode in out Parameters and Actions continued 3 PTE mode out nearest or tozero or action get Nga tak Ni AAP TY ra direction positive or negative test mode settings mode out extended or double in out may be blank or one of the precision on or single settings to test returns the current x86 only setting depending on mode or not available The function returns mode out inexact or division or 0 or the current exception flags if exception underflow or overflow or mode exception invalid or all or common TABLE 1 4 ieee_handler action in out Parameters 3 hi in inexact or division or action clear clear user exception handing of in out tanderiow 5 HAH is unused underflow or overflow or invalid or all or common nay F in inexact or division or action set set user exception handing of in
79. second The subroutine is called by call itime iarray INTEGER 4 Output 3 element array iarray iarray 1 hour iarray 2 minute iarray 3 second Example it ime demo cat titime f INTEGER 4 iarray 3 call itime iarray write The time is 3i5 iarray end demo 77 silent titime f demo a out The time is 15 42 35 See also time 3F ctime 3F and fdate 3F kill Send a Signal to a Process The function is called by 48 Fortran Library Reference Revision A February 1999 status kill pid signum pid Input Process ID of one of the user s processes signum Valid signal number See signal 3 Return value Output status 0 OK status gt 0 Error code Example fragment Send a message using kill INTEGER 4 kill pid signum status kill pid signum if status ne O stop kill error write Sent signal signum to process pid end The function sends signal signum and integer signal number to the process pid Valid signal numbers are listed in the C include file usr include sys signal h See also kill 2 signal 3 signal 3F fork 3F and perror 3F libm Math Functions The following functions and subroutines are part of the math library libm Some routines are intrinsics and return the same data type single precision double precision or quad precision as their argument The rest are non intrinsics that take a specific d
80. ses labeled common to communicate with the runtime I O system It stores internal flags in the equivalent of the following labeled common block INTEGER 2 IEOF ICTL IBZR COMMON __IOIFLG IEOF ICTL IBZR Not in user name space In releases prior to SC 3 0 1 the labeled common block was named IOIFLG The name changed subsequently to _ _IOIFLG to prevent conflicts with any user defined common blocks Source Code Some user needs are not satisfied with a generic version of IOINIT so we provide the source code It is written in FORTRAN 77 The location is Fortran Library Reference e Revision A February 1999 lt install gt SUNWspro SC5 0 src ioinit f where lt install gt is usually opt for a standard installation of the Sun Fortran software package Usage ioinit The ioinit subroutine is called by call ioinit cctl bzro apnd prefix vrbose cetl logical Input True Recognize carriage control all formatted output except unit 0 bzro True Treat trailing and imbedded blanks as zeroes apnd True Open files at EoF Append prefix character n Input Nonblank For unit NN seek and open file prefixNN See also getarg 3F and getenv 3F Restrictions Note the following restrictions m prefix can be no longer than 30 characters m A path name associated with an environment name can be no longer than 255 characters Description of Arguments These are the arguments for ioinit FORTRAN Library Routine
81. sion A February 1999 See also getpid 2 getuid getgid Get User or Group ID of Process getuid and getgid get the user or group ID of the process respectively getuid Get User ID of the Process The function is called by INTEGER 4 getuid uid getuid getgid Get Group ID of the Process The function is called by INTEGER 4 getgid gid getgid O Return value Group ID of the process Example getuid and getpid INTEGER 4 getuid getgid gid uid uid getuid gid getgid write uid gid end FORTRAN Library Routines 33 See also getuid 2 hostnm Get Name of Current Host The function is called by INTEGER 4 hostnm status hostnm name character n Name of current host system n must be large enough to hold the host name Return value INTEGER 4 status 0 OK status50 Error Example hostnm INTEGER 4 hostnm status character 8 name status hostnm name write host name name end ww See also gethostname 2 idate Return Current Date idate has two versions m Standard Put the current system date into an integer array day month and year a VMS Put the current system date into three integer variables month day and year This version is not Year 2000 Safe 34 Fortran Library Reference Revision A February 1999 The 1V77 compiler option request the VMS library and links the VMS versions of both time and i
82. t Detected System Error 73 ierrno Get Number for Last Detected System Error 73 putc fputc Write a Character to a Logical Unit 74 putc Write to Logical Unit 6 74 fputc Write to Specified Logical Unit 75 qsort qsort 64 Sort the Elements of a One dimensional Array 76 ran Generate a Random Number between 0 and 1 78 rand drand irand Return Random Values 79 rename Rename a File 80 secnds Get System Time in Seconds Minus Argument 81 sh Fast Execution of an sh Command 82 signal Change the Action for a Signal 83 sleep Suspend Execution for an Interval 84 stat lstat fstat Get File Status 85 stat Get Status for File by File Name 85 fstat Get Status for File by Logical Unit 86 lstat Get Status for File by File Name 87 Detail of Status Array for Files 87 stat64 lstat64 fstat64 Get File Status 88 system Execute a System Command 88 time ctime ltime gmtime Get System Time 90 vi Fortran Library Reference Revision A February 1999 time Get System Time 90 ctime Convert System Time to Character 91 ltime Split System Time to Month Day Local 92 gmt ime Split System Time to Month Day GMT 93 ctime64 gmtime64 ltime64 System Time Routines for 64 bit Environments 94 topen tclose tread tstate Tapel O 94 topen Associate a Device with a Tape Logical Unit 95 tclose Write EOF Close Tape Channel Disconnect tlu 96 twrite Write Next Physical Record to Tape 97 tread Read Next Physical Record
83. tatb 13 open unit lunit file name ierr stat name statb if ierr ne 0 stop Stat error write UID of owner statb 5 blocks statb 13 end fstat Get Status for File by Logical Unit The function INTEGER 4 fstat ierr fstat lunit statb statb Output Status for the file 13 element array Return value Output ierr 0 OK ierr gt 0 Error code Fortran Library Reference e Revision A February 1999 is called by Example 2 fstat character name 18 MyFile INTEGER 4 fstat lunit 1 statb 13 open unit lunit file name ierr fstat lunit statb if ierr ne O stop fstat error write UID of owner statb 5 blocks statb 13 end lstat Get Status for File by File Name The function is called by ierr lstat name statb Output Status array of file 13 elements Return value INTEGER 4 Output ierr 0 OK ierr gt 0 Error code Example 3 lstat character name 18 MyFile INTEGER 4 lstat lunit 1 statb 13 open unit lunit file name ierr lstat name statb if ierr ne O stop Istat error write UID of owner statb 5 blocks statb 13 end Detail of Status Array for Files The meaning of the information returned in the INTEGER 4 array statb is as described for the structure stat under stat 2 Spare values are not included The order is shown in the following table FORTRAN Library Routines
84. to as a double EOF mark You cannot read past EOT but you can write past it Example Write three files of two records each CHARACTER devnam 10 dev nrst0 amp fOrec1 512 eins f0rec2 512 zwei amp flrec14512 ichi flrec2 512 ni__ amp f2rec14512 Tun f2rec2 512 deux INTEGER 4 n O tlu 1 tclose topen trewin twrite LOGICAL islabeled false n topen tlu devnam islabeled n trewin tlu n twrite tlu fOrecl n twrite tlu f0rec2 Il FORTRAN Library Routines 101 n tclose tlu n topen tlu devnam islabeled n twrite tlu flrecl n twrite tlu flrec2 n tclose tlu n topen tlu devnam islabeled n twrite tlu f2recl n twrite tlu f2rec2 n tclose tlu END The next example uses tstate to trap EOF and get at all files Example Use tstate in a loop that reads all records of the 3 files written in the previous example CHARACTER devnam 10 dev nrst0 m onerec 512 INTEGER 4 f n O tlu 1 tcsr topen tread amp trewin tskipf tstate LOGICAL errf eoff eotf islabeled false n topen tlu devnam islabeled n tstate tlu fn rn errf eoff eotf tcsr WRITE 1 open fn rn errf eoff eotf tcsr 1 FORMAT 1X A10 212 1X IL 1X 1L 1X IL 1X 12 2 FORMAT 1X Al0 1X A4 1X 212 1X 1L 1X 1L 1X 1L 1X 12 n trewin tlu n tstate
85. uence of random numbers each time you run the program you must set the argument to a different initial value for each run m The argument is used by RAN to store a value for the calculation of the next random number according to the following algorithm SEED 6909 SEED 1 MOD 24432 m SEED contains a 32 bit number and the high order 24 bits are converted to floating point and that value is returned rand drand irand Return Random Values rand returns real values in the range 0 0 through 1 0 drand returns double precision values in the range 0 0 through 1 0 irand returns positive integers in the range 0 through 2147483647 These functions use random 3 to generate sequences of random numbers The three functions share the same 256 byte state array The only advantage of these functions is that they are widely available on UNIX systems For better random number generators compare lcrans addrans and shufrans See also random 3 and the Numerical Computation Guide i irand k r rand k d drand k k INTEGER 4 Input k 0 Get next random number in the sequence k 1 Restart sequence return first number k gt 0 Use as a seed for new sequence return first number FORTRAN Library Routines 79 80 Example irand integer 4 v 5 iflag 0 do i 1 5 v i irand iflag end do write v end demo f77 silent trand f demo a out 2078917053 143302914 1027100827 1953210302
86. utines see the C math library man pages 3M For example for r_acos x see the acos 3M man page FORTRAN Library Routines 59 60 TABLE 1 7 Single Precision 1ibm functions r_acos x F Function cosine r_acosd x Function r_acosh x F Function r_acosp x Function r_acospi x F Function r_atan x F Function tangent r_atand x Function r_atanh x F Function r_atanp x Function r_atanpi x F Function r_asin x F Function r_asind x Function r_asinh x Function r_asinp x Function r_asinpi x F Function r_atan2 y x F Function tangent r_atan2d y x Function r_atan2pi y x F Function r_cbrt x Function cube root r_ceil x F Function ceiling r_copysign x y Function Fortran Library Reference e Revision A February 1999 TABLE 1 7 Single Precision 1ibm functions r expml x r_floor x r hypot x y r_infinity r_j0 x r_ji x r_jn x ir_finite x ir fp class x ir ilogb x ir irint x ir isinf x ir isnan x ir isnormal x ir issubnormal x ir iszero x ir signbit x continued Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function Function cosine hyperb
87. w order 8 bits of status are available to the parent process These 8 bits are shifted left 8 bits and all other bits are zero Therefore status should be in the range of 256 65280 This call will never return The C function exit can cause cleanup actions before the final system exit Calling exit without an argument causes a compile time warning message and a zero will be automatically provided as an argument See also exit 2 fork 2 fork 3F wait 2 wait 3F fdate Return Date and Time in an ASCI String The subroutine or function is called by call fdate string or FORTRAN Library Routines 17 If used as a function the calling routine must define the type and size of fdate CHARACTER fdate 24 string fdate Example 1 fdate as a subroutine character 24 string call fdate string write string end Output Wed Aug 3 15 30 23 1994 Example 2 fdate as a function same output character 24 fdate write fdate end See also ctime 3 time 3F and idate 3F flush Flush Output to a Logical Unit The subroutine is called by call flush lunit The flush subroutine flushes the contents of the buffer for the logical unit lunit to the associated file This is most useful for logical units 0 and 6 when they are both associated with the console terminal See also fclose 3S 18 Fortran Library Reference Revision A February 1999 fork Create a Copy of the
Download Pdf Manuals
Related Search
Related Contents
Guía rápida de instalación y programación Español Elementos de la MANUAL TÉCNICO DE JUDO HD-RX514 Oracle Communications Unified Inventory Management Licensing Brésil : le coup d`état sans « Impeachment », mode d`emploi – suite MHLP 2000 - Meister Werkzeuge 光ファイバーを利用したテレビ視聴 SP2-1-143-34 - Publications du gouvernement du Canada Copyright © All rights reserved.
Failed to retrieve file