Using GNU Fortran

Total Page:16

File Type:pdf, Size:1020Kb

Using GNU Fortran Using GNU Fortran For gcc version 4.8.2 (GCC) The gfortran team Published by the Free Software Foundation 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA Copyright c 1999-2013 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being \Funding Free Software", the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled \GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Short Contents 1 Introduction ::::::::::::::::::::::::::::::::::::::::: 1 Invoking GNU Fortran 2 GNU Fortran Command Options :::::::::::::::::::::::: 7 3 Runtime: Influencing runtime behavior with environment variables ::::::::::::::::::::::::::::::::::::::::::: 27 Language Reference 4 Fortran 2003 and 2008 Status :::::::::::::::::::::::::: 33 5 Compiler Characteristics :::::::::::::::::::::::::::::: 37 6 Extensions :::::::::::::::::::::::::::::::::::::::::: 41 7 Mixed-Language Programming ::::::::::::::::::::::::: 53 8 Intrinsic Procedures :::::::::::::::::::::::::::::::::: 65 9 Intrinsic Modules ::::::::::::::::::::::::::::::::::: 217 Contributing ::::::::::::::::::::::::::::::::::::::::::: 221 GNU General Public License :::::::::::::::::::::::::::::: 225 GNU Free Documentation License ::::::::::::::::::::::::: 237 Funding Free Software ::::::::::::::::::::::::::::::::::: 245 Option Index :::::::::::::::::::::::::::::::::::::::::: 247 Keyword Index ::::::::::::::::::::::::::::::::::::::::: 249 iii Table of Contents 1 Introduction::::::::::::::::::::::::::::::::::::: 1 1.1 About GNU Fortran ::::::::::::::::::::::::::::::::::::::::::: 1 1.2 GNU Fortran and GCC :::::::::::::::::::::::::::::::::::::::: 2 1.3 Preprocessing and conditional compilation :::::::::::::::::::::: 2 1.4 GNU Fortran and G77 ::::::::::::::::::::::::::::::::::::::::: 3 1.5 Project Status ::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.6 Standards :::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.6.1 Varying Length Character Strings ::::::::::::::::::::::::: 4 Part I: Invoking GNU Fortran :::::::::::::::::::: 5 2 GNU Fortran Command Options ::::::::::::: 7 2.1 Option summary ::::::::::::::::::::::::::::::::::::::::::::::: 7 2.2 Options controlling Fortran dialect ::::::::::::::::::::::::::::: 8 2.3 Enable and customize preprocessing ::::::::::::::::::::::::::: 11 2.4 Options to request or suppress errors and warnings :::::::::::: 14 2.5 Options for debugging your program or GNU Fortran:::::::::: 18 2.6 Options for directory search ::::::::::::::::::::::::::::::::::: 18 2.7 Influencing the linking step:::::::::::::::::::::::::::::::::::: 19 2.8 Influencing runtime behavior :::::::::::::::::::::::::::::::::: 19 2.9 Options for code generation conventions ::::::::::::::::::::::: 20 2.10 Environment variables affecting gfortran :::::::::::::::::::: 26 3 Runtime: Influencing runtime behavior with environment variables:::::::::::::::::::::::: 27 3.1 TMPDIR|Directory for scratch files :::::::::::::::::::::::::::: 27 3.2 GFORTRAN_STDIN_UNIT|Unit number for standard input :::::: 27 3.3 GFORTRAN_STDOUT_UNIT|Unit number for standard output :::: 27 3.4 GFORTRAN_STDERR_UNIT|Unit number for standard error:::::: 27 3.5 GFORTRAN_UNBUFFERED_ALL|Do not buffer I/O on all units:::: 27 3.6 GFORTRAN_UNBUFFERED_PRECONNECTED|Do not buffer I/O on preconnected units::::::::::::::::::::::::::::::::::::::::::::: 27 3.7 GFORTRAN_SHOW_LOCUS|Show location for runtime errors :::::: 27 3.8 GFORTRAN_OPTIONAL_PLUS|Print leading + where permitted :: 28 3.9 GFORTRAN_DEFAULT_RECL|Default record length for new files :: 28 3.10 GFORTRAN_LIST_SEPARATOR|Separator for list output :::::::: 28 3.11 GFORTRAN_CONVERT_UNIT|Set endianness for unformatted I/O ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 28 3.12 GFORTRAN_ERROR_BACKTRACE|Show backtrace on run-time errors ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 29 Part II: Language Reference ::::::::::::::::::::: 31 iv The GNU Fortran Compiler 4 Fortran 2003 and 2008 Status :::::::::::::::: 33 4.1 Fortran 2003 status ::::::::::::::::::::::::::::::::::::::::::: 33 4.2 Fortran 2008 status ::::::::::::::::::::::::::::::::::::::::::: 34 4.3 Technical Specification 29113 Status ::::::::::::::::::::::::::: 36 5 Compiler Characteristics ::::::::::::::::::::: 37 5.1 KIND Type Parameters ::::::::::::::::::::::::::::::::::::::: 37 5.2 Internal representation of LOGICAL variables ::::::::::::::::: 37 5.3 Thread-safety of the runtime library ::::::::::::::::::::::::::: 38 5.4 Data consistency and durability ::::::::::::::::::::::::::::::: 38 6 Extensions ::::::::::::::::::::::::::::::::::::: 41 6.1 Extensions implemented in GNU Fortran :::::::::::::::::::::: 41 6.1.1 Old-style kind specifications :::::::::::::::::::::::::::::: 41 6.1.2 Old-style variable initialization ::::::::::::::::::::::::::: 41 6.1.3 Extensions to namelist ::::::::::::::::::::::::::::::::::: 42 6.1.4 X format descriptor without count field ::::::::::::::::::: 43 6.1.5 Commas in FORMAT specifications ::::::::::::::::::::::::: 43 6.1.6 Missing period in FORMAT specifications ::::::::::::::::::: 43 6.1.7 I/O item lists :::::::::::::::::::::::::::::::::::::::::::: 43 6.1.8 Q exponent-letter ::::::::::::::::::::::::::::::::::::::::: 43 6.1.9 BOZ literal constants::::::::::::::::::::::::::::::::::::: 43 6.1.10 Real array indices ::::::::::::::::::::::::::::::::::::::: 44 6.1.11 Unary operators :::::::::::::::::::::::::::::::::::::::: 44 6.1.12 Implicitly convert LOGICAL and INTEGER values :::::::::: 44 6.1.13 Hollerith constants support:::::::::::::::::::::::::::::: 44 6.1.14 Cray pointers ::::::::::::::::::::::::::::::::::::::::::: 45 6.1.15 CONVERT specifier:::::::::::::::::::::::::::::::::::::::: 47 6.1.16 OpenMP:::::::::::::::::::::::::::::::::::::::::::::::: 47 6.1.17 Argument list functions %VAL, %REF and %LOC :::::::::::: 48 6.2 Extensions not implemented in GNU Fortran :::::::::::::::::: 49 6.2.1 STRUCTURE and RECORD ::::::::::::::::::::::::::::::::::: 49 6.2.2 ENCODE and DECODE statements ::::::::::::::::::::::::::: 50 6.2.3 Variable FORMAT expressions :::::::::::::::::::::::::::::: 51 6.2.4 Alternate complex function syntax:::::::::::::::::::::::: 51 7 Mixed-Language Programming::::::::::::::: 53 7.1 Interoperability with C :::::::::::::::::::::::::::::::::::::::: 53 7.1.1 Intrinsic Types ::::::::::::::::::::::::::::::::::::::::::: 53 7.1.2 Derived Types and struct::::::::::::::::::::::::::::::::: 53 7.1.3 Interoperable Global Variables:::::::::::::::::::::::::::: 54 7.1.4 Interoperable Subroutines and Functions:::::::::::::::::: 54 7.1.5 Working with Pointers ::::::::::::::::::::::::::::::::::: 55 7.1.6 Further Interoperability of Fortran with C :::::::::::::::: 58 7.2 GNU Fortran Compiler Directives ::::::::::::::::::::::::::::: 59 7.3 Non-Fortran Main Program ::::::::::::::::::::::::::::::::::: 59 7.3.1 _gfortran_set_args | Save command-line arguments ::: 60 v 7.3.2 _gfortran_set_options | Set library option flags::::::: 60 7.3.3 _gfortran_set_convert | Set endian conversion :::::::: 61 7.3.4 _gfortran_set_record_marker | Set length of record markers :::::::::::::::::::::::::::::::::::::::::::::::::::: 62 7.3.5 _gfortran_set_fpe | Enable floating point exception traps :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 62 7.3.6 _gfortran_set_max_subrecord_length | Set subrecord length :::::::::::::::::::::::::::::::::::::::::::::::::::::: 62 8 Intrinsic Procedures::::::::::::::::::::::::::: 65 8.1 Introduction to intrinsic procedures ::::::::::::::::::::::::::: 65 8.2 ABORT | Abort the program :::::::::::::::::::::::::::::::::: 65 8.3 ABS | Absolute value ::::::::::::::::::::::::::::::::::::::::: 66 8.4 ACCESS | Checks file access modes:::::::::::::::::::::::::::: 66 8.5 ACHAR | Character in ASCII collating sequence:::::::::::::::: 67 8.6 ACOS | Arccosine function :::::::::::::::::::::::::::::::::::: 68 8.7 ACOSH | Inverse hyperbolic cosine function:::::::::::::::::::: 68 8.8 ADJUSTL | Left adjust a string ::::::::::::::::::::::::::::::: 69 8.9 ADJUSTR | Right adjust a string :::::::::::::::::::::::::::::: 69 8.10 AIMAG | Imaginary part of complex number ::::::::::::::::: 70 8.11 AINT | Truncate to a whole number ::::::::::::::::::::::::: 71 8.12 ALARM | Execute a routine after a given delay ::::::::::::::: 71 8.13 ALL | All values in MASK along DIM are true :::::::::::::: 72 8.14 ALLOCATED | Status of an allocatable entity ::::::::::::::::: 73 8.15 AND | Bitwise logical AND :::::::::::::::::::::::::::::::::: 73 8.16 ANINT | Nearest whole number :::::::::::::::::::::::::::::: 74 8.17 ANY | Any value in MASK along DIM is true ::::::::::::::: 75 8.18 ASIN | Arcsine function ::::::::::::::::::::::::::::::::::::: 76 8.19 ASINH | Inverse hyperbolic sine function::::::::::::::::::::: 76 8.20 ASSOCIATED | Status of a pointer or pointer/target pair ::::: 77 8.21 ATAN | Arctangent function ::::::::::::::::::::::::::::::::: 78 8.22 ATAN2 | Arctangent function :::::::::::::::::::::::::::::::: 79 8.23 ATANH | Inverse hyperbolic tangent function ::::::::::::::::: 79 8.24 ATOMIC_DEFINE | Setting a variable atomically :::::::::::::: 80 8.25 ATOMIC_REF
Recommended publications
  • Introduction to Programming in Fortran 77 for Students of Science and Engineering
    Introduction to programming in Fortran 77 for students of Science and Engineering Roman GrÄoger University of Pennsylvania, Department of Materials Science and Engineering 3231 Walnut Street, O±ce #215, Philadelphia, PA 19104 Revision 1.2 (September 27, 2004) 1 Introduction Fortran (FORmula TRANslation) is a programming language designed speci¯cally for scientists and engineers. For the past 30 years Fortran has been used for such projects as the design of bridges and aeroplane structures, it is used for factory automation control, for storm drainage design, analysis of scienti¯c data and so on. Throughout the life of this language, groups of users have written libraries of useful standard Fortran programs. These programs can be borrowed and used by other people who wish to take advantage of the expertise and experience of the authors, in a similar way in which a book is borrowed from a library. Fortran belongs to a class of higher-level programming languages in which the programs are not written directly in the machine code but instead in an arti¯cal, human-readable language. This source code consists of algorithms built using a set of standard constructions, each consisting of a series of commands which de¯ne the elementary operations with your data. In other words, any algorithm is a cookbook which speci¯es input ingredients, operations with them and with other data and ¯nally returns one or more results, depending on the function of this algorithm. Any source code has to be compiled in order to obtain an executable code which can be run on your computer.
    [Show full text]
  • Writing Fast Fortran Routines for Python
    Writing fast Fortran routines for Python Table of contents Table of contents ............................................................................................................................ 1 Overview ......................................................................................................................................... 2 Installation ...................................................................................................................................... 2 Basic Fortran programming ............................................................................................................ 3 A Fortran case study ....................................................................................................................... 8 Maximizing computational efficiency in Fortran code ................................................................. 12 Multiple functions in each Fortran file ......................................................................................... 14 Compiling and debugging ............................................................................................................ 15 Preparing code for f2py ................................................................................................................ 16 Running f2py ................................................................................................................................. 17 Help with f2py ..............................................................................................................................
    [Show full text]
  • Fortran Resources 1
    Fortran Resources 1 Ian D Chivers Jane Sleightholme May 7, 2021 1The original basis for this document was Mike Metcalf’s Fortran Information File. The next input came from people on comp-fortran-90. Details of how to subscribe or browse this list can be found in this document. If you have any corrections, additions, suggestions etc to make please contact us and we will endeavor to include your comments in later versions. Thanks to all the people who have contributed. Revision history The most recent version can be found at https://www.fortranplus.co.uk/fortran-information/ and the files section of the comp-fortran-90 list. https://www.jiscmail.ac.uk/cgi-bin/webadmin?A0=comp-fortran-90 • May 2021. Major update to the Intel entry. Also changes to the editors and IDE section, the graphics section, and the parallel programming section. • October 2020. Added an entry for Nvidia to the compiler section. Nvidia has integrated the PGI compiler suite into their NVIDIA HPC SDK product. Nvidia are also contributing to the LLVM Flang project. Updated the ’Additional Compiler Information’ entry in the compiler section. The Polyhedron benchmarks discuss automatic parallelisation. The fortranplus entry covers the diagnostic capability of the Cray, gfortran, Intel, Nag, Oracle and Nvidia compilers. Updated one entry and removed three others from the software tools section. Added ’Fortran Discourse’ to the e-lists section. We have also made changes to the Latex style sheet. • September 2020. Added a computer arithmetic and IEEE formats section. • June 2020. Updated the compiler entry with details of standard conformance.
    [Show full text]
  • Lexical Analysis with Flex Edition 2.5.35, 8 February 2013
    Lexical Analysis with Flex Edition 2.5.35, 8 February 2013 Vern Paxson, Will Estes and John Millaway The flex manual is placed under the same licensing conditions as the rest of flex: Copyright c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2012 The Flex Project. Copyright c 1990, 1997 The Regents of the University of California. All rights reserved. This code is derived from software contributed to Berkeley by Vern Paxson. The United States Government has rights in this work pursuant to contract no. DE- AC03-76SF00098 between the United States Department of Energy and the University of California. Redistribution and use in source and binary forms, with or without modification, are per- mitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of con- ditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED “AS IS” AND WITHOUT ANY EXPRESS OR IM- PLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WAR- RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. i Table of Contents 1 Copyright ................................. 1 2 Reporting Bugs............................ 2 3 Introduction ............................... 3 4 Some Simple Examples..................... 4 5 Format of the Input File ................... 6 5.1 Format of the Definitions Section ............................
    [Show full text]
  • NUG Single Node Optimization Presentation
    Single Node Optimization on Hopper Michael Stewart, NERSC Introduction ● Why are there so many compilers available on Hopper? ● Strengths and weaknesses of each compiler. ● Advice on choosing the most appropriate compiler for your work. ● Comparative benchmark results. ● How to compile and run with OpenMP for each compiler. ● Recommendations for running hybrid MPI/OpenMP codes on a node. Why So Many Compilers on Hopper? ● Franklin was delivered with the only commercially available compiler for Cray Opteron systems, PGI. ● GNU compilers were on Franklin, but at that time GNU Fortran optimization was poor. ● Next came Pathscale because of superior optimization. ● Cray was finally legally allowed to port their compiler to the Opteron so it was added next. ● Intel was popular on Carver, and it produced highly optimized codes on Hopper. ● PGI is still the default, but this is not a NERSC recommendation. Cray's current default is the Cray compiler, but we kept PGI to avoid disruption. PGI ● Strengths ○ Available on a wide variety of platforms making codes very portable. ○ Because of its wide usage, it is likely to compile almost any valid code cleanly. ● Weaknesses ○ Does not optimize as well as compilers more narrowly targeted to AMD architectures. ● Optimization recommendation: ○ -fast Cray ● Strengths ○ Fortran is well optimized for the Hopper architecture. ○ Uses Cray math libraries for optimization. ○ Well supported. ● Weaknesses ○ Compilations can take much longer than with other compilers. ○ Not very good optimization of C++ codes. ● Optimization recommendations: ○ Compile with no explicit optimization arguments. The default level of optimization is very high. Intel ● Strengths ○ Optimizes C++ and Fortran codes very well.
    [Show full text]
  • PHYS-4007/5007: Computational Physics Course Lecture Notes Section II
    PHYS-4007/5007: Computational Physics Course Lecture Notes Section II Dr. Donald G. Luttermoser East Tennessee State University Version 7.1 Abstract These class notes are designed for use of the instructor and students of the course PHYS-4007/5007: Computational Physics taught by Dr. Donald Luttermoser at East Tennessee State University. II. Choosing a Programming Language A. Which is the Best Programming Language for Your Work? 1. You have come up with a scientific idea which will require nu- merical work using a computer. One needs to ask oneself, which programming language will work best for the project? a) Projects involving data reduction and analysis typically need software with graphics capabilities. Examples of such graphics languages include IDL, Mathlab, Origin, GNU- plot, SuperMongo, and Mathematica. b) Projects involving a lot of ‘number-crunching’ typically require a programming language that is capable of car- rying out math functions in scientific notation with as much precision as possible. In physics and astronomy, the most commonly used number-crunching programming languages include the various flavors of Fortran, C, and more recently, Python. i) As noted in the last section, the decades old For- tran 77 is still widely use in physics and astronomy. ii) Over the past few years, Python has been growing in popularity in scientific programming. c) In this class, we will focus on two programming languages: Fortran and Python. From time to time we will discuss the IDL programming language since some of you may encounter this software during your graduate and profes- sional career. d) Any coding introduced in these notes will be written in either of these three programming languages.
    [Show full text]
  • CALI Round 03.Pdf
    California Academic Learning Initiative 2015 - 2016 Round 3 Written by Ankit Aggarwal, Hidehiro Anto, P.C. Chauhan, Jason Cheng, Boyang Jiao, Aseem Keyal, Eddie Kim, Bruce Lou, Charlie Mann, Kevin Wang, Corry Wang, Kion You TOSSUPS 1. T he Supreme Court has decided that tailored use of this practice is permissible for achieving so-called "critical mass," although Sandra Day O'Connor wrote that this practice would no longer be necessary in 25 years. In 2003 the Supreme Court ruled against a point-based version of this practice in G ratz v. Bollinger. In June 2015 the court agreed to rehear the case (*) Fisher v. Texas challenging this practice. In 1978 quota-based versions of this practice were ruled unconstitutional in B akke v. Regents of the University of California . For 10 points, name this practice of giving preference to historically disadvantaged racial minorities. ANSWER: affirmative action in the college admissions process [accept positive discrimination; prompt on "reverse discrimination" or "discrimination"] 2. A leader criticized this religion's contradictions in his essay Against the Galileans during the 4th century. According to legend, one of this religion's major holidays was specifically scheduled to upstage a festival led by the Sol Invictus cult. Julian the Apostate attempted to roll back the spread of this religion, whose members were systematically persecuted by (*) D iocletian ( "DIE"-oh-klee-shun). It was granted toleration in the Edict of Milan by Constantine the Great, who became the first Roman emperor to convert to it. For 10 points, Pontius Pilate crucified the founder of what religion? ANSWER: Christianity [accept specific forms of Christianity] 3.
    [Show full text]
  • Using GNU Fortran 95
    Contributed by Steven Bosscher ([email protected]). Using GNU Fortran 95 Steven Bosscher For the 4.0.4 Version* Published by the Free Software Foundation 59 Temple Place - Suite 330 Boston, MA 02111-1307, USA Copyright c 1999-2005 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being “GNU General Public License” and “Funding Free Software”, the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled “GNU Free Documentation License”. (a) The FSF’s Front-Cover Text is: A GNU Manual (b) The FSF’s Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Short Contents Introduction ...................................... 1 GNU GENERAL PUBLIC LICENSE .................... 3 GNU Free Documentation License ....................... 9 Funding Free Software .............................. 17 1 Getting Started................................ 19 2 GFORTRAN and GCC .......................... 21 3 GFORTRAN and G77 ........................... 23 4 GNU Fortran 95 Command Options.................. 25 5 Project Status ................................ 33 6 Extensions ................................... 37 7 Intrinsic Procedures ............................
    [Show full text]
  • Advanced Fortran @
    Sami Ilvonen Peter Råback Advanced Fortran Programming March 26-28, 2019 CSC – IT Center for Science Ltd, Finland type revector(rk) integer, kind :: rk real(kind=rk), allocatable :: data(:) contains procedure :: sum => vecsum generic :: operator(+) => sum end type revector type, extends(revector) :: imvector real(kind=rk), allocatable :: imdata(:) contains procedure :: sum => imvecsum end type imvector contains function vecsum(x,y) result(z) implicit none class(revector(dp)), intent(in) :: x,y class(revector(dp)), allocatable :: z integer :: i select type(y) All material (C) 2013-2019 by CSC – IT Center for Science Ltd. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License, http://creativecommons.org/licenses/by-nc-sa/3.0/ Agenda Tuesday Wednesday 9:00-9:15 Course introduction 9:00-9:45 Introduction to Fortran coarrays 9:15-10:00 Useful new features beyond F95 9:45-10:00 Coffee break 10:00-10:15 Coffee break 10:00-11:15 Exercises 11:15-12:00 More coarray features 10:15-11:00 Advanced topics in Fortran I/O 12:00-13:00 Lunch break 11:00-11:15 Working with Fortran 13:00-14:00 Exercises compilers 14:00-14:45 Advanced topics in coarrays 11:15-12:00 Exercises 14:45-15:00 Coffee break 12:00-13:00 Lunch break 15:00-16:00 Exercises 13:00-14:00 Interoperability with C 14:00-14:45 Exercises 14:45-15:00 Coffee break 15:00-16:00 Exercises Thursday 9:00-10:00 Additional capabilities of Fortran types, procedure pointers 10:00-10:15 Coffee break 10:15-11:00 Exercises 11:00-12:00 Type extensions, type-bound
    [Show full text]
  • C Programming and Data Structures May/June 2007
    C Programming and Data Structures May/June 2007 SET-2 1. (a) What is a string constant? How do string constants differ from character constants? Do string constants represent numerical values? A string constant is a sequence of characters enclosed in double quotes. The characters may be letters, numbers, special characters and blank spaces. Example: hai , 1982, etc; A character constant is not equivalent to the single character constant. A single character string constant does not have an equivalent integer whereas a character constant has an integer value (ASCII value). String constants do not represent equivalent numerical values. (b) Summarize the standard escape sequences in C. Describe them. Black slash characters are also called escape sequences. Constant Meaning \a Audible alert(bell) \b Back space \f Form feed \n New line \r Carriage return \t Tab space \v Vertical tab \ Single quote \ Double quote \? Question mark \\ Back slash \0 Null (c) What is a variable? How can variables be characterized? Give the rules for variable declaration. A variable is a data name that may be used to store a data value. A variable may take different values at different times during execution. Variables are characterized based on the value they hold. Depending on that they are classified into int, float, char, double, and so on. Rules for variable declaration: · They must begin with a letter. Some compilers permit underscore as the first character. · ANSI standard recognizes a length of 31 characters. However, the length should not be normally more than eight characters. Appendix-C.p65 12 7/29/08, 5:21 PM Solved Question Papers C.13 · Uppercase and lowercase are significant.
    [Show full text]
  • Coarrays in GNU Fortran
    Coarrays in GNU Fortran Alessandro Fanfarillo [email protected] June 24th, 2014 Alessandro Fanfarillo Coarrays in GFortran June 24th, 2014 1 / 50 Introduction Coarray Fortran (also known as CAF) is a syntactic extension of Fortran 95/2003 which has been included in the Fortran 2008 standard. The main goal is to allow Fortran users to realize parallel programs without the burden of explicitly invoke communication functions or directives (MPI, OpenMP). The secondary goal is to express parallelism in a \platform-agnostic" way (no explicit shared or distributed paradigm). Coarrays are based on the Partitioned Global Address Space model (PGAS). Compilers which support Coarrays: Cray Compiler (Gold standard - Commercial) Intel Compiler (Commercial) Rice Compiler (Free - Rice University) OpenUH (Free - University of Houston) G95 (Coarray support not totally free - Not up to date) Alessandro Fanfarillo Coarrays in GFortran June 24th, 2014 2 / 50 PGAS Languages The PGAS model assumes a global memory address space that is logically partitioned and a portion of it is local to each process or thread. It means that a process can directly access a memory portion owned by another process. The model attempts to combine the advantages of a SPMD programming style for distributed memory systems (as employed by MPI) with the data referencing semantics of shared memory systems. Coarray Fortran. UPC (upc.gwu.edu). Titanium (titanium.cs.berkeley.edu). Chapel (Cray). X10 (IBM). Alessandro Fanfarillo Coarrays in GFortran June 24th, 2014 3 / 50 Coarray concepts A program is treated as if it were replicated at the start of execution, each replication is called an image.
    [Show full text]
  • In the GNU Fortran Compiler
    Using GNU Fortran For gcc version 12.0.0 (pre-release) (GCC) The gfortran team Published by the Free Software Foundation 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA Copyright c 1999-2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being \Funding Free Software", the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled \GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Short Contents 1 Introduction ::::::::::::::::::::::::::::::::::::::::: 1 Invoking GNU Fortran 2 GNU Fortran Command Options :::::::::::::::::::::::: 7 3 Runtime: Influencing runtime behavior with environment variables ::::::::::::::::::::::::::::::::::::::::::: 33 Language Reference 4 Fortran standards status :::::::::::::::::::::::::::::: 39 5 Compiler Characteristics :::::::::::::::::::::::::::::: 45 6 Extensions :::::::::::::::::::::::::::::::::::::::::: 51 7 Mixed-Language Programming ::::::::::::::::::::::::: 73 8 Coarray Programming :::::::::::::::::::::::::::::::: 89 9 Intrinsic Procedures ::::::::::::::::::::::::::::::::: 113
    [Show full text]