summaryrefslogtreecommitdiff
path: root/Donjon/src/SIMSET.f
blob: 2ed6bec1c0ccac25bf4fa389f2655dcf2579fe22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
*DECK SIMSET
      SUBROUTINE SIMSET(NCH,NB,HCYC,NASMB1,ASMB1,BURN,IFUEL,ZONE,NAME,
     > BURNUP,FMIX)
*
*-----------------------------------------------------------------------
*
*Purpose:
* Set the burnup and fuel type of a group of assemblies at positions
* ASMB1.
*
*Copyright:
* Copyright (C) 2013 Ecole Polytechnique de Montreal
*
*Author(s): 
* A. Hebert
*
*Parameters: input/output
* NCH     number of assemblies or number of quart-of-assemblies.
* NB      number of axial burnup subdivisions in an assembly.
* HCYC    name of cycle.
* NASMB1  number of assemblies to set.
* ASMB1   group of assembly names, as defined in the fuel map, to set
*         at specific burnup or fuel type.
* BURN    burnup in MW-day/tonne. Burnup must be set if .ne.-999.0.
* IFUEL   fuel type. Fuel type must be set if .ne.0.
* ZONE    default assembly or quart-of-assembly names as defined in
*         the fuel map.
* NAME    names of each assembly or of each quart-of assembly during
*         a refuelling cycle. All quart-of-assembly belonging to the
*         same assembly have the same name.
* BURNUP  burnups during a refuelling cycle. A value of -999.0 means
*         a non-initialized value.
* FMIX    assembly types after refuelling.
*
*-----------------------------------------------------------------------
*
*----
*  SUBROUTINE ARGUMENTS
*----
      INTEGER NCH,NB,NASMB1,FMIX(NCH,NB)
      CHARACTER HCYC*12,ZONE(NCH)*4,ASMB1(NASMB1)*4,NAME(NCH)*12
      REAL BURN,BURNUP(NCH,NB)
*----
*  LOCAL VARIABLES
*----
      CHARACTER HSMG*131
*
      DO IASMB1=1,NASMB1
        DO ICH=1,NCH
          IF(ASMB1(IASMB1).EQ.ZONE(ICH)) THEN
            DO IB=1,NB
              IF(BURN.NE.-999.0) THEN
                IF(BURNUP(ICH,IB).NE.-999.0) THEN
                  WRITE(HSMG,'(36H@SIMSET: BURNUP ALREADY DEFINED IN C,
     >            6HHANNEL,I4,10HAND BUNDLE,I4,10H AT CYCLE ,A12,1H.)')
     >            ICH,IB,HCYC
                ENDIF
                BURNUP(ICH,IB)=BURN
              ENDIF
              IF(IFUEL.NE.0) THEN
                FMIX(ICH,IB)=IFUEL
              ENDIF
            ENDDO
            NAME(ICH)=ASMB1(IASMB1)(:3)//HCYC(:9)
          ENDIF
        ENDDO
      ENDDO
      RETURN
      END