- Timestamp:
- Nov 12, 2018, 1:52:29 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/DYNAMICO-conv/libf/phylmd/rrtm/readaerosolstrato1_rrtm.F90
r2744 r3413 2 2 ! $Id: readaerosolstrato1_rrtm.F90 2526 2016-05-26 22:13:40Z oboucher $ 3 3 ! 4 4 5 SUBROUTINE readaerosolstrato1_rrtm(debut) 5 6 … … 9 10 10 11 USE phys_cal_mod, ONLY : mth_cur 11 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, klon_glo, grid2dTo1d_glo 12 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_root 13 USE mod_phys_lmdz_omp_data, ONLY : is_omp_root 12 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, klon_glo, grid2dTo1d_glo, grid_type, unstructured 14 13 USE mod_phys_lmdz_para 15 14 USE phys_state_var_mod … … 19 18 USE YOERAD, ONLY : NLW 20 19 USE YOMCST 20 USE xios 21 21 22 22 IMPLICIT NONE … … 45 45 REAL, ALLOCATABLE:: tauaerstrat_mois(:, :, :) 46 46 REAL, ALLOCATABLE:: tauaerstrat_mois_glo(:, :) 47 REAL, ALLOCATABLE:: tauaerstrat_mpi(:, :) 47 48 48 49 ! For NetCDF: … … 102 103 n_lat = size(latitude) 103 104 print *, 'LAT aerosol strato=', n_lat, latitude 104 IF (n_lat.NE.nbp_lat) THEN 105 print *,'Le nombre de lat n est pas egal a nbp_lat' 106 STOP 107 ENDIF 108 105 106 IF (grid_type/=unstructured) THEN 107 IF (n_lat.NE.nbp_lat) THEN 108 print *,'Le nombre de lat n est pas egal a nbp_lat' 109 STOP 110 ENDIF 111 ENDIF 112 109 113 CALL nf95_inq_varid(ncid_in, "LON", varid) 110 114 CALL nf95_gw_var(ncid_in, varid, longitude) 111 115 n_lon = size(longitude) 112 116 print *, 'LON aerosol strato=', n_lon, longitude 113 IF (n_lon.NE.nbp_lon) THEN 114 print *,'Le nombre de lon n est pas egal a nbp_lon' 115 STOP 116 ENDIF 117 117 118 IF (grid_type/=unstructured) THEN 119 IF (n_lon.NE.nbp_lon) THEN 120 print *,'Le nombre de lon n est pas egal a nbp_lon' 121 STOP 122 ENDIF 123 ENDIF 124 125 118 126 CALL nf95_inq_varid(ncid_in, "TIME", varid) 119 127 CALL nf95_gw_var(ncid_in, varid, time) … … 144 152 !---reduce to a klon_glo grid 145 153 CALL grid2dTo1d_glo(tauaerstrat_mois,tauaerstrat_mois_glo) 146 154 155 ELSE 156 ALLOCATE(tauaerstrat_mois(0,0,0)) 147 157 ENDIF !--is_mpi_root and is_omp_root 148 158 … … 153 163 154 164 !--scatter on all proc 155 CALL scatter(tauaerstrat_mois_glo,tau_aer_strat) 156 165 166 IF (grid_type==unstructured) THEN 167 IF (is_omp_master) THEN 168 ALLOCATE(tauaerstrat_mpi(klon_mpi,klev)) 169 CALL xios_send_field("taustrat_in",tauaerstrat_mois) 170 CALL xios_recv_field("taustrat_out",tauaerstrat_mpi) 171 ELSE 172 ALLOCATE(tauaerstrat_mpi(0,0)) 173 ENDIF 174 CALL scatter_omp(tauaerstrat_mpi,tau_aer_strat) 175 ELSE 176 CALL scatter(tauaerstrat_mois_glo,tau_aer_strat) 177 ENDIF 178 157 179 IF (is_mpi_root.AND.is_omp_root) THEN 158 180 !
Note: See TracChangeset
for help on using the changeset viewer.