41 . X ,RTRANS ,LSUBMODEL)
55#include "implicit_f.inc"
64 INTEGER ,
DIMENSION(LISKN,*) ,
INTENT(IN) :: ISKN
65 INTEGER ,
DIMENSION(NUMNOD) ,
INTENT(IN) :: ITABM1
66 my_real ,
DIMENSION(3,NUMNOD) ,
INTENT(IN) :: x
67 my_real ,
DIMENSION(LSKEW,*) ,
INTENT(IN) :: skew
68 my_real ,
DIMENSION(NTRANSF,*) ,
INTENT(IN) :: rtrans
69 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
71 TYPE (BOX_) ,
DIMENSION(NBBOX) :: IBOX
75 INTEGER I,II,J,UID,LEN,BOXID,IUNIT,FLAGUNIT,
76 . iad,nbox,nbox_rect,nbox_cyl,nbox_spher,nbox_box,nlist
78 INTEGER :: IWORK(70000)
79 INTEGER INDEX(NBBOX*3),IX1(NBBOX),IX2(NBBOX)
80 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: BUFTMP,IBOXTMP
81 CHARACTER(LEN=NCHARKEY) :: KEY,KEY2
82 CHARACTER(nchartitle) :: TITR,MESS
83 LOGICAL :: IS_AVAILABLE
85 DATA mess/
'BOX DEFINITION '/
89 INTEGER LISTCNT,NBOXLST
117 CALL HM_OPTION_COUNT('/box/cylin
' ,NBOX_CYL )
118 CALL HM_OPTION_COUNT('/box/spher
' ,NBOX_SPHER )
119 CALL HM_OPTION_COUNT('/box/box
' ,NBOX_BOX )
121 NBOX = NBOX_RECT + NBOX_CYL + NBOX_SPHER + NBOX_BOX
125 CALL MY_ALLOC(BUFTMP ,LEN)
129 . IBOX ,IAD ,NBOX_SPHER,ITABM1 ,X ,
130 . RTRANS ,UNITAB ,LSUBMODEL )
133 . IBOX ,IAD ,NBOX_CYL ,ITABM1 ,X ,
134 . RTRANS ,UNITAB ,LSUBMODEL )
137 . IBOX ,IAD ,NBOX_RECT ,ISKN ,SKEW ,
138 . ITABM1 ,X ,RTRANS ,UNITAB ,LSUBMODEL)
140 CALL READ_BOX_BOX(IBOX ,IAD ,NBOX_BOX ,LSUBMODEL)
145 CALL MY_ALLOC (IBOXTMP ,NBOX )
146 IBOXTMP(1:NBOX) = IBOX(1:NBOX)%ID
147 CALL UDOUBLE_IGR(IBOXTMP,NBOX,MESS,0,ZERO)
152 IF (NBOX_BOX > 0) THEN
155 IF (IBOX(I)%TYPE == 0) THEN
156 NLIST = IBOX(I)%NBOXBOX
160 NLIST = NBOXLST(IBOX(I)%IBOXBOX,NLIST ,IBOXTMP ,NBBOX,
161 . BUFTMP ,BUFTMP(1+NBBOX),BUFTMP(1+2*NBBOX),
164 IBOX(I)%NBOXBOX = NLIST
166 IBOX(IAD)%NBOXBOX = 0
172 IF (ALLOCATED(IBOXTMP)) DEALLOCATE (IBOXTMP)
173 IF (ALLOCATED(BUFTMP) ) DEALLOCATE (BUFTMP )
subroutine hm_read_box(ibox, unitab, itabm1, iskn, skew, x, rtrans, lsubmodel)
subroutine read_box_cyl(ibox, iad, nbox, itabm1, x, rtrans, unitab, lsubmodel)