Changeset 1749 for palm/trunk
- Timestamp:
- Feb 9, 2016 12:19:56 PM (9 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/fft_xy.f90
r1683 r1749 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! small OpenACC bugfix 22 22 ! 23 23 ! Former revisions: … … 1072 1072 ar_tmp !< 1073 1073 ! following does not work for PGI 14.1 -> to be removed later 1074 ! $acc declare create( ar_tmp )1074 ! !$acc declare create( ar_tmp ) 1075 1075 #endif 1076 1076 -
palm/trunk/SOURCE/surface_layer_fluxes.f90
r1748 r1749 19 19 ! Current revisions: 20 20 ! ------------------ 21 ! 21 ! further OpenACC adjustments 22 22 ! 23 23 ! Former revisions: … … 512 512 513 513 !$OMP PARALLEL DO PRIVATE( k, z_mo ) 514 !# WARNING: does not work on GPU so far 514 !# WARNING: does not work on GPU so far because of DO-loop with 515 !# undetermined iterations 515 516 !!!!!!$acc kernels loop 516 517 DO i = nxl, nxr … … 632 633 633 634 !$OMP PARALLEL DO PRIVATE( k, z_mo ) 634 !# WARNING: does not work on GPU so far 635 !# WARNING: does not work on GPU so far because of DO WHILE construct 635 636 !!!!!!$acc kernels loop 636 637 DO i = nxl, nxr … … 726 727 727 728 !$OMP PARALLEL DO PRIVATE( k, z_mo ) 728 ! ### WARNING: does not work on GPU because of function calls 729 !!!!!$acc kernels loop 730 !$acc update host( ol, uv_total ) 729 !$acc kernels loop present( nzb_s_inner, ol, us, uv_total, zu, zw, z0 ) private( j, k, z_mo ) 731 730 DO i = nxlg, nxrg 732 731 DO j = nysg, nyng … … 742 741 ENDDO 743 742 ENDDO 744 !$acc update device( us )745 743 746 744 END SUBROUTINE calc_us … … 808 806 809 807 !$OMP PARALLEL DO PRIVATE( k, z_mo ) 810 ! ### WARNING: leads to severe compile error 811 !!!!$acc kernels loop 808 !$acc kernels loop present( nzb_s_inner, ol, pt, pt1, ts, zu, zw, z0h ) private( j, k, z_mo ) 812 809 DO i = nxlg, nxrg 813 810 DO j = nysg, nyng … … 862 859 863 860 !$OMP PARALLEL DO PRIVATE( e_s, k, z_mo ) 864 ! ### WARNING: leads to severe compile error 865 !!!!$acc kernels loop independent 861 !$acc kernels loop independent present( nzb_s_inner, ol, pt, q, qs, qv1, zu, zw, z0h ) private( e_s, j, k, z_mo ) 866 862 DO i = nxlg, nxrg 867 ! !!!$acc loop independent863 !$acc loop independent 868 864 DO j = nysg, nyng 869 865 … … 905 901 906 902 !$OMP PARALLEL DO PRIVATE( k, z_mo ) 907 ! ### WARNING: leads to severe compile error 908 !!!!!$acc kernels loop independent 903 !$acc kernels loop independent present( nr, nrs, nzb_s_inner, ol, qr, qrs, zu, zw, z0h ) private( j, k, z_mo ) 909 904 DO i = nxlg, nxrg 910 ! !!!$acc loop independent905 !$acc loop independent 911 906 DO j = nysg, nyng 912 907 … … 914 909 z_mo = zu(k+1) - zw(k) 915 910 916 917 / ( LOG( z_mo / z0h(j,i) )&918 - psi_h( z_mo / ol(j,i) )&919 920 921 922 / ( LOG( z_mo / z0h(j,i) )&923 - psi_h( z_mo / ol(j,i) )&924 911 qrs(j,i) = kappa * ( qr(k+1,j,i) - qr(k,j,i) ) & 912 / ( LOG( z_mo / z0h(j,i) ) & 913 - psi_h( z_mo / ol(j,i) ) & 914 + psi_h( z0h(j,i) / ol(j,i) ) ) 915 916 nrs(j,i) = kappa * ( nr(k+1,j,i) - nr(k,j,i) ) & 917 / ( LOG( z_mo / z0h(j,i) ) & 918 - psi_h( z_mo / ol(j,i) ) & 919 + psi_h( z0h(j,i) / ol(j,i) ) ) 925 920 ENDDO 926 921 ENDDO … … 945 940 !-- First compute the corresponding component of u* and square it. 946 941 !$OMP PARALLEL DO PRIVATE( k, ol_mid, z_mo ) 947 ! ### WARNING: leads to severe compile error 948 !!!!!$acc kernels loop 949 !$acc update host( ol, u, us, v ) 942 !$acc kernels loop present( nzb_u_inner, ol, u, us, usws, zu, zw, z0 ) private( j, k, z_mo ) 950 943 DO i = nxl, nxr 951 944 DO j = nys, nyn … … 974 967 !-- First compute the corresponding component of u* and square it. 975 968 !$OMP PARALLEL DO PRIVATE( k, ol_mid, z_mo ) 976 ! ### WARNING: leads to severe compile error 977 !!!!!!$acc kernels loop 969 !$acc kernels loop present( nzb_v_inner, ol, v, us, vsws, zu, zw, z0 ) private( j, k, ol_mid, z_mo ) 978 970 DO i = nxl, nxr 979 971 DO j = nys, nyn … … 1001 993 ! 1002 994 !-- Exchange the boundaries for the momentum fluxes (is this still required?) 1003 ! !!!!!!!$acc update host( usws, vsws )995 !$acc update host( usws, vsws ) 1004 996 CALL exchange_horiz_2d( usws ) 1005 997 CALL exchange_horiz_2d( vsws )
Note: See TracChangeset
for help on using the changeset viewer.