Changeset 842 for codes/icosagcm/devel/src
- Timestamp:
- 05/03/19 18:16:12 (5 years ago)
- Location:
- codes/icosagcm/devel/src/dynamics
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/dynamics/caldyn_hevi.f90
r831 r842 6 6 USE caldyn_kernels_base_mod 7 7 USE compute_theta_mod, ONLY : compute_theta 8 USE compute_caldyn_kv_mod, ONLY : compute_caldyn_kv 8 9 IMPLICIT NONE 9 10 PRIVATE -
codes/icosagcm/devel/src/dynamics/caldyn_kernels_hevi.F90
r837 r842 13 13 LOGICAL, SAVE :: debug_hevi_solver = .FALSE. 14 14 15 PUBLIC :: compute_caldyn_ Kv, compute_caldyn_Coriolis, &15 PUBLIC :: compute_caldyn_Coriolis, & 16 16 compute_caldyn_slow_hydro, compute_caldyn_slow_NH, & 17 17 compute_caldyn_solver, compute_caldyn_fast 18 18 19 19 CONTAINS 20 21 SUBROUTINE compute_caldyn_kv(ue, Kv)22 REAL(rstd),INTENT(IN) :: ue(3*iim*jjm,llm)23 REAL(rstd),INTENT(OUT) :: Kv(2*iim*jjm,llm)24 REAL(rstd) :: ue2(3*iim*jjm), dem2(3*iim*jjm), r2_Av(2*iim*jjm), rad225 INTEGER :: ij,l, u_up, u_down26 27 u_up = t_lup + u_right28 u_down = t_rdown + u_left29 30 rad2=radius**231 32 !DIR$ SIMD33 DO ij=ij_begin_ext,ij_end_ext34 dem2(ij+u_right) = de(ij+u_right)**(-2)35 dem2(ij+u_lup) = de(ij+u_lup)**(-2)36 dem2(ij+u_ldown) = de(ij+u_ldown)**(-2)37 r2_Av(ij+z_up) = rad2*(1./Av(ij+z_up))38 r2_Av(ij+z_down) = rad2*(1./Av(ij+z_down))39 END DO40 41 DO l=ll_begin,ll_end42 ! compute squared normal component from 1-form43 !DIR$ SIMD44 DO ij=ij_begin_ext,ij_end_ext45 ue2(ij+u_right) = dem2(ij+u_right)* (ue(ij+u_right,l)**2)46 ue2(ij+u_lup) = dem2(ij+u_lup) * (ue(ij+u_lup,l)**2)47 ue2(ij+u_ldown) = dem2(ij+u_ldown)* (ue(ij+u_ldown,l)**2)48 END DO49 ! average squared normal component to vertices50 !DIR$ SIMD51 DO ij=ij_begin_ext,ij_end_ext52 Kv(ij+z_up,l) = r2_Av(ij+z_up)*( &53 S1(ij,vup)*ue2(ij+u_rup) + &54 S2(ij,vup)*ue2(ij+u_lup) + &55 S2(ij+t_lup,vrdown)*ue2(ij+u_up))56 57 Kv(ij+z_down,l) = r2_Av(ij+z_down)*( &58 S1(ij,vdown)*ue2(ij+u_ldown) + &59 S2(ij,vdown)*ue2(ij+u_rdown) + &60 S2(ij+t_rdown,vlup)*ue2(ij+u_down) )61 ENDDO62 ENDDO63 END SUBROUTINE compute_caldyn_kv64 20 65 21 SUBROUTINE compute_NH_geopot(tau, phis, m_ik, m_il, theta, W_il, Phi_il)
Note: See TracChangeset
for help on using the changeset viewer.