CF90TM Commands and Directives Reference Manual


Table of Contents
About This Manual
Related CF90 Publications
CF90 Messages
CF90 Man Pages
Related Fortran Publications
Related Publications
Obtaining Publications
Conventions
Reader Comments
1. Introduction
2. Invoking CF90
2.1. Setting Up the CF90 Programming Environment
2.2. The f90 Command
2.2.1. -a alloc
2.2.2. -A module_name[,module_name] ...
2.2.3. -b bin_obj_file
2.2.4. -c
2.2.5. -C cifopts
2.2.6. -d disable and -e enable
2.2.7. -D identifier[=value][,identifier[=value]]...
2.2.8. -f source_form
2.2.9. -F
2.2.10. -g
2.2.11. -G debug_lvl
2.2.12. -i 32
2.2.13. -I incldir
2.2.14. -l lib
2.2.15. -L dir
2.2.16. -m msg_lvl
2.2.17. -M msgs
2.2.18. -N col
2.2.19. -o out_file
2.2.20. -O opt[,opt] ...
2.2.21. -p module_site
2.2.22. -r list_opt
2.2.23. -R runchk
2.2.24. -s size
2.2.25. -S asm_file
2.2.26. -t num (UNICOS Systems Only)
2.2.27. -T
2.2.28. -U identifier[,identifier] ...
2.2.29. -v
2.2.30. -V
2.2.31. -Wa"assembler_opt"
2.2.32. -Wl"loader_opt"
2.2.33. -Wp"srcpp_opt"
2.2.34. -Wr"ftnlist_opt"
2.2.35. -x dirlist
2.2.36. -X npes (UNICOS/mk Systems Only)
2.2.37. -Z (UNICOS/mk Systems Only)
2.2.38. - -
2.2.39. file.suffix[90] [file.suffix[90]] ...
2.3. Environment Variables
2.3.1. AUXBUF (UNICOS Systems Only)
2.3.2. AUXPAGE (UNICOS Systems Only)
2.3.3. CRI_F90_OPTIONS
2.3.4. LD_OPTIONS (UNICOS/mk Systems Only)
2.3.5. LISTIO_PRECISION
2.3.6. LPP
2.3.7. MP_DEDICATED (UNICOS Systems Only)
2.3.8. MP_HOLDTIME (UNICOS Systems Only)
2.3.9. MP_SAMPLE (UNICOS Systems Only)
2.3.10. MP_SLVSIN (UNICOS Systems Only)
2.3.11. MP_SLVSSZ (UNICOS Systems Only)
2.3.12. NCPUS (UNICOS Systems Only)
2.3.13. NLSPATH
2.3.14. NPROC
2.3.15. OMP_DYNAMIC (UNICOS Systems Only)
2.3.16. OMP_NESTED (UNICOS Systems Only)
2.3.17. OMP_NUM_THREADS (UNICOS Systems Only)
2.3.18. OMP_SCHEDULE (UNICOS Systems Only)
2.3.19. SEGDIR (UNICOS Systems Only)
2.3.20. TARGET
2.3.21. TMPDIR
3. CF90 Directives
3.1. Using Directives
3.1.1. Directive Lines
3.1.2. Range and Placement of Directives
3.1.3. Interaction of Directives with the -x Command Line Option
3.1.4. Command Line Options and Directives
3.2. Vectorization and Tasking Directives
3.2.1. Declare Lack of Side Effects: CNCALL
3.2.2. Copy Arrays to Temporary Storage: COPY_ASSUMED_SHAPE
3.2.3. Ignore Dependencies: IVDEP
3.2.4. Specify Scalar Processing: NEXTSCALAR
3.2.5. Request Pattern Matching: PATTERN and NOPATTERN
3.2.6. Declare an Array with No Repeated Values: PERMUTATION
3.2.7. Designate Nested Loops: PREFERTASK (UNICOS Systems Only)
3.2.8. Designate Loop Nest for Vectorization: PREFERVECTOR (UNICOS Systems Only)
3.2.9. Designate Reduction Loops: RECURRENCE, NORECURRENCE
3.2.10. Designate Loops with Low Trip Counts: SHORTLOOP, SHORTLOOP128
3.2.11. Enable and Disable Tasking: TASK and NOTASK (UNICOS Systems Only)
3.2.12. Unroll Loops: UNROLL and NOUNROLL
3.2.13. Enable and Disable Vectorization: VECTOR and NOVECTOR
3.2.14. Specify a Vectorizable Function: VFUNCTION (UNICOS Systems Only)
3.2.15. Vectorize Search Loops: VSEARCH and NOVSEARCH (UNICOS Systems Only)
3.3. Inlining Directives
3.3.1. Disable or Enable Inlining for a Block of Code: INLINE and NOINLINE
3.3.2. Specify Inlining for a Procedure: INLINEALWAYS and INLINENEVER
3.3.3. Create Inlinable Templates for Module Procedures: MODINLINE and NOMODINLINE
3.4. Scalar Optimization Directives
3.4.1. Align Loops on Buffer Boundaries: ALIGN (UNICOS Systems Only)
3.4.2. Bottom Load Operands: BL and NOBL
3.4.3. Bypass Cache References: CACHE_BYPASS (UNICOS/mk Systems Only)
3.4.4. Inhibit Loop Interchanging: NOINTERCHANGE
3.4.5. Determine Register Storage: NOSIDEEFFECTS (UNICOS Systems Only)
3.4.6. Request Loop Splitting: SPLIT and NOSPLIT (UNICOS/mk Systems Only)
3.4.7. Suppress Scalar Optimization: SUPPRESS
3.5. Local Use of Compiler Features
3.5.1. Check Array Bounds: BOUNDS and NOBOUNDS
3.5.2. Specify Source Form: FREE and FIXED
3.6. Storage Directives
3.6.1. Allocating to SSD: AUXILIARY (UNICOS Systems Only)
3.6.2. Align on Cache Line Boundaries: CACHE_ALIGN (UNICOS/mk Systems Only)
3.6.3. Declare Common Blocks Global to All Tasks: COMMON (UNICOS Systems Only)
3.6.4. Request Stack Storage: STACK
3.6.5. Declare Local Addressing: SYMMETRIC (UNICOS/mk Systems Only)
3.6.6. Declare Common Blocks Local to Each Task: TASKCOMMON (UNICOS Systems Only)
3.7. Miscellaneous Directives
3.7.1. Specify Array Dependencies: CONCURRENT (UNICOS/mk Systems Only)
3.7.2. Flowtracing Directives: FLOW and NOFLOW (UNICOS Systems Only)
3.7.3. Create Identification String: ID
3.7.4. Disregard Dummy Argument Type, Kind, and Rank: IGNORE_TKR
3.7.5. External Name Mapping Directive: NAME
3.7.6. Reserve E Registers: USES_EREGS (UNICOS/mk Systems Only)
4. OpenMP Fortran API Directives (UNICOS Systems Only)
4.1. Using Directives
4.2. Conditional Compilation
4.3. Parallel Region Constructs (PARALLEL and END PARALLEL Directives)
4.4. Work-sharing Constructs
4.4.1. Specify Parallel Execution: DO and END DO Directives
4.4.2. Mark Code for Specific Threads: SECTION, SECTIONS and END SECTIONS Directives
4.4.3. Request Single-thread Execution: SINGLE and END SINGLE Directives
4.5. Combined Parallel Work-sharing Constructs
4.5.1. Declare a Parallel Region: PARALLEL DO and END PARALLEL DO Directives
4.5.2. Declare Sections within a Parallel Region: PARALLEL SECTIONS and END PARALLEL SECTIONS Directives
4.6. Synchronization Constructs
4.6.1. Request Execution by the Master Thread: MASTER and END MASTER Directives
4.6.2. Request Execution by a Single Thread: CRITICAL and END CRITICAL Directives
4.6.3. Synchronize All Threads in a Team: BARRIER Directive
4.6.4. Protect a Location from Multiple Updates: ATOMIC Directive
4.6.5. Read and Write Variables to Memory: FLUSH Directive
4.6.6. Request Sequential Ordering: ORDERED and END ORDERED Directives
4.7. Data Environment Constructs
4.7.1. Declare Common Blocks Private to a Thread: THREADPRIVATE Directive
4.7.2. Data Scope Attribute Clauses
4.7.3. Data Environment Rules
4.8. Directive Binding
4.9. Directive Nesting
4.10. Analyzing Data Dependencies for Multiprocessing
4.10.1. Dependency Analysis Examples
4.10.2. Rewriting Data Dependencies
4.11. Work Quantum
5. Source Preprocessing
5.1. General Rules
5.2. Directives
5.2.1. #include Directive
5.2.2. #define Directive
5.2.3. #undef Directive
5.2.4. # (Null) Directive
5.2.5. Conditional Directives
5.3. Predefined Macros
5.4. Command Line Options
A. Autotasking Directives (UNICOS systems only) (Outmoded)
A.1. Using Directives
A.1.1. Directive Lines
A.1.2. Range and Placement of Directives
A.1.3. Interaction of Directives with the -x Command Line Option
A.1.4. Command Line Options and Directives
A.1.5. Migrating to OpenMP Fortran API Directives.
A.2. Concurrent Blocks: CASE and ENDCASE
A.3. Declare Lack of Side Effects: CNCALL
A.4. Mark Parallel Loop: DOALL
A.5. Mark Parallel Loop: DOPARALLEL and ENDDO
A.6. Critical Region: GUARD and ENDGUARD
A.7. Allocate CPUs: MAXCPUS
A.8. Specify Maximum Number of CPUs for a Parallel Region: NUMCPUS
A.9. Mark Parallel Region: PARALLEL and ENDPARALLEL
A.10. Declare an Array with No Repeated Values: PERMUTATION
A.11. Declare a Cross-iteration Dependency: WAIT and SEND
A.12. Autoscoping Rules
A.12.1. User-added Scope Required
A.12.2. Examples
A.13. Autotasking Restrictions
Glossary
Index
List of Tables
2-1. Compiling options
2-2. -O opt summary
2-3. Automatic inlining specifications
2-4. Description of source
3-1. Directives
4-1. Initialization values
A-1. Autotasking directive parameter
A-2. Autotasking directive work_distribution
List of Figures
1-1. f90 command example
2-1. Optimization values
2-2. Array storage
2-3. Derived type storage