You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.4 KiB
Fortran
162 lines
4.4 KiB
Fortran
SUBROUTINE INITSIZ(IIN1,N1,M1,K1)
|
|
|
|
USE WINTERACTER
|
|
USE BLK1MOD
|
|
USE BLK2MOD
|
|
USE BLKMAP
|
|
|
|
INCLUDE 'D.INC'
|
|
|
|
IF(K1 .EQ. 0) THEN
|
|
MAXPL=200000
|
|
MAXP=200000
|
|
MAXE=120000
|
|
MAXSTO=2
|
|
MAXLIN=3000
|
|
MAXECON=60
|
|
MAXECON1=30
|
|
MAXLN=20
|
|
MAELN=300
|
|
RETURN
|
|
ENDIF
|
|
IMIDS=0
|
|
IF(IIN1 .EQ. 10. .AND. IGFG .EQ. 0 .AND. ITRIAN .EQ. 0) THEN
|
|
CALL RDRM1(IIN1,N1,M1,IMIDS)
|
|
ENDIF
|
|
IF(ITRIAN .EQ. 0) NMIDS=1
|
|
iqsw(1)=1
|
|
iqsw(2)=0
|
|
CALL WMenuSetState(ID_ITYPN,ItemChecked,1)
|
|
|
|
IF(N1 .GT. MAXP .OR. M1 .GT. MAXE .AND. IMIDS .EQ. 0) then
|
|
|
|
CALL WMessageBox(YesNo, QuestionIcon, 1,'Do you wish to add 20,000 nodes and elements to the limit (YES) or reset sizes (NO)','LIMITS EXCEEDED')
|
|
|
|
IF (WInfoDialog(4) .ne. 2) then
|
|
! yes
|
|
MAXP=N1+20000
|
|
MAXE=M1+20000
|
|
ELSE
|
|
CALL RESETSIZ
|
|
ENDIF
|
|
ELSEIF((N1 .GT. MAXP/3 .OR. M1 .GT. MAXE) .AND. IMIDS .EQ. 1) then
|
|
CALL WMessageBox(YesNo, QuestionIcon, 1,'This is a large unfilled network, do you wish to reset sizes?','LIMITS EXCEEDED')
|
|
IF (WInfoDialog(4) .ne. 2) then
|
|
! yes
|
|
CALL RESETSIZ
|
|
ENDIF
|
|
|
|
endif
|
|
|
|
ALLOCATE (CORD(MAXP,2),XUSR(MAXP),YUSR(MAXP),XC(MAXE),YC(MAXE)&
|
|
,NOP(MAXE,8),IMAT(MAXE),THTA(MAXE),IMATL(MAXE),CORDSN(MAXP,2)&
|
|
,WD(MAXP) ,WD1(MAXP),INSKP(MAXP), IESKP(MAXE),NCORN(MAXE)&
|
|
,WIDTH(MAXP), SS1(MAXP), SS2(MAXP), WIDS(MAXP)&
|
|
,IJUN(MAXP),INEW(MAXP),IEM(MAXE),LINTYP(MAXLIN),NEFLAG(MAXP),NEF(MAXP,3),LAY(0:MAXP+1),WTLAY(0:MAXP+1,9)&
|
|
,WIDBS(MAXP),SSO(MAXP),NODDEL(MAXP),IELDEL(MAXE)&
|
|
,NOPSV(MAXE,8),nefsv(MAXP,3),IMATSV(MAXE),LOCK(MAXP),BS1(MAXP),EDIF(0:MAXP),IGRPSER(MAXE),IOD(MAXP))
|
|
|
|
IJUN=0
|
|
lay=0
|
|
IGRPSER=1
|
|
|
|
ALLOCATE (NRIVCR1(MAXP),WTRIVCR1(MAXP),NRIVCR2(MAXP),WTRIVCR2(MAXP))
|
|
|
|
|
|
ALLOCATE (xusrsto(MAXP,MAXSTO),yusrsto(MAXP,MAXSTO),wdsto(MAXP,MAXSTO),&
|
|
WIDTHsto(MAXP,MAXSTO), SS1sto(MAXP,MAXSTO), SS2sto(MAXP,MAXSTO), WIDSsto(MAXP,MAXSTO)&
|
|
,WIDBSsto(MAXP,MAXSTO),SSOsto(MAXP,MAXSTO),bs1sto(MAXP,MAXSTO)&
|
|
,nopsto(MAXE,8,MAXSTO),imatsto(MAXE,MAXSTO),thtasto(MAXE,MAXSTO))
|
|
|
|
ALLOCATE (ICCLNSTO(50,350,MAXSTO)&
|
|
,NPSTO(MAXSTO),NESTO(MAXSTO),NLSTSTO(MAXSTO),NCLMSTO(MAXSTO))
|
|
|
|
ALLOCATE (ILISTSTO(MAXLN,MAELN,MAXSTO),LLISTSTO(MAXLN,MAXSTO))
|
|
|
|
|
|
ALLOCATE (MLIST(MAXE),ENXT(MAXE),NDELM(MAXP),LIST(MAXP) &
|
|
,NINC(MAXP),NELIM(MAXE))
|
|
|
|
ALLOCATE (ICON(MAXE,MAXECON))
|
|
|
|
ALLOCATE (NECON(MAXP,MAXECON))
|
|
|
|
ALLOCATE (MSN(MAXP),ICN(MAXP))
|
|
|
|
ALLOCATE (ILIST(MAXLN,MAELN),LLIST(MAXLN))
|
|
|
|
RETURN
|
|
END
|
|
|
|
SUBROUTINE RESETSIZ
|
|
|
|
USE WINTERACTER
|
|
USE BLK1MOD
|
|
USE BLKMAP
|
|
include 'd.inc'
|
|
|
|
!
|
|
! Declare window-type and message variables
|
|
!
|
|
TYPE(WIN_STYLE) :: WINDOW
|
|
|
|
TYPE(WIN_MESSAGE) :: MESSAGE
|
|
|
|
integer :: NTYP,NLOCC
|
|
|
|
|
|
call wdialogload(IDD_MLIMITS)
|
|
ierr=infoerror(1)
|
|
|
|
CALL WDialogSelect(IDD_MLIMITS)
|
|
ierr=infoerror(1)
|
|
|
|
CALL WDialogPutINTEGER(IDF_INTEGER1,MAXP)
|
|
CALL WDialogPutINTEGER(IDF_INTEGER2,MAXE)
|
|
CALL WDialogPutINTEGER(IDF_INTEGER3,MAXPL)
|
|
|
|
CALL WDialogShow(-1,-1,0,Modal)
|
|
ierr=infoerror(1)
|
|
|
|
do
|
|
!
|
|
IF (WInfoDialog(ExitButton) .EQ. IDOK) THEN
|
|
|
|
CALL WDialogGetINTEGER(IDF_INTEGER1,MAXP)
|
|
CALL WDialogGetINTEGER(IDF_INTEGER2,MAXE)
|
|
CALL WDialogGetINTEGER(IDF_INTEGER3,MAXPL)
|
|
|
|
GO TO 100
|
|
ENDIF
|
|
|
|
enddo
|
|
|
|
100 CONTINUE
|
|
return
|
|
end
|
|
|
|
SUBROUTINE SETGFGTRIAN(I1,I2,N2,M2)
|
|
USE BLK1MOD
|
|
! Define a common block with file names etc
|
|
|
|
INCLUDE 'BFILES.I90'
|
|
CHARACTER (LEN=255) :: FNAMTMP
|
|
IGFG=I1
|
|
ITRIAN=I2
|
|
IF(ITRIAN .EQ. 1) THEN
|
|
READ(10,*) M2
|
|
REWIND (10)
|
|
itunit=14
|
|
FNAMTMP=FNAMKEP
|
|
DO L=255,1,-1
|
|
IF(FNAMTMP(L:L) .EQ. '.') THEN
|
|
FNAMTMP(L+1:L+4)='node'
|
|
OPEN(ITUNIT,FILE=FNAMTMP,STATUS='OLD',ACTION='READ')
|
|
READ(ITUNIT,*) N2
|
|
CLOSE(ITUNIT)
|
|
RETURN
|
|
ENDIF
|
|
ENDDO
|
|
ENDIF
|
|
RETURN
|
|
END |