Writes C81 class data to C81 file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(C81_class) | :: | this | ||||
character(len=*), | intent(in) | :: | C81filename |
subroutine writefile(this,C81filename)
!! Writes C81 class data to C81 file
class(C81_class) :: this
character(len=*), intent(in) :: C81filename
integer :: i, j
logical :: fileExists
character(len=10) :: formatChar
character(len=1) :: overwriteOption
inquire(file=C81filename, exist=fileExists)
if (fileExists) then
print*, 'File '//trim(C81filename)//' already exists!'
write(*,'(A)',advance='no') ' Okay to overwrite (y/n)? '
read(*,*) overwriteOption
print*
if ((overwriteOption .ne. 'y') .and. (overwriteOption .ne. 'Y')) stop
endif
open(unit=10,file=C81filename, action='write')
this%ML = size(this%MaL,1)
this%MD = size(this%MaD,1)
this%MM = size(this%MaM,1)
this%NL = size(this%AL,1)
this%ND = size(this%AD,1)
this%NM = size(this%AM,1)
write(10,100) this%airfoilName,this%ML,this%NL,this%MD,this%ND,this%MM,this%NM
! Lift
write(10,101) (this%MaL(i),i=1,min(9,this%ML))
if (this%ML>9) then
write(formatChar,'(A4,I1,A5)') '(7X,',this%ML-9,'F7.3)'
write(10,formatChar) (this%MaL(i),i=10,this%ML)
endif
do i=1,this%NL
write(10,102) this%AL(i), (this%CL(i,j),j=1,min(9,this%ML))
if (this%ML>9) write(10,formatChar) (this%CL(i,j),j=10,this%ML)
enddo
! Drag
write(10,101) (this%MaD(i),i=1,min(9,this%MD))
if (this%MD>9) then
write(formatChar,'(A4,I1,A5)') '(7X,',this%MD-9,'F7.3)'
write(10,formatChar) (this%MaD(i),i=10,this%MD)
endif
do i=1,this%ND
write(10,102) this%AD(i), (this%CD(i,j),j=1,min(9,this%MD))
if (this%MD>9) write(10,formatChar) (this%CD(i,j),j=10,this%MD)
enddo
! Moment
write(10,101) (this%MaM(i),i=1,min(9,this%MM))
if (this%MM>9) then
write(formatChar,'(A4,I1,A5)') '(7X,',this%MM-9,'F7.3)'
write(10,formatChar) (this%MaM(i),i=10,this%MM)
endif
do i=1,this%NM
write(10,102) this%AM(i), (this%CM(i,j),j=1,min(9,this%MM))
if (this%MM>9) write(10,formatChar) (this%CM(i,j),j=10,this%MM)
enddo
close(10)
100 format (A30,6I0.2)
101 format (7X,9F7.3)
102 format (F7.2,9F7.3)
end subroutine writefile