Ignore:
Timestamp:
08/09/18 13:55:51 (6 years ago)
Author:
dubos
Message:

devel : updated generated kernels ; added missing SIMD directives

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/kernels_hex/compute_geopot.k90

    r563 r724  
    44   CASE(thermo_boussinesq) 
    55      ! use hydrostatic balance with theta*rhodz to find pk (=Lagrange multiplier=pressure) 
     6      !DIR$ SIMD 
    67      DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    78         pk(ij,llm) = ptop + .5*g* theta(ij,llm,1)*rhodz(ij,llm) 
    89      END DO 
    910      DO l = llm-1,1,-1 
     11         !DIR$ SIMD 
    1012         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    1113            pk(ij,l) = pk(ij,l+1) + (.5*g)*( theta(ij,l,1)*rhodz(ij,l) + theta(ij,l+1,1)*rhodz(ij,l+1) ) 
     
    1315      END DO 
    1416      IF(caldyn_eta == eta_lag) THEN 
     17         !DIR$ SIMD 
    1518         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    1619            ps(ij) = pk(ij,1) + .5*g* theta(ij,1,1)*rhodz(ij,1) 
     
    2023      ! specific volume 1 = dphi/g/rhodz 
    2124      DO l = 1,llm 
     25         !DIR$ SIMD 
    2226         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    2327            geopot(ij,l+1) = geopot(ij,l) + g*rhodz(ij,l) 
     
    2529      END DO 
    2630   CASE(thermo_theta) 
     31      !DIR$ SIMD 
    2732      DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    2833         pk(ij,llm) = ptop + .5*g* rhodz(ij,llm) 
    2934      END DO 
    3035      DO l = llm-1,1,-1 
     36         !DIR$ SIMD 
    3137         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    3238            pk(ij,l) = pk(ij,l+1) + (.5*g)*( rhodz(ij,l) + rhodz(ij,l+1) ) 
     
    3440      END DO 
    3541      IF(caldyn_eta == eta_lag) THEN 
     42         !DIR$ SIMD 
    3643         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    3744            ps(ij) = pk(ij,1) + .5*g* rhodz(ij,1) 
     
    3946      END IF 
    4047      DO l = 1,llm 
     48         !DIR$ SIMD 
    4149         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    4250            p_ik = pk(ij,l) 
     
    4856      END DO 
    4957   CASE(thermo_entropy) 
     58      !DIR$ SIMD 
    5059      DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    5160         pk(ij,llm) = ptop + .5*g* rhodz(ij,llm) 
    5261      END DO 
    5362      DO l = llm-1,1,-1 
     63         !DIR$ SIMD 
    5464         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    5565            pk(ij,l) = pk(ij,l+1) + (.5*g)*( rhodz(ij,l) + rhodz(ij,l+1) ) 
     
    5767      END DO 
    5868      IF(caldyn_eta == eta_lag) THEN 
     69         !DIR$ SIMD 
    5970         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    6071            ps(ij) = pk(ij,1) + .5*g* rhodz(ij,1) 
     
    6273      END IF 
    6374      DO l = 1,llm 
     75         !DIR$ SIMD 
    6476         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    6577            p_ik = pk(ij,l) 
     
    7183      END DO 
    7284   CASE(thermo_moist) 
     85      !DIR$ SIMD 
    7386      DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    7487         pk(ij,llm) = ptop + .5*g* rhodz(ij,llm)*(1.+theta(ij,llm,2)) 
    7588      END DO 
    7689      DO l = llm-1,1,-1 
     90         !DIR$ SIMD 
    7791         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    7892            pk(ij,l) = pk(ij,l+1) + (.5*g)*( rhodz(ij,l)*(1.+theta(ij,l,2)) + rhodz(ij,l+1)*(1.+theta(ij,l+1,2)) ) 
     
    8094      END DO 
    8195      IF(caldyn_eta == eta_lag) THEN 
     96         !DIR$ SIMD 
    8297         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    8398            ps(ij) = pk(ij,1) + .5*g* rhodz(ij,1)*(1.+theta(ij,1,2)) 
     
    85100      END IF 
    86101      DO l = 1,llm 
     102         !DIR$ SIMD 
    87103         DO ij=ij_omp_begin_ext,ij_omp_end_ext 
    88104            p_ik = pk(ij,l) 
Note: See TracChangeset for help on using the changeset viewer.