- Timestamp:
- 08/09/18 13:55:51 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/kernels_hex/compute_NH_geopot.k90
r657 r724 9 9 ! compute Phi_star 10 10 DO l = 1,llm+1 11 !DIR$ SIMD 11 12 DO ij=ij_omp_begin_ext,ij_omp_end_ext 12 13 Phi_star_il(ij,l) = Phi_il(ij,l) + tau*g2*(W_il(ij,l)/m_il(ij,l)-tau) … … 19 20 CASE(thermo_theta) 20 21 DO l = 1,llm 22 !DIR$ SIMD 21 23 DO ij=ij_omp_begin_ext,ij_omp_end_ext 22 24 rho_ij = (g*m_ik(ij,l))/(Phi_il(ij,l+1)-Phi_il(ij,l)) … … 29 31 CASE(thermo_entropy) 30 32 DO l = 1,llm 33 !DIR$ SIMD 31 34 DO ij=ij_omp_begin_ext,ij_omp_end_ext 32 35 rho_ij = (g*m_ik(ij,l))/(Phi_il(ij,l+1)-Phi_il(ij,l)) … … 44 47 ! Solve -A(l-1)x(l-1) + B(l)x(l) - A(l)x(l+1) = R(l) using Thomas algorithm 45 48 ! Compute residual R_il and B_il 49 !DIR$ SIMD 46 50 DO ij=ij_omp_begin_ext,ij_omp_end_ext 47 51 ! bottom interface l=1 … … 52 56 END DO 53 57 DO l = 2,llm 58 !DIR$ SIMD 54 59 DO ij=ij_omp_begin_ext,ij_omp_end_ext 55 60 ! inner interfaces … … 63 68 END DO 64 69 END DO 70 !DIR$ SIMD 65 71 DO ij=ij_omp_begin_ext,ij_omp_end_ext 66 72 ! top interface l=llm+1 … … 74 80 ! C(0)=0, C(l) = -A(l) / (B(l)+A(l-1)C(l-1)), 75 81 ! D(0)=0, D(l) = (R(l)+A(l-1)D(l-1)) / (B(l)+A(l-1)C(l-1)) 82 !DIR$ SIMD 76 83 DO ij=ij_omp_begin_ext,ij_omp_end_ext 77 84 X_ij = 1./B_il(ij,1) … … 80 87 END DO 81 88 DO l = 2,llm 89 !DIR$ SIMD 82 90 DO ij=ij_omp_begin_ext,ij_omp_end_ext 83 91 X_ij = 1./( B_il(ij,l) + A_ik(ij,l-1)*C_ik(ij,l-1) ) … … 86 94 END DO 87 95 END DO 96 !DIR$ SIMD 88 97 DO ij=ij_omp_begin_ext,ij_omp_end_ext 89 98 X_ij = 1./( B_il(ij,llm+1) + A_ik(ij,llm+1 -1)*C_ik(ij,llm+1 -1) ) … … 97 106 END DO 98 107 DO l = llm,1,-1 108 !DIR$ SIMD 99 109 DO ij=ij_omp_begin_ext,ij_omp_end_ext 100 110 ! Back substitution at lower interfaces
Note: See TracChangeset
for help on using the changeset viewer.