Ignore:
Timestamp:
May 23, 2015, 8:10:21 AM (11 years ago)
Author:
millour
Message:

A couple of bug fixes and adaptations.
Results are now identical when running seq or MPI or OpenMP or mixed MPI/OpenMP bench case.
Bench results change wrt revision 5 reference, because longitudes and latitudes in physics are now inherited from dynamics and no longer loaded from startphy.nc file.
EM

Location:
dynamico_lmdz/aquaplanet/LMDZ5/libf/dynlonlat_phylonlat
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • dynamico_lmdz/aquaplanet/LMDZ5/libf/dynlonlat_phylonlat/mod_interface_dyn_phys.F90

    r3809 r3828  
    77 
    88 
     9CONTAINS
     10 
    911#ifdef CPP_PARA
    1012! Interface with parallel physics,
    11 CONTAINS
    12  
    1313  SUBROUTINE Init_interface_dyn_phys
    1414    USE mod_phys_lmdz_mpi_data
     
    5454 
    5555  END SUBROUTINE Init_interface_dyn_phys
     56#else
     57  SUBROUTINE Init_interface_dyn_phys
     58  ! dummy routine for seq case
     59  END SUBROUTINE Init_interface_dyn_phys
    5660#endif
    5761! of #ifdef CPP_PARA
  • dynamico_lmdz/aquaplanet/LMDZ5/libf/dynlonlat_phylonlat/phylmd/iniphysiq.F90

    r3826 r3828  
    7979  REAL,ALLOCATABLE :: boundslonfi_glo(:,:)
    8080  REAL,ALLOCATABLE :: boundslatfi_glo(:,:)
    81   REAL,ALLOCATABLE :: latfi(:)
    82   REAL,ALLOCATABLE :: lonfi(:)
    83   REAL,ALLOCATABLE :: cufi(:)
    84   REAL,ALLOCATABLE :: cvfi(:)
    85   REAL,ALLOCATABLE :: airefi(:)
    86   REAL,ALLOCATABLE :: boundslonfi(:,:)
    87   REAL,ALLOCATABLE :: boundslatfi(:,:)
     81  ! local arrays, on given MPI/OpenMP domain:
     82  REAL,ALLOCATABLE,SAVE :: latfi(:)
     83  REAL,ALLOCATABLE,SAVE :: lonfi(:)
     84  REAL,ALLOCATABLE,SAVE :: cufi(:)
     85  REAL,ALLOCATABLE,SAVE :: cvfi(:)
     86  REAL,ALLOCATABLE,SAVE :: airefi(:)
     87  REAL,ALLOCATABLE,SAVE :: boundslonfi(:,:)
     88  REAL,ALLOCATABLE,SAVE :: boundslatfi(:,:)
     89!$OMP THREADPRIVATE (latfi,lonfi,cufi,cvfi,airefi,boundslonfi,boundslatfi)
    8890
    8991  CALL init_physics_distribution(regular_lonlat, 4, nbp, ii, jj+1, nlayer, communicator)
     
    120122  ALLOCATE(boundslonfi_glo(klon_glo,4))
    121123  ALLOCATE(boundslatfi_glo(klon_glo,4))
    122  
    123   ALLOCATE(latfi(klon_glo),lonfi(klon_glo),cufi(klon_glo),cvfi(klon_glo))
    124   ALLOCATE(airefi(klon_glo))
    125   ALLOCATE(boundslonfi(klon_glo,4))
    126   ALLOCATE(boundslatfi(klon_glo,4))
    127124
    128125  IF (klon_glo>1) THEN ! general case
     
    208205
    209206!$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
    210   ! Now generate local lon/lat/cu/cv/area arrays
     207  ! Now generate local lon/lat/cu/cv/area/bounds arrays
     208  ALLOCATE(latfi(klon_omp),lonfi(klon_omp),cufi(klon_omp),cvfi(klon_omp))
     209  ALLOCATE(airefi(klon_omp))
     210  ALLOCATE(boundslonfi(klon_omp,4))
     211  ALLOCATE(boundslatfi(klon_omp,4))
    211212
    212213
     
    240241              lunout,prt_level,debug)
    241242 
    242 !!$OMP END PARALLEL
    243 
    244243  ! Additional initializations for aquaplanets
    245 !!$OMP PARALLEL
    246244  IF (iflag_phys>=100) THEN
    247245    CALL iniaqua(klon_omp, iflag_phys)
Note: See TracChangeset for help on using the changeset viewer.