- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I am trying to compile my old Fortran code (working at Intel Visual Fortran 9 and IMSL 5) under the new system Intel® Parallel Studio XE Composer Edition for Fortran Windows* with Rogue Wave* IMSL* (Intel Visual Fortran Compiler 17.0.1.143. and IMSL 7). Please see the code below. The code uses a built-in IMSL matrix operator .tx. to compute xpxa. However, the system does not recognize this .tx. operator and generate an error message saying that " Dotted string is neither a defined operator nor a structure component". However, if I comment out the problematic line, the code can be compiled that includes the line using IMSL built-in function linds. So it looks that the system can link my code with IMSL but somehow does not recognize the .tx. function. Is there anything that I should/can do to correct the problem?
many thanks.
program test
INCLUDE 'link_fnl_shared.h'
contains
subroutine breg(y,x,betabar,A,betadraw)
implicit none
real(8), intent(in) :: y(:),x(:,:),betabar(:),A(:,:)
real(8), intent(out) :: betadraw(:)
integer :: k,irank,nobs
real(8),allocatable :: RA(:,:), W(:,:),z(:), IW(:,:), RIW(:,:),temp(:,:),btilde(:),xpxa(:,:),ixpxa(:,:)
k=size(betabar)
nobs=size(y)
allocate(RA(k,k),W(nobs+k,k),z(nobs+k), IW(k,k), RIW(k,k),temp(1,k),btilde(k),xpxa(k,k),ixpxa(k,k))
xpxa= (x .tx. x)+ A
call linds(xpxa, ixpxa)
end subroutine breg
Error 1 error #6866: Dotted string is neither a defined operator nor a structure component. [TX] D:\package\test\Source1.f90 21
Error 2 Compilation Aborted (code 1) D:\package\test\Source1.f90 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have to USE the IMSL module that declares these operators - I think it is LINEAR_OPERATORS. See the IMSL documentation for details.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have to USE the IMSL module that declares these operators - I think it is LINEAR_OPERATORS. See the IMSL documentation for details.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Steve! This fixes my issue. The need for this declaration appears to be new for IMSL 7 as the previous version of IMSL does not require this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That's absolutely not the case - you always needed to USE the module. Without a declaration of a "user-defined operator", the compiler would haven't the faintest clue what .TX. meant.
![](/skins/images/7B0AB6865064EAE32B30EC9A4E94B48A/responsive_peak/images/icon_anonymous_message.png)
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page