Changeset 709


Ignore:
Timestamp:
07/20/18 11:12:21 (6 years ago)
Author:
ymipsl
Message:

OpenMP fix when creating intial state from files by interpolation (etat0_database).

Missing synchronisation when using openMP parallelisation on vertical levels.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/initial/etat0_database.f90

    r548 r709  
    5757    CALL writeField("relief_out",f_phis,once=.TRUE.) 
    5858 
    59     DO ind=1,ndomain 
    60       IF (.NOT. assigned_domain(ind)) CYCLE 
    61       f_phis(ind)%rval2d(:)=f_phis(ind)%rval2d(:)*g       
    62     ENDDO 
    63  
     59    IF (is_omp_level_master) THEN 
     60      DO ind=1,ndomain 
     61        IF (.NOT. assigned_domain(ind)) CYCLE 
     62        f_phis(ind)%rval2d(:)=f_phis(ind)%rval2d(:)*g       
     63      ENDDO 
     64    ENDIF 
     65!$OMP BARRIER     
    6466 
    6567    IF (is_omp_master) CALL xios_get_axis_attr("lev_ecdyn",n_glo=nb_level) 
     
    98100! make correction to ps due to relief at higher resolution 
    99101! difference with LMDZ : tsol is taken from ECDYN.NC and not from ECPHY 
    100     DO ind=1,ndomain 
    101       IF (.NOT. assigned_domain(ind)) CYCLE 
    102       f_ps(ind)%rval2d(:)=f_ps(ind)%rval2d(:)*(1.+(f_z(ind)%rval2d(:)-f_phis(ind)%rval2d(:))/287.0/f_ts(ind)%rval2d(:)) 
    103     ENDDO 
     102    IF (is_omp_level_master) THEN 
     103      DO ind=1,ndomain 
     104        IF (.NOT. assigned_domain(ind)) CYCLE 
     105        f_ps(ind)%rval2d(:)=f_ps(ind)%rval2d(:)*(1.+(f_z(ind)%rval2d(:)-f_phis(ind)%rval2d(:))/287.0/f_ts(ind)%rval2d(:)) 
     106      ENDDO 
     107    ENDIF 
     108!$OMP BARRIER     
    104109    CALL transfert_request(f_ps,req_i0)  
    105110    CALL writeField("ps_out",f_ps) 
     
    135140    ENDDO 
    136141 
     142    CALL writeField("tempdb_out",f_temp_reg) 
     143    CALL writeField("temp_out",f_temp) 
    137144 
    138145    CALL deallocate_field(f_ts) 
Note: See TracChangeset for help on using the changeset viewer.