summaryrefslogtreecommitdiff
path: root/Donjon/src/HSTGDM.f
diff options
context:
space:
mode:
authorstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
committerstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
commit7dfcc480ba1e19bd3232349fc733caef94034292 (patch)
tree03ee104eb8846d5cc1a981d267687a729185d3f3 /Donjon/src/HSTGDM.f
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/src/HSTGDM.f')
-rw-r--r--Donjon/src/HSTGDM.f143
1 files changed, 143 insertions, 0 deletions
diff --git a/Donjon/src/HSTGDM.f b/Donjon/src/HSTGDM.f
new file mode 100644
index 0000000..d87011b
--- /dev/null
+++ b/Donjon/src/HSTGDM.f
@@ -0,0 +1,143 @@
+*DECK HSTGDM
+ SUBROUTINE HSTGDM(IPRINT, NGLO, NLOC, NCHA, NBUN ,
+ > BUNLEN, ITYRED, CARRED)
+*
+*----------
+*
+*Purpose:
+* To read the editing level and general dimensioning parameters
+* for the \dds{history} data structure.
+*
+*Copyright:
+* Copyright (C) 2003 Ecole Polytechnique de Montreal.
+*
+*Author(s):
+* G. Marleau
+*
+*Parameters: input/output
+* IPRINT print level.
+* NGLO number of global parameters.
+* NLOC number of local parameters.
+* NCHA number of fuel channels.
+* NBUN number of bundles per channel.
+* BUNLEN length (cm) of a bundle.
+* ITYRED type of the last variable read.
+* CARRED last character string read.
+*
+*----------
+*
+ USE GANLIB
+ IMPLICIT NONE
+*----
+* SUBROUTINE ARGUMENTS
+*----
+ INTEGER IPRINT,NGLO,NLOC,NCHA,NBUN
+ REAL BUNLEN
+ INTEGER ITYRED
+ CHARACTER*12 CARRED
+*----
+* LOCAL PARAMETERS
+*----
+ INTEGER IOUT
+ CHARACTER NAMSBR*6
+ PARAMETER (IOUT=6,NAMSBR='HSTGDM')
+*----
+* INPUT VARIABLES
+* Input data is of the form
+* [ EDIT iprint ]
+* [ DIMENSIONS
+* [ GLOBAL nglo ]
+* [ LOCAL nloc ]
+* [ BUNDL nbun bunl ]
+* [ CHANNEL ncha ]
+*----
+ INTEGER ITYPLU,INTLIR
+ CHARACTER CARLIR*12
+ REAL REALIR
+ DOUBLE PRECISION DBLLIR
+*----
+* Initialize output variables variables
+*----
+ ITYPLU= 0
+ CARLIR=' '
+ 100 CONTINUE
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ 101 CONTINUE
+ IF(ITYPLU .EQ. 10) GO TO 105
+ IF(ITYPLU .NE. 3) CALL XABORT(NAMSBR//
+ >': Read error -- Character variable expected')
+ IF(CARLIR .EQ. ';') THEN
+ GO TO 105
+ ELSE IF(CARLIR(1:4) .EQ. 'EDIT') THEN
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU .NE. 1) THEN
+ IPRINT=1
+ GO TO 101
+ ENDIF
+ IPRINT=INTLIR
+ GO TO 100
+ ELSE IF(CARLIR(1:4) .EQ. 'DIME') THEN
+ 110 CONTINUE
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU .NE. 3) CALL XABORT(NAMSBR//
+ > ': Read error -- Dimension type expected')
+ IF(CARLIR(1:4) .EQ. 'GLOB') THEN
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU .NE. 1) CALL XABORT(NAMSBR//
+ > ': Number of global parameters expected')
+ NGLO=INTLIR
+ GO TO 110
+ ELSE IF(CARLIR(1:4) .EQ. 'LOCA') THEN
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU .NE. 1) CALL XABORT(NAMSBR//
+ > ': Number of local parameters expected')
+ NLOC=INTLIR
+ GO TO 110
+ ELSE IF(CARLIR(1:4) .EQ. 'BUND') THEN
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU .NE. 1) CALL XABORT(NAMSBR//
+ > ': Number of bundles expected')
+ NBUN=INTLIR
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU .NE. 2) CALL XABORT(NAMSBR//
+ > ': Bundles length (cm) expected')
+ IF(REALIR .GT. 0.0) BUNLEN=REALIR
+ GO TO 110
+ ELSE IF(CARLIR(1:4) .EQ. 'CHAN') THEN
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU .NE. 1) CALL XABORT(NAMSBR//
+ > ': Number of channels expected')
+ NCHA=INTLIR
+ GO TO 110
+ ELSE
+ GO TO 105
+ ENDIF
+ ENDIF
+ 105 CONTINUE
+ IF(NGLO .LT. 0) THEN
+ NGLO=0
+ WRITE(IOUT,8000) NAMSBR,'nglo'
+ ENDIF
+ IF(NLOC .LT. 0) THEN
+ NLOC=0
+ WRITE(IOUT,8000) NAMSBR,'nloc'
+ ENDIF
+ IF(NBUN .LT. 0) THEN
+ NBUN=0
+ WRITE(IOUT,8000) NAMSBR,'nbun'
+ ENDIF
+ IF(NCHA .LT. 0) THEN
+ NCHA=0
+ WRITE(IOUT,8000) NAMSBR,'ncha'
+ ENDIF
+ ITYRED=ITYPLU
+ CARRED=CARLIR
+*----
+* Format
+*----
+ 8000 FORMAT(' ****** WARNING in ',A6,' ****** '/
+ > ' Problem : ',A4,1X,' < 0'/
+ > ' Solution : assume this parameter is not read'/
+ > ' ******************************')
+ RETURN
+ END