fdvmUGe (1158424), страница 2
Текст из файла (страница 2)
S3
CDVM$ END DEBUG 2
S4
CDVM$ END DEBUG 1
S5
END
The greatest allowed levels of debug for this structure are:
| Set of statements | Debug level | |
| { S1, S5 } | D = 4 , E = 4 | |
| { S2, S4 } | D = 3 , E = 1 | |
| { S3 } | D = 1 , E = 3 |
Debug levels specified by compiler options.
The debug level for whole program is defined by options:
-dleveld - for functional debug,
-elevele - for performance debug.
The default options are as follows: –d0 and –e0.
The debug levels for fragments of program are defined by options:
-dleveld [:fr-list]
-elevele [:fr-list]
where
fr ::= Lfr [ - Hfr ]
Lfr ::= <fragment-number>
Hfr ::= <fragment-number>
The condition LfrHfr must be satisfied.
fr-list is a list where each element is a fragment number or a range of fragment numbers. Let m be the debug level that is specified for a some fragment in DEBUG directive. If the level l is specified for this fragment by compiler option, then the fragment is debugged on level min( m , l ) .
If the options
-d2:1-2 -e2
are specified in compiler command line, then the following debug levels are assigned to the subroutine SUB:
| Set of statements | Functional debug level | Performance debug level | |
| { S1, S5 } | 0 | 2 | |
| { S2, S4 } | 2 | 1 | |
| { S3 } | 1 | 2 |
For detailes see "DVM-program debugging. User's guide" and "Debugging DVM-program performance. User's guide".
Tracing Lib-DVM function execution. To set on and set off accumulation of trace of Lib‑DVM calls, the following debug directives may be used:
CDVM$ TRACE ON
CDVM$ TRACE OFF
6Compiling HPF-DVM program
To compile HPF-DVM program type:
dvm fdv [ <опции> ] <file-name>.hpf
In addition to options that are described above in section 3, the following compiler options may be used to improve the performance of output program. They specify the features of source HPF-DVM program.
| -Hshwwidth | Specifies the maximum shadow edges width of all the distributed arrays used in program, width is a positive integer, by default width = 1; |
| -Honeq | Permits a single execution of inquiry about kind of data access; |
| -Honlyl | Specifies that the operands in sequential threads (outside the INDEPENDENT loop) are local, i.e. there are no remote access data in sequential threads. |
7Compiler messages
If the compiler detects an error in source program, it displays a message of the following form:
message-kind message-number on line line-number of file-name : message‑text
where:
| message-kind | - Warning | warning message, that do not prevent producing output program. |
| - Error | unrecoverable error, output program can't be produced. | |
| line-number | - line number in file file-name, where the error was detected. | |
| message-text | - message text in English. | |
Error numbers, message texts and comments are listed below.
| 000 | Compiler bug |
| 001 | Unknown option option is ignored |
| 002 | Invalid option argument arg is ignored |
| 003 | No source file specified |
| 004 | Illegal command line format |
| 005 | Can't open file filename |
| 006 | Can't open file filename for write |
| 007 | Null program |
| 008 | Missing final end statement or unclosed construct |
| 009 | Illegal continuation card ignored |
| 010 | Unclassifiable statement |
| 011 | Non digit in statement number field |
| 012 | Unbalanced quotes; closing quote supplied |
| 013 | Unbalanced parentheses, statement skipped |
| 014 | Syntax error |
| 015 | Comment too long. Truncated to 160 characters |
| 016 | Inconsistent declaration of identifier identifier |
| 017 | Inconsistent constant declaration identifier |
| 018 | Inconsistent array declaration of identifier identifier |
| 019 | Inconsistent function identifier |
| 020 | Inconsistent procedure identifier |
| 021 | Inconsistent subroutine identifier |
| 022 | Inconsistent program declaration identifier |
| 023 | Inconsistent common declaration identifier |
| 024 | Function has the same name as a common block identifier |
| 025 | Common block has the same name as a function identifier |
| 026 | Inconsistent operands to boolean operation |
| 027 | Inconsistent operands to arithmetic operation |
| 028 | Non-logical expression in IF statement |
| 029 | Statement order error: declaration after DATA or function statement |
| 030 | Declaration among executables |
| 031 | ELSEIF out of place |
| 032 | ELSE out of place |
| 033 | Misplaced PROGRAM statement |
| 034 | Misplaced SUBROUTINE statement |
| 035 | Misplaced ENTRY statement |
| 036 | Statement cannot be reached |
| 037 | IMPLICIT item must be single letter |
| 038 | Label out of range |
| 039 | Label already that of a FORMAT |
| 040 | Label label already defined |
| 041 | Non character entity identifier has length specification |
| 042 | No dimensions in DIMENSION statement |
| 043 | Too many dimensions |
| 044 | Can't subscript identifier |
| 045 | Can't take substring of identifier |
| 046 | No backward DO loops |
| 047 | Symbolic constant not allowed as DO variable |
| 048 | Must go to label or assigned variable |
| 049 | Missing DVM directive prefix |
| 050 | Explicit shape specification is required |
| 051 | Distribution format list is omitted |
| 052 | Unexpected END statement read |
| 053 | Illegal use of PROCESSORS name identifier |
| 054 | A distributee may not have the ALIGN attribute: identifier |
| 055 | Distribution format BLOCK(n) is not permitted in FDVM |
| 056 | Illegal shadow width specification |
| 057 | An alignee may not have the DISTRIBUTE attribute: 'identifier' |
| 058 | The alignee identifier isn't an array |
| 059 | 'identifier' hasn't the DYNAMIC attribute |
| 060 | 'identifier' hasn't the ALIGN attribute |
| 061 | The align-target identifier isn't declared as array |
| 062 | The align-dummy identifier isn't a scalar integer variable |
| 063 | Illegal combination of attributes |
| 064 | 'identifier' has the DISTRIBUTE and ALIGN attribute |
| 065 | No shape specification |
| 066 | 'identifier' isn't array |
| 067 | 'identifier' is not processor array |
| 068 | 'identifier' is not remote group name |
| 069 | 'identifier' is not declared as reduction group |
| 070 | Illegal reduction operation name |
| 071 | Illegal use of task array name identifier |
| 072 | 'identifier' isn't distributed array |
| 073 | Multiple declaration of identifier 'identifier' |
| 074 | 'identifier' is not declared as group |
| 075 | No dimension in TASK directive |
| 076 | Illegal rank of 'identifier' |
| 077 | 'identifier' is not task array |
| 078 | Illegal interval number |
| 079 | Template 'identifier' is in COMMON |
| 080 | Template may not be a dummy argument: identifier |
| 081 | ENTRY among specification statements |
| 082 | Duplicate aligning of the array 'identifier' |
| 083 | POINTER 'identifier' is not integer variable |
| 084 | POINTER may not have SAVE attribute: identifier |
| 085 | POINTER 'identifier' is not distributed object |
| 086 | Object 'identifier' has neither TEMPLATE nor PROCESSORS attribute |
| 087 | Illegal shape specification in DIMENSION attribute |
| 088 | Length of shadow-edge-list is not equal to the rank of array 'identifier' |
| 089 | attribute attribute appears more than once in the combined-directive |
| 090 | The number of BLOCK/GENBLOCK elements of dist-format-list is greater than the rank of PROCESSORS 'identifier' |
| 091 | Missing HEAP declaration |
| 092 | Alignment tree root 'identifier' is not distributed |
| 093 | PAUSE statement is not permitted in FDVM |
| 094 | Illegal statement in the range of parallel loop |
| 095 | Only a value of ALLOCATE function or other POINTER may be assigned to a POINTER |
| 096 | Nested PARALLEL directives are not permitted |
| 097 | Directive PARALLEL must be followed by DO statement |
| 098 | The directive is inside the range of PARALLEL loop |
| 099 | Misplaced REMOTE_ACCESS directive |
| 100 | Nested TASK_REGION are not permitted |
| 101 | Statement is outside of on-block |
| 102 | No matching TASK_REGION |
| 103 | Misplaced directive |
| 104 | Nested ON-blocks are not permitted |
| 105 | ON directive is outside of the task region |
| 106 | No matching ON directive |
| 107 | Parallel-task-loop directive is outside of the task region |
| 108 | Missing END TASK_REGION directive |
| 109 | Missing END ON directive |
| 110 | Rank of array identifier is not equal to the length of the dist‑format-list |
| 111 | Saved object may not have the DYNAMIC attribute: identifier |
| 112 | Object in COMMON may not have the DYNAMIC attribute: identifier |
| 113 | 'identifier' hasn't the DYNAMIC attribute |
| 114 | 'identifier' does not appear in DISTRIBUTE/INHERIT directive |
| 116 | Template 'identifier' appears as an alignee |
| 117 | Dummy argument 'identifier' is aligned with local array |
| 118 | Aligned array 'identifier' is in COMMON but align-target is not |
| 119 | Aligned array 'identifier' has SAVE attribute but align-target has not |
| 120 | 'identifier' does not appear in ALIGN or INHERIT directive |
| 121 | 'identifier' is a duplicate dummy argument |
| 122 | Descriptor array error |
| 123 | Rank of pointer identifier is not equal to the length of the dist-format-list |
| 124 | Array 'identifier' may not be allocated |
| 125 | Array 'identifier' may not be aligned |
| 126 | Illegal aligning of 'identifier' |
| 127 | Distributed object 'identifier' is not array |
| 128 | Rank of aligned array identifier isn't equal to the length of align-source-list |
| 129 | GEN_BLOCK and WGT_BLOCK in format-list |
| 130 | Wrong align-subscript expression |
| 132 | Rank of align-target 'identifier' isn't equal to the length of align-subscript-list |
| 133 | More one occurence of do-variable 'identifier' in iteration-align-subscript-list |
| 134 | More one occurence of align-dummy 'identifier' in align subscript list |
| 135 | More one occurence of a do-variable in do-variable-use expression |
| 136 | More one occurence of an align-dummy in align-subscript expression |
| 137 | Illegal group name use: 'identifier' |
| 138 | Illegal POINTER reference: 'identifier' |
| 139 | Owner-computes rule |
| 140 | Wrong number of subscripts specified for identifier |
| 141 | Illegal type of 'identifier' |
| 142 | Low shadow width of 'identifier' is greater than the corresponding one specified in SHADOW directive |
| 143 | High shadow width of 'identifier' is greater than the corresponding one specified in SHADOW directive |
| 144 | Low shadow width of 'identifier' is greater than 1 |
| 145 | High shadow width of 'identifier' is greater than 1 |
| 146 | NEW_VALUE directive must be followed by REDISTRIBUTE or REALIGN directive |
| 147 | Illegal operand list of MAXLOC/MINLOC |
| 148 | 'identifier' is distributed array |
| 149 | Wrong operand of MAXLOC/MINLOC: identifier |
| 150 | Illegal clause |
| 151 | Wrong reduction variable 'identifier' |
| 152 | Wrong type of reduction variable 'identifier' |
| 153 | Double NEW clause |
| 154 | Double REDUCTION clause |
| 155 | Double SHADOW_RENEW clause |
| 156 | Double REMOTE_ACCESS clause |
| 157 | Double ACROSS clause |
| 158 | Length of do-variable list in PARALLEL directive is greater than the number of nested DO statements |
| 159 | Illegal do-variable-list in PARALLEL directive |
| 160 | Wrong iteration-align-subscript in PARALLEL |
| 161 | Rank of array 'identifier' isn't equal to the length of iteration-align-subscript-list |
| 162 | Assumed-size array: identifier |
| 163 | Reverse is not supported |
| 164 | Wrong regular subscript expression |
| 165 | Length of remote-subscript-list is not equal to the rank of remote variable |
| 166 | HEAP limit is exceeded |
| 167 | Illegal template reference: 'identifier' |
| 168 | Illegal variable in new-clause: identifier |
| 169 | ENTRY of program unit distributed arrays are in |
| 170 | Name 'identifier' too long, truncated to 29 |
| 171 | No subscripts: identifier |
| 172 | POINTER 'identifier' in left part of assign statement has DISTRIBUTE or ALIGN attribute |
| 173 | Pointers are of different rank |
| 174 | Pointers are of different type |
| 175 | Wrong number of subscripts specified for 'identifier' |
| 176 | 'identifier' hasn't PROCESSORS/TASK attribute |
| 177 | Associated actual arguments must be aligned |
| 178 | Illegal type of do-variable 'identifier' |
| 179 | Wrong dependence length of distributed array 'identifier' |
| 180 | Wrong dependence length list of distributed array 'identifier' |
| 181 | Illegal fragment number |
| 182 | Unmatched directive |
| 183 | Buffer limit is exceeded |
| 184 | Illegal I/O statement in the range of parallel loop |
| 185 | Illegal elements in control list |
| 186 | END= and ERR= specifiers are illegal in FDVM |
| 187 | IOSTAT= specifier is illegal in I/O of distributed array |
| 189 | Invalid format specification |
| 190 | Illegal I/O list |
| 191 | I/O of distributed array controlled by format specification or NAMELIST is not supported in FDVM |
| 192 | Illegal I/O list item: identifier |
| 193 | Array shape declaration error: 'identifier' |
| 194 | Can't calculate array length: identifier |
| 195 | Can’t find the corresponding MAP directive |
| 196 | Incorrect call of ALLOCATE function |
| 197 | Can’t use pointers in HPF1 |
| 222 | Can’t find a descriptor for POINTER |
| 250 | Illegal nesting INDEPENDENT directive |
| 251 | More one occurеnce of do-variable 'identifier' in subscript list |
| 252 | More one occurеnce of a do-variable in subscript expression |
| 254 | No target for independent loop |
| 255 | Reduction statement inside the range of INDEPENDENT loop, 'identifier' is reduction variable |















