Ignore:
Timestamp:
12/22/17 01:35:23 (6 years ago)
Author:
dubos
Message:

devel/unstructured : more loop unrolling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/unstructured/caldyn_unstructured.F90

    r645 r650  
    88CONTAINS 
    99 
     10#define DBL REAL(C_DOUBLE) 
     11 
    1012#define INDICES1 ij,l,iq,iedge,edge,ivertex,vertex,ij_left,ij_right 
    1113#define INDICES2 ij_up,ij_down,itrisk,edge_trisk,kup,kdown 
     14#define EDGES edge1,edge2,edge3,edge4,edge5,edge6 
     15#define VERTICES vertex1,vertex2,vertex3,vertex4,vertex5,vertex6 
     16#define SIGNS sign1,sign2,sign3,sign4,sign5,sign6 
     17#define EDGE_ENDS ij_up1,ij_up2,ij_up3,ij_up4,ij_up5,ij_up6,ij_down1,ij_down2,ij_down3,ij_down4,ij_down5,ij_down6 
     18#define LENGTHS le_de1,le_de2,le_de3,le_de4,le_de5,le_de6 
    1219#define DECLARE_INDICES INTEGER INDICES1,INDICES2 
     20#define DECLARE_EDGES DBL SIGNS,LENGTHS ; INTEGER EDGES, EDGE_ENDS 
     21#define DECLARE_VERTICES INTEGER VERTICES 
    1322#define PHI_BOT(ij) Phi_bot 
    1423#define PHI_BOT_VAR 0. 
     
    1726#define BINDC(thename) BINDC_(dynamico_ ## thename) 
    1827 
    19 #define DBL REAL(C_DOUBLE) 
    2028#define DOUBLE1(m) DBL, DIMENSION(m) 
    2129#define DOUBLE2(m,n) DBL, DIMENSION(m,n) 
     
    4957  FIELD_UL     :: DePhil, v_el, G_el, F_el ! LOCAL 
    5058  DECLARE_INDICES 
     59  DECLARE_EDGES 
    5160  DBL :: W_el, W2_el, gPhi2, dP, divG, u2, uu 
    5261#include "../kernels_unst/caldyn_slow_NH.k90" 
     
    9099  FIELD_U     :: u,hflux,du ! IN, OUT, OUT 
    91100  DECLARE_INDICES 
     101  DECLARE_EDGES 
    92102  LOGICAL, PARAMETER :: zero=.TRUE. 
    93103  DBL :: ke, uu 
     
    118128  FIELD_THETA :: theta, dtheta_rhodz 
    119129  DECLARE_INDICES 
     130  DECLARE_EDGES 
    120131  DBL :: divF, du_trisk 
    121132#include "../kernels_unst/coriolis.k90" 
     
    136147  FIELD_Z    :: qv 
    137148  DECLARE_INDICES 
     149  DECLARE_EDGES 
     150  DECLARE_VERTICES 
    138151  DBL :: etav, hv 
    139152#include "../kernels_unst/pvort_only.k90" 
     
    147160  FIELD_U      :: u,du      ! INOUT,INOUT 
    148161  DECLARE_INDICES 
     162  DECLARE_EDGES 
    149163  DBL          :: due 
    150164 
     
    166180  DOUBLE2(llm,edge_num)  :: u 
    167181  DECLARE_INDICES 
     182  DECLARE_EDGES 
    168183  DBL :: div_ij 
    169184  !$OMP PARALLEL NUM_THREADS(nb_threads) 
Note: See TracChangeset for help on using the changeset viewer.