Literature Review
FORTRAN as a Programming Language
The FORTRAN programming language was conceived in the early 1950s the name produced from the two words Formula Translation. In 1966 the language was standardized and FORTRAN IV was born.
Revision of the language led to FORTRAN 77, the language we use today. The standard for FORTRAN 90 is now available although not yet in widespread use. F77 is a subset of F90.
FORTRAN was designed for scientists and engineers, and has dominated this field. For the past 30 years FORTRAN has been used for such projects as the design of bridges and aero plane structures, it is used for factory automation control, for storm drainage design, analysis of scientific data and so on.
The Fortran Programming Language
Fortran is a programming language with a long history. Originally developed in the 1950s, it was first created in a time before the internet, laptop computers, and desktop computers before computers even have a screen. Fortran was created at a time when computers were almost exclusively designed and operated to carry out numerical operations. Programming in Fortran today is very different from how programmers introduce instructions and compile codes. During the first decades of electronic computers, programming was done with punched cards, data was stored in tapes, and results were printed with dot matrix printers. Over more than 60 years, the language itself has evolved to accommodate new ways of programming, new hardware, new levels of complexity, and new ways of using computers for numerical calculations.
Evolution of Fortran
The first versions of the language introduce many of the concepts used today in most programming languages, the idea of loops, conditionals, and variables. Those elements are so commonplace today that we do not see as anything revolutionary, but FORTRAN was the first language to introduce many of those elements in programming, at least in a way that resemble the ways we program today.
The first milestone in the language was achieved with FORTRAN 77. This standard introduces structured programming and the processing of characters. Structured programming allows us to create larger codes and reuse pieces of code in ways that are easier to understand for a human. FORTRAN 77 was so successful that took more than a decade to reach an agreement over the new milestone. Fortran 90 added array, modular and generic programming. Those elements increase the flexibility of codes to accommodate data in run time instead of requiring constant recompilation when the parameters changed. Modules allow even larger codes to introduce tools to aggregate routines with variables. Fortran 90 left behind some issues that were solved in Fortran 95. Fortran 95 clarify some aspects of the language and was the first to introduce some parallelization techniques (HPF) well before OpenMP and other paradigms proved to be more effective for that. Fortran 2003 was the next big step in introducing Object Oriented Programming in a way that makes sense for scientific computing. The most recent developments in the language come from Fortran 2008 and 2018 which includes native parallel computing in the form of Co-arrays.
With such extensive evolution of the language, the standard retained compatibility with previous versions, being far more conservative than other languages. Scientific codes are developed for decades and used even longer. Many of the codes that run today on larger supercomputers were first developed in the 1980s and could have 1 million lines of code or more. If the language specification does not retain some compatibility many of those efforts could be lost or will become attached to older compilers losing the ability to evolve themselves.
.In this Paper is discussed the Earlier Version of Fotran; the History of:
Focusing on Fotran Compliers what Fotran is most distinctive
The IBM 1401 FORTRAN compiler1 was designed as a set of phases that operate sequentially on the source program. The source program having been placed in core storage, the compiler phases enter core one at a time. Each phase overlays its predecessor, operates on the source program and, in turn, is overlaid by the next phase of the sequence. Thus, in contrast to the customary technique of passing the source program against the compiler in core, the compiler is passed against the source program which resides in core. It is assumed that the source program is more concise than the object program, and that an object program of interest can be accommodated in core.
The 1401 FORTRAN compiler was designed for a minimum of 8000 positions of core, with tape usage being optional. The fundamental design problem stems from the core storage limitation. Because the average number of instructions per phase and the number of phases selected are inversely related (at least to a significant degree), the phase organization was employed to circumvent the core limitation. The 1401 FORTRAN compiler has 63 phases, an average of 150 instructions per phase, and a maximum of 300 instructions in any phase.
efficiency of the compilation technique Experience with the compiler suggests that, even though the basic compilation technique requires repetitive scanning of the source program, the time required for this redundant effort is small. The experience lends some credence to the following argument.
If a phase is decomposed into two serially acting phases, assume that the average execution time is increased by a multiplicative factor r. If each component phase is again decomposed into two phases, the average total execution time of the resulting four phases increases to r2 times the original. After k decompositions, 2k phases result, with an average total execution time of rk times the original. Under this assumption, it follows that an n-phase compiler takes rlog2n times longer than a comparable one-phase compiler. Because some phases do not involve scanning, this estimate may tend to be high.
Based on experience with the present compiler, it is conjectured that r ~ 1.05 and that the redundant work occasioned by the use of 63 phases increases compilation time by a factor of 1.05log263 ~ 1.3.
However, this technique reduces compilation time elsewhere, so that the net increase can be expected to be less than conjectured. Since the phases act serially, tape searching is unnecessary. Moreover, no external sorts or merges are required. After one pass of the processor, the object program lies in core storage, ready for execution.
Also, the present technique permits an approach to coding that tends to reduce compilation time. Decomposition into an appropriate number of phases often results in more available core space for execution of an individual phase than the minimum needed.
The typical phase requires only on the order of 150 instructions, although twice that number are accommodated by the allocated region in core. Thus, most of the code can be written for efficient execution without regard to economy in the number of instructions employed. Other advantages inherent in this type of coding are that it is usually faster to write and easier to debug.
________________________________________compilation time Except for certain extreme cases in which the object program fills almost all of core, the compilation time in seconds t is approximated by a linear function of the number of FORTRAN statements n (the statements assumed to be of average complexity). If the compiler is on tape, reads the source program from cards, and punches a self-loading machine language object program, then t = (0.96n + 72) seconds. As a load-and-go system, with the punching of the object program suppressed, t = (0.76n + 22) seconds. If the system is on cards, an additional 173 seconds are required.
________________________________________compiler phases The principal function of each phase of the compiler2 is indicated below. Secondary functions are subordinated; for ex- ample, error checking occurs in almost every phase, but is seldom mentioned.
Phase 00 – Snapshot. Loads a snapshot routine into 350 positions of core storage. This routine lists a specified amount of core storage.
Phase 01 – System Monitor. Brings in the next phase from the system tape or initiates reading of the next phase from cards, depending on whether the compiler is used as a tape or card system. The monitor and snapshot routines are the only ones that exist in storage throughout compilation. Because the phases act serially, very little is required of this phase which consists of only 20 instructions.
Phase 02 – Loader. Stores the entire source program, statement by statement, with all non-significant blanks eliminated. The source program is stored backwards in order to use the 1401 machine instructions that cause address registers to decrement when processing data. Appended on the right of each statement is a three-position internal sequence number (001 for the first statement, 002 for the second, etc.). The sequenced source program is printed.
Phase 03 – Scanner. Determines the type of each statement and appends a code on the right of each statement. For example, D for DO, S for STOP, I for DIMENSION statements, etc.
Phase 04 – Sort I. Determines if there is enough free storage to expand each statement by three characters.
Phase 05 – Sort II. Statements of the same type are chained together. Each statement expands by three characters-the machine address of the next statement of the same type.
Phase 06 – Sort III. The source program is sorted3 internally by statement type. The order of sorting is determined by the order in which statements of a given type undergo specific processing by subsequent phases. For example, since DIMENSION statements are processed (Phase 09) before DO statements (Phase 46), the DIMENSION statements are grouped together lower in core than the DO statements.
Phase 07 – Insert Group Mark. This is a housekeeping phase.
Phase 08 – Squoze. The words that helped define the type of each statement are eliminated, shrinking the source program. For example, the word “DIMENSION” in DIMENSION statements is eliminated.
Phase 09 – Dimension I. The DIMENSION statements are scanned, and an array table is generated in free storage. Each table element consists of the name of an array, its dimensions, and sufficient space for additional data to be. generated by Phases 11 and 12.
Phase 10 – Equivalence I. Adds simple variables present in EQUIVALENCE statements to the array table. These variables are treated, in effect, as one-element arrays.
Phase 11 – Equivalence II. The array table is altered to show the relationship between arrays. Equated arrays are chained together. Essentially, the procedure makes known to every array whose first element is equivalent to a secondary element of another array the “distance” to the first element of the latter array.
Phase 12 – Dimension II. The object-time addresses which delimit each array are computed and inserted in the array table. These addresses are also printed.
Phase 13 – Variables I. The entire source program is scanned for variables. The following changes are made directly within the text of the source program:
Simple variables are tagged for later processing by Phase 16.
Subscripted variables with constant subscripts are replaced by the object-time address of the designated array element.
All other subscripted variables are put into a canonical form which specifies a computation in terms of variables and constants for determining the object-time address of the array element specified.
Non-subscripted array names appearing in lists are replaced by the object-time address that delimit the array named.
Non-subscripted array names appearing elsewhere are replaced by the object-time address of the first element of the array.
Phase 14 – Variables II. All free storage (including the array table) is cleared and partitioned into two tables areas-Tables I and II. Parameters needed for the randomizer of Phase 16 are computed.
Phase 15 – Variables III. Does housekeeping for Phase 16.
Phase 16 – Variables IV. The source program is scanned twice for simple variables (already tagged by Phase 13). During the first scan, the compiler looks for variables being defined, i.e., those appearing on the left of an equal sign or in input lists. By means of a randomizer that computes an indirect address (a Table I address at which is located a Table II address), each such variable and its object-time address is stored uniquely and sequentially (one after another) in Table II. The object-time address replaces the variable name in the source program. During the second scan, all other variables are picked up, and the same process is carried out, except that undefined variables are noted and Table II entries are flagged whenever referenced.
Phase 17 – Variables V. Table II is scanned. The absence of a flag indicates an unreferenced variable. The object-time address of each variable is printed.
Phase 18 – Constants I. The entire source program is scanned for constants. Each constant encountered is normalized and tagged. Tables I and II are destroyed.
Phase 19 – Constants II. All free storage is again cleared and partitioned into two table areas- Tables I and II. Parameters are now stored, each with its identifier (Phase 32), in lower core immediately to the left of the list and format “statements.”
Phase 20 – Constants III. The entire source program is scanned for normalized constants (tagged by Phase 18). By means of a randomizer (as in Phase 16), each normalized constant is stored uniquely and sequentially (next to one another) in Table II. Once stored, these constants are at their object-time address and are not disturbed for the remainder of the compilation. The object-time address replaces the normalized constant directly in the text of the source program.
Phase 21 – Subscripts. Under the action of Phases 14 through 20, the canonical form for subscripted variables (see Phase 13) now specifies a computation in terms of object-time addresses. This phase simplifies the computation, leaving only the object-time addresses which serve as parameters for a closed subroutine at object time.
Phase 22 – Statement Numbers I. Statement numbers that appear in the source program are reduced to a 3-character representation. Statement numbers within the body of a statement are moved to the front of the statement.
Phase 23 – Format I. FORMAT statements are checked to ensure that they are referenced by input/output statements.
Phase 24 – Format II. The object-time format strings are developed and stored immediately preceding the constants at the lower end of storage.
Phase 25 – Lists I. Duplicate lists are checked and eliminated to optimize storage at object time.
Phase 26 – Lists II. The object-time list strings are developed and stored immediately to the left of the format strings at the lower end of storage.
Phase 27 – Lists III. Each input/output statement is reduced to the address of the list string (when present), the address of the format string (when present), and the tape unit number (where applicable).
Phase 28 – Statement Numbers II. All free storage is again cleared and partitioned into two tables-Tables I and II. Parameters needed for Phase 29 are computed.
Phase 29 – Statement Numbers III. By means of a randomizer (as in Phase 16), statement number representations (Phase 22) appearing within statements are stored uniquely, one after another, in Table II. Each such representation is replaced by the machine address at which it is stored.
Phase 30 – Statement Numbers IV. Statement number representations are matched against Table II entries via the randomizer of Phase 29. The sequence number of the statement (Phase 02) replaces the Table II entry. The Table II address (which now contains the sequence number) replaces both the representation and the sequence number in the source program. Undefined and multiply-defined statement numbers are checked.
Phase 31 – Statement Numbers V. Table II is scanned for unreferenced statement numbers (representations).
Note: Whereas the source program originally was composed of constants, variables, and statement numbers of arbitrary length, it is now highly structured and is composed of 3-character machine addresses. Machine addresses substituted for constants and variables are their object-time addresses. Machine addresses substituted for statement numbers are indirect addresses which currently reference Table II entries-sequence numbers of labeled statements. Eventually (Phase 51) these indirect addresses are replaced by the object-time addresses of the labeled statements, i.e., the addresses of object programs compiled from these statements.
Phase 32 – Input/Output I. The residue of each I/O statement other than BACKSPACE, REWIND, and END FILE is substituted into an object-time mask. The filled-in mask and an identifier are stored in lower core immediately adjacent to the last entry in Table II. The identifier is the sequence number (Phase 02) or, only when the statement originally had a statement number, the machine address of the sequence number stored in Table II (Phase 30).
Phase 33 – Arith I. All arithmetic expressions appearing in the source program are scanned. Switches are set to indicate which function routines must be loaded by Phase 52. Minor changes are made to expressions, and sufficient error testing is done to expedite Phase 34.
Phase 34 – Arith II. By means of a transition matrix,4 each arithmetic expression is broken down into a sequence of one or two operand sub-expressions involving temporary dummy storage locations.
Phase 35 – Arith III. Initialization for Phase 36.
Phase 36 – Arith IV. Redundant references to temporary dummy storage locations are eliminated by forming maximal strings of operands and operators from each sequence of sub-expressions. Each string specifies the computation in which (1) unary operators act on the entire substring immediately to their left and (2) binary operators combine this substring with the operand on their right.
Phase 37 – Arith V. Exponentiation operators are replaced by substrings involving log and anti-log functions. Implied mode changes are made explicit by inserting (or deleting) fix or float operators in the strings. The Table II addresses (Phase 29) appearing within IF statements (involving arithmetic expressions) are substituted into masks of object-time instructions. The filled-in mask replaces the addresses in the source program.
Phase 38 – Arith VI. The arithmetic strings are altered so that temporary storage areas are shared whenever possible. Machine addresses are determined for these areas and substituted for the dummy addresses in the strings. Previous arithmetic and IF statements are now stored, each with its identifier (Phase 32), in lower core immediately to the left of the list and format “statements.”
Phase 39 – End file, Rewind, Backspace.
Phase 40 – Computed Go To.
Phase 41 – Go To.
Phase 42 – Stop/Pause.
Phase 43 – Sense Light.
Phase 44 – If (Hardware).
Phases 39 through 44 are essentially the same. In each phase, the residue of statements of the indicated type are substituted into masks of in-line, object-time instructions. The filled-in masks are stored with their identifiers (Phase 32) at the next available locations in lower core.
Phase 45 – Continue. No object-time instructions are generated for these statements. Only the identifiers (Phase 30) are stored in lower core.
Phase 46 – Do. DO statements are analyzed for nesting. Illegal nesting is noted. The residue of each DO statement is substituted into an object-time mask; but in general, the exit address is left blank. The partially filled-in mask and its identifier are stored in lower core. An unconditional branch is generated (uniquely) to follow (via Phase 49) the last statement within the range of the DO.
Note: At thus point, the entire source program has been transformed into (essentially) object program procedure. For simplicity, we continue to write “statement” when we mean “procedure compiled from statement.”
Phase 47 – Resort I. An area is made available for a table to assist in resorting the statements into their original order.
Phase 48 – Resort II. The resort table is filled with the current location of each statement.
Phase 49 – Resort III. The statements are resorted back into their original order with the identifiers eliminated. The Table II entries (sequence numbers of statements originally labeled with statement numbers) are replaced by the current machine ad- dresses of those statements. Exit addresses are substituted into the procedure generated for DO statements (Phase 46). For each executable statement, the sequence number and the object-time starting address of the generated procedure are printed.
Phase 50 – Resort IV. The statements are shifted to the places they will occupy at object time. The Table II entries are bumped accordingly.
Phase 51 – Replace I. The entire object program procedure is scanned for indirect addresses (see note following Phase 31). Each indirect address is replaced by its direct address-now available in Table II.
Phase 52 – Function/Subroutine Loader. Relocatable function routines and subroutines (which comprise Phase 53) are selectively loaded. A table of starting addresses of these routines is created in free storage.
Phase 53 – Relocatable Package. This phase consists of the relocatable routines loaded by Phase 52.
Phase 54 – Format Loader. The object-time format routine, which is included in this phase, is loaded.
Phase 55 – Replace II. Those instructions in the generated object program that should branch to the relocatable routines are modified (via the table of Phase 52) to show the object-time addresses of these routines.
Phase 56 – Snapshot. A snapshot of the generated program is printed if initially requested and if no source program errors have been detected that would make program execution unrewarding.
Phases 57, 58, 59, 60 – Condensed Deck. When requested and if there are no input errors, these phases punch and list the object program as a self-loading condensed card deck.
Phase 61 — Geaux I. This phase prints the end-of-compilation message, initializes the sense lights, and prepares the branch into the object program coding.
Phase 62 – Geaux II. The arithmetic routine (Phase 63) is read into storage. Communication between this routine and the relocatable routines is established. The object program is executed on option.
Phase 63 – Arithmetic Package. This phase consists of the arithmetic routine loaded by Phase 62.
The First IBM Fotran Compiler is discussed on a more Technical -High End Scale Point:
The IBM FORTRAN Pre-Compiler is a program that detects and permits correction of errors in a FORTRAN source program before the object program is compiled. The Pre-Compiler detects many of the more common programming errors in individual source statements, and indicates possible logical errors in the source program as a whole. Two versions of the Pre-Compiler are provided, one for use with the IBM 1621 Paper Tape Reader and IBM Tape Punch, and the other for the IBM 1622 Card Read Punch.
A FORTRAN source program which is to be processed was to be punched in paper tape or cards, or may be entered directly from the typewriter.
The operation of the Pre-Compiler could be divided into two phases: Error Analysis and Final Program Summary. During the error analysis phase, each statement in the FORTRAN program is analyzed for an error. If an error is detected, an error code is typed, the statement containing the error is typed, and the program halts so that you can type the statement correctly.
During this phase, a new FORTRAN source program was punched in paper tape or cards. After all statements have been analyzed and corrected, if desired, a final program summary is typed. The final program summary phase includes information about possible sources of errors not detectable in individual source statements. An additional feature of the Pre-Compiler program, using the 1620 program switches, permits you to easily alter the functions of the error analysis phase for individual requirements. The following options are available.
The following were Instructional Sets based on the Original Fotran Complier:
- You can suspend the halt and error correction routines, thereby providing a quick error analysis only. These routines can be suspended for the entire program or for individual error halts during normal processing.
- You can enter the program through the console typewriter rather than by card or paper tape input.
- You can eliminate punching of an edited source program.
- You can have correct program statements typed, in addition to the normal operation in which only incorrect statements are typed. The standard 1620 FORTRAN Pre-Compiler system contains all of the functional subroutine names included in the standard FORTRAN system. If you make alterations to the functional names, or if you add additional subroutines to the FORTRAN system, you must make the corresponding alterations and additions to the PreCompiler system.
Operation of the Pre-Compiler Program Error Codes 72 Before you process any program on the Pre-Compiler, you should be familiar with the nature of the errors that the program is deSigned to detect.
During the error analysis phase of the program, each statement is analyzed for one or more specific errors. These errors consist of 51 of the most common errors usually found in FORTRAN source programs.
As an aid in evaluating these errors, they have been grouped into seven categories: Arithmetic statements Arithmetic Statements Variables in Arithmetic
Expressions DO Loops Constants Variables in arithmetic statements DO loops Constants Statement numbers Transfer statements General
When an error is detected, an error code is typed on the console typewriter. This code consists of an alphabetic abbreviation of one of the categories listed above, followed by a number that designates the particular error in the category. ARITH - Unacceptable form to left of == sign.
- Multiple == signs.
- This code has been deleted.
- Successive operation symbols, or a function which is followed by an operation symbol. 5. Missing operation symbol or operand.
- Right parenthesis encountered before corresponding left parenthesis.
- Missing right parenthesis.
- Mixed mode expression (expression contains fixed and floating point).
- No variable to the left of equal sign.
- Involution of a fixed point variable or constant. VAR
- Variable name longer than 5 alphameric characters.
- Variable appearing in an expression or as a subscript not previously defined in an input statement; as the index of a DO loop; or defined as the left side of another arithmetic statement.
- Variable written with a subscript has not been previously defined in a DIMENSION statement.
- Variable previously defined in a DIMENSION statement has not been subscripted correctly: subscript is in unacceptable form, number of subscripts does not agree with the number specified in DIMENSION statement, numerical subscript is greater than maximum allowed by DIMENSION statement or is less than
- DO 1. In the statement DO n i == m], m 2 , m,J, the indices m}, m 2 , and m.l , if given, are not all unsigned fixed point variables or constants greater than zero. There are more than 3 indices given.
- The second index, m2 , is less than mJ, when botq are constants.
- The third index, m.l , is signed, is zero, or is missing when specified as a constant.
- The statement number n is not in acceptable form or is missing.
- The variable name has either been omitted, or is incorrectly stated, or the DO statement is incorrect.
- The statement specified as the end of an outer loop in a nest of DO’S has been found before an inner loop is complete.
- A DO loop terminates with a transfer statement, GO TO, computed GO TO, or
IF. CONST - Fixed point constant longer than 4 digits.
- Floating point constant outside the allowable range.
- Decimal point omitted from floating point constant that is written with a decimal exponent.
The FORTRAN Pre-Compiler Program
73 Statement Numbers Transfer Statements General
74
- The decimal exponent following the E in a floating point constant is incorrectly expressed in form or size.
- The exponent following an E has been omitted.
- Floating point number followed by an alphabetic character other than E.
STNO - Statement number longer than 4 digits.
- Statement number has been previously defined.
- Unnumbered CONTINUE statement. (Should be numbered when used as last statement in a DO loop.)
- Statement immediately following a transfer statement is not numbered, and is therefore inaccessible to the source program. (If the previous statement is a transfer, the only way the program can process this statement is by a transfer to it, and therefore it must always be numbered.)
TRANS 1. Statement numbers in a transfer statement (GO TO, computed GO TO, or IF) are not acceptable fixed point numbers; there is no comma between statement numbers, or there is not the required number of statement numbers. 2. 3. 4. 5. 6. 1. 2. 3. 4. 5. 6. Comma missing after the right parenthesis in a computed GO TO statement. Index in a computed GO TO statement is not a fixed point variable, or is missing. Nonnumerical character follows right parenthesis in an IF statement. In an IF statement, a character other than a left parenthesis follows the word IF. No arithmetic statement within the parentheses after the IF. (However, empty parentheses in an arithmetic statement will not be detected.)
GEN Misspelled or unacceptable nonarithmetic statement. Statement contains an unacceptable character. More than 72 characters in statement (not applicable to cards). Symbol table full (occupies more than 2,500 digits in storage). Statement contains decimal point that is not in a floating point constant. Input/output statement contains no FORMAT number, or is incorrectly stated.
- First character in an input/ouput list is not alphabetic, or the final character is not a letter or a digit.
- In a DIMENSION statement, a nonalphabetic character precedes the first variable name or a dimension, or three dimensions have been specified ( only two-dimensional arrays are permitted).
- A specified dimension is incorrect: a parenthesis has been omitted, a floating point constant or an unacceptable fixed point constant has been used, etc.
- Unnumbered FORMAT statement.
- Incomplete FORMAT statement: invalid or incorrect specification, missing parentheses, character after right parenthesis, etc.
- In an input/output statement, comma is missing after the FORMAT statement number, or the list is missing or invalid.
- The total record width specified in a FORMAT statement exceeds 87.
- A variable in a DIMENSION statement has been previously defined.
- a. The letter H orX is missingin an alphameric FORMAT statement or the width of an alphameric FORMAT statement is greater than
- b. A FORMAT statement does not contain any of the specification types, I, H, X, E, or F. Error Analysis Phase Restart Procedure Final Program Summary After an error has been detected in a statement, and the appropriate error code has been typed, the original error statement is typed. If switch 3 is off, the carriage is returned and the program halts to wait for a corrected statement to be typed in. After reviewing the erroneous statement and the error code or codes indicated, you can, in most cases, make an immediate correction to the statement. Type the correct statement (followed by a record mark), then press the release and. start keys.
The program resumes by analyzing the statement just typed to determine if any errors still exist. If the statement is correct, the program will begin analyzing the next statement in the FORTRAN program. In some cases, it may not be possible to re-enter a corrected statement without certain modifications because part of the statement has already been processed as a correct statement. For example, if an error is discovered in a transfer statement (GO TO), you must enter the correct statement with a statement number to avoid error STNO 4, or enter it twice without a statement number. (The program considers the first part of the GO TO to be correct, and requires that any statement following a transfer statement must contain a statement number). When a statement containing a statement number is partially processed due to an error, you cannot re-enter the statement with the statement number because an error STNO 2 will result. In an erroneous DIMENSION statement, for example DIMENSION C ( N ), the C is stored as a nonsubscripted variable and cannot be used later in the program as a subscripted variable. In case of C( 10,N), the C is stored as a one-dimensioned variable. Restart of the Pre-Compiler is necessary.
For expressions involving involution (raising to a power), the exponent cannot have an involution operation. For example, A * * (B * * 2. +.1) will result in erroneous operation of the Pre-Compiler. This restriction also applies to the arithmetic expression in an IF statement. There is no check for the termination of a DO loop.
If a dimension specification exceeds the capacity of the storage, erroneous results will follow. If an immediate correction cannot be made, you can resume testing of the next statement by manually branching to BEGIN (see RESTART PROCEDURES). It is important to note that if a new source program is being punched, bypassing the error correction routine will result in the incorrect statement being punched into the output tape or cards.
The normal operation of the Pre-Compiler program is to type incorrect statements only. If you require a typed copy of all statements, turn on program switch - You may find it necessary during processing to interrupt the normal operation of the program. To allow such interruptions, the following re-entry points, given by symbolic label and storage location, are available: CLEAR location 01208: The symbol table and table of statement numbers referenced by DO statements are cleared. CLEAR is the restart point for a new program to be tested. INITL location 01340: The table of statement numbers referenced by DO statements is cleared
- . BEGIN location 01472: No tables are cleared, but the program will continue to read source program statements. BEGIN is the normal entry point for restarting after a check stop or other interruptions of the Pre-Compiler. After the END statement in a source program has been processed by the PreCompiler program, a final program summary was a typewritter
ENTER SOURCE PROGRAM THEN PUSH START and the program will halt. Set the console program switches for the correct input I output options, mount the source tape or load the source deck, and begin processing by pressing the start key. After the END statement in a source program has been processed, the final program summary will be typed on the console typewriter. This will consist of the following four messages, together with the related lists of statement numbers and relocatable subroutines called by name in the source program.
UNDEFINED STATEMENT NUMBERS UNREFERENCED STATEMENT NUMBERS RELOCATABLE SUBROUTINES CALLED OBJECT PROGRAM DATA TABLE XXXXX STORAGE POSITIONS
The absence of one of the first three messages indicates that no undefined or unreferenced statement numbers have been found, or that no relocatable subroutines have been used by name in the source program. Undefined statement numbers are those referenced by a transfer, DO or Ilo statement, but not defined. After the final summary has been typed, the following message will be typed on the console typewriter and the program will halt.
PROCESSING COMPLETE Pressing the start key causes the program to clear the symbol table compiled during the processing of the previous source program and to prepare to process a new program. When this has been done, the program will type the message which calls for the entry of the source program.
The 1620 FORTRAN Pre-Compiler program deck was made up of four sections, identifiable by sequence number as follows: 00000-00001 Loading routine 00002-00361 Pre-Compiler program 00362-00367 Arithmetic tables 02001-02007 Relocatable subroutine data The relocatable subroutine data consists of a card containing the number of relocatable subroutines included in the program deck, and the following cards contain the names of these subroutines. These cards must be in the proper sequence.
If they are out of sequence, an error message will be typed and the 1620 will halt. Restore the sequence of these cards (including the two cards from the reader stacker), press the reader start and start keys to continue the operation. General Make-up of Program Tape Tape Data Duplicating the Pre-Compiler Tape The relocatable subroutine cards are punched with the function name starting in column 1 and the sequence number in columns 76 through 80. Subroutine names added to the system must be punched in the same manner.
The 1620 FORTRAN Pre-Compiler tape consisted of a loading routine which loads the multiply and add tables, and the program which follows. The last seven records are the relocatable subroutine data containing the number and names of the relocatable subroutines included in the program. These records must be exact duplicates of the corresponding records which are included in the 1620 FORTRAN processor tape. Additions to the list of relocatable subroutines in the system must be made to the Pre-Compiler tape in exactly the same form as prescribed for the 1620 FORTRAN processor tape. For the purpose of tape identification, a title and data message have been incorporated in the 1620 FORTRAN Pre-Compiler tape. The first two records of the tape contain the title and data information. After these records have been read into the 1620, the following message will be typed: 1620 FORTRAN PRECOMPILER 11/15/61 Normal processing continues after the message has been typed.
The FORTRAN Pre-Compiler tape was duplicated and/or modified by the use of the program for duplicating the FORTRAN processor and subroutine tapes, in the manner described for duplicating the processor tape.
References::
http://www.bitsavers.org/pdf/ibm/1620/C26-5619-4_1620_Fortran_Mar64.pdf
0 thoughts on “Write up on Tech Geek History: FORTRAN Complier”
Аренда подъёмников на сутки, неделю или с почасовой оплатой — Ознакомьтесь с деталями <a href=
https://tophotels.ru/member/2402437/about
Your comment is awaiting moderation.
Удобный сервис подбора подъёмника по высоте и габаритам — Узнайте все детали <a href=
https://blogfreely.net/liftuphome/kompaniia-dom-pod-ema-predostavliaet-uslugi-arendy-pod-emnikov-v-moskve-i
Your comment is awaiting moderation.
Обслуживание дизельных и бензиновых генераторов с гарантией, узнать больше <a href=
https://teletype.in/@serviceset/FvmM6LPwdts
Your comment is awaiting moderation.
Простое начало большого выигрыша — мелстрой казино регистрация по ссылке https://mellstroy.icu
Your comment is awaiting moderation.
Комфорт и качество гарантирует эротический массаж питер <a href=
https://spb.erobodio.ru/
Your comment is awaiting moderation.
Если интересует контроль здоровья и активности, переходите по ссылке <a href=
https://giphy.com/channel/healthband99
Your comment is awaiting moderation.
Эффективная отделка: полусухие стяжки и механизированная штукатурка здесь <a href=
https://www.minimum-price.ru/discussions/user/372131/
Your comment is awaiting moderation.
Удобный сервис подбора и покупки подшипников для любой техники <a href=
https://www.klerk.ru/user/2612577/
Your comment is awaiting moderation.
Узнал о месте, где реально помогают избавиться от зависимостей, посмотри здесь <a href=
https://giphy.com/channel/kvinmed98
Your comment is awaiting moderation.
Если хотите узнать, как технологии помогают следить за организмом — вам сюда <a href=
https://vrachi74.ru/user/2275/information/
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут проститутки узбечки
Your comment is awaiting moderation.
Качественная Моцарелла для пиццерий и кафе, проверено в лаборатории <a href=
https://telegra.ph/YAsnogorskie-syry—proizvodstvo-po-tradicionnym-receptam-11-07
Your comment is awaiting moderation.
Отличный вариант для тех, кто ищет надежное лечение зависимостей, вот ссылка <a href=
https://otzovik.online/katalog/zdorove/kvinmed/
Your comment is awaiting moderation.
Качественный картофель и овощи напрямую от производителя, все подробности <a href=
https://otzovik.online/katalog/tovary/tver-agroprom/
Your comment is awaiting moderation.
Лучший выбор для корпоративных мероприятий на воде, узнать детали <a href=
https://w3.ataiva.com/podmoskovnaya-riviera.ru
Your comment is awaiting moderation.
Здесь сочетают медицину и психологию для эффективного лечения, узнай больше <a href=
https://print-info.ru/users/1324
Your comment is awaiting moderation.
Оптовая продажа овощной продукции напрямую с полей, все условия <a href=
https://www.goodreads.com/user/show/192772253-dmitry-grachev
Your comment is awaiting moderation.
Восторг от прогулки и атмосферы, советую компанию, узнать больше <a href=
https://orgzz.ru/msk/co/podmoskovnaya_rivera/1389512
Your comment is awaiting moderation.
Качество и комфорт на борту, узнайте больше здесь <a href=
https://faststart.ru/cat.php?action=more&id=697828
Your comment is awaiting moderation.
Роскошное белье для стильного интерьера, рекомендуем этот магазин <a href=
https://123ru.market/items/dreams_store_58712
Your comment is awaiting moderation.
Продажа новых и б/у морских контейнеров от 5 до 45 футов — подробности по ссылке <a href=
https://te.legra.ph/Prodazha-i-arenda-suhih-i-refrizheratornyh-gruzovyh-kontejnerov-11-10
Your comment is awaiting moderation.
Нам понравилось качество и прозрачность смолы, можете глянуть — вот тут <a href=
https://giphy.com/channel/smolaeliqua99
Your comment is awaiting moderation.
Установка окон с трехкамерным профилем REHAU — Читайте полное описание <a href=
https://catalog-777.com/predpriyatie/493266/
Your comment is awaiting moderation.
Лучшие решения по корпусной мебели предлагает фабрика, подробнее здесь <a href=
https://www.recenziya24.ru/company-637/
Your comment is awaiting moderation.
Если хотите долговечный и красивый эффект, можете посмотреть — вот тут <a href=
https://sites-reviews.com/ru/smola-eliqua.ru
Your comment is awaiting moderation.
Прозрачная смета с расшифровкой стоимости работ по ремонту двигателя — Узнайте подробности здесь <a href=
https://kukhnov-dmitry-alekseyevich.inni.info/
Your comment is awaiting moderation.
Подбирали оборудование для автоматизации и нашли хороший вариант, смотрите тут <a href=
https://site.yummyani.me/users/id219845
Your comment is awaiting moderation.
Технологии остекления для поддержания микроклимата — Полная информация по ссылке <a href=
https://portal-biz.ru/a/ooo-okonnyy-zavod
Your comment is awaiting moderation.
Rare cultural artefacts from around the world — authentic and certified, explore further <a href=
https://www.netu.ai/companies/artefactum-gallery-
Your comment is awaiting moderation.
Помощь в регистрации кассы в ФНС и подключении к ОФД, узнайте подробности здесь <a href=
https://lyubimiigorod.ru/moscow/UStPhjBDvv
Your comment is awaiting moderation.
Качай мобильное приложение vodka для удобной игры на ios и android <a href=
https://vodkabet.ink
Your comment is awaiting moderation.
Custom decor featuring real fossils and artefacts — one-of-a-kind accents, check details <a href=
https://www.deviantart.com/artefactumg
Your comment is awaiting moderation.
Автоматизация торговли с помощью решений на базе 1С и iiko, подробная информация тут <a href=
https://www.recenziya24.ru/company-638/
Your comment is awaiting moderation.
Погрузись в атмосферу азартных игр на официальном сайте Сайка <a href=
https://syyka-games.fit
Your comment is awaiting moderation.
Получи бонус Syyyka за регистрацию и первые выигрыши <a href=
https://syyka-games.fit
Your comment is awaiting moderation.
Помощь в постановке онлайн-кассы на учёт в налоговой — сэкономьте время и нервы, подробности тут <a href=
https://illustrators.ru/users/posbazarspb-da934cb2-9898-4297-bd09-b5bd7a9baca0/about
Your comment is awaiting moderation.
Качественные промышленные полы с гарантией до 10 лет, подробности тут <a href=
https://te.legra.ph/Industrial-Polymer-Flooring-How-to-Choose-the-Right-Solution-11-18
Your comment is awaiting moderation.
Профессиональное и надежное обслуживание коммерческих и жилых объектов под ключ <a href=
https://otsovik.com/job/moskva/alyans_prof/
Your comment is awaiting moderation.
Профессиональное оборудование и обученный персонал, убедитесь сами <a href=
https://moskvakatalog.ru/magaziny/77066/?sphrase_id=177199
Your comment is awaiting moderation.
Аренда онлайн-касс для мероприятий и временных точек продаж, подробная информация здесь <a href=
https://profiles.delphiforums.com/n/pfx/profile.aspx?webtag=dfpprofile000&userId=1891271333
Your comment is awaiting moderation.
Делают эпоксидные полы для автосервисов и паркингов, узнать больше <a href=
https://zenwriting.net/6dmvd5avxa
Your comment is awaiting moderation.
Профессиональная организация частных и корпоративных мероприятий в Москве, подробнее тут https://drinkio70.ru/
Your comment is awaiting moderation.
Утепленные и шумоизолированные двери для комфортного жилья — узнайте все детали <a href=
https://sankt-peterburg.bizly.ru/1504550579-smk/
Your comment is awaiting moderation.
Помогают реализовать любые строительные проекты, детали и контакты по ссылке <a href=
http://rank.ru/es/www/sdbgp.ru
Your comment is awaiting moderation.
Рабочие зеркала без блокировок, рабочее зеркало онион <a href=
https://onion-games.fit/
Your comment is awaiting moderation.
Энергосберегающие окна ПВХ с установкой под ключ, ознакомьтесь подробнее <a href=
http://www.advertology.ru/index.php?name=Account&op=userinfo&username=Gleb7881
Your comment is awaiting moderation.
Проектирование и установка уличных металлических дверей с повышенной теплоизоляцией – узнайте все детали <a href=
https://occ.orioncode.sg/Vektordoor
Your comment is awaiting moderation.
Вход lev на сайт выполняется мгновенно, подробности в ссылке <a href=
https://lev-bet.ink/
Your comment is awaiting moderation.
Разработка сайтов с интеграцией CRM и системами учёта, подробная информация <a href=
https://follow.it/managing-information-overload-smart-filtering-for-modern-content-consumers?pub
Your comment is awaiting moderation.
Компания предлагает полный комплекс оборудования для общепита <a href=
https://moscow.cataloxy.ru/firms/kobor.com.htm
Your comment is awaiting moderation.
Создание масштабируемых веб-проектов на Битрикс, подробнее по ссылке <a href=
https://telegra.ph/WRP–Zolotoj-partnyor-Bitrix-professionalnaya-veb-razrabotka-i-CRM-resheniya-10-23
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут вызвать проститутку
Your comment is awaiting moderation.
Помощь на дороге при ДТП или поломке? Современный автопарк и опытные специалисты здесь <a href=
https://devpost.com/evacuator-absolut?ref_content=user-portfolio&ref_feature=portfolio&ref_medium=global-nav
Your comment is awaiting moderation.
Возможно оформление подарков с логотипом и персональными вложениями <a href=
https://www.siteprice.org/website-worth/novogodnie-podarki.su
Your comment is awaiting moderation.
Лучшие решения для праздничных и новогодних корпоративных подарков <a href=
https://rank.ru/ru/www/xn—-7sbbgletfkh2aiaghhick4a6q.xn--p1acf
Your comment is awaiting moderation.
Зарегистрируйтесь быстро и удобно на официальном сайте Joycasino <a href=
https://joy-games.space/
Your comment is awaiting moderation.
Corporate event planning in Dubai made seamless — learn more here <a href=
https://www.buzzbii.com/Sevenae
Your comment is awaiting moderation.
Фото- и видеоотчёты перед отправкой грузов из Китая — Узнайте все детали <a href=
https://penzu.com/p/9d5cec22bdbb68d6
Your comment is awaiting moderation.
Можно активировать промокод joycasino прямо сейчас <a href=
https://joycasino-now.space/
Your comment is awaiting moderation.
Для надёжной игры выбираю официальный сайт джойказино <a href=
https://joycasino-now.space/
Your comment is awaiting moderation.
Аппараты для контактной сварки и точечной пайки – Полная информация по ссылке <a href=
https://devpost.com/grattech
Your comment is awaiting moderation.
Быстрое оформление лицензий для медицинских и фармацевтических организаций <a href=
https://follow.it/medical-licensing-essential-guide-for-clinics-and-pharmacies?pub
Your comment is awaiting moderation.
Пульсы света, красная дорожка, роли и сюжеты — как на настоящей премьере — Полная информация по ссылке <a href=
https://devfolio.co/@7Dreams
Your comment is awaiting moderation.
Профессиональные услуги по коррекции зубов и улыбки, записывайтесь быстро и удобно <a href=
https://www.siteprice.org/competitors/ortholike.ru
Your comment is awaiting moderation.
Надежное решение вопросов лицензирования медучреждений, читать далее <a href=
https://www.weblancer.net/users/guest_1764167579319/
Your comment is awaiting moderation.
Консолидация товаров перед доставкой из Китая — Подробнее по ссылке <a href=
https://otzyvy.online/sinmeng/
Your comment is awaiting moderation.
Для новых пользователей действует приятный бонус pinco <a href=
https://pinco-now.space/
Your comment is awaiting moderation.
Быстро организовать автономное питание можно через аренду генераторов, смотрите здесь <a href=
https://www.bahamaslocal.com/userprofile/1/271992/rensol991.html
Your comment is awaiting moderation.
Рекомендую это агентство, специалисты по продвижению сайта <a href=
https://guides.co/a/mihaylov-digital
Your comment is awaiting moderation.
Печать деловой полиграфии на заказ — узнайте подробности здесь <a href=
https://yandex.ru/maps/org/deviz_ofis/1384284992
Your comment is awaiting moderation.
Железнодорожная доставка грузов из Китая — Ознакомьтесь с деталями <a href=
https://portal-biz.ru/a/ooo-sinmeng
Your comment is awaiting moderation.
Эффективное продвижение сайта с индивидуальным подходом <a href=
https://www.cheaperseeker.com/u/seomaster12345
Your comment is awaiting moderation.
Печать газет и периодики — ознакомьтесь с деталями <a href=
https://500px.com/p/nptspb2025?view=photos
Your comment is awaiting moderation.
Качественная установка станций биоочистки с выездом специалиста, читать тут <a href=
https://www.novostroy.su/user/34290/
Your comment is awaiting moderation.
Оптимизация сайта и продвижение с помощью качественного контента <a href=
https://suksesvol.org/seomaster12345
Your comment is awaiting moderation.
Профессиональные стоматологические услуги с современным оборудованием <a href=
https://zenwriting.net/q2dcgu7dfx
Your comment is awaiting moderation.
Помощь в организации квартирного или офисного переезда можно заказать тут <a href=
https://teletype.in/@profgruzchiki
Your comment is awaiting moderation.
Реализация масштабных корпоративных проектов по меблировке офисов любых размеров — узнайте все детали <a href=
https://issuu.com/ofnext
Your comment is awaiting moderation.
Профессиональные светодиодные экраны для рекламы, узнайте больше <a href=
https://otzyv-pro.ru/company/tovary-i-uslugi/led-media-group/
Your comment is awaiting moderation.
Профилактика и лечение заболеваний десен квалифицированными врачами <a href=
https://otsovik.com/job/moskva/noradent/
Your comment is awaiting moderation.
Обустройство переговорных комнат, офисных кухонь, гардеробных и систем хранения — полная информация по ссылке <a href=
https://moscow.cataloxy.ru/firms/www.ofnext.ru.htm
Your comment is awaiting moderation.
Кресла-реклайнеры премиум-класса с индивидуальными опциями для вашего кинотеатра — Подробнее по ссылке <a href=
https://maxforlive.com/profile/user/Neocinema
Your comment is awaiting moderation.
Отличный ресурс для тех, кто хочет навести порядок в финансах, смотрите здесь <a href=
https://my.archdaily.com/us/@sergey-bogomolov
Your comment is awaiting moderation.
Хороший вариант для оптимизации финансовых процессов, подробнее по ссылке <a href=
https://www.blurb.com/user/NFinance99?profile_preview=true
Your comment is awaiting moderation.
Профессиональное обслуживание кондиционеров под ключ, по ссылке <a href=
https://subdomainfinder.c99.nl/scans/2025-10-30/accleaning.ae
Your comment is awaiting moderation.
Эффективное обслуживание систем кондиционирования, смотрите сайт <a href=
https://www.scamadviser.com/check-website/accleaning.ae
Your comment is awaiting moderation.
Забота и уход за больными деменцией в пансионатах с подготовленным персоналом – Подробная информация здесь <a href=
https://www.storeboard.com/rodnoyochag
Your comment is awaiting moderation.
Компания предлагает широкий ассортимент дизельных генераторов, смотрите здесь <a href=
https://www.patreon.com/posts/nadezhnoe-s-ot-145042143
Your comment is awaiting moderation.
Помощь и сопровождение в послеоперационный период для пожилых – Дополнительные сведения тут <a href=
https://www.chordie.com/forum/profile.php?id=2429295
Your comment is awaiting moderation.
Механизированная штукатурка и стяжка с гарантией качества, информация по ссылке <a href=
https://www.bahamaslocal.com/userprofile/1/272735/bauputz99.html
Your comment is awaiting moderation.
Полная маркировка остекления автомобиля с нанесением всех символов, читайте полное описание <a href=
https://www.klerk.ru/user/2622039/
Your comment is awaiting moderation.
Организация временного проживания для пожилых с полным уходом – Подробнее по ссылке <a href=
https://www.dday.it/profilo/rodnoyochag
Your comment is awaiting moderation.
Качественная молочная продукция с лабораторным контролем, подробности тут <a href=
https://sites-reviews.com/ru/yaprod.ru
Your comment is awaiting moderation.
Полезный ресурс для тех, кто хочет выстроить финансы бизнеса грамотно, подробнее тут <a href=
https://wemakeit.com/users/timur_991
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут индивидуалки
Your comment is awaiting moderation.
Требуется точное измерение давления в любое время? Все детали можно узнать здесь <a href=
https://doc.aquilenet.fr/s/1OM1y2B2e
Your comment is awaiting moderation.
Решения для офисов на 5, 50 или 500 рабочих мест — Ознакомьтесь с деталями <a href=
https://msk.yp.ru/detail/id/zamm_shou_rum_5178082/
Your comment is awaiting moderation.
Пластиковые окна с установкой за 1 день по фиксированной цене — Узнайте подробности здесь <a href=
https://lyubimiigorod.ru/moscow/qFwfT4TPWH
Your comment is awaiting moderation.
Интересуют браслеты здоровья с автоматическим измерением? Информация доступна здесь <a href=
https://leetcode.com/u/healthband99/
Your comment is awaiting moderation.
Надежный поставщик промышленных подшипников, детали по ссылке <a href=
https://www.tovaryplus.ru/firm/podsnab/
Your comment is awaiting moderation.
Установка окон с детскими замками и защитой от вскрытия — Полная информация по ссылке <a href=
https://site.yummyani.me/users/id257488
Your comment is awaiting moderation.
Конфиденциальное лечение в наркологической клинике, подробности по ссылке <a href=
https://www.blurb.com/user/kvinmed98?profile_preview=true
Your comment is awaiting moderation.
Медицинская детоксикация и психологическая поддержка на всех этапах, здесь <a href=
https://bence.net/Nikolay92
Your comment is awaiting moderation.
Арендуйте яхту у них для прогулок, подробности по ссылке <a href=
https://orgzz.ru/msk/co/podmoskovnaya_rivera/1389512
Your comment is awaiting moderation.
Для закупки овощной продукции и зерновых в любых объёмах рекомендую этот ресурс <a href=
https://www.bahamaslocal.com/userprofile/1/272932/tveragroprom99.html
Your comment is awaiting moderation.
Советую для постельного белья премиум-класса, переходите <a href=
https://www.yell.ru/moscow/com/dreams-store_14509038/
Your comment is awaiting moderation.
Качественное ортодонтическое лечение доступно в этой клинике <a href=
https://a.pr-cy.ru/ortholike.ru/
Your comment is awaiting moderation.
Нужен надежный источник электропитания для стройки? Полный каталог здесь <a href=
https://hashnode.com/@rensol99
Your comment is awaiting moderation.
Требуется мощное энергооборудование с доставкой и монтажом? Узнать тут <a href=
http://www.askmap.net/location/7648168/russia/mikhail
Your comment is awaiting moderation.
Советую эту компанию по продвижению сайтов, подробнее тут <a href=
https://www.dostally.com/1761716514460756_62823
Your comment is awaiting moderation.
Рекомендую эту фирму по продвижению сайтов, подробнее по ссылке <a href=
https://www.siteprice.org/website-worth/mihaylov.digital
Your comment is awaiting moderation.
Надёжный партнёр для контроля финансов и стратегического планирования <a href=
https://wemakeit.com/users/timur_991
Your comment is awaiting moderation.
Профессиональный монтаж автономной канализации под ключ, смотреть тут <a href=
https://guides.co/a/septic-comfort-773491
Your comment is awaiting moderation.
Помогут разобраться с управленкой и выстроить прозрачную отчётность <a href=
https://www.anobii.com/en/01405566ca79140abe/profile/activity
Your comment is awaiting moderation.
Профессиональные грузоперевозки и помощь при переезде, детали по ссылке <a href=
http://www.advertology.ru/index.php?name=Account&op=userinfo&username=%DE%EB%E8%FF781
Your comment is awaiting moderation.
Установка светодиодных экранов от экспертов, подробности тут <a href=
http://or.hellhire.org/feedback/list/company/166968
Your comment is awaiting moderation.
Комплексное оснащение офиса офисной мебелью под ключ с подбором, доставкой и сборкой — Узнайте подробности здесь <a href=
https://ofis-nekst-prodzhekt.inni.info/
Your comment is awaiting moderation.
Установка акустических панелей и дверей для качественной изоляции и звука, узнайте все детали <a href=
https://gclfc.b2b.ivest.kz/
Your comment is awaiting moderation.
Печать коммерческой, имиджевой и промо-полиграфии — узнайте все детали <a href=
https://it-vacancies.ru/companies/196317/
Your comment is awaiting moderation.
Хорошие специалисты по имплантации и эстетической стоматологии, смотрите тут <a href=
https://babelcube.com/user/vasilisa-kireeva
Your comment is awaiting moderation.
Качественные услуги по перевозке мебели и техники, смотрите здесь <a href=
http://www.advertology.ru/index.php?name=Account&op=userinfo&username=Sergei781
Your comment is awaiting moderation.
Рекомендую этот сервис для чистки кондиционеров подробнее тут <a href=
https://gvozd.org/report-show/accleaning.ae
Your comment is awaiting moderation.
Печать плакатов, постеров и наружной рекламы — ознакомьтесь с деталями <a href=
https://spb.regtorg.ru/comps/c230116-tipograficheskij_kompleks_deviz_ooo.htm
Your comment is awaiting moderation.
Эффективное решение стоматологических проблем любой сложности, смотрите по ссылке <a href=
https://purekonect.com/noradent99
Your comment is awaiting moderation.
Механизированная штукатурка и полусухая стяжка под ключ, смотрите здесь <a href=
https://knowyourmeme.com/users/emir-kuznetsov
Your comment is awaiting moderation.
Если нужны твердые сыры и моцарелла для бизнеса – подробности можно узнать тут <a href=
https://follow.it/understanding-modern-cheese-production-standards?pub
Your comment is awaiting moderation.
Поставка POS-комплектов для аптек, АЗС, парикмахерских и других ниш, подробности по ссылке <a href=
https://forums.maxperformanceinc.com/forums/member.php?u=231113
Your comment is awaiting moderation.
Профессиональные грузчики для квартирного переезда, все детали по ссылке <a href=
https://flashboot.ru/profile/Nikita991/
Your comment is awaiting moderation.
Рекомендую, поставляют дизельные генераторы под любые задачи подробнее тут <a href=
https://a.pr-cy.ru/umin.su/
Your comment is awaiting moderation.
Обслуживание и техническая поддержка кассового оборудования в СПб, дополнительная информация тут <a href=
https://flashboot.ru/profile/Posbazarspb/
Your comment is awaiting moderation.
Устройства для непрерывного мониторинга здоровья 24/7, информация здесь <a href=
https://pad.stuve.de/s/zlOn4Vt4N
Your comment is awaiting moderation.
Сельхозпродукция высшего качества с экологичными технологиями — все детали тут <a href=
http://www.advertology.ru/index.php?name=Account&op=userinfo&username=Vera8119
Your comment is awaiting moderation.
Надежный поставщик подшипников для производства, подробнее тут <a href=
https://te.legra.ph/Nadezhnyj-postavshchik-promyshlennyh-podshipnikov-12-29
Your comment is awaiting moderation.
Носимые устройства с точным измерением пульса и давления, переходите сюда <a href=
https://www.anobii.com/en/0122653b9156ee799f/profile/activity
Your comment is awaiting moderation.
Кабеленесущие конструкции различных типоразмеров, смотрите по ссылке <a href=
https://otsovik.com/job/moskva/tmgrupp/
Your comment is awaiting moderation.
Отличная компания по обслуживанию генераторов, уточнить детали можно тут <a href=
https://issuu.com/serviceset
Your comment is awaiting moderation.
сигнализация с управлением через мобильное приложение для контроля авто, читайте подробнее <a href=
https://spb.flado.ru/org/216385
Your comment is awaiting moderation.
Социально-бытовая адаптация пожилых с поддержкой опытного персонала – Подробнее по ссылке <a href=
https://gvozd.org/report-show/rodnoy-ochag.ru
Your comment is awaiting moderation.
Широкий выбор смол различной вязкости для любых проектов, перейти <a href=
http://www.askmap.net/location/7667192/russia/eliqua
Your comment is awaiting moderation.
Профессиональный монтаж пластиковых окон под ключ, узнать больше можно тут <a href=
https://hallbook.com.br/oknavspb99
Your comment is awaiting moderation.
Выберите строительные материалы здесь, кликните <a href=
https://downradar.ru/ne-rabotaet/comfort-center.com
Your comment is awaiting moderation.
Установка окон с трехкамерным профилем REHAU — Читайте полное описание <a href=
https://or.hellhire.org/feedback/list/company/167140
Your comment is awaiting moderation.
Explore ancient archaeological objects reimagined as luxury home decor — Learn all about it here <a href=
https://files.fm/artefactumgallery/info
Your comment is awaiting moderation.
Производство газонов по современным агротехнологиям, подробная информация <a href=
https://www.goodreads.com/user/show/197816992-zlata-konovalova
Your comment is awaiting moderation.
Оптически прозрачные смолы для слэбов и творческих проектов, подробности <a href=
https://justpaste.it/fgtth
Your comment is awaiting moderation.
Elevate your collection with exclusive artefacts from Earth’s ancient past — Learn more at this link <a href=
https://connect.garmin.com/app/profile/1e22dc4c-7d5b-439b-8716-14823d8e8425
Your comment is awaiting moderation.
Ремонт двигателя после обрыва цепи ГРМ или перегрева с гарантией — Читайте полное описание <a href=
https://msk.yp.ru/detail/id/remont_motora_5197247/
Your comment is awaiting moderation.
Отличный сервис аренды яхт в Дубае, подробности здесь <a href=
https://telegra.ph/Arenda-yaht-v-Moskve-01-16
Your comment is awaiting moderation.
Профессиональные устройства для мониторинга сердца и давления, подробнее тут <a href=
https://te.legra.ph/The-Evolution-of-Mechanized-Plastering-in-Modern-Construction-01-12
Your comment is awaiting moderation.
Рекомендую постельное белье от этой компании, мягкое и долговечное, смотрите здесь <a href=
https://moskvakatalog.ru/internet-magazini/77502/?sphrase_id=177531
Your comment is awaiting moderation.
Рекомендую мебельную фабрику для шкафов-купе, смотрите каталог <a href=
https://hedgedoc.eclair.ec-lyon.fr/s/oKdrCyAps
Your comment is awaiting moderation.
Запчасти и расходные материалы для ремонта стоматологических установок, подробнее по ссылке <a href=
http://www.advertology.ru/index.php?name=Account&op=userinfo&username=Fintechgroup
Your comment is awaiting moderation.
Рекомендую аренду поломоечных машин для больших объектов, смотрите здесь <a href=
https://hedgedoc.eclair.ec-lyon.fr/s/Zj-QIeCUB
Your comment is awaiting moderation.
Рекомендую обслуживание коммерческой недвижимости, смотрите <a href=
https://hedgedoc.eclair.ec-lyon.fr/s/zcGXPZAXV
Your comment is awaiting moderation.
Нужна медлицензия? Юридическое сопровождение и документы — переход здесь <a href=
https://spravkainform.ru/russia/moskva/zhuravlev-konsalting-grupp-106406665
Your comment is awaiting moderation.
Лучшая компания по баням под ключ, узнать больше <a href=
https://te.legra.ph/Stroitelstvo-domov-v-Sankt-Peterburge-01-21
Your comment is awaiting moderation.
Надёжная помощь в оформлении лицензий для клиник — смотрите по ссылке <a href=
https://hallbook.com.br/mdlicenzii99
Your comment is awaiting moderation.
Качественные услуги по аренде электростанций любой мощности, узнать больше <a href=
https://justpaste.it/k93v9
Your comment is awaiting moderation.
Проверенная помощь в получении разрешений для медцентров — узнайте как <a href=
https://hashnode.com/@mdlicenzii
Your comment is awaiting moderation.
Профессиональный монтаж септиков под ключ, переходите по ссылке <a href=
https://devpost.com/septic-comfort?ref_content=user-portfolio&ref_feature=portfolio&ref_medium=global-nav
Your comment is awaiting moderation.
Опытные специалисты по такелажным работам и перевозке грузов работают здесь <a href=
http://www.advertology.ru/index.php?name=Account&op=userinfo&username=%DE%EB%E8%FF781
Your comment is awaiting moderation.
Советую ортодонтическую клинику для брекетов, подробнее тут <a href=
https://moskva.spravochnik-rf.ru/stomatologiya/953017.html
Your comment is awaiting moderation.
Входные двери от производителя с честными консультациями. Узнайте больше информации <a href=
http://okostroy.ru/-Smkdoors#
Your comment is awaiting moderation.
Ищете качественные стоматологические услуги? Рекомендую ознакомиться здесь <a href=
https://moskva.doski.ru/otradnoe/noradent-kachestvennaya-stomatologiya-dlya-vsei-semi-msg9286947.htm?cat=0&plc=
Your comment is awaiting moderation.
Оборудование общепита недорого, переходите по ссылке <a href=
https://zoon.ru/msk/business/sklad_kobor/
Your comment is awaiting moderation.
Профессиональное устройство полимерных полов для любых объектов, все подробности тут <a href=
https://www.dostally.com/1763456876507332_65092
Your comment is awaiting moderation.
Безболезненное лечение и протезирование зубов, вся информация здесь <a href=
https://www.freecodecamp.org/Varvara95
Your comment is awaiting moderation.
Опытная команда для аутсорсинга CFO, переход по ссылке <a href=
https://financetwist.gumroad.com/?_gl=1*1lkqg8x*_ga*NjMyNzE3OTYwLjE3NjgyMzIxMDc.*_ga_6LJN6D94N6*czE3Njk0NDI3MjUkbzIkZzEkdDE3Njk0NDI5MDAkajQ3JGwwJGgw
Your comment is awaiting moderation.
Продвижение сайтов на высоте, переходите по ссылке <a href=
https://otsovik.com/job/moskva/mihaylov_digital/
Your comment is awaiting moderation.
Изготовление входных дверей с шумоизоляцией и терморазрывом — узнайте подробности здесь <a href=
https://st-petersburg.cataloxy.ru/firms/dverimetallv.ru.htm
Your comment is awaiting moderation.
Экспертный подход к финансовому управлению, смотрите подробнее <a href=
https://www.goodreads.com/user/show/196468245-vasilisa-makarova
Your comment is awaiting moderation.
Отличное решение для механизированной отделки поверхностей, смотрите тут <a href=
https://www.novostroy.su/user/34592/
Your comment is awaiting moderation.
Проверенный производитель сыров твердых и полутвердых сортов, информация по ссылке <a href=
https://www.goodreads.com/user/show/198249366-vasily-mikhailov
Your comment is awaiting moderation.
Закажите панели у них, больше на сайте <a href=
https://www.topsitessearch.com/ledmediagroup.ru/
Your comment is awaiting moderation.
Полный контроль упаковки и отправки грузов из Китая — Узнайте все детали <a href=
https://babelcube.com/user/xingmeng-xingmeng
Your comment is awaiting moderation.
Полуавтоматы для сварки без электродов с подачей проволоки, читайте полное описание <a href=
https://www.openstreetmap.org/user/Grattech
Your comment is awaiting moderation.
Отличное решение для мониторинга давления и пульса круглосуточно, смотрите тут <a href=
https://topsitenet.com/profile/healthband99/1539805/
Your comment is awaiting moderation.
Надежный сервис по ремонту AC, вся информация тут <a href=
https://flashboot.ru/profile/Accleaning/
Your comment is awaiting moderation.
Профессиональные браслеты с непрерывным мониторингом всех показателей, смотреть <a href=
https://www.divephotoguide.com/user/healthband99
Your comment is awaiting moderation.
Требуются лотки и профили STRUT для проекта? Проверенный вариант здесь <a href=
https://moskva.doski.ru/proizvodstvo-kabelenesuschih-sistem-tmg-metallicheskie-lotki-i-koroba-dlya-kabelya-msg9304917.htm?cat=0&mtp=0&plc=
Your comment is awaiting moderation.
Отличная мебель по выгодным ценам, читайте дальше <a href=
https://telegra.ph/Kak-vybrat-kreslo-v-ofis-dlya-rukovoditelya-10-06
Your comment is awaiting moderation.
Советую эту компанию, надежный поставщик дизельных генераторов, подробнее тут <a href=
https://flashboot.ru/profile/Umin/
Your comment is awaiting moderation.
Надежные решения для гидроизоляции и ремонтных работ, все детали здесь <a href=
https://tvoy-bor.ru/user/341259.html?OK=Y
Your comment is awaiting moderation.
Замена старых окон на новые ПВХ конструкции быстро и недорого, подробности по ссылке <a href=
https://hashnode.com/@oknavspb
Your comment is awaiting moderation.
Износостойкие покрытия для производственных и складских помещений, ссылка <a href=
http://www.askmap.net/location/7667192/russia/eliqua
Your comment is awaiting moderation.
Индивидуальные решения для домашних кинотеатров с настройкой под ключ, дополнительные сведения тут <a href=
https://www.inmyroom.ru/users/neocinema
Your comment is awaiting moderation.
Уход за пожилыми с круглосуточным наблюдением в пансионате Родной Очаг – Узнайте подробности здесь <a href=
https://www.cake.me/me/rodnoyochag
Your comment is awaiting moderation.
Рекомендую для подбора промышленных подшипников, вся информация тут <a href=
https://podsnab.mssg.me/
Your comment is awaiting moderation.
Качественные покрытия для территорий любого типа, смотрите каталог <a href=
https://hub.docker.com/u/optgazon99?_gl=1*1ywa7s7*_gcl_au*MTI5MjkyNTM2My4xNzY1OTgxMjE0*_ga*NzcxOTA3MDUyLjE3NjQ5NDM2OTA.*_ga_XJWPQMJYHQ*czE3NzAwNDYxMTgkbzQkZzEkdDE3NzAwNDY0MzAkajIwJGwwJGgw
Your comment is awaiting moderation.
Поставка офисных кресел с тестированием модели на месте для выбора удобной посадки — Полная информация по ссылке <a href=
http://okostroy.ru/-Onext
Your comment is awaiting moderation.
Реабилитация после инфаркта с наблюдением кардиолога – Полная информация по ссылке <a href=
https://connect.garmin.com/app/profile/7289471b-4b43-470a-b4e8-aee9587ae6d2
Your comment is awaiting moderation.
Озеленение участков с гарантией приживаемости, узнать условия <a href=
https://wakelet.com/@FedorDmitriev47616
Your comment is awaiting moderation.
Надежный сервис ДГУ и БГУ, смотрите ссылку <a href=
https://www.topsitessearch.com/serviceset.ru/
Your comment is awaiting moderation.
Сигнализация с диалоговым кодом и защитой от сканирования, читайте полное описание <a href=
https://app.talkshoe.com/user/protectauto
Your comment is awaiting moderation.
Долговечные решения для складов и производств, вся информация по ссылке <a href=
https://rusrek.com/mall/polimernye_nalivnye_poly_pod_klyuch_ot_grand_polimer_8650342/
Your comment is awaiting moderation.
Быстрый монтаж полимерных полов без предоплаты, все условия по ссылке <a href=
https://www.librarything.com/profile/grandpolymer99
Your comment is awaiting moderation.
Профи в аренде яхт для любых событий, кликните сюда <a href=
http://rank.ru/ru/www/podmoskovnaya-riviera.ru
Your comment is awaiting moderation.
Надёжные решения для вакуумных процессов в промышленности, подробнее здесь <a href=
https://disqus.com/by/disqus_ETBUUOCRxF/about/
Your comment is awaiting moderation.
Нужна лицензия для медпрактики? Обращайтесь сюда, подробности здесь <a href=
https://www.cheaperseeker.com/u/licenzpro99
Your comment is awaiting moderation.
Стабильные поставки мебели для госзаказов и корпоративных проектов — Дополнительные сведения тут <a href=
https://moskvakatalog.ru/stroitelnye-magaziny/78046/?sphrase_id=177708
Your comment is awaiting moderation.
Профи по аренде яхт премиум-класса, кликните <a href=
https://hedgedoc.eclair.ec-lyon.fr/s/zSX0VRFTp
Your comment is awaiting moderation.
Экспертная помощь в оформлении лицензий для медорганизаций, жмите сюда <a href=
https://www.mindmeister.com/users/channel/129694094
Your comment is awaiting moderation.
Яхты в аренду быстро и комфортно, загляните <a href=
https://www.minimum-price.ru/discussions/user/373045/
Your comment is awaiting moderation.
Полное юрсопровождение медлицензирования, смотреть информацию <a href=
https://moskva.doski.ru/meditsinskoe-litsenzirovanie-pod-kluch-rabotaem-za-vas-msg9311419.htm?cat=0&plc=
Your comment is awaiting moderation.
Элитные комплекты белья с доставкой, читайте дальше <a href=
https://rentry.co/v3s3ffdd
Your comment is awaiting moderation.
Поддержка при получении лицензии на медицинскую деятельность, переходите <a href=
https://downradar.ru/ne-rabotaet/mdlicenzii.ru
Your comment is awaiting moderation.
Лицензирование аптек, клиник и медцентров любого профиля, смотреть <a href=
https://pad.stuve.de/s/1bm-XqYOq
Your comment is awaiting moderation.
Фабрика мебели под размеры, узнать больше <a href=
https://justpaste.it/k8p1t
Your comment is awaiting moderation.
Подбираете кабельные лотки для объекта? Качественные варианты найдете здесь <a href=
https://3dtoday.ru/blogs/sergei9811
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут индивидуалки
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут элитные проститутки
Your comment is awaiting moderation.
Проведение ремонта двигателя с закрывающими документами и НДС для юрлиц — Узнайте больше информации <a href=
https://www.pexels.com/ru-ru/@enginelab-enginelab-2159520362/
Your comment is awaiting moderation.
Нужен резервный источник питания? Прокат генераторов, подробнее здесь <a href=
https://dreevoo.com/profile_info.php?pid=1104751
Your comment is awaiting moderation.
Рулонные и синтетические газоны с быстрой укладкой, информация тут <a href=
https://press-release.ru/branches/design/__02_02_2026_19_25/
Your comment is awaiting moderation.
Заказать дом под ключ, вся информация тут <a href=
https://telegra.ph/Stroitelstvo-domov-i-ban-02-16
Your comment is awaiting moderation.
Безопасная работа в сфере досуга, узнайте все детали <a href=
https://www.pinterest.com/pin/1090785972265018469
Your comment is awaiting moderation.
Сварочные материалы и проволока для качественных швов, читайте подробнее <a href=
https://or.hellhire.org/feedback/list/company/167175
Your comment is awaiting moderation.
Выберите шлюху, удобный поиск по городам детали на сайте <a href=
https://heylink.me/Popaclub/
Your comment is awaiting moderation.
Аренда уборочной техники, смотрите сайт <a href=
https://justpaste.it/keb7w
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут зрелые проститутки
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут вызвать проститутку
Your comment is awaiting moderation.
See extraordinary jewelry made from ancient materials — Learn more here <a href=
https://9418w8cf.bigcartel.com/product/artefactum-gallery-in-dubai
Your comment is awaiting moderation.
Shop authentic mammoth ivory collectibles — Click for details <a href=
https://hub.docker.com/u/artefactum
Your comment is awaiting moderation.
Взломостойкие двери для частного сектора с многослойным утеплением и защитой от коррозии — читайте далее <a href=
https://babelcube.com/user/vektordoor-vektordoor
Your comment is awaiting moderation.
Для клинингa и отделки недвижимости советую эту команду, детали тут <a href=
https://rabotaet.net/ne-rabotaet/allianceprof.ru
Your comment is awaiting moderation.
Access the full Artefactum Gallery catalog — More info here <a href=
https://knowyourmeme.com/users/artefactum-gallery
Your comment is awaiting moderation.
Надежная ортодонтическая клиника для выравнивания зубов, загляните по ссылке <a href=
https://otzovik.online/katalog/kompanii/ortholike/
Your comment is awaiting moderation.
Разбирался с выбором очистной станции для дачи — нашёл ответы тут <a href=
https://devpost.com/septic-comfort?ref_content=user-portfolio&ref_feature=portfolio&ref_medium=global-nav
Your comment is awaiting moderation.
Безболезненное лечение зубов с использованием 3D-диагностики — перейти <a href=
https://app.readthedocs.org/profiles/Mark1711/
Your comment is awaiting moderation.
Лучшие девушки для теплого общения и встреч, подробнее тут частные проститутки
Your comment is awaiting moderation.
Большой выбор светодиодных экранов для улицы и помещений, смотрите здесь <a href=
https://www.longisland.com/profile/LedMedia
Your comment is awaiting moderation.
Центрифуги и гомогенизаторы для разделения и очистки смесей, читайте подробнее <a href=
https://flashboot.ru/profile/Orionlab/
Your comment is awaiting moderation.
Вакуумные насосы и системы фильтрации для различных сред, дополнительные сведения тут <a href=
https://build.ru/companies/32144
Your comment is awaiting moderation.
Бюджетирование, учёт и финансовая стратегия для вашего бизнеса, подробнее здесь <a href=
http://noboringfinance.pbworks.com/w/page/163109646/FrontPage#comment1769444433
Your comment is awaiting moderation.
Лучшие по обслуживанию кондиционеров, рекомендую, переходи сюда <a href=
https://myspace.com/pure.breeze1
Your comment is awaiting moderation.
Помогают оформить медицинскую лицензию под ключ с гарантией, подробнее здесь <a href=
https://zhuravlev-konsalting-grupp.blizko.ru/
Your comment is awaiting moderation.
По стяжке пола и штукатурке стен можно узнать подробнее здесь <a href=
https://www.udrpsearch.com/user/bauputz99
Your comment is awaiting moderation.
Браслеты здоровья с манжетой и точностью медицинского тонометра, подробнее <a href=
https://teletype.in/@arina1811
Your comment is awaiting moderation.