diff options
| author | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
|---|---|---|
| committer | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
| commit | 7dfcc480ba1e19bd3232349fc733caef94034292 (patch) | |
| tree | 03ee104eb8846d5cc1a981d267687a729185d3f3 /Donjon/src/T16REC.f | |
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/src/T16REC.f')
| -rw-r--r-- | Donjon/src/T16REC.f | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Donjon/src/T16REC.f b/Donjon/src/T16REC.f new file mode 100644 index 0000000..b7cd63a --- /dev/null +++ b/Donjon/src/T16REC.f @@ -0,0 +1,62 @@ +*DECK T16REC + SUBROUTINE T16REC(IFT16 ,IPRINT,INEXTR) +* +*---- +* +*Purpose: +* Locate next set of records on tape16. +* +*Author(s): +* G. Marleau +* +*Parameters: input +* IFT16 tape16 file unit. +* IPRINT print level where: +* =0 for no print; >= 1 print processing option. +* INEXTR next record set to read. +* +*---- +* + IMPLICIT NONE + INTEGER IFT16,IPRINT,INEXTR +*---- +* T16 PARAMETERS +*---- + INTEGER MAXKEY + PARAMETER (MAXKEY=3) + CHARACTER TKEY1(MAXKEY)*10,TKEY2(MAXKEY)*10, + > RKEY1*10,RKEY2*10 + INTEGER NKEY,IOPT,NBE,NSKIPR,ISKIPR +*---- +* LOCAL VARIABLES +*---- + INTEGER IOUT + CHARACTER NAMSBR*6 + PARAMETER (IOUT=6,NAMSBR='T16REC') +*---- +* REWIND AND SKIP FIRST INEXTR-1 SETS OF RECORDS +*---- + REWIND(IFT16) + NSKIPR=INEXTR + TKEY1(1)='MTR ' + TKEY2(1)='FEWGROUPS ' + NKEY=1 + IOPT=-1 + DO ISKIPR=1,NSKIPR + CALL T16FND(IFT16 ,IPRINT,IOPT ,NKEY ,TKEY1 ,TKEY2 , + > NBE ) + IF(NBE .EQ. -1) THEN + WRITE(IOUT,9000) NAMSBR,TKEY1(1),TKEY2(1),INEXTR + CALL XABORT(NAMSBR//': INVALID RECORD NUMBER ON TAPE16') + ENDIF + READ(IFT16) RKEY1,RKEY2,NBE + ENDDO + RETURN +*---- +* ABORT FORMAT +*---- + 9000 FORMAT(1X,A6,1X,7('*'),' ERROR ',7('*')/ + > 8X,I6,' TAPE16 RECORD WITH KEYS =',2(A10,2X), + > 'NOT FOUND'/ + > 8X,21('*')) + END |
