createdirections.F [SRC] [CPP] [JOB] [SCAN]
TOOLS / PREDATAS / QUADRATURE



   1 | include(dom.inc)
   2 | 
   3 |       SUBROUTINE createdirections(quadtype,quadorder,inpath,ndirs,si)
   4 | 
   5 | !       ===============================================================!
   6 | !                                                                      !
   7 | !       createdirections.F: Sets up the directions for pre processing  !
   8 | !                                                                      !
   9 | !       in                : The quadrature files and quadrature type.  !
  10 | !                                                                      !
  11 | !       out               : The total number of directions: ndirs and  !
  12 | !                           the vector si(4,ndirs) that contains all   !
  13 | !                           directions components si(1:3,i), plus the  !
  14 | !                           quadrature weight si(4,i) for each         !
  15 | !                           direction i                                !
  16 | !                                                                      !
  17 | !       author            : J. AMAYA (December 2007)                   !
  18 | !                                                                      !
  19 | !       ===============================================================!
  20 | 
  21 |         IMPLICIT NONE
  22 | 
  23 |         include 'dom_constants.h'
  24 | 
  25 | !       IN
  26 |         CHARACTER*80           :: quadtype, inpath
  27 |         DOM_INT                :: quadorder
  28 |         DOM_INT                :: ndirs
  29 | 
  30 | !       OUT
  31 |         DOM_REAL, DIMENSION(4,ndirs) :: si
  32 | 
  33 | !       LOCAL
  34 |         DOM_INT                :: i
  35 | 
  36 | !       -----------------------------------------------------!
  37 | !       Calculate the number of directions for Sn quadrature !
  38 | !       -----------------------------------------------------!
  39 | 
  40 |         IF (quadtype.eq.SNDOM) THEN
  41 |           SELECT CASE (quadorder)
  42 |           CASE(2)
  43 |             OPEN (UNIT=21, FILE=trim(inpath)//"/S2.dat")
  44 |             DO i=1,ndirs
  45 |               READ(21,*) si(1,i),si(2,i),si(3,i),si(4,i)
  46 |             ENDDO
  47 |             CLOSE(21)
  48 |           CASE(4)
  49 |             OPEN (UNIT=21, FILE=trim(inpath)//"/S4.dat")
  50 |             DO i=1,ndirs
  51 |               READ(21,*) si(1,i),si(2,i),si(3,i),si(4,i)
  52 |             ENDDO
  53 |             CLOSE(21)
  54 |           CASE(6)
  55 |             OPEN (UNIT=21, FILE=trim(inpath)//"/S6.dat")
  56 |             DO i=1,ndirs
  57 |               READ(21,*) si(1,i),si(2,i),si(3,i),si(4,i)
  58 |             ENDDO
  59 |             CLOSE(21)
  60 |           CASE(12)
  61 |             OPEN (UNIT=21, FILE=trim(inpath)//"/S12.dat")
  62 |             DO i=1,ndirs
  63 |               READ(21,*) si(1,i),si(2,i),si(3,i),si(4,i)
  64 |             ENDDO
  65 |             CLOSE(21)
  66 |           CASE(8)
  67 |             OPEN (UNIT=21, FILE=trim(inpath)//"/S8.dat")
  68 |             DO i=1,ndirs
  69 |               READ(21,*) si(1,i),si(2,i),si(3,i),si(4,i)
  70 |             ENDDO
  71 |             CLOSE(21)       
  72 |           CASE(9)
  73 |             ndirs=ndirs-3
  74 |             OPEN (UNIT=21, FILE=trim(inpath)//"/LC11.dat")
  75 |             DO i=1,ndirs
  76 |               READ(21,*) si(1,i),si(2,i),si(3,i),si(4,i)
  77 |             ENDDO
  78 |             CLOSE(21)      
  79 |          END SELECT
  80 |        ENDIF
  81 | 
  82 |       END SUBROUTINE createdirections