diff options
| author | HEBERT Alain <alain.hebert@polymtl.ca> | 2025-10-15 06:42:43 -0400 |
|---|---|---|
| committer | HEBERT Alain <alain.hebert@polymtl.ca> | 2025-10-15 06:42:43 -0400 |
| commit | 1c8ce8509ac14a1457f4ad4919116f160b189d3b (patch) | |
| tree | 625e1e002aefcdd5a87a27b3be2e3421eb89c810 | |
| parent | 881666deacd270006a96823f83691343b786df3a (diff) | |
| parent | 4dfbb001df4d32309b1b0d3553e5eb7717b9914c (diff) | |
Merge branch '7-missing-param-group-in-apex-datafile-produced-by-module-apx' into 'main'
#7: Missing PARAM group in APEX datafile produced by module APX:
See merge request dragon/5.1!11
| -rw-r--r-- | Dragon/src/APXCAT.f | 38 | ||||
| -rw-r--r-- | Dragon/src/APXGEP.f | 35 | ||||
| -rw-r--r-- | doc/IGE335/Section3.35.tex | 1 |
3 files changed, 64 insertions, 10 deletions
diff --git a/Dragon/src/APXCAT.f b/Dragon/src/APXCAT.f index 78ae390..ba1cf25 100644 --- a/Dragon/src/APXCAT.f +++ b/Dragon/src/APXCAT.f @@ -46,7 +46,8 @@ PARAMETER (MAXPAR=50) INTEGER RANK,TYPE,NBYTE,DIMSR(5) INTEGER MUPLET(2*MAXPAR),MUPRHS(2*MAXPAR) - CHARACTER HSMG*131,RECNAM*80,RECNA2*80,TEXT4*4,TEXT12*12 + CHARACTER HSMG*131,RECNAM*80,RECNA2*80,REC100*100,TEXT4*4, + 1 TEXT12*12 LOGICAL COMTRE,LGERR,LGNEW(MAXPAR) *---- * ALLOCATABLE ARRAYS @@ -54,7 +55,8 @@ INTEGER, ALLOCATABLE, DIMENSION(:) :: IORRHS,JDEBAR,JARBVA,VINTE, 1 IDEBAR,IARBVA,IORIGI REAL, ALLOCATABLE, DIMENSION(:) :: VREAL - CHARACTER(LEN=8), ALLOCATABLE, DIMENSION(:) :: PARFMT_RHS + CHARACTER(LEN=8), ALLOCATABLE, DIMENSION(:) :: PARFMT_RHS, + 1 PARFMT_LHS CHARACTER(LEN=12), ALLOCATABLE, DIMENSION(:) :: VCHAR CHARACTER(LEN=80), ALLOCATABLE, DIMENSION(:) :: PARNAM_RHS, 1 PARNAM_LHS @@ -97,7 +99,7 @@ *---- IDEM=0 NCALS=NCAL - DO 170 ICAL=1,NCALR + DO 180 ICAL=1,NCALR *---- * COMPUTE THE MUPLET VECTOR FROM THE RHS APEX FILE *---- @@ -196,7 +198,7 @@ 1 'SAME PARAMETERS AS ELEMENTARY CALCULATION NB ',TEXT4 DEALLOCATE(JARBVA,JDEBAR,IORRHS) IDEM=IDEM+1 - GOTO 170 + GOTO 180 ELSE CALL XABORT('APXCAT: ELEMENTARY CALCULATION HAS THE '// 1 'SAME PARAMETERS AS ELEMENTARY CALCULATION NB '//TEXT4) @@ -252,7 +254,35 @@ WRITE(RECNAM,'(4Hcalc,I8)') NCALS WRITE(RECNA2,'(4Hcalc,I8)') ICAL call hdf5_copy(IPRHS,RECNA2,IPAPX,RECNAM) ! IPRHS -> IPAPX +*---- +* CREATE PARAM GROUP +*---- + CALL hdf5_create_group(IPAPX,TRIM(RECNAM)//"/PARAM") + CALL hdf5_read_data(IPAPX,"/paramdescrip/PARFMT",PARFMT_LHS) + DO 170 IPAR=1,NPAR + IF(MUPLET(IPAR).EQ.0) THEN + WRITE(HSMG,'(33HAPXCAT: UNDEFINED MUPLET ELEMENT=,I6)') IPAR + CALL XABORT(HSMG) + ENDIF + IV=MUPLET(IPAR) + WRITE(RECNAM,'(17H/paramvalues/PVAL,I8)') IPAR + WRITE(REC100,'(4Hcalc,I8,7H/PARAM/,A)') NCALS,PARNAM_LHS(IPAR) + IF(PARFMT_LHS(IPAR).EQ.'FLOTTANT') THEN + CALL hdf5_read_data(IPAPX,RECNAM,VREAL) + CALL hdf5_write_data(IPAPX,TRIM(REC100),VREAL(IV)) + DEALLOCATE(VREAL) + ELSE IF(PARFMT_LHS(IPAR).EQ.'ENTIER') THEN + CALL hdf5_read_data(IPAPX,RECNAM,VINTE) + CALL hdf5_write_data(IPAPX,TRIM(REC100),VINTE(IV)) + DEALLOCATE(VINTE) + ELSE IF(PARFMT_LHS(IPAR).EQ.'CHAINE') THEN + CALL hdf5_read_data(IPAPX,RECNAM,VCHAR) + CALL hdf5_write_data(IPAPX,TRIM(REC100),VCHAR(IV)) + DEALLOCATE(VCHAR) + ENDIF 170 CONTINUE + DEALLOCATE(PARFMT_LHS) + 180 CONTINUE * END OF LOOP ON ELEMENTARY CALCULATIONS. ******************** RETURN END diff --git a/Dragon/src/APXGEP.f b/Dragon/src/APXGEP.f index 3716c05..58fa62b 100644 --- a/Dragon/src/APXGEP.f +++ b/Dragon/src/APXGEP.f @@ -51,15 +51,16 @@ INTEGER RANK,TYPE,NBYTE,DIMSR(5) PARAMETER (NSTATE=40,MAXPAR=50) INTEGER IDATA(NSTATE) - CHARACTER TEXT4*4,TEXT12*12,HSMG*131 + CHARACTER TEXT4*4,TEXT12*12,HSMG*131,RECNAM*80,REC100*100 LOGICAL LGERR,COMTRE,LAST *---- * ALLOCATABLE ARRAYS *---- INTEGER, ALLOCATABLE, DIMENSION(:) :: IDEBAR,IARBVA,IORIGI,IVAL0, - 1 DIMS_APX - INTEGER, ALLOCATABLE, DIMENSION(:) :: JDEBAR,JARBVA + 1 DIMS_APX,JDEBAR,JARBVA,VINTE + REAL, ALLOCATABLE, DIMENSION(:) :: VREAL CHARACTER(LEN=8), ALLOCATABLE, DIMENSION(:) :: PARFMT + CHARACTER(LEN=12), ALLOCATABLE, DIMENSION(:) :: VCHAR CHARACTER(LEN=80), ALLOCATABLE, DIMENSION(:) :: PARNAM *---- * RECOVER INFORMATION FROM THE 'DIMSAP' PARAMETER LIST. @@ -107,11 +108,33 @@ WRITE(6,110) (MUPLET(I),I=1,NPAR) WRITE(6,'(/)') ENDIF - DO 15 I=1,NPAR - IF(MUPLET(I).EQ.0) THEN - WRITE(HSMG,'(33HAPXGEP: UNDEFINED MUPLET ELEMENT=,I6)') I +*---- +* CREATE PARAM GROUP +*---- + CALL hdf5_read_data(IPAPX,"/NCALS",NCALS) + WRITE(RECNAM,'(4Hcalc,I8)') NCALS + CALL hdf5_create_group(IPAPX,TRIM(RECNAM)//"/PARAM") + DO 15 IPAR=1,NPAR + IF(MUPLET(IPAR).EQ.0) THEN + WRITE(HSMG,'(33HAPXGEP: UNDEFINED MUPLET ELEMENT=,I6)') IPAR CALL XABORT(HSMG) ENDIF + IV=MUPLET(IPAR) + WRITE(RECNAM,'(17H/paramvalues/PVAL,I8)') IPAR + WRITE(REC100,'(4Hcalc,I8,7H/PARAM/,A)') NCALS,PARNAM(IPAR) + IF(PARFMT(IPAR).EQ.'FLOTTANT') THEN + CALL hdf5_read_data(IPAPX,RECNAM,VREAL) + CALL hdf5_write_data(IPAPX,TRIM(REC100),VREAL(IV)) + DEALLOCATE(VREAL) + ELSE IF(PARFMT(IPAR).EQ.'ENTIER') THEN + CALL hdf5_read_data(IPAPX,RECNAM,VINTE) + CALL hdf5_write_data(IPAPX,TRIM(REC100),VINTE(IV)) + DEALLOCATE(VINTE) + ELSE IF(PARFMT(IPAR).EQ.'CHAINE') THEN + CALL hdf5_read_data(IPAPX,RECNAM,VCHAR) + CALL hdf5_write_data(IPAPX,TRIM(REC100),VCHAR(IV)) + DEALLOCATE(VCHAR) + ENDIF 15 CONTINUE *---- * INTRODUCE VALUES INTO GLOBAL PARAMETER TREE. diff --git a/doc/IGE335/Section3.35.tex b/doc/IGE335/Section3.35.tex index bf4858c..8a424b5 100644 --- a/doc/IGE335/Section3.35.tex +++ b/doc/IGE335/Section3.35.tex @@ -157,6 +157,7 @@ ModeratorTemperature & moderator temperature (K) & {\tt VALE FLOT} \\ CoolantTemperature & coolant temperature (K) & {\tt VALE FLOT} \\ FuelTemperature & fuel temperature (K) & {\tt VALE FLOT} \\ ModeratorVoid & void fraction in coolant & {\tt VALE FLOT} \\ +AssemblyLinearPower & assembly linear power (W/cm) & {\tt VALE FLOT} \\ \hline \end{tabular} \end{center} |
