Ignore:
Timestamp:
07/15/19 12:29:31 (5 years ago)
Author:
adurocher
Message:

trunk : Added metric terms to kernels parameters to avoid Host/GPU transferts

Metric terms are now subroutine parameters instead of module variables in kernel subroutines. Dummy arguments for metric terms are now defined as fixed-size arrays, and arrays dimensions are well known when entering an 'acc data' region. Array descriptors are no longer transferred form host to device each time the data region is executed.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/dynamics/caldyn_hevi.F90

    r953 r954  
    1616    USE icosa 
    1717    USE observable_mod 
    18     USE disvert_mod, ONLY : caldyn_eta, eta_mass 
     18    USE disvert_mod, ONLY : caldyn_eta, eta_mass, bp, mass_dak, mass_dbk 
    1919    USE vorticity_mod 
    2020    USE kinetic_mod 
     
    110110       mass=f_mass(ind) 
    111111       theta = f_theta(ind) 
    112        CALL compute_theta(ps,theta_rhodz, mass,theta) 
     112       CALL compute_theta(ps,theta_rhodz, mass,theta, mass_dak, mass_dbk) 
    113113       pk = f_pk(ind) 
    114114       geopot = f_geopot(ind) 
     
    145145       qu=f_qu(ind) 
    146146       qv=f_qv(ind) 
    147        CALL compute_pvort_only(u,mass,qu,qv) 
     147       CALL compute_pvort_only(u,mass,qu,qv,Av,Riv2,fv) 
    148148    ENDDO 
    149149     
     
    165165 
    166166       IF(hydrostatic) THEN 
    167           CALL compute_caldyn_slow_hydro(u,mass,hflux,du, .TRUE.) 
     167          CALL compute_caldyn_slow_hydro(u,mass,hflux,du,Ai,le_de, .TRUE.) 
    168168       ELSE 
    169169          CALL abort_acc("HEVI_scheme/!hydrostatic") 
     
    177177          CALL compute_caldyn_slow_NH(u,mass,geopot,W, F_el,gradPhi2,w_il, hflux,du,dPhi,dW) 
    178178       END IF 
    179        CALL compute_caldyn_Coriolis(hflux,theta,qu,convm,dtheta_rhodz,du) 
     179       CALL compute_caldyn_Coriolis(hflux,theta,qu,convm,dtheta_rhodz,du,Ai,wee) 
    180180        
    181181       IF(caldyn_eta==eta_mass) THEN 
     
    183183          wwuu=f_wwuu(ind) 
    184184          dps=f_dps(ind) 
    185           CALL compute_caldyn_vert(u,theta,mass,convm, wflux,wwuu, dps, dtheta_rhodz, du) 
     185          CALL compute_caldyn_vert(u,theta,mass,convm, wflux,wwuu, dps, dtheta_rhodz, du, bp) 
    186186          IF(.NOT.hydrostatic) THEN 
    187187             CALL abort_acc("HEVI_scheme/!hydrostatic") 
Note: See TracChangeset for help on using the changeset viewer.