mod_synchro_omp.f90 Source File


This file depends on

sourcefile~~mod_synchro_omp.f90~~EfferentGraph sourcefile~mod_synchro_omp.f90 mod_synchro_omp.f90 sourcefile~mod_phys_lmdz_para.f90 mod_phys_lmdz_para.f90 sourcefile~mod_synchro_omp.f90->sourcefile~mod_phys_lmdz_para.f90 sourcefile~mod_phys_lmdz_mpi_data.f90 mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_transfert_para.f90 mod_phys_lmdz_transfert_para.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_transfert_para.f90 sourcefile~mod_grid_phy_lmdz.f90 mod_grid_phy_lmdz.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~print_control_mod.f90 print_control_mod.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~print_control_mod.f90 sourcefile~mod_phys_lmdz_omp_data.f90 mod_phys_lmdz_omp_data.F90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_omp_data.f90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~print_control_mod.f90 sourcefile~lmdz_mpi.f90 lmdz_mpi.F90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~lmdz_mpi.f90 sourcefile~lmdz_cppkeys_wrapper.f90 lmdz_cppkeys_wrapper.F90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~lmdz_cppkeys_wrapper.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90 mod_phys_lmdz_omp_transfert.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_omp_transfert.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90 mod_phys_lmdz_mpi_transfert.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_mpi_transfert.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~print_control_mod.f90 sourcefile~dimphy.f90 dimphy.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~dimphy.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90->sourcefile~mod_phys_lmdz_omp_data.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~lmdz_mpi.f90

Files dependent on this one

