diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ecb2660..f71083e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed +- Updated grammar unittests to include scope injections - Merged Language Server's log channel to Modern Fortran's log channel - Merged all Fortran intrinsics into a single `json` file ([#424](https://github.com/fortran-lang/vscode-fortran-support/issues/424)) diff --git a/package-lock.json b/package-lock.json index b59a813c..af4fb9ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "prettier": "^2.5.1", "ts-loader": "^9.2.6", "typescript": "^4.5.5", - "vscode-tmgrammar-test": "^0.0.11", + "vscode-tmgrammar-test": "^0.1.1", "webpack": "^5.65.0", "webpack-cli": "^4.9.1" }, @@ -4670,27 +4670,27 @@ "dev": true }, "node_modules/vscode-textmate": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.5.0.tgz", - "integrity": "sha512-jToQkPGMNKn0eyKyitYeINJF0NoD240aYyKPIWJv5W2jfPt++jIRg0OSergubtGhbw6SoefkvBYEpX7TsfoSUQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.1.tgz", + "integrity": "sha512-zQ5U/nuXAAMsh691FtV0wPz89nSkHbs+IQV8FDk+wew9BlSDhf4UmWGlWJfTR2Ti6xZv87Tj5fENzKf6Qk7aLw==", "dev": true }, "node_modules/vscode-tmgrammar-test": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/vscode-tmgrammar-test/-/vscode-tmgrammar-test-0.0.11.tgz", - "integrity": "sha512-Bd60x/OeBLAQnIxiR2GhUic1CQZOFfWM8Pd43HjdEUBf/0vcvYAlFQikOXvv+zkItHLznjKaDX7VWKPVYUF9ug==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/vscode-tmgrammar-test/-/vscode-tmgrammar-test-0.1.1.tgz", + "integrity": "sha512-0WvD3U+E0KV95bNT7v5g7PQ85JfAjh9MuXOy1dgwZskkCsA8ASiSy60iv30JOZrM6dBjJZooGUAybRAIB+Song==", "dev": true, "dependencies": { "chalk": "^2.4.2", - "commander": "^2.20.3", + "commander": "^9.2.0", "diff": "^4.0.2", "glob": "^7.1.6", "vscode-oniguruma": "^1.5.1", - "vscode-textmate": "^5.4.0" + "vscode-textmate": "^7.0.1" }, "bin": { - "vscode-tmgrammar-snap": "dist/src/snapshot.js", - "vscode-tmgrammar-test": "dist/src/unit.js" + "vscode-tmgrammar-snap": "dist/snapshot.js", + "vscode-tmgrammar-test": "dist/unit.js" } }, "node_modules/vscode-tmgrammar-test/node_modules/ansi-styles": { @@ -4735,10 +4735,13 @@ "dev": true }, "node_modules/vscode-tmgrammar-test/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } }, "node_modules/vscode-tmgrammar-test/node_modules/diff": { "version": "4.0.2", @@ -8534,23 +8537,23 @@ "dev": true }, "vscode-textmate": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.5.0.tgz", - "integrity": "sha512-jToQkPGMNKn0eyKyitYeINJF0NoD240aYyKPIWJv5W2jfPt++jIRg0OSergubtGhbw6SoefkvBYEpX7TsfoSUQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.1.tgz", + "integrity": "sha512-zQ5U/nuXAAMsh691FtV0wPz89nSkHbs+IQV8FDk+wew9BlSDhf4UmWGlWJfTR2Ti6xZv87Tj5fENzKf6Qk7aLw==", "dev": true }, "vscode-tmgrammar-test": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/vscode-tmgrammar-test/-/vscode-tmgrammar-test-0.0.11.tgz", - "integrity": "sha512-Bd60x/OeBLAQnIxiR2GhUic1CQZOFfWM8Pd43HjdEUBf/0vcvYAlFQikOXvv+zkItHLznjKaDX7VWKPVYUF9ug==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/vscode-tmgrammar-test/-/vscode-tmgrammar-test-0.1.1.tgz", + "integrity": "sha512-0WvD3U+E0KV95bNT7v5g7PQ85JfAjh9MuXOy1dgwZskkCsA8ASiSy60iv30JOZrM6dBjJZooGUAybRAIB+Song==", "dev": true, "requires": { "chalk": "^2.4.2", - "commander": "^2.20.3", + "commander": "^9.2.0", "diff": "^4.0.2", "glob": "^7.1.6", "vscode-oniguruma": "^1.5.1", - "vscode-textmate": "^5.4.0" + "vscode-textmate": "^7.0.1" }, "dependencies": { "ansi-styles": { @@ -8589,9 +8592,9 @@ "dev": true }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", "dev": true }, "diff": { diff --git a/package.json b/package.json index c94a429f..520ce374 100644 --- a/package.json +++ b/package.json @@ -368,8 +368,8 @@ "webpack": "webpack --mode production", "pretest": "npm run compile-dev && tsc -p tsconfig.test.json", "test": "node ./out/test/runTest.js", - "test:grammar-free": "vscode-tmgrammar-snap -s source.fortran.free -g ./syntaxes/fortran_free-form.tmLanguage.json -t \"./test/**/*{.f90,F90}\"", - "test:grammar-fixed": "vscode-tmgrammar-snap -s source.fortran.fixed -g ./syntaxes/fortran_fixed-form.tmLanguage.json -t \"./test/**/*{.f,F}\"", + "test:grammar-free": "vscode-tmgrammar-snap -s source.fortran.free -g ./syntaxes/fortran_free-form.tmLanguage.json \"./test/**/*{.f90,F90}\"", + "test:grammar-fixed": "vscode-tmgrammar-snap -s source.fortran.fixed -g ./syntaxes/fortran_fixed-form.tmLanguage.json \"./test/**/*{.f,F}\"", "test:grammar": "npm run test:grammar-free && npm run test:grammar-fixed", "test:grammar-update": "npm run test:grammar-free -- -u && npm run test:grammar-fixed -- -u", "lint": "eslint . --ext .ts,.tsx", @@ -397,7 +397,7 @@ "prettier": "^2.5.1", "ts-loader": "^9.2.6", "typescript": "^4.5.5", - "vscode-tmgrammar-test": "^0.0.11", + "vscode-tmgrammar-test": "^0.1.1", "webpack": "^5.65.0", "webpack-cli": "^4.9.1" }, diff --git a/test/resources/auxilary_functions.f b/test/resources/auxilary_functions.f new file mode 100644 index 00000000..0de54b08 --- /dev/null +++ b/test/resources/auxilary_functions.f @@ -0,0 +1,203 @@ +C ================================================================ + real Function sqrEdge(xy1, xy2) +C ================================================================ +C Routine computes sqruare distance between two points +C ================================================================ + real xy1(2), xy2(2) + + sqrEdge = (xy1(1) - xy2(1)) ** 2 + (xy1(2) - xy2(2)) ** 2 + Return + End + + +C ================================================================ + real Function calEdge(xy1, xy2) +C ================================================================ +C Routine computes distance between two points +C ================================================================ + real xy1(2), xy2(2) + + calEdge = sqrt((xy1(1) - xy2(1)) ** 2 + + & (xy1(2) - xy2(2)) ** 2) + Return + End + + + +C ================================================================ + real Function calNorm(xy1) +C ================================================================ +C Routine calculates norm of vector xy1 +C ================================================================ + real xy1(2) + + calNorm = sqrt(xy1(1) ** 2 + xy1(2) ** 2) + Return + End + + + +C ================================================================ + Subroutine extNormal(xy1, xy2, xy3, xyn) +C ================================================================ +C Routines compute external normal vector to the edge {xy1, xy2} +C of triangle {xy1, xy2, xy3} +C ================================================================ + real xy1(2), xy2(2), xy3(2), xyn(2) + real x, y, d + + x = xy2(1) - xy1(1) + y = xy2(2) - xy1(2) + + d = sqrt(x * x + y * y) + + xyn(1) = -y / d + xyn(2) = x / d + +c ... orientation + x = xy3(1) - xy1(1) + y = xy3(2) - xy1(2) + + If( x*xyn(1) + y*xyn(2).GT.0D0 ) Then + xyn(1) = -xyn(1) + xyn(2) = -xyn(2) + End if + + Return + End + + +C ================================================================ + Subroutine calNormal(xy1, xy2, xyn) +C ================================================================ +C Routines compute a normal vector to the edge {xy1, xy2} +C ================================================================ + real xy1(2), xy2(2), xyn(2) + real x, y, d + + x = xy2(1) - xy1(1) + y = xy2(2) - xy1(2) + + d = sqrt(x * x + y * y) + + xyn(1) = -y / d + xyn(2) = x / d + + Return + End + + + +C ================================================================ + real Function DotMul(a, b) +C ================================================================ +C Routine computes scalar product of two vectors +C ================================================================ + real a(2), b(2) + + DotMul = a(1) * b(1) + a(2) * b(2) + Return + End + + + +C ================================================================ + real Function VecMul(a, b) +C ================================================================ +C Routine computes vector product a x b which is a number in 2D. +C ================================================================ + real a(2), b(2) + + VecMul = a(1) * b(2) - a(2) * b(1) + Return + End + + + +C ================================================================ + Logical Function check1j(i1, j) +C ================================================================ +C check1j = TRUE if i1 belongs to the set j(3). +C ================================================================ + Integer j(3) + + check1j = .TRUE. + If(i1.EQ.j(1)) goto 1000 + If(i1.EQ.j(2)) goto 1000 + If(i1.EQ.j(3)) goto 1000 + + check1j = .FALSE. + 1000 Return + End + + + +C ================================================================ + Logical Function check12(i1, j1, j2) +C ================================================================ +C check12 = TRUE if i1 belongs to the set {j1, j2}. +C ================================================================ + check12 = .TRUE. + If(i1.EQ.j1) goto 1000 + If(i1.EQ.j2) goto 1000 + + check12 = .FALSE. + 1000 Return + End + + +C ================================================================ + Logical Function check22(i1, i2, j1, j2) +C ================================================================ +C check22 = TRUE if pair {i1, i2} coinsides with {j1, j2}. +C ================================================================ + check22 = .FALSE. + If(i1.NE.j1 .AND. i1.NE.j2) goto 1000 + If(i2.NE.j1 .AND. i2.NE.j2) goto 1000 + + check22 = .TRUE. + 1000 Return + End + + +C ================================================================ + Subroutine swapii(i1, i2) +C ================================================================ +C Routine swaps two integers +C ================================================================ + i = i1 + i1 = i2 + i2 = i + + Return + End + + + +C ================================================================ + Subroutine swapdd(d1, d2) +C ================================================================ +C Routine swaps two real numbers +C ================================================================ + real d, d1, d2 + d = d1 + d1 = d2 + d2 = d + + Return + End + + +C ================================================================ + Subroutine paramInclude(d1, d2) +C ================================================================ +C Dummy function to test includes on hover +C ================================================================ + include "parameters.prm" + real d, d1, d2 + d = AniRatio + d1 = AniEigenvalue + d2 = DiscreteGrad + + Return + End \ No newline at end of file diff --git a/test/resources/auxilary_functions.f.snap b/test/resources/auxilary_functions.f.snap new file mode 100644 index 00000000..d3218a10 --- /dev/null +++ b/test/resources/auxilary_functions.f.snap @@ -0,0 +1,1338 @@ +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> real Function sqrEdge(xy1, xy2) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C Routine computes sqruare distance between two points +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> real xy1(2), xy2(2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> sqrEdge = (xy1(1) - xy2(1)) ** 2 + (xy1(2) - xy2(2)) ** 2 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.left.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.division.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.addition.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.left.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.division.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +> Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> real Function calEdge(xy1, xy2) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C Routine computes distance between two points +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> real xy1(2), xy2(2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> calEdge = sqrt((xy1(1) - xy2(1)) ** 2 + +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran support.function.intrinsic.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.left.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.division.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.addition.fortran +> & (xy1(2) - xy2(2)) ** 2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.line-continuation-operator.fortran +# ^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.left.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.division.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.right.fortran +> Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> real Function calNorm(xy1) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C Routine calculates norm of vector xy1 +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> real xy1(2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> calNorm = sqrt(xy1(1) ** 2 + xy1(2) ** 2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran support.function.intrinsic.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.left.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.division.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.addition.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.division.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran punctuation.parentheses.right.fortran +> Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Subroutine extNormal(xy1, xy2, xy3, xyn) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran +# ^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran entity.name.function.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C Routines compute external normal vector to the edge {xy1, xy2} +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C of triangle {xy1, xy2, xy3} +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +> real xy1(2), xy2(2), xy3(2), xyn(2) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> real x, y, d +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +> +> x = xy2(1) - xy1(1) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> y = xy2(2) - xy1(2) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> d = sqrt(x * x + y * y) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran support.function.intrinsic.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.addition.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran punctuation.parentheses.right.fortran +> +> xyn(1) = -y / d +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> xyn(2) = x / d +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> +>c ... orientation +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +> x = xy3(1) - xy1(1) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> y = xy3(2) - xy1(2) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> If( x*xyn(1) + y*xyn(2).GT.0D0 ) Then +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran keyword.operator.power.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran keyword.operator.addition.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran keyword.operator.power.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.control.then.fortran +> xyn(1) = -xyn(1) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran keyword.operator.subtraction.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> xyn(2) = -xyn(2) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran keyword.operator.subtraction.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> End if +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.block.if.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.control.endif.fortran +> +> Return +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.endsubroutine.fortran +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Subroutine calNormal(xy1, xy2, xyn) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran +# ^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran entity.name.function.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C Routines compute a normal vector to the edge {xy1, xy2} +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +> real xy1(2), xy2(2), xyn(2) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> real x, y, d +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +> +> x = xy2(1) - xy1(1) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> y = xy2(2) - xy1(2) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> d = sqrt(x * x + y * y) +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran support.function.intrinsic.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.addition.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran punctuation.parentheses.right.fortran +> +> xyn(1) = -y / d +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> xyn(2) = x / d +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> +> Return +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.endsubroutine.fortran +> +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> real Function DotMul(a, b) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C Routine computes scalar product of two vectors +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> real a(2), b(2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> DotMul = a(1) * b(1) + a(2) * b(2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.addition.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> real Function VecMul(a, b) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C Routine computes vector product a x b which is a number in 2D. +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> real a(2), b(2) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> VecMul = a(1) * b(2) - a(2) * b(1) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.subtraction.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.power.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Logical Function check1j(i1, j) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.character.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C check1j = TRUE if i1 belongs to the set j(3). +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> Integer j(3) +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran storage.type.integer.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +> +> check1j = .TRUE. +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.language.logical.true.fortran +> If(i1.EQ.j(1)) goto 1000 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran +> If(i1.EQ.j(2)) goto 1000 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran +> If(i1.EQ.j(3)) goto 1000 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran +> +> check1j = .FALSE. +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.language.logical.false.fortran +> 1000 Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Logical Function check12(i1, j1, j2) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.character.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C check12 = TRUE if i1 belongs to the set {j1, j2}. +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> check12 = .TRUE. +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.language.logical.true.fortran +> If(i1.EQ.j1) goto 1000 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran +> If(i1.EQ.j2) goto 1000 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran +> +> check12 = .FALSE. +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.language.logical.false.fortran +> 1000 Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Logical Function check22(i1, i2, j1, j2) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran storage.type.character.fortran +# ^ source.fortran.fixed meta.function.fortran meta.attribute-list.function.fortran +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C check22 = TRUE if pair {i1, i2} coinsides with {j1, j2}. +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran comment.line.fortran +> check22 = .FALSE. +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.language.logical.false.fortran +> If(i1.NE.j1 .AND. i1.NE.j2) goto 1000 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran +> If(i2.NE.j1 .AND. i2.NE.j2) goto 1000 +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran +> +> check22 = .TRUE. +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.language.logical.true.fortran +> 1000 Return +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Subroutine swapii(i1, i2) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran entity.name.function.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C Routine swaps two integers +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +> i = i1 +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> i1 = i2 +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> i2 = i +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> +> Return +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.endsubroutine.fortran +> +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Subroutine swapdd(d1, d2) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran entity.name.function.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C Routine swaps two real numbers +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +> real d, d1, d2 +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +> d = d1 +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> d1 = d2 +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> d2 = d +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> +> Return +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.endsubroutine.fortran +> +> +>C ================================================================ +#^ source.fortran.fixed comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed comment.line.fortran +> Subroutine paramInclude(d1, d2) +#^^^^^^ source.fortran.fixed constant.numeric.fortran +# ^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran +# ^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran entity.name.function.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C Dummy function to test includes on hover +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +>C ================================================================ +#^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran comment.line.fortran +> include "parameters.prm" +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.include.fortran keyword.control.include.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.include.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.include.fortran string.quoted.double.fortran punctuation.definition.string.begin.fortran +# ^^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.include.fortran string.quoted.double.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.include.fortran string.quoted.double.fortran punctuation.definition.string.end.fortran +> real d, d1, d2 +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran storage.type.real.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran +> d = AniRatio +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> d1 = AniEigenvalue +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> d2 = DiscreteGrad +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran +# ^^^^^^^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.parameter.fortran +> +> Return +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran meta.statement.control.return.fortran keyword.control.return.fortran +> End +#^^^^^^ source.fortran.fixed meta.subroutine.fortran meta.block.specification.subroutine.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.subroutine.fortran keyword.other.endsubroutine.fortran \ No newline at end of file diff --git a/test/resources/fixed_form.F.snap b/test/resources/fixed_form.F.snap index 51b17b93..bd26fff0 100644 --- a/test/resources/fixed_form.F.snap +++ b/test/resources/fixed_form.F.snap @@ -7,87 +7,237 @@ > > PROGRAM EUCLID #^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^ source.fortran.fixed +# ^^^^^^^ source.fortran.fixed meta.program.fortran keyword.control.program.fortran +# ^ source.fortran.fixed meta.program.fortran +# ^^^^^^ source.fortran.fixed meta.program.fortran entity.name.program.fortran > PRINT *, 'A?' -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.print.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.operator.power.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran > READ *, NA -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.read.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.operator.power.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran > IF (NA.LE.0) THEN -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.then.fortran > PRINT *, 'A must be a positive integer.' -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran keyword.control.print.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran keyword.operator.power.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran > STOP -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran meta.statement.control.stop.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran meta.statement.control.stop.fortran keyword.control.stop.fortran > END IF -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.endif.fortran > PRINT *, 'B?' -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.print.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.operator.power.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran > READ *, NB -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.read.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.operator.power.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran > IF (NB.LE.0) THEN -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.then.fortran > PRINT *, 'B must be a positive integer.' -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran keyword.control.print.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran keyword.operator.power.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran > STOP -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran meta.statement.control.stop.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran meta.statement.control.stop.fortran keyword.control.stop.fortran > END IF -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.block.if.fortran +# ^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.endif.fortran > PRINT *, 'The GCD of', NA, ' and', NB, ' is', NGCD(NA, NB), '.' -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.control.print.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran keyword.operator.power.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^^^^^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.parameter.fortran punctuation.parentheses.right.fortran +# ^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.begin.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran +# ^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran string.quoted.single.fortran punctuation.definition.string.end.fortran > STOP -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.statement.control.stop.fortran +# ^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran meta.statement.control.stop.fortran keyword.control.stop.fortran > END -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.program.fortran meta.block.specification.program.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.program.fortran keyword.control.endprogram.fortran > > FUNCTION NGCD(NA, NB) #^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +# ^^^^^^^^ source.fortran.fixed meta.function.fortran keyword.other.function.fortran +# ^ source.fortran.fixed meta.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran entity.name.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.begin.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list +# ^^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list variable.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.function.first-line.fortran meta.dummy-variable-list punctuation.definition.parameters.end.fortran > IA = NA -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran > IB = NB -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran > 1 IF (IB.NE.0) THEN -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.left.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran meta.parameter.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran keyword.logical.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran constant.numeric.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.expression.control.logical.fortran punctuation.parentheses.right.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.then.fortran > ITEMP = IA -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.parameter.fortran > IA = IB -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.parameter.fortran > IB = MOD(ITEMP, IB) -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran support.function.intrinsic.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran punctuation.parentheses.left.fortran +# ^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.parameter.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran punctuation.parentheses.right.fortran > GOTO 1 -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.statement.control.goto.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.statement.control.goto.fortran keyword.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.statement.control.goto.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran meta.statement.control.goto.fortran constant.numeric.fortran > END IF -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.block.if.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.control.endif.fortran > NGCD = IA -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran keyword.operator.assignment.fortran +# ^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran +# ^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.parameter.fortran > RETURN -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^^^^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran +# ^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran meta.statement.control.return.fortran keyword.control.return.fortran > END -#^^^^^^ source.fortran.fixed constant.numeric.fortran -# ^^^^ source.fortran.fixed +#^^^^^^ source.fortran.fixed meta.function.fortran meta.block.specification.function.fortran constant.numeric.fortran +# ^^^ source.fortran.fixed meta.function.fortran keyword.other.endfunction.fortran > \ No newline at end of file diff --git a/test/resources/openacc_support.f90.snap b/test/resources/openacc_support.f90.snap index 4d328f10..58101562 100644 --- a/test/resources/openacc_support.f90.snap +++ b/test/resources/openacc_support.f90.snap @@ -18,140 +18,399 @@ > !$acc data copy(A) copyin(B(:)) copyout(C(1:N)) present(D) & #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > !$acc& no_create(E) deviceptr(F) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > > !$acc parallel loop private(foo) firstprivate(bar) tile(32,32) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openmp +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openmp +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openmp +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive constant.tile.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > > !$acc parallel #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc loop collapse(2) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive constant.numeric.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > !$acc end parallel #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > > !$acc end data #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > > !$acc kernels default(present) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > !$acc loop independent #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc loop reduction(+:sum) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive operator.colon.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > !$acc loop reduction(max:the_max) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive operator.colon.openacc +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > !$acc loop gang worker vector #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc loop gang(128) worker(4) vector(128) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > !$acc loop seq #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc end kernels #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > > !$acc parallel loop num_gangs(1) num_workers(1) vector_length(1) default(none) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > > !$acc enter data create(A(1:N)) attach(B) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > > !$acc update device(A) async #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc update host(A(1:N)) async(1) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > !$acc update self(A(:)) async(2) wait(1) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > !$acc wait(1) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > !$acc wait #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > > !$acc exit data delete(A) detach(B) finalize #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > > !$acc serial self(.TRUE.) if(.FALSE.) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > > !$acc host_data use_device(A) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > !$acc end host_data #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > > !$acc declare device_resident(A) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > > !$acc init device_type(foo) device_num(bar) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > !$acc shutdown device_type(foo) device_num(bar) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > !$acc set default_async(1) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.left.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive punctuation.parentheses.right.openacc > > !$acc cache(A(:)) #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > > ! Test all four forms of atomic #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran @@ -160,35 +419,59 @@ > !$acc atomic capture #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc end atomic #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc atomic update #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc end atomic #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc atomic read #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc end atomic #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc atomic write #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > !$acc end atomic #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc > > !The "do" should not highlight, if it does it's coming from OpenMP #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran @@ -197,7 +480,10 @@ > !$acc parallel do #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive comment.directive.openacc +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive +# ^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive string.regexp.openacc +# ^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openacc.directive > !The "do" here still should, since it is OpenMP #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran @@ -205,7 +491,9 @@ > !$omp parallel do #^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran # ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran -# ^^^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran +# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openmp.directive comment.directive.openmp +# ^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openmp.directive +# ^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.program.fortran comment.line.fortran meta.openmp.directive string.regexp.openmp > >end program main #^^^^^^^^^^^ source.fortran.free meta.program.fortran keyword.control.endprogram.fortran