Changeset 1342 for palm/trunk/SOURCE/tridia_solver.f90
- Timestamp:
- Mar 26, 2014 5:04:47 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/tridia_solver.f90
r1323 r1342 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! REAL constants defined as wp-kind 23 23 ! 24 24 ! Former revisions: … … 110 110 ddzuw(k,1) = ddzu_pres(k+1) * ddzw(k+1) 111 111 ddzuw(k,2) = ddzu_pres(k+2) * ddzw(k+1) 112 ddzuw(k,3) = -1.0 * &112 ddzuw(k,3) = -1.0_wp * & 113 113 ( ddzu_pres(k+2) * ddzw(k+1) + ddzu_pres(k+1) * ddzw(k+1) ) 114 114 ENDDO … … 172 172 IF ( j >= 0 .AND. j <= nnyh ) THEN 173 173 IF ( i >= 0 .AND. i <= nnxh ) THEN 174 ll(i,j) = 2.0 * ( 1.0 - COS( ( 2.0* pi * i ) / &175 176 2.0 * ( 1.0 - COS( ( 2.0* pi * j ) / &177 174 ll(i,j) = 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * i ) / & 175 REAL( nx+1, KIND=wp ) ) ) / ( dx * dx ) + & 176 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * j ) / & 177 REAL( ny+1, KIND=wp ) ) ) / ( dy * dy ) 178 178 ELSE 179 ll(i,j) = 2.0 * ( 1.0 - COS( ( 2.0* pi * ( nx+1-i ) ) / &180 181 2.0 * ( 1.0 - COS( ( 2.0* pi * j ) / &182 179 ll(i,j) = 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * ( nx+1-i ) ) / & 180 REAL( nx+1, KIND=wp ) ) ) / ( dx * dx ) + & 181 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * j ) / & 182 REAL( ny+1, KIND=wp ) ) ) / ( dy * dy ) 183 183 ENDIF 184 184 ELSE 185 185 IF ( i >= 0 .AND. i <= nnxh ) THEN 186 ll(i,j) = 2.0 * ( 1.0 - COS( ( 2.0* pi * i ) / &187 188 2.0 * ( 1.0 - COS( ( 2.0* pi * ( ny+1-j ) ) / &189 186 ll(i,j) = 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * i ) / & 187 REAL( nx+1, KIND=wp ) ) ) / ( dx * dx ) + & 188 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * ( ny+1-j ) ) / & 189 REAL( ny+1, KIND=wp ) ) ) / ( dy * dy ) 190 190 ELSE 191 ll(i,j) = 2.0 * ( 1.0 - COS( ( 2.0* pi * ( nx+1-i ) ) / &192 193 2.0 * ( 1.0 - COS( ( 2.0* pi * ( ny+1-j ) ) / &194 191 ll(i,j) = 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * ( nx+1-i ) ) / & 192 REAL( nx+1, KIND=wp ) ) ) / ( dx * dx ) + & 193 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * ( ny+1-j ) ) / & 194 REAL( ny+1, KIND=wp ) ) ) / ( dy * dy ) 195 195 ENDIF 196 196 ENDIF … … 283 283 284 284 IF ( k == nz-1 ) THEN 285 ar(i,j,k+1) = ar1(i,j,k) / ( tri(i,j,k,1) + 1.0E-20 )285 ar(i,j,k+1) = ar1(i,j,k) / ( tri(i,j,k,1) + 1.0E-20_wp ) 286 286 ELSE 287 287 ar(i,j,k+1) = ( ar1(i,j,k) - ddzuw(k,2) * ar(i,j,k+2) ) & … … 301 301 !$acc kernels loop present( ar ) 302 302 DO k = 1, nz 303 ar(nxl_z,nys_z,k) = 0.0 303 ar(nxl_z,nys_z,k) = 0.0_wp 304 304 ENDDO 305 305 !$acc end kernels loop … … 367 367 368 368 IF ( k == nz-1 ) THEN 369 ar(i,j,k+1) = ar1(i,j,k) / ( tri(i,jj,k,1) + 1.0E-20 )369 ar(i,j,k+1) = ar1(i,j,k) / ( tri(i,jj,k,1) + 1.0E-20_wp ) 370 370 ELSE 371 371 ar(i,j,k+1) = ( ar1(i,j,k) - ddzuw(k,2) * ar(i,j,k+2) ) & … … 385 385 !$acc kernels loop present( ar ) 386 386 DO k = 1, nz 387 ar(nxl_z,nys_z,k) = 0.0 387 ar(nxl_z,nys_z,k) = 0.0_wp 388 388 ENDDO 389 389 ENDIF … … 560 560 DO i = 0, nx 561 561 IF ( i >= 0 .AND. i <= nnxh ) THEN 562 l(i) = 2.0 * ( 1.0 - COS( ( 2.0* pi * i ) / &563 564 2.0 * ( 1.0 - COS( ( 2.0* pi * j ) / &565 562 l(i) = 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * i ) / & 563 REAL( nx+1, KIND=wp ) ) ) * ddx2 + & 564 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * j ) / & 565 REAL( ny+1, KIND=wp ) ) ) * ddy2 566 566 ELSE 567 l(i) = 2.0 * ( 1.0 - COS( ( 2.0* pi * ( nx+1-i ) ) / &568 569 2.0 * ( 1.0 - COS( ( 2.0* pi * j ) / &570 567 l(i) = 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * ( nx+1-i ) ) / & 568 REAL( nx+1, KIND=wp ) ) ) * ddx2 + & 569 2.0_wp * ( 1.0_wp - COS( ( 2.0_wp * pi * j ) / & 570 REAL( ny+1, KIND=wp ) ) ) * ddy2 571 571 ENDIF 572 572 ENDDO … … 574 574 DO k = 0, nz-1 575 575 DO i = 0, nx 576 a = -1.0 * ddzu_pres(k+2) * ddzw(k+1)577 c = -1.0 * ddzu_pres(k+1) * ddzw(k+1)576 a = -1.0_wp * ddzu_pres(k+2) * ddzw(k+1) 577 c = -1.0_wp * ddzu_pres(k+1) * ddzw(k+1) 578 578 tri_for_1d(1,i,k) = a + c - l(i) 579 579 ENDDO … … 660 660 !-- the model domain. 661 661 DO i = 0, nx 662 ar(i,nz) = ar1(i,nz-1) / ( tri_for_1d(4,i,nz-1) + 1.0E-20 )662 ar(i,nz) = ar1(i,nz-1) / ( tri_for_1d(4,i,nz-1) + 1.0E-20_wp ) 663 663 ENDDO 664 664 DO k = nz-2, 0, -1 … … 676 676 IF ( j == 0 ) THEN 677 677 DO k = 1, nz 678 ar(0,k) = 0.0 678 ar(0,k) = 0.0_wp 679 679 ENDDO 680 680 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.