PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

Emulation mode -Error 5 cannot open file 'libcudadevice.lib
Goto page 1, 2  Next
 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Debugging and Profiling
View previous topic :: View next topic  
Author Message
ljubab



Joined: 15 Nov 2012
Posts: 6

PostPosted: Tue Dec 11, 2012 7:00 am    Post subject: Emulation mode -Error 5 cannot open file 'libcudadevice.lib Reply with quote

Hi,

I'm using the PGI CUDA Fortran, with Visual studio 2008 on a windows 7 x64 platform, and I have a problem with emulation mode. When I compile with -Mcuda=emu, I get the following error :

LINK : fatal error LNK1104: cannot open file 'libcudadevice.lib'

Since I cannot link this library file to my application (can't find it), what should I do to get emulation mode working? Also, is there any debug program related to the CUDA Fortran?

Thank you
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 5815
Location: The Portland Group Inc.

PostPosted: Tue Dec 11, 2012 11:42 am    Post subject: Reply with quote

Hi ljubab,

This is a known issue where the library is missing from the PVF packages. In the 13.0 release (due out soon) will have this fixed. The other option is to download and install the PGI Accelerator Workstation for Windows (http://www.pgroup.com/support/download_pgi2012.php?view=current) which does include this library. Once installed, PVF will be able to find the library.

Best Regards,
Mat
Back to top
View user's profile
ljubab



Joined: 15 Nov 2012
Posts: 6

PostPosted: Wed Dec 12, 2012 7:27 am    Post subject: Reply with quote

Hi Mat,

Thank you for your reply. I have installed PGI Workstation as you suggested, but when I launch the kernel, I get following error :

Error 5: Argument missing for formal argument threadidx

Do you have an idea what seems to be a problem.

Thank you.
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 5815
Location: The Portland Group Inc.

PostPosted: Wed Dec 12, 2012 11:21 am    Post subject: Reply with quote

Hi ljubab,

I've never seen this error before, so don't know. My best guess is that there is something wrong with you launch configuration, but am not sure. Can you post or send to PGI Customer Service (trs@pgroup.com) an example code which reproduce the problem?

- Mat
Back to top
View user's profile
ljubab



Joined: 15 Nov 2012
Posts: 6

PostPosted: Thu Dec 13, 2012 4:24 am    Post subject: Reply with quote

Hi Mat,

Thank you for replay. My code is :

MODULE EQFORCCOLL
USE CUDAFOR


REAL,DEVICE,ALLOCATABLE :: ZB_D(:,:),G11_D(:,:),G22_D(:,:),G12_D(:,:),JA_D(:,:),&
DJAKSI_D(:,:),DJAETA_D(:,:),DXKSI_D(:,:),DXETA_D(:,:),DYKSI_D(:,:),DYETA_D(:,:),&
G22JAKSI_D(:,:,:),G22JAETA_D(:,:),G11JAKSI_D(:,:),G11JAETA_D(:,:,:),&
DXKSIKSI_D(:,:),DYKSIKSI_D(:,:),DXETAKSI_D(:,:),DYETAKSI_D(:,:),DXETAETA_D(:,:),DYETAETA_D(:,:)



CONTAINS
ATTRIBUTES(GLOBAL) SUBROUTINE EQUIL_FORCE_S_COLLIDE(F,U,H,UKAR,EX,EY,&
VIS,DT,G,MKH,KHZM,JLL,KKV,&
MT,MINV,TSTEP,XDIM,YDIM,TSX,TSY,&
SR2,SR3,SR5,SR7)

IMPLICIT NONE

INTEGER,PARAMETER :: E(0:8,2) = RESHAPE([0, 1, 1, 0,-1,-1,-1, 0, 1, 0, 0, 1, 1, 1, 0,-1,-1,-1],[9,2])
INTEGER :: I, J, K, K1,P, X, Y, ID, RDKDE, NT, TN, CHUNK,NTHREADS,TID
INTEGER,VALUE :: XDIM,YDIM,TSTEP
INTEGER*1 :: JLL(:,:,:)
INTEGER*2 :: STATUS
REAL :: DKSI,DETA,FORCEX,FORCEY,&
CT,Z0,KZ,TAU,OM,TETA,TAUT

REAL :: H(:,:),U(:,:,:),UKAR(:,:,:),ZB(:,:),KHZM(:,:)
REAL :: F(:,:,:),FEQ(0:8),FORCEL(0:8),S(0:8)

REAL :: FEQ1,FEQ2,FEQ3,FEQ4,FEQ5,FEQ6,FEQ7,FEQ8

REAL :: G11(:,:),G22(:,:),G12(:,:),JA(:,:),&
G22JAKSI(:,:,:),G22JAETA(:,:),G11JAKSI(:,:),G11JAETA(:,:,:),&
DXKSI(:,:),DXETA(:,:),DYKSI(:,:),DYETA(:,:),&
DJAKSI(:,:),DJAETA(:,:),&
DXKSIKSI(:,:),DYKSIKSI(:,:),DXETAKSI(:,:),DYETAKSI(:,:),&
DXETAETA(:,:),DYETAETA(:,:),VIS(:,:),VISE(:,:)

REAL :: HINT,HINTS,HINTSS,U1INT,U2INT,U1INTS,U2INTS,UKAR1INT,UKAR2INT

REAL :: G22INT,G12INT,G11INT,JAINT,DXKSIINT,DXETAINT,DYKSIINT,DYETAINT,&
DXKSIKSIINT,DYKSIKSIINT,DXETAKSIINT,DYETAKSIINT,DXETAETAINT,DYETAETAINT,&
DJAKSIINT,DJAETAINT,KGINT,TXXINT,TYYINT,TXYINT,HUKSIINT,HUETAINT,HVKSIINT,HVETAINT

REAL :: MT(9,9),MMF(1:9),MINV(9,9),DF(1:9),DDF(1:9),C(0:8),SD(1:9),PR,CR,SP
REAL,VALUE :: SR2,SR3,SR5,SR7,MKH,G,EX,EY,DT,KKV,TSX,TSY
REAL :: TIME1, TIME2, TIMETOT


COMMON/GRIDPARAM/DKSI,DETA,RDKDE


X=(BLOCKIDX%X-1)*BLOCKDIM%X+THREADIDX%X
Y=(BLOCKIDX%Y-1)*BLOCKDIM%Y+THREADIDX%Y

FORCEL=0.0
TETA=0.5

DO I=0,8
!
! PRORACUN HIDRAULICKIH KOMPONENTI STRUJANJA NA POLOVINI LINKA
!
IF (I.EQ.0) THEN
J=0
ELSE
J=JLL(I,X,Y)
ENDIF

HINT = (H(X,Y)+H(X+E(J,1),Y+E(J,2)))*0.5
HINTS = (H(X,Y)**2.+H(X+E(J,1),Y+E(J,2))**2.)*0.5
HINTSS = (H(X,Y)**0.333+H(X+E(J,1),Y+E(J,2))**0.333)*0.5
U1INT = (U(1,X,Y)+U(1,X+E(J,1),Y+E(J,2)))*0.5
U2INT = (U(2,X,Y)+U(2,X+E(J,1),Y+E(J,2)))*0.5
UKAR1INT = (UKAR(1,X,Y)+UKAR(1,X+E(J,1),Y+E(J,2)))*0.5
UKAR2INT = (UKAR(2,X,Y)+UKAR(2,X+E(J,1),Y+E(J,2)))*0.5
U1INTS = (U(1,X,Y)**2.+U(1,X+E(J,1),Y+E(J,2))**2.)*0.5
U2INTS = (U(2,X,Y)**2.+U(2,X+E(J,1),Y+E(J,2))**2.)*0.5
G22INT = (G22_D(X,Y)+G22_D(X+E(J,1),Y+E(J,2)))*0.5
G12INT = (G12_D(X,Y)+G12_D(X+E(J,1),Y+E(J,2)))*0.5
G11INT = (G11_D(X,Y)+G11_D(X+E(J,1),Y+E(J,2)))*0.5
JAINT = (JA_D(X,Y)+JA_D(X+E(J,1),Y+E(J,2)))*0.5

DXKSIINT = (DXKSI_D(X,Y)+DXKSI_D(X+E(J,1),Y+E(J,2)))*0.5
DXETAINT = (DXETA_D(X,Y)+DXETA_D(X+E(J,1),Y+E(J,2)))*0.5
DYKSIINT = (DYKSI_D(X,Y)+DYKSI_D(X+E(J,1),Y+E(J,2)))*0.5
DYETAINT = (DYETA_D(X,Y)+DYETA_D(X+E(J,1),Y+E(J,2)))*0.5
DXKSIKSIINT = (DXKSIKSI_D(X,Y)+DXKSIKSI_D(X+E(J,1),Y+E(J,2)))*0.5
DYKSIKSIINT = (DYKSIKSI_D(X,Y)+DYKSIKSI_D(X+E(J,1),Y+E(J,2)))*0.5
DXETAKSIINT = (DXETAKSI_D(X,Y)+DXETAKSI_D(X+E(J,1),Y+E(J,2)))*0.5
DYETAKSIINT = (DYETAKSI_D(X,Y)+DYETAKSI_D(X+E(J,1),Y+E(J,2)))*0.5
DXETAETAINT = (DXETAETA_D(X,Y)+DXETAETA_D(X+E(J,1),Y+E(J,2)))*0.5
DYETAETAINT = (DYETAETA_D(X,Y)+DYETAETA_D(X+E(J,1),Y+E(J,2)))*0.5

DJAKSIINT = (DJAKSI_D(X,Y)+DJAKSI_D(X+E(J,1),Y+E(J,2)))*0.5
DJAETAINT = (DJAETA_D(X,Y)+DJAETA_D(X+E(J,1),Y+E(J,2)))*0.5

!****************************************
! PRORACUN CLANA SILE U X I Y PRAVCU *
!****************************************

CT = G*MKH**2. / HINTSS
KZ = KHZM(X,Y)

FORCEX=-((CT + KZ) * U1INT*JAINT**2.)*&
SQRT(U1INTS*G11INT+2.*U1INT*U2INT*G12INT+U2INTS*G22INT)&

+(JAINT/1000.)*(DYETAINT*TSX-DXETAINT*TSY)&

-JAINT*HINT*UKAR2INT*(DXETAKSIINT*U1INT+DXETAETAINT*U2INT)&
+JAINT*HINT*UKAR1INT*(DYETAKSIINT*U1INT+DYETAETAINT*U2INT)


FORCEY=-((CT + KZ) * U2INT*JAINT**2.)*&
SQRT(U1INTS*G11INT+2.*U1INT*U2INT*G12INT+U2INTS*G22INT)&

+(JAINT/1000.)*(-DYKSIINT*TSX+DXKSIINT*TSY)&

+JAINT*HINT*UKAR2INT*(DXKSIKSIINT*U1INT+DXETAKSIINT*U2INT)&
-JAINT*HINT*UKAR1INT*(DYKSIKSIINT*U1INT+DYETAKSIINT*U2INT)

!**************************************************************************
! PRORACUN CLANA EKVILIBRIJUMA, SILE I CLANA S ZA SVE LINKOVE I= 0 - 8 *
!**************************************************************************
IF (I.EQ.0) THEN



FEQ1= ( (G22_D(X,Y)*G*H(X,Y))/(4*(EX*E(1,1))**2.)+&
(U(1,X,Y)*JA_D(X,Y)**2.)/(3*EX*E(1,1))+&
(U(1,X,Y)**2.*JA_D(X,Y)**2.)/(2.*(EX*E(1,1))**2.) ) * H(X,Y)+&

( ( -JA_D(X,Y)**3.*U(1,X,Y)*H(X,Y)*VIS(X,Y)*G22JAKSI_D(2,X,Y))-&
( G22_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(-UKAR(1,X,Y)*DYETAKSI_D(X,Y)+&
UKAR(2,X,Y)*DXETAKSI_D(X,Y)))-&
( G12_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*( UKAR(1,X,Y)*DYETAETA_D(X,Y)-&
UKAR(2,X,Y)*DXETAETA_D(X,Y))))&
/ (2.*(EX*E(1,1))**2.)

FEQ5= ( (G22_D(X,Y)*G*H(X,Y))/(4*(EX*E(5,1))**2.)+&
(U(1,X,Y)*JA_D(X,Y)**2.)/(3*EX*E(5,1))+&
(U(1,X,Y)**2.*JA_D(X,Y)**2.)/(2.*(EX*E(5,1))**2.) ) * H(X,Y)+&

( (-JA_D(X,Y)**3.*U(1,X,Y)*H(X,Y)*VIS(X,Y)*G22JAKSI_D(2,X,Y))-&
( G22_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(-UKAR(1,X,Y)*DYETAKSI_D(X,Y)+&
UKAR(2,X,Y)*DXETAKSI_D(X,Y)))-&
( G12_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*( UKAR(1,X,Y)*DYETAETA_D(X,Y)-&
UKAR(2,X,Y)*DXETAETA_D(X,Y))))&
/ (2.*(EX*E(5,1))**2.)

FEQ3= ( (G11_D(X,Y)*G*H(X,Y))/(4.*(EY*E(3,2))**2.)+&
(U(2,X,Y)*JA_D(X,Y)**2.)/(3.*EY*E(3,2))+&
(U(2,X,Y)**2.*JA_D(X,Y)**2.)/(2.*(EY*E(3,2))**2.) ) * H(X,Y)+&

( (-JA_D(X,Y)**3.*U(2,X,Y)*H(X,Y)*VIS(X,Y)*G11JAETA_D(2,X,Y))-&
( G11_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*( UKAR(1,X,Y)*DYETAKSI_D(X,Y)-&
UKAR(2,X,Y)*DXETAKSI_D(X,Y)))-&
( G12_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(-UKAR(1,X,Y)*DYKSIKSI_D(X,Y)+&
UKAR(2,X,Y)*DXKSIKSI_D(X,Y))) )&
/ (2.*(EY*E(3,2))**2.)

FEQ7= ( (G11_D(X,Y)*G*H(X,Y))/(4.*(EY*E(7,2))**2.)+&
(U(2,X,Y)*JA_D(X,Y)**2.)/(3.*EY*E(7,2))+&
(U(2,X,Y)**2.*JA_D(X,Y)**2.)/(2.*(EY*E(7,2))**2.) ) * H(X,Y)+&

( (-JA_D(X,Y)**3.*U(2,X,Y)*H(X,Y)*VIS(X,Y)*G11JAETA_D(2,X,Y))-&
( G11_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*( UKAR(1,X,Y)*DYETAKSI_D(X,Y)-&
UKAR(2,X,Y)*DXETAKSI_D(X,Y)))-&
( G12_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(-UKAR(1,X,Y)*DYKSIKSI_D(X,Y)+&
UKAR(2,X,Y)*DXKSIKSI_D(X,Y))) )&
/ (2.*(EY*E(7,2))**2.)

FEQ2= ( (U(1,X,Y)*JA_D(X,Y)**2.)/(12.*EX*E(2,1)) + (U(2,X,Y)*JA_D(X,Y)**2.)/(12.*EY*E(2,2)) +&
(U(1,X,Y)*U(2,X,Y)*JA_D(X,Y)**2.)/(4.*EX*E(2,1)*EY*E(2,2)) ) * H(X,Y)-&

( H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(G11_D(X,Y)*(UKAR(2,X,Y)*DXETAETA_D(X,Y) - UKAR(1,X,Y)*DYETAETA_D(X,Y))+&
G22_D(X,Y)*(UKAR(1,X,Y)*DYKSIKSI_D(X,Y) - UKAR(2,X,Y)*DXKSIKSI_D(X,Y))+&
JA_D(X,Y)**4.*(UKAR(1,X,Y)*G11JAETA_D(2,X,Y)+UKAR(2,X,Y)*G22JAKSI_D(2,X,Y))) )/&
(4*EX*E(2,1)*EY*E(2,2))

FEQ4= ( (U(1,X,Y)*JA_D(X,Y)**2.)/(12.*EX*E(4,1)) + (U(2,X,Y)*JA_D(X,Y)**2.)/(12.*EY*E(4,2)) +&
(U(1,X,Y)*U(2,X,Y)*JA_D(X,Y)**2.)/(4.*EX*E(4,1)*EY*E(4,2)) ) * H(X,Y)-&

( H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(G11_D(X,Y)*(UKAR(2,X,Y)*DXETAETA_D(X,Y) - UKAR(1,X,Y)*DYETAETA_D(X,Y))+&
G22_D(X,Y)*(UKAR(1,X,Y)*DYKSIKSI_D(X,Y) - UKAR(2,X,Y)*DXKSIKSI_D(X,Y))+&
JA_D(X,Y)**4.*(UKAR(1,X,Y)*G11JAETA_D(2,X,Y)+UKAR(2,X,Y)*G22JAKSI_D(2,X,Y))) )/&
(4*EX*E(4,1)*EY*E(4,2))

FEQ6= ( (U(1,X,Y)*JA_D(X,Y)**2.)/(12.*EX*E(6,1)) + (U(2,X,Y)*JA_D(X,Y)**2.)/(12.*EY*E(6,2)) +&
(U(1,X,Y)*U(2,X,Y)*JA_D(X,Y)**2.)/(4.*EX*E(6,1)*EY*E(6,2)) ) * H(X,Y)-&

( H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(G11_D(X,Y)*(UKAR(2,X,Y)*DXETAETA_D(X,Y) - UKAR(1,X,Y)*DYETAETA_D(X,Y))+&
G22_D(X,Y)*(UKAR(1,X,Y)*DYKSIKSI_D(X,Y) - UKAR(2,X,Y)*DXKSIKSI_D(X,Y))+&
JA_D(X,Y)**4.*(UKAR(1,X,Y)*G11JAETA_D(2,X,Y)+UKAR(2,X,Y)*G22JAKSI_D(2,X,Y))) )/&
(4*EX*E(6,1)*EY*E(6,2))

FEQ8= ( (U(1,X,Y)*JA_D(X,Y)**2.)/(12.*EX*E(8,1)) + (U(2,X,Y)*JA_D(X,Y)**2.)/(12.*EY*E(8,2)) +&
(U(1,X,Y)*U(2,X,Y)*JA_D(X,Y)**2.)/(4.*EX*E(8,1)*EY*E(8,2)) ) * H(X,Y)-&

( H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(G11_D(X,Y)*(UKAR(2,X,Y)*DXETAETA_D(X,Y) - UKAR(1,X,Y)*DYETAETA_D(X,Y))+&
G22_D(X,Y)*(UKAR(1,X,Y)*DYKSIKSI_D(X,Y) - UKAR(2,X,Y)*DXKSIKSI_D(X,Y))+&
JA_D(X,Y)**4.*(UKAR(1,X,Y)*G11JAETA_D(2,X,Y)+UKAR(2,X,Y)*G22JAKSI_D(2,X,Y))) )/&
(4*EX*E(8,1)*EY*E(8,2))

FEQ(I) = JA_D(X,Y)**2.*H(X,Y)-(FEQ1+FEQ2+FEQ3+FEQ4+FEQ5+FEQ6+FEQ7+FEQ8)
FORCEL(I)=0.0
S(I)=0.0

MMF(I+1)=F(I,X,Y)-(JA_D(X,Y)**2.*H(X,Y)-(FEQ1+FEQ2+FEQ3+FEQ4+FEQ5+FEQ6+FEQ7+FEQ8))

ELSEIF (I.EQ.1 .OR. I.EQ.5) THEN

! PRAVCI I=1,5

MMF(I+1) = F(I,X,Y)-( (G22_D(X,Y)*G*H(X,Y))/(4*(EX*E(I,1))**2.)+&
(U(1,X,Y)*JA_D(X,Y)**2.)/(3*EX*E(I,1))+&
(U(1,X,Y)**2.*JA_D(X,Y)**2.)/(2.*(EX*E(I,1))**2.) ) * H(X,Y)+&

( (-JA_D(X,Y)**3.*U(1,X,Y)*H(X,Y)*VIS(X,Y)*G22JAKSI_D(2,X,Y))-&
( G22_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(-UKAR(1,X,Y)*DYETAKSI_D(X,Y)+&
UKAR(2,X,Y)*DXETAKSI_D(X,Y)))-&
( G12_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*( UKAR(1,X,Y)*DYETAETA_D(X,Y)-&
UKAR(2,X,Y)*DXETAETA_D(X,Y))))&
/ (2.*(EX*E(I,1))**2.)

FORCEL(I)=FORCEX/(EX*E(I,1)*6.)+(JAINT*HINT*U1INT*DJAKSIINT)/6.

S(I)=G/4.*HINTS*(G22_D(X+E(J,1),Y+E(J,2))-G22_D(X,Y))/((EX*E(I,1))**2.)-&
G/2.*HINT*G22INT*(ZB_D(X+E(J,1),Y+E(J,2))-ZB_D(X,Y))/((EX*E(I,1))**2.)&
-0.5*VIS(X,Y)*JAINT**3.*HINT*U2INT*&
(G22JAETA_D(X+E(J,1),Y+E(J,2))-G22JAETA_D(X,Y))/((EX*E(I,1))**2.)

ELSEIF (I.EQ.3 .OR. I.EQ.7) THEN

! PRAVCI I=3,7

MMF(I+1) = F(I,X,Y)-( (G11_D(X,Y)*G*H(X,Y))/(4.*(EY*E(I,2))**2.)+&
(U(2,X,Y)*JA_D(X,Y)**2.)/(3.*EY*E(I,2))+&
(U(2,X,Y)**2.*JA_D(X,Y)**2.)/(2.*(EY*E(I,2))**2.) ) * H(X,Y)+&

( (-JA_D(X,Y)**3.*U(2,X,Y)*H(X,Y)*VIS(X,Y)*G11JAETA_D(2,X,Y))-&
( G11_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*( UKAR(1,X,Y)*DYETAKSI_D(X,Y)-&
UKAR(2,X,Y)*DXETAKSI_D(X,Y)))-&
( G12_D(X,Y)*H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(-UKAR(1,X,Y)*DYKSIKSI_D(X,Y)+&
UKAR(2,X,Y)*DXKSIKSI_D(X,Y))) )&
/ (2.*(EY*E(I,2))**2.)

FORCEL(I)=FORCEY/(EY*E(I,2)*6.)+(JAINT*HINT*U2INT*DJAETAINT)/6.

S(I)=G/4.*HINTS*(G11_D(X+E(J,1),Y+E(J,2))-G11_D(X,Y))/((EY*E(I,2))**2.)-&
G/2.*HINT*G11INT*(ZB_D(X+E(J,1),Y+E(J,2))-ZB_D(X,Y))/((EY*E(I,2))**2.)&
-0.5*VIS(X,Y)*JAINT**3.*HINT*U1INT*(G11JAKSI_D(X+E(J,1),Y+E(J,2))-G11JAKSI_D(X,Y))/((EY*E(I,2))**2.)

ELSEIF (I.EQ.2 .OR. I.EQ.4 .OR. I.EQ.6 .OR. I.EQ.8) THEN

! PRAVCI I=2,4,6,8

MMF(I+1) = F(I,X,Y)-( (U(1,X,Y)*JA_D(X,Y)**2.)/(12.*EX*E(I,1)) + (U(2,X,Y)*JA_D(X,Y)**2.)/(12.*EY*E(I,2)) +&
(U(1,X,Y)*U(2,X,Y)*JA_D(X,Y)**2.)/(4.*EX*E(I,1)*EY*E(I,2)) ) * H(X,Y)-&

( H(X,Y)*VIS(X,Y)/JA_D(X,Y)*(G11_D(X,Y)*(UKAR(2,X,Y)*DXETAETA_D(X,Y) - UKAR(1,X,Y)*DYETAETA_D(X,Y))+&
G22_D(X,Y)*(UKAR(1,X,Y)*DYKSIKSI_D(X,Y) - UKAR(2,X,Y)*DXKSIKSI_D(X,Y))+&
JA_D(X,Y)**4.*(UKAR(1,X,Y)*G11JAETA_D(2,X,Y)+UKAR(2,X,Y)*G22JAKSI_D(2,X,Y))) )/&
(4*EX*E(I,1)*EY*E(I,2))

FORCEL(I)=FORCEX/(EX*E(I,1)*6.)+FORCEY/(EY*E(I,2)*6.)+(JAINT*HINT*U1INT*DJAKSIINT+JAINT*HINT*U2INT*DJAETAINT)/6.

S(I)=(G/4.*HINT*G12INT*( (ZB_D(X+E(J,1),Y+E(J,2))-ZB_D(X,Y)) + (H(X+E(J,1),Y+E(J,2))-H(X,Y))) )/(EX*E(I,1)*EY*E(I,2))

ENDIF
ENDDO

! PRAVAC I=0

!FEQ(0) = JA(X,Y)**2.*H(X,Y)-(FEQ(1)+FEQ(2)+FEQ(3)+FEQ(4)+&
! FEQ(5)+FEQ(6)+FEQ(7)+FEQ(8))




!*************************************
! PRORACUN VREMENA RELAKSACIJE TAU *
!*************************************

! IF (DKSI.EQ.DETA) THEN
OM=(TETA*G22_D(X,Y)+(1.-TETA)*G11_D(X,Y))/JA_D(X,Y)**2.
! ELSE
! OM=(G11(X,Y)/JA(X,Y)**2.)/(EY/EX)
! ENDIF

TAUT = VIS(X,Y)*OM*3.0/(DT*EX*EY)+0.5

!****************
! CLAN SUDARA *
!****************

! LBGK METOD

!DO K = 0, 8

!F(K,X,Y) = (1.0D0 - 1.0/TAUT) * F(K,X,Y) + (1.0/TAUT) * FEQ(K) + DT * FORCEL(K)+S(K)
!SK(X,Y) = (F(I,X,Y)*LOG(F(I,X,Y)/FEQ(I))) + SK(X,Y)

!ENDDO

! DO I = 0, 4
! FTUR(I,X,Y) = (1.0D0 - 1.0/TAUTUR) * FTUR(I,X,Y) + (1.0/TAUTUR) * FEQTUR(I) + DT * FORCETURB(I)
! ENDDO


!
! MRT METOD
!
SD(1)=1.0
SD(2)=SR2
SD(3)=SR3
SD(4)=1.0
SD(5)=SR5
SD(6)=1.0
SD(7)=SR7
SD(8)=1./TAUT
SD(9)=1./TAUT

! CALL MURRV (MT, MMF(:), DF)
! CALL MURRV (SD,DF,DDF)
! CALL MURRV (MINV,DDF,C)

!MMF(:)=F(:,X,Y)-FEQ(:)
!DF = MATMUL(MT,MMF)
!DDF = MATMUL(SD,DF)
!C = MATMUL(MINV,DDF)

!MMF(:)=F(:,X,Y)-FEQ(:)
call syncthreads()

DO I=1,9
PR=0.0
DO K=1,9
!PR=PR+(MT(I,K)*MMF(K))
ENDDO
DDF(I)=PR*SD(I)
ENDDO

DO I = 0, 8

CR=0.0
DO J=0, 8
!CR=CR+(MINV(I+1,J+1)*DDF(J+1))
!C(I)=CR
ENDDO

!F(I,X,Y) = F(I,X,Y) - CR + DT * FORCEL(I) + S(I)

ENDDO


!CALL CPU_TIME(time2)
!TIMETOT = TIMETOT + (TIME2-TIME1)

!WRITE(*,*)
!WRITE(*,*) 'TIME=',TIMETOT/60.0 ,'minutes'
!WRITE(*,*)
!PAUSE


END SUBROUTINE EQUIL_FORCE_S_COLLIDE
END MODULE EQFORCCOLL



PROGRAM MAINLBGK

USE D2Q9CONST
USE UL
USE GEOM
USE CSTR
USE TRMTR
USE INIT
USE EQFORCCOLL
USE CUDAFOR

IMPLICIT NONE

! INCLUDE 'LINK_FNL_SHARED.H'

INTEGER :: I,J,XDIM,YDIM,TSTEP,RDKDE
INTEGER :: TMAX,DIMQZ,IDWR,BROGR,DIMTEC
INTEGER :: ISTAT,errCode
INTEGER*1,ALLOCATABLE :: IMAGE(:,:),OPBND(:,:),JLL(:,:,:)
INTEGER*2,ALLOCATABLE :: DIMTP(:,:),IMAGES(:,:),ITZ(:,:),IM(:,:)
INTEGER,ALLOCATABLE :: GRAN(:,:),DIMTIZP(:,:),TEC(:)
REAL,ALLOCATABLE :: G11(:,:), G22(:,:),G12(:,:),JA(:,:),ZB(:,:),&
DXKSI(:,:),DXETA(:,:),DYKSI(:,:),DYETA(:,:),&
XCOR(:,:),YCOR(:,:),DJAKSI(:,:),DJAETA(:,:),&
G22KSI(:,:),G11ETA(:,:),G22JAKSI(:,:,:),G22JAETA(:,:),G11JAKSI(:,:),G11JAETA(:,:,:)
REAL,ALLOCATABLE :: DXKSIKSI(:,:),DYKSIKSI(:,:),DXETAKSI(:,:),DYETAKSI(:,:),&
DXETAETA(:,:),DYETAETA(:,:)
REAL,ALLOCATABLE :: F(:,:,:),U(:,:,:),UKAR(:,:,:),H(:,:),&
VIS(:,:),VISE(:,:),KG(:,:),FTUR(:,:,:),KHZM(:,:),QZ(:,:)
REAL,ALLOCATABLE :: PROM1(:,:),PROM2(:,:),DZB(:,:)
REAL :: EX,EY,DT,KT,OM,KKV,HIN,MKH,KHZ,G,HP,DEL
REAL :: BCP,FP,INP,OUTP
REAL :: DKSI,DETA
REAL :: MT(9,9),MINV(9,9)
REAL :: TAUTUR,CKK,CV,CE
REAL :: TIME1, TIME2, TIMETOT, STOP_CLOCK, START_CLOCK
REAL :: TSX,TSY,SR2,SR3,SR5,SR7
!
! CUDA PARAMETRI
!
TYPE(DIM3) :: GRID,TBLOCK
REAL,ALLOCATABLE,DEVICE:: F_D(:,:,:),U_D(:,:,:),UKAR_D(:,:,:),H_D(:,:),VIS_D(:,:),VISE_D(:,:),KHZM_D(:,:)
REAL,DEVICE :: MT_D(9,9),MINV_D(9,9)
INTEGER*1,DEVICE,ALLOCATABLE :: JLL_D(:,:,:)


CHARACTER*100 PROJECT

COMMON/DIM/XDIM,YDIM
COMMON/GRIDPARAM/DKSI,DETA
COMMON/TIMEPARAM/TMAX,DT
COMMON/FLOWPARAM/KKV,HIN,MKH,KHZ,G,HP
COMMON/CONPARAM/BCP,FP,INP,OUTP
COMMON/KTURBPARAM/TAUTUR,CKK,CV,CE
COMMON/RELAXPARAM/SR2,SR3,SR5,SR7
COMMON/TECPARAM/DIMTEC
COMMON/WINDPARAM/TSX,TSY

OPEN(11,FILE='PROJECT.INP')
READ(11,"(A100)") PROJECT
OPEN(1,FILE=PROJECT,ACTION='READ')
OPEN(2,FILE='TIZLAZ.PLT')

CALL GEOMETRIJA(XCOR,YCOR,G11,G12,G22,JA,ZB,DXKSI,DXETA,DYKSI,DYETA,&
DJAKSI,DJAETA,G22KSI,G11ETA,&
DXKSIKSI,DYKSIKSI,DXETAKSI,DYETAKSI,&
DXETAETA,DYETAETA,G22JAKSI,G22JAETA,G11JAKSI,G11JAETA)

ALLOCATE(F(0:8,XDIM,YDIM),FTUR(0:4,XDIM,YDIM))
ALLOCATE(U(1:2,XDIM,YDIM),UKAR(1:2,XDIM,YDIM),H(XDIM,YDIM),&
VIS(XDIM,YDIM),VISE(XDIM,YDIM),KG(XDIM,YDIM),&
PROM1(XDIM,YDIM),PROM2(XDIM,YDIM))

ALLOCATE(F_D(0:8,XDIM,YDIM),U_D(1:2,XDIM,YDIM),UKAR_D(1:2,XDIM,YDIM),H_D(XDIM,YDIM),&
VIS_D(XDIM,YDIM),VISE_D(XDIM,YDIM),KHZM_D(XDIM,YDIM),JLL_D(8,XDIM,YDIM))

ALLOCATE(ZB_D(XDIM,YDIM),G11_D(XDIM,YDIM),G22_D(XDIM,YDIM),G12_D(XDIM,YDIM),JA_D(XDIM,YDIM),&
DJAKSI_D(XDIM,YDIM),DJAETA_D(XDIM,YDIM),&
DXKSI_D(XDIM,YDIM),DXETA_D(XDIM,YDIM),DYKSI_D(XDIM,YDIM),DYETA_D(XDIM,YDIM),&
G22JAKSI_D(1:2,XDIM,YDIM),G22JAETA_D(XDIM,YDIM),G11JAKSI_D(XDIM,YDIM),G11JAETA_D(1:2,XDIM,YDIM),&
DXKSIKSI_D(XDIM,YDIM),DYKSIKSI_D(XDIM,YDIM),DXETAKSI_D(XDIM,YDIM),&
DYETAKSI_D(XDIM,YDIM),DXETAETA_D(XDIM,YDIM),DYETAETA_D(XDIM,YDIM))

CALL ULAZ(DIMTP,DIMTIZP,ITZ,GRAN,QZ,IM,VIS,TEC)

U=0.0
VISE=0.0
UKAR=0.0
F=0.0
FTUR=0.0
KG=0.0
KT=DT

CALL INITIAL(U,UKAR,H,HIN,G11,G22,DXKSI,DXETA,DYKSI,DYETA,JA,ZB,GRAN,QZ,KKV,VIS,XDIM,YDIM)
CALL CSTRIMAGE(H,IMAGE,IMAGES,OPBND,EX,EY,DT,GRAN,HP,ITZ,KHZ,KHZM,IM,JLL,XDIM,YDIM)
CALL TRANSMATRIX(EX,EY,DT,MT,MINV,JA,H)
CALL EQUILIBRIUM_INIT(F,H,U,EX,EY,G11,G22,G12,JA,G,G22JAKSI,G11JAETA,VIS,VISE,KG,FTUR,UKAR,&
DXKSIKSI,DYKSIKSI,DXETAKSI,DYETAKSI,DXETAETA,DYETAETA,DT)



CALL CPU_TIME(TIME1)

TBLOCK=DIM3(16,16,1)
GRID=DIM3(CEILING(REAL(XDIM)/TBLOCK%X),CEILING(REAL(YDIM)/TBLOCK%Y),1)

VIS_D =VIS
VISE_D =VISE
KHZM_D =KHZM
JLL_D =JLL
MT_D =MT
MINV_D =MINV

G11_D =G11
G22_D =G22
G12_D =G12
JA_D =JA
DJAKSI_D =DJAKSI
DJAETA_D =DJAETA
DXKSI_D =DXKSI
DXETA_D =DXETA
DYKSI_D =DYKSI
DYETA_D =DYETA
G22JAKSI_D =G22JAKSI
G22JAETA_D =G22JAETA
G11JAKSI_D =G11JAKSI
G11JAETA_D =G11JAETA
DXKSIKSI_D =DXKSIKSI
DYKSIKSI_D =DYKSIKSI
DXETAKSI_D =DXETAKSI
DYETAKSI_D =DYETAKSI
DXETAETA_D =DXETAETA
DYETAETA_D =DYETAETA
ZB_D =ZB


DO TSTEP = 1,TMAX

F_D =F
H_D =H
U_D =U
UKAR_D =UKAR

CALL UNSTBCOND(U,UKAR,H,HIN,G11,G22,DXKSI,DXETA,DYKSI,DYETA,JA,ZB,GRAN,QZ,KKV,VIS,KT)

CALL EQUIL_FORCE_S_COLLIDE<<<GRID,TBLOCK>>>(F_D,U_D,H_D,UKAR_D,EX,EY,&
VIS_D,DT,G,MKH,KHZM_D,JLL_D,KKV,&
MT_D,MINV_D,TSTEP,XDIM,YDIM,TSX,TSY,&
SR2,SR3,SR5,SR7)
F =F_D

CALL STREAM(F,FTUR)
CALL INOUT_BOUND_MACROS(F,FTUR,H,U,IMAGES,JA,HIN,INP,OUTP,BCP,EX,EY,&
UKAR,KG,DXKSI,DXETA,DYKSI,DYETA,TSTEP,OPBND,DEL,DIMTIZP)
!
! ZAPIS REZULTATA U FORMATU TECPLOT APLIKACIJE U ZADATIM VREMENSKIM PRESECIMA
!
DO I=1,DIMTEC
PROM1=G22
PROM2=G11
IF (TSTEP.EQ.TEC(I)) CALL TECPLOT(XCOR,YCOR,U,UKAR,H,ZB,&
DXKSI,DXETA,DYKSI,DYETA,JA,G11,G12,G22,&
PROM1,PROM2,VIS,VISE,DIMTP,IMAGE,TSTEP)

ENDDO


!WRITE(*,*)
!WRITE(*,*) 'KORAK=',TSTEP
!WRITE(*,*)

10 ENDDO
CALL CPU_TIME(time2)
TIMETOT = TIMETOT + (TIME2-TIME1)

DEALLOCATE(F_D,U_D,UKAR_D,H_D,VIS_D,VISE_D,KHZM_D,JLL_D,ZB_D,G11_D,G22_D,G12_D,JA_D,&
DJAKSI_D,DJAETA_D,DXKSI_D,DXETA_D,DYKSI_D,DYETA_D,&
G22JAKSI_D,G22JAETA_D,G11JAKSI_D,G11JAETA_D,DXKSIKSI_D,DYKSIKSI_D,DXETAKSI_D,&
DYETAKSI_D,DXETAETA_D,DYETAETA_D,F,U,UKAR,H,VIS,VISE,KHZM,JLL,ZB,G11,G22,G12,JA,&
DJAKSI,DJAETA,DXKSI,DXETA,DYKSI,DYETA,&
G22JAKSI,G22JAETA,G11JAKSI,G11JAETA,DXKSIKSI,DYKSIKSI,DXETAKSI,&
DYETAKSI,DXETAETA,DYETAETA)



WRITE(*,*)
WRITE(*,*) 'TIME=',TIMETOT/60.0 ,'minutes'
WRITE(*,*)
WRITE(*,*) 'SPEED=',DBLE(TMAX) * (DBLE(XDIM * YDIM)) / TIMETOT ,'cells per second'
WRITE(*,*)
PAUSE

ISTAT=CUDADEVICERESET
()


END PROGRAM MAINLBGK
After running on the emulation mode, I get the following message :

error S0186 : Argument missing for formal argument threadidx

Thank you in advance.

Ljubomir
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Debugging and Profiling All times are GMT - 7 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group