📄 matdata.f90
字号:
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToReal4(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Real4_2
! --- real(kind=8) 2-dimension
subroutine Get_Real8_2(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
real(kind=8), dimension(:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToReal8(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Real8_2
! --- Integer(kind=2) 3-dimension
subroutine Get_Int2_3(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
integer(kind=2), dimension(:,:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToInteger2(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Int2_3
! --- Integer(kind=4) 3-dimension
subroutine Get_Int4_3(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
integer(kind=4), dimension(:,:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToInteger4(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Int4_3
! --- real(kind=4) 3-dimension
subroutine Get_Real4_3(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
real(kind=4), dimension(:,:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToReal4(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Real4_3
! --- REAL(kind=8) 3-dimension
subroutine Get_Real8_3(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
real(kind=8), dimension(:,:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToReal8(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Real8_3
! --- Integer(kind=2) 4-dimension
subroutine Get_Int2_4(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
integer(kind=2), dimension(:,:,:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToInteger2(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Int2_4
! --- Integer(kind=4) 4-dimension
subroutine Get_Int4_4(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
integer(kind=4), dimension(:,:,:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToInteger4(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Int4_4
! --- real(kind=4) 4-dimension
subroutine Get_Real4_4(filename,varname,var)
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: varname
real(kind=4), dimension(:,:,:,:), intent(out) :: var
character(len=len(filename)+4) :: flnm
character(len=1) :: TrueAction
! --- replace integer by integer(kind=8) on DEC alpha 64-bit platform
integer(kind=4) :: matOpen
integer(kind=4) :: matClose, matGetVariable
integer(kind=4) :: mxGetPr
! --- check file name with .mat extension
flnm = CheckFileName(filename)
! --- check file I/O action
TrueAction = CheckAction(flnm,'r')
if (TrueAction /= 'r') then
write(*,'("Non-exist .mat file ",a)')flnm
var = 0
return
endif
! --- Open .mat file for read
mp = matOpen(trim(flnm),TrueAction)
if (mp == 0) then
write(*,'("Fail to open .mat file ",a)')trim(flnm)
return
endif
! --- Get variable
pa = matGetVariable(mp,varname)
if (pa == 0) then
write(*,'("Non-exist variable ",a)')varname
else
! --- Copy pointer to data variable
call mxCopyPtrToReal4(mxGetPr(pa),var,size(var))
endif
sta = matClose(mp)
if (sta /= 0) then
write(*,'("Fail to close .mat file ",a)')trim(flnm)
endif
! --- DestroyArray, Clean Memory
call mxDestroyArray(pa)
end subroutine Get_Real4_4
! --- real(kind=8) 4-dimension
subroutine Get_Real8_4(file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -