Changeset 351


Ignore:
Timestamp:
08/06/15 10:39:21 (9 years ago)
Author:
dubos
Message:

Thread safety fixes

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

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/domain_param.f90

    r174 r351  
    11MODULE domain_param 
     2  IMPLICIT NONE 
     3  PRIVATE 
     4  INTEGER :: nsplit_i 
     5  INTEGER :: nsplit_j 
     6  INTEGER :: halo=1 
    27 
    3 INTEGER :: nsplit_i 
    4 INTEGER :: nsplit_j 
    5 INTEGER :: halo=1 
     8  INTEGER, PARAMETER :: default_nsplit_i=1 
     9  INTEGER, PARAMETER :: default_nsplit_j=1 
    610 
    7 INTEGER, PARAMETER :: default_nsplit_i=1 
    8 INTEGER, PARAMETER :: default_nsplit_j=1 
     11  PUBLIC nsplit_i, nsplit_j, halo, init_domain_param 
    912 
    1013CONTAINS 
    1114   
    1215  SUBROUTINE init_domain_param 
    13   USE ioipsl 
    14   IMPLICIT NONE 
     16    USE ioipsl 
     17    !$OMP CRITICAL 
    1518    nsplit_i=default_nsplit_i 
    1619    nsplit_j=default_nsplit_j 
    1720    CALL getin('nsplit_i',nsplit_i) 
    1821    CALL getin('nsplit_j',nsplit_j) 
     22    !$OMP END CRITICAL 
    1923  END SUBROUTINE init_domain_param 
    2024   
  • codes/icosagcm/trunk/src/omp_para.F90

    r327 r351  
    9797    ENDIF 
    9898 
    99     omp_level_size=1  
     99    !$OMP CRITICAL 
     100    omp_level_size=1 
    100101    CALL getin("omp_level_size",omp_level_size) 
     102    !$OMP END CRITICAL 
     103 
    101104    IF(is_mpi_master) PRINT *,'GETIN omp_level_size', ' = ', omp_level_size 
    102105 
  • codes/icosagcm/trunk/src/write_field.f90

    r347 r351  
    11module write_field_mod 
    2 USE genmod 
    3 implicit none 
     2  USE genmod 
     3  IMPLICIT NONE 
    44  PRIVATE   
    55  INTEGER,SAVE :: ncprec 
     
    2424   
    2525    SUBROUTINE init_writeField 
    26     USE ioipsl 
    27     use netcdf_mod 
    28     IMPLICIT NONE 
     26      USE ioipsl 
     27      use netcdf_mod 
    2928      CHARACTER(LEN=255) :: netcdf_prec 
    30        
     29      !$OMP CRITICAL 
    3130      netcdf_prec='float' 
    3231      CALL getin("netcdf_prec",netcdf_prec) 
    33        
    3432      SELECT CASE(TRIM(netcdf_prec)) 
    3533        CASE('float') 
     
    4139        STOP    
    4240      END SELECT 
     41      !$OMP END CRITICAL 
    4342    END SUBROUTINE init_writeField 
    4443     
Note: See TracChangeset for help on using the changeset viewer.