求助bound的有关问题
我需要计算某一物体在一变边界条件下的温度场,其边界条件为if(t.le.60)bound=100
if(t.gt.60).and.(t.le.120)bound=150
if(t.gt.120)bound=160
请问是不是只要更改bft.for里的bft.epg文件就可以了,我的bft.epg文件显示为:
DIMENSION NODVAR(KDGOF,KNODE),COOR(KCOOR,KNODE),
*BF(KDGOF,KNODE),R(3)
C.......OPEN TIME File AND UPDATE THE TIME
OPEN(1,FILE=' ',FORM='UNFORMATTED')
READ(1) TMAX,DT,TIME,IT
T = TIME+DT
TIME = TIME+DT
IT = IT+1
cc WRITE(*,*) ' TMAX,DT,TIME,IT =',TMAX,DT,TIME,IT
REWIND(1)
WRITE(1) TMAX,DT,TIME,IT
CLOSE(1)
C.......OPEN COOR file
OPEN (1,FILE=' ',FORM='UNFORMATTED',STATUS='OLD')
READ (1) KNODE,NCOOR,((COOR(I,J),I=1,NCOOR),J=1,KNODE)
CLOSE(1)
C.......OPEN NODVAR file
OPEN (1,FILE=' ',FORM='UNFORMATTED',STATUS='OLD')
READ (1) ((NODVAR(I,J),I=1,KDGOF),J=1,KNODE)
CLOSE (1)
C WRITE(*,*) 'KNODE =',KNODE,' KDGOF =',KDGOF
C WRITE (*,*) 'NODVAR ='
C WRITE (*,6) ((NODVAR(I,J),I=1,KDGOF),J=1,KNODE)
C......COMPUTE BOUNDARY CONDITION
DO 333 N=1,KNODE
DO 100 J=1,NCOOR
100 R(J) = COOR(J,N)
DO 200 J=1,KDGOF
ID = NODVAR(J,N)
BF(J,N) = 0.0
IF (ID.LT.0) BF(J,N) = BOUND(R,T,J)
C IF (ID.GT.0) BF(J,N) = FORCE(R,T,J)
200 CONTINUE
333 CONTINUE
CC WRITE(*,*) ' BF = '
CC WRITE(*,'(6F13.3)') ((BF(J,N),J=1,KDGOF),N=1,KNODE)
C.......OPEN BFD file and WRITE BOUNDARY CONDITION
OPEN (1,FILE=' ',FORM='UNFORMATTED',STATUS='unknown')
WRITE(1) ((BF(I,J),I=1,KDGOF),J=1,KNODE)
CLOSE (1)
C.......OPEN STOP file IF THE LAST TIME IS ARRIVED
IF (TIME-TMAX.GT.-1.0d-20) THEN
OPEN(1,FILE=' ',FORM='UNFORMATTED',STATUS='unknown')
ENDIF
END
subroutine getname(name,IT)
implicit real*8 (a-h,o-z)
character name*12,ch3*3
c IF (IT.LT.10) WRITE(UNIT=CH3,FMT='(I1)') IT
c IF (IT.GE.10) WRITE(UNIT=CH3,FMT='(I2)') IT
c IF (IT.GE.100) WRITE(UNIT=CH3,FMT='(I3)') IT
call getext(it,ch3)
c write(*,*) 'name =',name,'++++ CH3 =',CH3
do 10 i=1,12
if (name(i:i).eq.' ') then
j=i
goto 20
endif
10 continue
20 continue
if (j.gt.9) then
write(*,*) 'Error, plot filename too long .......',name
write(*,*) ' the length of name must be less or equal 8 character'
stop 111
endif
c read(*,'(a3)') ch3
name(j:j)='.'
name(j+1:j+4)=ch3
c write(*,*) 'plot filename = ',name
return
end
subroutine getext(ii,ch3)
implicit real*8 (a-h,o-z)
character ch3*3
it = ii
ch3 = ' '
k = 0
if (ii.ge.100) then
n = it/100
k = k+1
call getchar(n,k,ch3)
it = it - n*100
endif
if (ii.ge.10) then
n = it/10
k = k+1
call getchar(n,k,ch3)
it = it - n*10
endif
n = it
k = k+1
call getchar(n,k,ch3)
return
end
subroutine getchar(n,k,ch3)
implicit real*8 (a-h,o-z)
character ch3*3
if (n.eq.0) ch3(k:k) = '0'
if (n.eq.1) ch3(k:k) = '1'
if (n.eq.2) ch3(k:k) = '2'
if (n.eq.3) ch3(k:k) = '3'
if (n.eq.4) ch3(k:k) = '4'
if (n.eq.5) ch3(k:k) = '5'
if (n.eq.6) ch3(k:k) = '6'
if (n.eq.7) ch3(k:k) = '7'
if (n.eq.8) ch3(k:k) = '8'
if (n.eq.9) ch3(k:k) = '9'
return
end
东西很多,请问应该怎么修改呢,请高人指点,万分感激!!
页:
[1]