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

trunk : GPU implementation with OpenACC ( merge from glcp.idris.fr )

File:
1 moved

Legend:

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

    r933 r953  
    2626    USE output_field_mod 
    2727    USE checksum_mod 
     28    USE abort_mod 
    2829    IMPLICIT NONE 
    2930    LOGICAL,INTENT(IN)    :: write_out 
     
    8687       CALL wait_message(req_ps) ! COM00 
    8788    ELSE 
     89       CALL abort_acc("HEVI_scheme/!eta_mass") 
    8890       CALL send_message(f_mass,req_mass) ! COM00 
    8991       CALL wait_message(req_mass) ! COM00 
     
    9395 
    9496    IF(.NOT.hydrostatic) THEN 
     97       CALL abort_acc("HEVI_scheme/!hydrostatic") 
    9598       CALL send_message(f_geopot,req_geopot) ! COM03 
    9699       CALL wait_message(req_geopot) ! COM03 
     
    112115       du=f_du_fast(ind) 
    113116       IF(hydrostatic) THEN 
    114           du(:,:)=0. 
     117          !$acc kernels present(du) async 
     118          du(:,:)=0.0d0 
     119          !$acc end kernels 
    115120          CALL compute_geopot(mass,theta, ps,pk,geopot) 
    116121       ELSE 
     122          CALL abort_acc("HEVI_scheme/!hydrostatic") 
    117123          phis = f_phis(ind) 
    118124          W = f_W(ind) 
     
    161167          CALL compute_caldyn_slow_hydro(u,mass,hflux,du, .TRUE.) 
    162168       ELSE 
     169          CALL abort_acc("HEVI_scheme/!hydrostatic") 
    163170          W = f_W(ind) 
    164171          dW = f_dW_slow(ind) 
     
    170177          CALL compute_caldyn_slow_NH(u,mass,geopot,W, F_el,gradPhi2,w_il, hflux,du,dPhi,dW) 
    171178       END IF 
    172        CALL compute_caldyn_Coriolis(hflux,theta,qu, convm,dtheta_rhodz,du) 
     179       CALL compute_caldyn_Coriolis(hflux,theta,qu,convm,dtheta_rhodz,du) 
     180        
    173181       IF(caldyn_eta==eta_mass) THEN 
    174182          wflux=f_wflux(ind) 
     
    177185          CALL compute_caldyn_vert(u,theta,mass,convm, wflux,wwuu, dps, dtheta_rhodz, du) 
    178186          IF(.NOT.hydrostatic) THEN 
     187             CALL abort_acc("HEVI_scheme/!hydrostatic") 
    179188             W_etadot=f_Wetadot(ind) 
    180189             CALL compute_caldyn_vert_NH(mass,geopot,W,wflux, W_etadot, du,dPhi,dW) 
Note: See TracChangeset for help on using the changeset viewer.