40 SUBROUTINE hm_yctrl(UNITAB,LSUBMODEL,IGRBRIC,IXC, IXTG,PTSHEL,PTSH3N,NUSPHCEL)
50 use element_mod ,
only : nixc,nixtg
54#include "implicit_f.inc"
64 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
65 TYPE () ,
DIMENSION(NGRBRIC) :: IGRBRIC
68 INTEGER IXTG(NIXTG,NUMELTG) ,IXC(,NUMELC)
69 INTEGER,
INTENT(INOUT) :: PTSHEL(NUMELC),PTSH3N(NUMELTG)
70 INTEGER,
INTENT(INOUT) :: NUSPHCEL
76 . NUMS,NIP,NUVAR,JJHBE,J1,NU,IP,N,NPSOLID,
77 . K,IHBE,NPG,ND,NVAR_SHELL,NPT,NE,
78 . NVSHELL0,NUSHELL0,NORTSHEL0,NUSOLID0,NELS,KK,JJ,
79 . ISOLNOD,ISOLID,IFRAM,IORTH,IREP,IGTYP,ISH3N,,NLAYERS,
80 . UID,SUB_ID,NLAY,NPTR,NPTS,NPTT,IFAIL,IRUPT_TYP,NVAR_RUPT,
81 . ILAY,IMAT,NPT_MAX,NUBEAM0,NVSH_STRA,PROP,NSROT
82 INTEGER IGBR, JGBR, IOK
83 CHARACTER(LEN=NCHARKEY) :: KEY2,KEY3,KEY
85 LOGICAL IS_AVAILABLE,GLOB
87 INTEGER ID_ELEM,NB_INIBRI,NB_INISHE,NB_INISH3,NB_ELEMENTS,
88 . NB_INITRUSS,NB_INIBEAM,NB_INISPRI,NB_INIQUA,IE,KTRIELC,
89 . KTRIELTG,NELT,NB_INISPHCEL
90 INTEGER,
DIMENSION(:),
ALLOCATABLE :: KSYSUSRTG ,KSYSUSR,WORK,,
132 ALLOCATE (ksysusr(2*numelc))
133 ALLOCATE (ksysusrtg(2*numeltg))
134 ALLOCATE (work(70000))
135 nelt =
max(numelc, numeltg)
136 ALLOCATE(itri(nelt),index(2*nelt))
149 is_available = .false.
152 IF (isigi==-3.OR.isigi==-4.OR.isigi==-5)
THEN
159 IF ( nb_inibri > 0 )
THEN
168 SELECT CASE (key(1:len_trim(key)))
172 CALL hm_get_intv(
'inibri_fill_count',nb_elements,is_available,lsubmodel)
173 numsol = numsol + nb_elements
178 CALL hm_get_intv(
'inibri_epsp_count',nb_elements,is_available,lsubmodel)
179 numsol = numsol + nb_elements
183 CALL HM_GET_INTV('inibri_ener_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
184 NUMSOL = NUMSOL + NB_ELEMENTS
188 CALL hm_get_intv(
'inibri_dens_count',nb_elements,is_available,lsubmodel)
189 numsol = numsol + nb_elements
193 CALL hm_get_intv(
'inibri_stress_count',nb_elements,is_available,lsubmodel)
194 numsol = numsol + nb_elements
198 CALL hm_get_intv(
'inibri_aux_count',nb_elements,is_available,lsubmodel)
199 numsol = numsol + nb_elements
209 nusolid =
max(nusolid,npt*nuvar)
214 CALL hm_get_intv(
'inibri_strs_f_count',nb_elements,is_available,lsubmodel)
220 nvsolid1 =
max(nvsolid1,npt*9 + 4)
225 CALL hm_get_intv(
'inibri_strs_fglo_count',nb_elements,is_available,lsubmodel)
235 IF (igbr == igrbric(k)%ID)
THEN
242 CALL ancmsg(msgid=1611,msgtype=msgerror,anmode=aninfo,c1=
'STRS_FGLO',i1=igbr)
244 numsol = numsol + igrbric(jgbr)%NENTITY
248 nvsolid1 =
max(nvsolid1,npt*9 + 4)
249 ENDDO !
DO j=1,nb_elements
253 CALL hm_get_intv(
'inibri_stra_f_count',nb_elements,is_available,lsubmodel)
255 numsol = numsol + nb_elements
258 nvsolid2 =
max(nvsolid2,
max(1,npt)*6)
263 CALL hm_get_intv(
'inibri_stra_fglo_count',nb_elements,is_available,lsubmodel
265 numsol = numsol + nb_elements
268 nvsolid2 =
max(nvsolid2,
max(1,npt)*6)
273 CALL hm_get_intv(
'inibri_fail_count',nb_elements,is_available,lsubmodel)
275 numsol = numsol + nb_elements
282 nvsolid4 =
max(nvsolid4,nptr*npts*nptt*nlay*5*nvar_rupt)
287 CALL hm_get_intv(
'inibri_scale_yld_count',nb_elements,is_available,lsubmodel)
290 numsol = numsol + nb_elements
297 nvsolid5 =
max(nvsolid5,nptr*npts*nptt*nlay + 7)
302 CALL hm_get_intv(
'inibri_ortho_count',nb_elements,is_available,lsubmodel)
304 numsol = numsol + nb_elements
307 nvsolid3 =
max(nvsolid3,nlayers * 6)
312 CALL hm_get_intv(
'inibri_eref_count',nb_elements,is_available,lsubmodel)
314 numsol = numsol + nb_elements
319 nvsolid6 =
max(nvsolid6, (isolnod+nsrot)*3)
336 IF ( nb_inishe > 0 )
THEN
338 IF (ktrielc == 0)
THEN
341 itri(ie) = ixc(nixc,ie)
343 CALL my_orders(0,work,itri,index,numelc,1)
346 ksysusr(j) =ixc(nixc,ie)
352 ! start reading /inishe card
362 IF (key2 /=
' ') glob = .true.
364 SELECT CASE (key(1:len_trim(key)))
369 CALL hm_get_intv(
'inishe_epsp_f_count',nb_elements,is_available,lsubmodel)
377 ie=uel2sys(id_elem,ksysusr,numelc)
379 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
380 numshel = numshel + 1
384 nvar_shell =
max(nvar_shell,
max(1,npg)*9)
386 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*6)
394 CALL hm_get_intv(
'inishe_strs_f_glob_count',nb_elements,is_available,lsubmodel)
403 ie=uel2sys(id_elem,ksysusr,numelc)
405 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
406 numshel = numshel + 1
410 nvar_shell =
max(nvar_shell,
max(1,npg)*13)
412 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*8)
417 ELSEIF ( .NOT. glob )
THEN
419 CALL hm_get_intv(
'inishe_strs_f_count',nb_elements,is_available,lsubmodel)
426 ie=uel2sys(id_elem,ksysusr,numelc)
430 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
431 numshel = numshel + 1
435 nvar_shell =
max(nvar_shell,
max
437 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*6)
447 CALL hm_get_intv(
'inishe_stra_f_glob_count',nb_elements,is_available,lsubmodel)
453 ie=uel2sys(id_elem,ksysusr,numelc)
457 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
458 numshel = numshel + 1
462 nvsh_stra =
max(nvsh_stra,2+2*
max(1,npg)*7)
465 ELSEIF ( .NOT. glob )
THEN
467 CALL hm_get_intv(
'inishe_stra_f_count',nb_elements,is_available,lsubmodel)
472 ie=uel2sys(id_elem,ksysusr,numelc)
475 nvar_shell =
max(nvar_shell,
max(1,npg)*8)
476 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
477 numshel = numshel + 1
485 CALL hm_get_intv(
'no_elems',nb_elements,is_available,lsubmodel)
489 ie=uel2sys(id_elem,ksysusr,numelc)
491 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
492 numshel = numshel + 1
500 CALL hm_get_intv(
'no_blocks',nb_elements,is_available,lsubmodel)
504 ie=uel2sys(id_elem,ksysusr,numelc)
506 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
507 numshel = numshel + 1
514 CALL hm_get_intv(
'inishe_ortho_count',nb_elements,is_available,lsubmodel)
518 ie=uel2sys(id_elem,ksysusr,numelc)
520 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
521 numshel = numshel + 1
529 ie=uel2sys(id_elem,ksysusr,numelc)
531 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
532 numshel = numshel + 1
538 nvar_shell =
max(nvar_shell,
max(1,nip)*24)
541 nortshel =
max(nortshel, nortshel0 +
max(1,nip)*2)
548 CALL hm_get_intv(
'inishe_orth_loc_count',nb_elements,is_available,lsubmodel)
555 ie=uel2sys(id_elem,ksysusr,numelc)
557 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
558 numshel = numshel + 1
562 nvar_shell =
max(nvar_shell,
max(1,npg
564 nvar_shell =
max(nvar_shell,
max(1,nip)*24)
567 nortshel =
max(nortshel, nortshel0 +
max(1,nip)*2)
568 IF (ndir == 2) nortshel =
max(nortshel, nortshel0 +
max(1,nip)*4)
573 CALL hm_get_intv(
'inishe_scale_yld_count',nb_elements,is_available,lsubmodel)
580 ie=uel2sys(id_elem,ksysusr,numelc
582 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
583 numshel = numshel + 1
587 nvar_shell =
max(nvar_shell,
max(1,npg)*9)
589 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*6)
591 nvshell2 =
max(nvshell2,
max(1,npg)*
max(1,nip))
596 CALL hm_get_intv(
'inishe_aux_count',nb_elements,is_available,lsubmodel)
604 ie=uel2sys(id_elem,ksysusr,numelc)
606 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
607 numshel = numshel + 1
611 nvar_shell =
max(nvar_shell,
max(1,npg)*9)
613 nvar_shell =
max(nvar_shell,
max(1,nip)*24)
615 nushell =
max(nushell,nushell0+
max(1,npg)*
max(1,nip)*nuvar)
620 CALL hm_get_intv(
'inishe_fail_count',nb_elements,is_available,lsubmodel)
629 ie=uel2sys(id_elem,ksysusr,numelc)
631 IF(ie > 0 .AND. ptshel(ie)== 0 )
THEN
632 numshel = numshel + 1
638 npt_max =
max(nptt,nlay)
639 nvar_shell =
max(nvar_shell,
max(1,nlay)*24)
640 nvshell1 =
max(nvshell1,npg*npt_max*5*nvar_rupt)
655 IF ( nb_inish3 > 0 )
THEN
657 IF (ktrieltg==0)
THEN
660 itri(ie) = ixtg(nixtg,ie)
662 CALL my_orders(0,work,itri,index,numeltg,1)
665 ksysusrtg(j) =ixtg(nixtg,ie)
666 ksysusrtg(numeltg+j)=ie
680 IF (key2 /=
' ') glob = .true.
682 SELECT CASE (key(1:len_trim(key)))
686 CALL hm_get_intv(
'inish3_epsp_f_count',nb_elements,is_available,lsubmodel)
694 ie = uel2sys(id_elem,ksysusrtg,numeltg)
696 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
697 numsh3n = numsh3n + 1
702 nvar_shell =
max(nvar_shell,
max(1,npg)*9)
704 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*6)
713 CALL hm_get_intv(
'inish3_strs_f_glob_count',nb_elements,is_available,lsubmodel)
720 ie = uel2sys(id_elem,ksysusrtg,numeltg)
722 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
723 numsh3n = numsh3n + 1
728 nvar_shell =
max(nvar_shell,
max(1,npg)*13)
730 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*8)
736 ELSEIF ( .NOT. glob )
THEN
738 CALL hm_get_intv(
'inish3_strs_f_count',nb_elements,is_available,lsubmodel)
745 ie = uel2sys(id_elem,ksysusrtg,numeltg)
747 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
748 numsh3n = numsh3n + 1
753 nvar_shell =
max(nvar_shell,
max(1,npg)*9)
755 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*6)
765 CALL hm_get_intv(
'inish3_stra_f_glob_count',nb_elements,is_available,lsubmodel)
771 ie = uel2sys(id_elem,ksysusrtg,numeltg)
773 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
774 numsh3n = numsh3n + 1
780 nvsh_stra =
max(nvsh_stra,1+2*
max(1,npg)*7)
784 ELSEIF ( .NOT. glob )
THEN
786 CALL hm_get_intv(
'inish3_stra_f_count',nb_elements,is_available,lsubmodel)
791 ie = uel2sys(id_elem,ksysusrtg,numeltg)
793 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
794 numsh3n = numsh3n + 1
798 nvar_shell =
max(nvar_shell,
max(1,npg)*8)
804 CALL hm_get_intv(
'no_elems',nb_elements,is_available,lsubmodel)
808 ie = uel2sys(id_elem,ksysusrtg,numeltg)
810 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
811 numsh3n = numsh3n + 1
818 CALL hm_get_intv(
'no_blocks',nb_elements,is_available,lsubmodel)
822 ie = uel2sys(id_elem,ksysusrtg,numeltg)
824 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
825 numsh3n = numsh3n + 1
832 CALL hm_get_intv(
'inish3_ortho_count',nb_elements,is_available,lsubmodel)
837 ie = uel2sys(id_elem,ksysusrtg,numeltg)
839 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
840 numsh3n = numsh3n + 1
845 nvar_shell =
max(nvar_shell, 9)
847 nvar_shell =
max(nvar_shell,
max(1,nip)*24)
850 nortshel =
max(nortshel, nortshel0 +
max(1,nip)*2)
856 CALL hm_get_intv(
'inish3_orth_loc_count',nb_elements,is_available,lsubmodel)
864 ie = uel2sys(id_elem,ksysusrtg,numeltg)
866 IF(ie > 0 .AND. ptsh3n(ie) == 0)
THEN
867 numsh3n = numsh3n + 1
872 nvar_shell =
max(nvar_shell,
max(1,npg)*9)
874 nvar_shell =
max(nvar_shell,
max(1,nip)*24)
877 nortshel =
max(nortshel, nortshel0 +
max(1,nip)*2)
878 IF (ndir == 2) nortshel =
max(nortshel, nortshel0 +
max(1,nip)*4)
883 CALL hm_get_intv('inish3_scale_yld_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
886 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
887 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
888 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
889 IE = UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
891.AND.
IF(IE > 0 PTSH3N(IE) == 0) THEN
892 NUMSH3N = NUMSH3N + 1
897 NVAR_SHELL = MAX(NVAR_SHELL, MAX(1,NPG)*9)
899 NVAR_SHELL = MAX(NVAR_SHELL, MAX(1,NIP)*MAX(1,NPG)*6)
901 NVSHELL2 = MAX(NVSHELL2,MAX(1,NPG)*MAX(1,NIP))
902 ENDDO ! DO J=1,NB_ELEMENTS
906 CALL HM_GET_INTV('inish3_aux_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
909 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
910 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
911 CALL HM_GET_INT_ARRAY_INDEX('nvars
',NUVAR,J,IS_AVAILABLE,LSUBMODEL)
912 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
913 IE = UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
915.AND.
IF(IE > 0 PTSH3N(IE) == 0) THEN
916 NUMSH3N = NUMSH3N + 1
921 NVAR_SHELL = MAX(NVAR_SHELL, MAX(1,NPG)*9)
923 NVAR_SHELL = MAX(NVAR_SHELL, MAX(1,NIP)*24)
925 NUSHELL = MAX(NUSHELL,NUSHELL0+MAX(1,NPG)*MAX(1,NIP)*NUVAR)
926 ENDDO ! DO J=1,NB_ELEMENTS
930 CALL HM_GET_INTV('inish3_fail_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
932 CALL HM_GET_INT_ARRAY_INDEX('nlay
',NLAY,J,IS_AVAILABLE,LSUBMODEL)
933 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
934 CALL HM_GET_INT_ARRAY_INDEX('nptt
',NPTT,J,IS_AVAILABLE,LSUBMODEL)
935 CALL HM_GET_INT_ARRAY_INDEX('lay_id
',ILAY,J,IS_AVAILABLE,LSUBMODEL)
936 CALL HM_GET_INT_ARRAY_INDEX('nvar',NVAR_RUPT,J,IS_AVAILABLE,LSUBMODEL)
937 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
938 IE = UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
940.AND.
IF(IE > 0 PTSH3N(IE) == 0) THEN
941 NUMSH3N = NUMSH3N + 1
947 NPT_MAX = MAX(NPTT,NLAY)
948 NVAR_SHELL = MAX(NVAR_SHELL, MAX(1,NLAY)*24)
949 NVSHELL1 = MAX(NVSHELL1,NPG*NPT_MAX*5*NVAR_RUPT)
950 ENDDO ! DO J=1,NB_ELEMENTS
955 END SELECT ! SELECT CASE(KEY)
957 ENDDO ! DO I=1,NB_INISH3
958 ENDIF ! IF ( NB_INISH3 > 0 )
962 INISHVAR1 = NVAR_SHELL + NVSHELL0 + NPT
963 NVSHELL = INISHVAR1 + NVSH_STRA
969 CALL HM_OPTION_COUNT('/initruss
', NB_INITRUSS)
971 IF ( NB_INITRUSS > 0 ) THEN
972 ! Start reading /INITRUSS card
973 CALL HM_OPTION_START('/initruss
')
977 CALL HM_OPTION_READ_KEY(LSUBMODEL,
980 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
984 CALL HM_GET_INTV('no_of_elems
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
986 NUMTRUS = NUMTRUS + NB_ELEMENTS
988 NVTRUSS = NVTRUSS + 6*NB_ELEMENTS
992 END SELECT ! SELECT CASE(KEY)
994 ENDDO ! DO I=1,NB_INITRUSS
995 ENDIF ! IF ( NB_INITRUSS > 0 )
1001 CALL HM_OPTION_COUNT('/inibeam
', NB_INIBEAM)
1003 IF ( NB_INIBEAM > 0 ) THEN
1004 ! Start reading /INIBEAM card
1005 CALL HM_OPTION_START('/inibeam
')
1009 CALL HM_OPTION_READ_KEY(LSUBMODEL,
1013 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
1019 CALL HM_GET_INTV('inibeam_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1021 NUMBEAM = NUMBEAM + NB_ELEMENTS
1024 ! Reading --- ID_ELEM, Prop ... ---
1025 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
1026 CALL HM_GET_INT_ARRAY_INDEX('prop_type
',IGTYP,J,IS_AVAILABLE,LSUBMODEL)
1028 NVBEAM = NVBEAM + 11
1029 IF (IGTYP == 3) THEN
1031 ELSEIF (IGTYP == 18) THEN
1032 NVBEAM = NVBEAM + 4*NIP
1034 ENDDO ! DO J=1,NB_ELEMENTS
1040 CALL HM_GET_INTV('inibeam_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1042 NUMBEAM = NUMBEAM + NB_ELEMENTS
1045 ! Reading --- ID_ELEM, Prop ... ---
1046 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
1047 CALL HM_GET_INT_ARRAY_INDEX('prop_type
',IGTYP,J,IS_AVAILABLE,LSUBMODEL)
1048 CALL HM_GET_INT_ARRAY_INDEX('nvars
' ,NUVAR,J,IS_AVAILABLE,LSUBMODEL)
1050 IF (IGTYP == 18) THEN
1051 NUBEAM = MAX(NUBEAM,NUBEAM0 + NIP*NUVAR)
1053 ENDDO ! DO J=1,NB_ELEMENTS
1057 END SELECT ! SELECT CASE(KEY)
1059 ENDDO ! DO I=1,NB_INIBEAM
1060 ENDIF ! IF ( NB_INIBEAM > 0 )
1067 CALL HM_OPTION_COUNT('/inispri', nb_inispri)
1069 IF ( nb_inispri > 0 )
THEN
1079 SELECT CASE (key(1:len_trim(key)))
1085 CALL hm_get_intv(
'size_spring',nb_elements,is_available,lsubmodel)
1087 numspri = numspri + nb_elements
1095 IF (igtyp == 4)
THEN
1097 nvspri = nvspri + 10
1099 ELSEIF (igtyp == 12)
THEN
1101 nvspri = nvspri + 11
1103 ELSEIF (igtyp == 26)
THEN
1107 ELSEIF (igtyp == 8 .OR. igtyp == 13 .OR.
1108 . igtyp == 23 .OR. igtyp == 25)
THEN
1110 nvspri = nvspri + 43
1113 ELSEIF (igtyp == 29 .OR. igtyp == 30 .OR. igtyp == 31 .OR.
1114 . igtyp == 32 .OR. igtyp == 33 .OR. igtyp == 35 .OR.
1115 . igtyp == 36 .OR. igtyp == 44 .OR. igtyp == 45 .OR.
1118 nvspri = nvspri + 16 + nuvar
1138 IF ( nb_iniqua > 0 )
THEN
1147 CALL hm_get_intv(
'no_blocks',nb_elements,is_available,lsubmodel)
1150 numquad = numquad + nb_elements
1163 IF ( nb_inisphcel > 0 )
THEN
1172 CALL hm_get_intv(
'no_blocks',nb_elements,is_available,lsubmodel)
1174 numsphy = numsphy + nb_elements
1176 SELECT CASE (key(1:len_trim(key)))
1186 nusphcel =
max(nusphcel,nuvar)