42
43
44
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "com04_c.inc"
59#include "scr17_c.inc"
60
61
62
63 INTEGER ,INTENT(OUT) :: NIMPVEL
64 INTEGER ,INTENT(INOUT) :: NFVLAG
65 INTEGER IPART(LIPART1,*), IPARTR(*)
66 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
67 TYPE (GROUP_) , DIMENSION(NGRNOD) ,INTENT(IN) :: IGRNOD
68 TYPE(SUBMODEL_DATA), DIMENSION(*) ,INTENT(IN) :: LSUBMODEL
69
70
71
72 INTEGER :: I,N,OPTID,NFVEL,NFGEO,IGS,GRNOD_ID,PART_ID,NNOD,JPART,SYS_TYPE
73 CHARACTER(LEN=NCHARKEY) :: KEY
74 CHARACTER(LEN=NCHARTITLE) :: TITR
75 LOGICAL ::
76
77
78
79 INTEGER NGR2USRN
80
81
82
83 is_available = .false.
84
85 nimpvel = 0
86
87
88
90
91 CALL HM_OPTION_START('/impvel')
92
93 DO I=1,NFVEL
94
95 CALL HM_OPTION_READ_KEY(LSUBMODEL,
96 . OPTION_ID = OPTID,
97 . OPTION_TITR = TITR,
98 . KEYWORD2 = KEY)
99
100 IF (KEY(1:4) /= 'fgeo') THEN
101 CALL HM_GET_INTV('rad_system_input_type' ,SYS_TYPE ,IS_AVAILABLE,LSUBMODEL)
102 CALL HM_GET_INTV('entityid' ,GRNOD_ID ,IS_AVAILABLE,LSUBMODEL)
103 IGS = NGR2USRN(GRNOD_ID,IGRNOD,NGRNOD,NNOD)
104 IF (IGS > 0) THEN
105 NIMPVEL = NIMPVEL + NNOD
106 IF (KEY(1:6) == 'lagmul') NFVLAG = NFVLAG + NNOD
107 END IF
108 ENDIF
109
110 ENDDO ! DO I=1,NFVEL
111
112
113
114 CALL HM_OPTION_COUNT('/impvel/fgeo',NFGEO)
115
116 CALL HM_OPTION_START('/impvel/fgeo')
117
118
119 DO I=1,NFGEO
120
121 CALL HM_OPTION_READ_KEY(LSUBMODEL,
122 . OPTION_ID = OPTID,
123 . OPTION_TITR = TITR,
124 . KEYWORD2 = KEY)
125 IF (KEY(1:4) == 'fgeo') THEN
126 CALL HM_GET_INTV('rad_spring_part' ,PART_ID ,IS_AVAILABLE,LSUBMODEL)
127 IF (PART_ID > 0) THEN
128 JPART = 0
129 DO N=1,NPART
130 IF (IPART(4,N) == PART_ID) JPART = N
131 ENDDO
132 IF (JPART == 0) THEN
133 CALL ANCMSG(MSGID=1077, MSGTYPE=MSGERROR,
134 . ANMODE=ANINFO,
135 . I1=OPTID,
136 . C1=TITR,
137 . I2=PART_ID)
138 ENDIF
139 DO N=1,NUMELR
140 IF (IPARTR(N) == JPART) NIMPVEL = NIMPVEL + 1
141 ENDDO
142 ENDIF
143
144 CALL HM_GET_INTV('distribution_table_count' ,NNOD ,IS_AVAILABLE,LSUBMODEL)
145 NIMPVEL = NIMPVEL + NNOD
146 ENDIF
147 ENDDO ! DO I=1,NFGEO
148
149 RETURN
subroutine hm_option_count(entity_type, hm_option_number)
integer, parameter nchartitle
integer, parameter ncharkey