Changeset 3844


Ignore:
Timestamp:
Jul 2, 2015, 6:13:12 PM (10 years ago)
Author:
ymipsl
Message:

Bug fix correction for some openMP configuration

YM

Location:
dynamico_lmdz/aquaplanet/ICOSAGCM/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • dynamico_lmdz/aquaplanet/ICOSAGCM/src/caldyn_gcm.f90

    r3810 r3844  
    223223          CALL compute_pvort(ps,u,theta_rhodz, mass,theta,qu,qv)
    224224       ENDDO
     225!       CALL checksum(f_mass)
     226!       CALL checksum(f_theta)
    225227
    226228       CALL send_message(f_qu,req_qu)
     
    252254          END IF
    253255       ENDDO       
     256   
     257!       CALL checksum(f_geopot)
     258!       CALL checksum(f_dmass)
     259!       CALL checksum(f_pk)
     260!       CALL checksum(f_pk)
    254261       
    255262    CASE(enstrophy) ! enstrophy-conserving
     
    439446    INTEGER :: i,j,ij,l
    440447    REAL(rstd) :: p_ik, exner_ik
    441     INTEGER,SAVE ::ij_omp_begin_ext, ij_omp_end_ext
    442 !$OMP THREADPRIVATE(ij_omp_begin_ext, ij_omp_end_ext)
    443     LOGICAL,SAVE :: first=.TRUE.
    444 !$OMP THREADPRIVATE(first)
     448    INTEGER    :: ij_omp_begin_ext, ij_omp_end_ext
    445449
    446450
    447451    CALL trace_start("compute_geopot")
    448452   
    449     IF (first) THEN
    450       first=.FALSE.
    451       CALL distrib_level(ij_end_ext-ij_begin_ext+1,ij_omp_begin_ext,ij_omp_end_ext)
    452       ij_omp_begin_ext=ij_omp_begin_ext+ij_begin_ext-1
    453       ij_omp_end_ext=ij_omp_end_ext+ij_begin_ext-1
    454     ENDIF
     453    CALL distrib_level(ij_end_ext-ij_begin_ext+1,ij_omp_begin_ext,ij_omp_end_ext)
     454    ij_omp_begin_ext=ij_omp_begin_ext+ij_begin_ext-1
     455    ij_omp_end_ext=ij_omp_end_ext+ij_begin_ext-1
    455456
    456457    IF(caldyn_eta==eta_mass) THEN
     
    798799    INTEGER :: i,j,ij,l
    799800    REAL(rstd) :: p_ik, exner_ik
    800     INTEGER,SAVE ::ij_omp_begin, ij_omp_end
    801 !$OMP THREADPRIVATE(ij_omp_begin, ij_omp_end)
    802     LOGICAL,SAVE :: first=.TRUE.
    803 !$OMP THREADPRIVATE(first)
     801    INTEGER    :: ij_omp_begin, ij_omp_end
    804802
    805803
    806804    CALL trace_start("compute_geopot")
    807    
    808     IF (first) THEN
    809       first=.FALSE.
    810       CALL distrib_level(ij_end-ij_begin+1,ij_omp_begin,ij_omp_end)
    811       ij_omp_begin=ij_omp_begin+ij_begin-1
    812       ij_omp_end=ij_omp_end+ij_begin-1
    813     ENDIF
     805
     806    CALL distrib_level(ij_end-ij_begin+1,ij_omp_begin,ij_omp_end)
     807    ij_omp_begin=ij_omp_begin+ij_begin-1
     808    ij_omp_end=ij_omp_end+ij_begin-1
    814809
    815810!    REAL(rstd) :: wwuu(iim*3*jjm,llm+1) ! tmp var, don't know why but gain 30% on the whole code in opemp
     
    959954    USE pression_mod
    960955    USE omega_mod
    961     USE write_field
     956    USE write_field_mod
    962957    USE vertical_interp_mod
    963958    USE wind_mod
  • dynamico_lmdz/aquaplanet/ICOSAGCM/src/timeloop_gcm.f90

    r3810 r3844  
    3838  USE check_conserve_mod
    3939  USE output_field_mod
    40   USE write_field
     40  USE write_field_mod
    4141  USE theta2theta_rhodz_mod
    4242  USE sponge_mod
     
    241241
    242242    DO stage=1,nb_stage
     243!       CALL checksum(f_ps)
     244!       CALL checksum(f_theta_rhodz)
     245!       CALL checksum(f_mass)
    243246       CALL caldyn((stage==1) .AND. (MOD(it,itau_out)==0), &
    244247            f_phis,f_ps,f_mass,f_theta_rhodz,f_u, f_q, &
    245248            f_hflux, f_wflux, f_dps, f_dmass, f_dtheta_rhodz, f_du)
     249!       CALL checksum(f_dps)
     250!       CALL checksum(f_dtheta_rhodz)
     251!       CALL checksum(f_dmass)
    246252       SELECT CASE (scheme)
    247253       CASE(euler)
Note: See TracChangeset for help on using the changeset viewer.