- Timestamp:
- Nov 21, 2019, 4:43:45 PM (5 years ago)
- Location:
- LMDZ6/branches/Ocean_skin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Ocean_skin
-
LMDZ6/branches/Ocean_skin/libf/phylmd/rrtm/readaerosolstrato1_rrtm.F90
r2744 r3605 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 #ifdef CPP_XIOS 21 USE xios 22 #endif 21 23 22 24 IMPLICIT NONE … … 45 47 REAL, ALLOCATABLE:: tauaerstrat_mois(:, :, :) 46 48 REAL, ALLOCATABLE:: tauaerstrat_mois_glo(:, :) 49 REAL, ALLOCATABLE:: tauaerstrat_mpi(:, :) 47 50 48 51 ! For NetCDF: … … 102 105 n_lat = size(latitude) 103 106 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 107 108 IF (grid_type/=unstructured) THEN 109 IF (n_lat.NE.nbp_lat) THEN 110 print *,'Le nombre de lat n est pas egal a nbp_lat' 111 STOP 112 ENDIF 113 ENDIF 114 109 115 CALL nf95_inq_varid(ncid_in, "LON", varid) 110 116 CALL nf95_gw_var(ncid_in, varid, longitude) 111 117 n_lon = size(longitude) 112 118 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 119 120 IF (grid_type/=unstructured) THEN 121 IF (n_lon.NE.nbp_lon) THEN 122 print *,'Le nombre de lon n est pas egal a nbp_lon' 123 STOP 124 ENDIF 125 ENDIF 126 127 118 128 CALL nf95_inq_varid(ncid_in, "TIME", varid) 119 129 CALL nf95_gw_var(ncid_in, varid, time) … … 144 154 !---reduce to a klon_glo grid 145 155 CALL grid2dTo1d_glo(tauaerstrat_mois,tauaerstrat_mois_glo) 146 156 157 ELSE 158 ALLOCATE(tauaerstrat_mois(0,0,0)) 147 159 ENDIF !--is_mpi_root and is_omp_root 148 160 … … 153 165 154 166 !--scatter on all proc 155 CALL scatter(tauaerstrat_mois_glo,tau_aer_strat) 156 167 168 IF (grid_type==unstructured) THEN 169 #ifdef CPP_XIOS 170 IF (is_omp_master) THEN 171 ALLOCATE(tauaerstrat_mpi(klon_mpi,klev)) 172 CALL xios_send_field("taustrat_in",tauaerstrat_mois) 173 CALL xios_recv_field("taustrat_out",tauaerstrat_mpi) 174 ELSE 175 ALLOCATE(tauaerstrat_mpi(0,0)) 176 ENDIF 177 CALL scatter_omp(tauaerstrat_mpi,tau_aer_strat) 178 #endif 179 ELSE 180 CALL scatter(tauaerstrat_mois_glo,tau_aer_strat) 181 ENDIF 182 157 183 IF (is_mpi_root.AND.is_omp_root) THEN 158 184 !
Note: See TracChangeset
for help on using the changeset viewer.