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

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

Location:
codes/icosagcm/trunk/src/diagnostics
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/diagnostics/check_conserve.f90

    r902 r953  
    11MODULE check_conserve_mod 
    22  USE icosa  
     3  USE abort_mod 
    34  IMPLICIT NONE  
    45 
     
    2829    USE getin_mod 
    2930    USE omp_para, ONLY : is_master 
     31    USE abort_mod 
    3032    CHARACTER(LEN=255) :: check_type_str 
    3133    CALL allocate_field(f_pk,field_t,type_real,llm) 
     
    4749       STOP 
    4850    END SELECT 
     51 
     52    IF (check_type /= check_basic) THEN 
     53       CALL abort_acc("check_conservation /= 'basic'") 
     54    END IF 
    4955  END SUBROUTINE init_check_conserve 
    5056 
     
    179185     
    180186    IF(check_type == check_detailed) THEN 
    181  
     187       CALL abort_acc("!check_detailed") 
    182188       CALL transfert_request(f_ue,req_e1_vect) 
    183189       CALL pression(f_ps,f_p) 
  • codes/icosagcm/trunk/src/diagnostics/diagflux.F90

    r604 r953  
    2121  SUBROUTINE init_diagflux 
    2222    USE getin_mod 
     23    USE abort_mod 
    2324    INTEGER :: ll 
    2425    diagflux_on = .FALSE. 
    2526    CALL getin("diagflux", diagflux_on) 
     27    IF (diagflux_on) THEN 
     28       CALL abort_acc("diagflux /= .FALSE.") 
     29    END IF 
     30 
    2631    ll = MERGE(llm,1,diagflux_on) 
    2732    CALL allocate_field(f_masst,         field_t,type_real,ll,       name="masst") 
  • codes/icosagcm/trunk/src/diagnostics/observable.f90

    r899 r953  
    3030    CALL allocate_field(f_buf_s,   field_t,type_real, name="buf_s") 
    3131 
    32     CALL allocate_field(f_theta, field_t,type_real,llm,nqdyn,  name='theta') ! potential temperature 
     32    CALL allocate_field(f_theta, field_t,type_real,llm,nqdyn,  name='theta', ondevice=.TRUE.) ! potential temperature 
    3333    CALL allocate_field(f_pmid,  field_t,type_real,llm,  name='pmid')       ! mid layer pressure 
    3434  END SUBROUTINE init_observable 
     
    5656 
    5757    CALL transfert_request(f_ps,req_i1) 
     58    CALL update_host_field(f_ps) 
    5859     
    5960    IF(init) THEN 
     
    109110     
    110111    CALL progonostic_vel_to_horiz(f_geopot, f_ps, f_mass, f_u, f_W, f_buf_uh, f_buf_i) 
    111     CALL transfert_request(f_buf_uh,req_e1_vect)  
     112    CALL transfert_request(f_buf_uh,req_e1_vect) 
    112113    CALL un2ulonlat(f_buf_uh, f_buf_ulon, f_buf_ulat) 
    113114    IF(init) THEN 
Note: See TracChangeset for help on using the changeset viewer.