sourcefile~~mod_synchro_omp.f90~~AfferentGraph sourcefile~mod_synchro_omp.f90 mod_synchro_omp.f90 sourcefile~carbon_cycle_mod.f90 carbon_cycle_mod.f90 sourcefile~carbon_cycle_mod.f90->sourcefile~mod_synchro_omp.f90 sourcefile~surf_land_orchidee_mod.f90 surf_land_orchidee_mod.F90 sourcefile~surf_land_orchidee_mod.f90->sourcefile~mod_synchro_omp.f90 sourcefile~surf_land_orchidee_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~cpl_mod.f90 cpl_mod.F90 sourcefile~surf_land_orchidee_mod.f90->sourcefile~cpl_mod.f90 sourcefile~surf_land_orchidee_mod.f90~2 surf_land_orchidee_mod.F90 sourcefile~surf_land_orchidee_mod.f90~2->sourcefile~mod_synchro_omp.f90 sourcefile~surf_land_orchidee_mod.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~surf_land_orchidee_mod.f90~2->sourcefile~cpl_mod.f90 sourcefile~carbon_cycle_mod.f90~2 carbon_cycle_mod.f90 sourcefile~carbon_cycle_mod.f90~2->sourcefile~mod_synchro_omp.f90 sourcefile~conf_phys_m.f90 conf_phys_m.f90 sourcefile~conf_phys_m.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~phys_output_write_mod.f90 phys_output_write_mod.F90 sourcefile~phys_output_write_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~pbl_surface_mod.f90 pbl_surface_mod.F90 sourcefile~phys_output_write_mod.f90->sourcefile~pbl_surface_mod.f90 sourcefile~phytrac_mod.f90 phytrac_mod.f90 sourcefile~phys_output_write_mod.f90->sourcefile~phytrac_mod.f90 sourcefile~phys_output_write_mod.f90~2 phys_output_write_mod.F90 sourcefile~phys_output_write_mod.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~phys_output_write_mod.f90~2->sourcefile~pbl_surface_mod.f90 sourcefile~phys_output_write_mod.f90~2->sourcefile~phytrac_mod.f90 sourcefile~physiq_mod.f90~2 physiq_mod.F90 sourcefile~physiq_mod.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~physiq_mod.f90~2->sourcefile~conf_phys_m.f90 sourcefile~physiq_mod.f90~2->sourcefile~phys_output_write_mod.f90 sourcefile~physiq_mod.f90~2->sourcefile~pbl_surface_mod.f90 sourcefile~phyetat0_mod.f90 phyetat0_mod.F90 sourcefile~physiq_mod.f90~2->sourcefile~phyetat0_mod.f90 sourcefile~diag_slp.f90 diag_slp.f90 sourcefile~physiq_mod.f90~2->sourcefile~diag_slp.f90 sourcefile~physiq_mod.f90~2->sourcefile~phytrac_mod.f90 sourcefile~change_srf_frac_mod.f90 change_srf_frac_mod.f90 sourcefile~physiq_mod.f90~2->sourcefile~change_srf_frac_mod.f90 sourcefile~phyaqua_mod.f90 phyaqua_mod.F90 sourcefile~physiq_mod.f90~2->sourcefile~phyaqua_mod.f90 sourcefile~phys_output_write_spl_mod.f90 phys_output_write_spl_mod.F90 sourcefile~physiq_mod.f90~2->sourcefile~phys_output_write_spl_mod.f90 sourcefile~physiqex_mod.f90 physiqex_mod.F90 sourcefile~physiq_mod.f90~2->sourcefile~physiqex_mod.f90 sourcefile~phys_output_mod.f90 phys_output_mod.F90 sourcefile~physiq_mod.f90~2->sourcefile~phys_output_mod.f90 sourcefile~create_etat0_limit_unstruct_mod.f90 create_etat0_limit_unstruct_mod.f90 sourcefile~physiq_mod.f90~2->sourcefile~create_etat0_limit_unstruct_mod.f90 sourcefile~physiq_mod.f90 physiq_mod.F90 sourcefile~physiq_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~physiq_mod.f90->sourcefile~conf_phys_m.f90 sourcefile~physiq_mod.f90->sourcefile~phys_output_write_mod.f90 sourcefile~physiq_mod.f90->sourcefile~pbl_surface_mod.f90 sourcefile~physiq_mod.f90->sourcefile~phyetat0_mod.f90 sourcefile~physiq_mod.f90->sourcefile~diag_slp.f90 sourcefile~physiq_mod.f90->sourcefile~phytrac_mod.f90 sourcefile~physiq_mod.f90->sourcefile~change_srf_frac_mod.f90 sourcefile~physiq_mod.f90->sourcefile~phyaqua_mod.f90 sourcefile~physiq_mod.f90->sourcefile~phys_output_write_spl_mod.f90 sourcefile~physiq_mod.f90->sourcefile~physiqex_mod.f90 sourcefile~physiq_mod.f90->sourcefile~phys_output_mod.f90 sourcefile~physiq_mod.f90->sourcefile~create_etat0_limit_unstruct_mod.f90 sourcefile~tracco2i_mod.f90 tracco2i_mod.f90 sourcefile~tracco2i_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~pbl_surface_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~surf_land_mod.f90 surf_land_mod.F90 sourcefile~pbl_surface_mod.f90->sourcefile~surf_land_mod.f90 sourcefile~pbl_surface_mod.f90->sourcefile~cpl_mod.f90 sourcefile~surf_landice_mod.f90 surf_landice_mod.F90 sourcefile~pbl_surface_mod.f90->sourcefile~surf_landice_mod.f90 sourcefile~surf_seaice_mod.f90 surf_seaice_mod.F90 sourcefile~pbl_surface_mod.f90->sourcefile~surf_seaice_mod.f90 sourcefile~surf_ocean_mod.f90 surf_ocean_mod.F90 sourcefile~pbl_surface_mod.f90->sourcefile~surf_ocean_mod.f90 sourcefile~tracco2i_mod.f90~2 tracco2i_mod.f90 sourcefile~tracco2i_mod.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~phyredem.f90 phyredem.f90 sourcefile~phyredem.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~phyredem.f90->sourcefile~pbl_surface_mod.f90 sourcefile~phyetat0_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~phyetat0_mod.f90->sourcefile~pbl_surface_mod.f90 sourcefile~ocean_cpl_mod.f90 ocean_cpl_mod.f90 sourcefile~phyetat0_mod.f90->sourcefile~ocean_cpl_mod.f90 sourcefile~surf_land_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~surf_land_mod.f90->sourcefile~surf_land_orchidee_mod.f90 sourcefile~surf_land_bucket_hetero_mod.f90 surf_land_bucket_hetero_mod.F90 sourcefile~surf_land_mod.f90->sourcefile~surf_land_bucket_hetero_mod.f90 sourcefile~surf_land_bucket_mod.f90 surf_land_bucket_mod.F90 sourcefile~surf_land_mod.f90->sourcefile~surf_land_bucket_mod.f90 sourcefile~cpl_mod.f90~2 cpl_mod.F90 sourcefile~cpl_mod.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~pbl_surface_mod.f90~2 pbl_surface_mod.F90 sourcefile~pbl_surface_mod.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~pbl_surface_mod.f90~2->sourcefile~surf_land_mod.f90 sourcefile~pbl_surface_mod.f90~2->sourcefile~cpl_mod.f90 sourcefile~pbl_surface_mod.f90~2->sourcefile~surf_landice_mod.f90 sourcefile~pbl_surface_mod.f90~2->sourcefile~surf_seaice_mod.f90 sourcefile~pbl_surface_mod.f90~2->sourcefile~surf_ocean_mod.f90 sourcefile~surf_land_mod.f90~2 surf_land_mod.F90 sourcefile~surf_land_mod.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~surf_land_mod.f90~2->sourcefile~surf_land_orchidee_mod.f90 sourcefile~surf_land_mod.f90~2->sourcefile~surf_land_bucket_hetero_mod.f90 sourcefile~surf_land_mod.f90~2->sourcefile~surf_land_bucket_mod.f90 sourcefile~conf_phys_m.f90~2 conf_phys_m.f90 sourcefile~conf_phys_m.f90~2->sourcefile~carbon_cycle_mod.f90 sourcefile~cpl_mod.f90->sourcefile~carbon_cycle_mod.f90 sourcefile~diag_slp.f90->sourcefile~phys_output_write_mod.f90 sourcefile~old_lmdz1d.f90 old_lmdz1d.f90 sourcefile~old_lmdz1d.f90->sourcefile~physiq_mod.f90 sourcefile~old_lmdz1d.f90->sourcefile~pbl_surface_mod.f90 sourcefile~old_lmdz1d.f90->sourcefile~phyaqua_mod.f90 sourcefile~iniphysiq_mod.f90 iniphysiq_mod.F90 sourcefile~old_lmdz1d.f90->sourcefile~iniphysiq_mod.f90 sourcefile~surf_landice_mod.f90->sourcefile~cpl_mod.f90 sourcefile~ocean_cpl_mod.f90->sourcefile~cpl_mod.f90 sourcefile~ocean_cpl_mod.f90~2 ocean_cpl_mod.f90 sourcefile~ocean_cpl_mod.f90~2->sourcefile~cpl_mod.f90 sourcefile~phytrac_mod.f90->sourcefile~tracco2i_mod.f90 sourcefile~surf_land_bucket_hetero_mod.f90~2 surf_land_bucket_hetero_mod.F90 sourcefile~surf_land_bucket_hetero_mod.f90~2->sourcefile~cpl_mod.f90 sourcefile~callphysiq_mod.f90 callphysiq_mod.f90 sourcefile~callphysiq_mod.f90->sourcefile~physiq_mod.f90 sourcefile~change_srf_frac_mod.f90->sourcefile~pbl_surface_mod.f90 sourcefile~change_srf_frac_mod.f90->sourcefile~cpl_mod.f90 sourcefile~physiqex_mod.f90~2 physiqex_mod.F90 sourcefile~physiqex_mod.f90~2->sourcefile~phyetat0_mod.f90 sourcefile~create_etat0_unstruct_mod.f90 create_etat0_unstruct_mod.f90 sourcefile~create_etat0_unstruct_mod.f90->sourcefile~pbl_surface_mod.f90 sourcefile~phyaqua_mod.f90->sourcefile~pbl_surface_mod.f90 sourcefile~surf_landice_mod.f90~2 surf_landice_mod.F90 sourcefile~surf_landice_mod.f90~2->sourcefile~cpl_mod.f90 sourcefile~etat0phys_netcdf.f90 etat0phys_netcdf.f90 sourcefile~etat0phys_netcdf.f90->sourcefile~conf_phys_m.f90 sourcefile~etat0phys_netcdf.f90->sourcefile~pbl_surface_mod.f90 sourcefile~callphysiq_mod.f90~2 callphysiq_mod.f90 sourcefile~callphysiq_mod.f90~2->sourcefile~physiq_mod.f90 sourcefile~scm.f90 scm.f90 sourcefile~scm.f90->sourcefile~physiq_mod.f90 sourcefile~scm.f90->sourcefile~pbl_surface_mod.f90 sourcefile~scm.f90->sourcefile~phyaqua_mod.f90 sourcefile~scm.f90->sourcefile~iniphysiq_mod.f90 sourcefile~phys_output_mod.f90~2 phys_output_mod.F90 sourcefile~phys_output_mod.f90~2->sourcefile~phys_output_write_mod.f90 sourcefile~surf_land_bucket_hetero_mod.f90->sourcefile~cpl_mod.f90 sourcefile~surf_land_bucket_mod.f90~2 surf_land_bucket_mod.F90 sourcefile~surf_land_bucket_mod.f90~2->sourcefile~cpl_mod.f90 sourcefile~phys_output_write_spl_mod.f90->sourcefile~pbl_surface_mod.f90 sourcefile~create_etat0_unstruct_mod.f90~2 create_etat0_unstruct_mod.f90 sourcefile~create_etat0_unstruct_mod.f90~2->sourcefile~pbl_surface_mod.f90 sourcefile~surf_land_bucket_mod.f90->sourcefile~cpl_mod.f90 sourcefile~physiqex_mod.f90->sourcefile~phyetat0_mod.f90 sourcefile~phys_output_mod.f90->sourcefile~phys_output_write_mod.f90 sourcefile~diag_slp.f90~2 diag_slp.f90 sourcefile~diag_slp.f90~2->sourcefile~phys_output_write_mod.f90 sourcefile~phys_output_write_spl_mod.f90~2 phys_output_write_spl_mod.F90 sourcefile~phys_output_write_spl_mod.f90~2->sourcefile~pbl_surface_mod.f90 sourcefile~phytrac_mod.f90~2 phytrac_mod.f90 sourcefile~phytrac_mod.f90~2->sourcefile~tracco2i_mod.f90 sourcefile~surf_seaice_mod.f90->sourcefile~ocean_cpl_mod.f90 sourcefile~surf_ocean_mod.f90~2 surf_ocean_mod.F90 sourcefile~surf_ocean_mod.f90~2->sourcefile~ocean_cpl_mod.f90 sourcefile~create_etat0_limit_unstruct_mod.f90~2 create_etat0_limit_unstruct_mod.f90 sourcefile~create_etat0_limit_unstruct_mod.f90~2->sourcefile~create_etat0_unstruct_mod.f90 sourcefile~create_etat0_limit_unstruct_mod.f90~2->sourcefile~phyaqua_mod.f90 sourcefile~iniphysiq_mod.f90->sourcefile~phyaqua_mod.f90 sourcefile~recmwf_aero.f90 recmwf_aero.F90 sourcefile~recmwf_aero.f90->sourcefile~phys_output_mod.f90 sourcefile~calfis.f90 calfis.f90 sourcefile~calfis.f90->sourcefile~callphysiq_mod.f90 sourcefile~surf_seaice_mod.f90~2 surf_seaice_mod.F90 sourcefile~surf_seaice_mod.f90~2->sourcefile~ocean_cpl_mod.f90 sourcefile~ce0l.f90 ce0l.F90 sourcefile~ce0l.f90->sourcefile~etat0phys_netcdf.f90 sourcefile~ce0l.f90->sourcefile~iniphysiq_mod.f90 sourcefile~sw_aeroar4.f90~2 sw_aeroAR4.f90 sourcefile~sw_aeroar4.f90~2->sourcefile~phys_output_mod.f90 sourcefile~recmwf_aero.f90~2 recmwf_aero.F90 sourcefile~recmwf_aero.f90~2->sourcefile~phys_output_mod.f90 sourcefile~surf_ocean_mod.f90->sourcefile~ocean_cpl_mod.f90 sourcefile~create_etat0_limit_unstruct_mod.f90->sourcefile~create_etat0_unstruct_mod.f90 sourcefile~create_etat0_limit_unstruct_mod.f90->sourcefile~phyaqua_mod.f90 sourcefile~iniphysiq_mod.f90~2 iniphysiq_mod.F90 sourcefile~iniphysiq_mod.f90~2->sourcefile~phyaqua_mod.f90 sourcefile~sw_aeroar4.f90 sw_aeroAR4.f90 sourcefile~sw_aeroar4.f90->sourcefile~phys_output_mod.f90 sourcefile~gcm.f90 gcm.F90 sourcefile~gcm.f90->sourcefile~iniphysiq_mod.f90 sourcefile~replay3d.f90 replay3d.f90 sourcefile~replay3d.f90->sourcefile~iniphysiq_mod.f90

