summaryrefslogtreecommitdiff
path: root/Dragon/src/CPOREM.f
blob: d5d93d67162df2fff354464182f98ff56a3c557a (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
70
71
72
73
74
75
76
77
78
79
*DECK CPOREM
      SUBROUTINE CPOREM(NGROUP,NL    ,NPROC ,INDPRO,DENCPO,
     >                  DXSMIC,DSCMIC,DXSREM,DSCREM)
*
*-----------------------------------------------------------------------
*
*Purpose:
* Remove Compo isotope xs from macroscopic xs.
*
*Copyright:
* Copyright (C) 2007 Ecole Polytechnique de Montreal
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
*Author(s): G. Marleau
*
*Parameters: input
* NGROUP  number of groups condensed.
* NL      number of Legendre orders.
* NPROC   number of microscopic xs to process.
* INDPRO  identifier for xs processing.
* DENCPO  Compo isotopes concentration.
* DXSMIC  microscopic vector xs.
* DSCMIC  microscopic scat matrix xs.
*
*Parameters: input/output
* DXSREM  averaged region/group x-s.
* DSCREM  scattering rates.
*
*-----------------------------------------------------------------------
*
      IMPLICIT         NONE
*----
*  SUBROUTINE ARGUMENTS
*----
      INTEGER          NGROUP,NL,NPROC,INDPRO(NPROC)
      DOUBLE PRECISION DENCPO,
     >                 DXSMIC(NGROUP,NPROC),
     >                 DSCMIC(NGROUP,NGROUP,NL),
     >                 DXSREM(NGROUP,NPROC),
     >                 DSCREM(NGROUP,NGROUP,NL)
*----
*  LOCAL PARAMETERS
*----
      INTEGER          NDPROC
      PARAMETER       (NDPROC=20)
      INTEGER          IGR,JGR,IXSR,IL
*----
*  REMOVE STANDARD XS
*----
      DO 100 IXSR=1,NDPROC
        IF(IXSR.NE.16.AND.INDPRO(IXSR).GT.0) THEN
          DO 110 IGR=1,NGROUP
            DXSREM(IGR,IXSR)=DXSREM(IGR,IXSR)
     >                      +DENCPO*DXSMIC(IGR,IXSR)
 110      CONTINUE
        ENDIF
 100  CONTINUE
*----
*  REMOVE SCATTERING XS
*----
      IL=0
      DO 120 IXSR=NDPROC+1,NDPROC+NL
        IL=IL+1
        IF(INDPRO(IXSR).GT.0) THEN
          DO 130 IGR=1,NGROUP
            DXSREM(IGR,IXSR)=DXSREM(IGR,IXSR)
     >        +DENCPO*DXSMIC(IGR,IXSR)
            DO 131 JGR=1,NGROUP
              DSCREM(IGR,JGR,IL)=DSCREM(IGR,JGR,IL)
     >          +DENCPO*DSCMIC(IGR,JGR,IL)
 131        CONTINUE
 130      CONTINUE
        ENDIF
 120  CONTINUE
      RETURN
      END