Contents

Source Code


Source Code

!
! $Id: mod_synchro_omp.f90 5268 2024-10-23 17:02:39Z abarral $
!
MODULE mod_synchro_omp

    INTEGER,SAVE :: exit_omp  

CONTAINS

  SUBROUTINE Init_synchro_omp
  USE mod_phys_lmdz_para 
  IMPLICIT NONE

  CALL omp_barrier
!$OMP MASTER
  exit_omp=0
!$OMP END MASTER    
  CALL omp_barrier

  END SUBROUTINE Init_Synchro_omp
  
  SUBROUTINE Synchro_omp  
  USE mod_phys_lmdz_para
  IMPLICIT NONE
  LOGICAL :: out
  CHARACTER (LEN=20) :: modname='synchro_omp'
  CHARACTER (LEN=80) :: abort_message
  
    out=.FALSE.
!$OMP BARRIER
!$OMP BARRIER
!$OMP ATOMIC  
    exit_omp=exit_omp+1
!$OMP BARRIER
!$OMP BARRIER
    IF (exit_omp==omp_size) THEN
      out=.TRUE.
    ENDIF
    
    DO WHILE (.NOT. out)
!$OMP BARRIER
      IF (exit_omp==omp_size) out=.TRUE.
!$OMP BARRIER
    ENDDO

!$OMP BARRIER
!$OMP MASTER
    exit_omp=0
!$OMP END MASTER
!$OMP BARRIER

    IF (exit_omp/=0) THEN
       abort_message='synchro_omp'
       CALL abort_physic(modname,abort_message,1)
    ENDIF

  END SUBROUTINE Synchro_omp


END MODULE mod_synchro_omp