Changeset 5637 for LMDZ6/branches/contrails/libf
- Timestamp:
- Apr 30, 2025, 9:59:06 AM (8 weeks ago)
- Location:
- LMDZ6/branches/contrails/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails/libf/phylmd/lmdz_aviation.f90
r5634 r5637 248 248 249 249 250 SUBROUTINE init_read_aviation_emissions 251 252 USE mod_grid_phy_lmdz, ONLY: grid_type, unstructured 253 USE mod_phys_lmdz_para, ONLY: is_omp_master 254 USE lmdz_xios, ONLY: xios_set_file_attr, xios_set_field_attr 255 256 IF (grid_type==unstructured) THEN 257 IF (is_omp_master) THEN 258 ! Activate aviation file 259 CALL xios_set_file_attr("aviation_file", enabled=.TRUE.) 260 ! Activate aviation fields 261 CALL xios_set_field_attr("KMFLOWN_read", enabled=.TRUE.) 262 CALL xios_set_field_attr("KMFLOWN_interp", enabled=.TRUE.) 263 ENDIF 264 ENDIF 265 266 END SUBROUTINE init_read_aviation_emissions 267 268 250 269 SUBROUTINE read_aviation_emissions(klon, klev) 251 270 ! This subroutine allows to read the traffic density data read in the file aviation.nc … … 270 289 REAL, ALLOCATABLE :: flight_dist_mpi(:,:,:), flight_h2o_mpi(:,:,:) 271 290 INTEGER :: ierr 291 LOGICAL, SAVE :: first = .TRUE. 292 !$OMP THREADPRIVATE(first) 272 293 273 294 ! FOR REGULAR LON LAT … … 288 309 IF (grid_type==unstructured) THEN 289 310 290 IF (is_omp_master) THEN 291 ! Activate aviation file 292 CALL xios_set_file_attr("aviation", enabled=.TRUE.) 293 ! Activate aviation fields 294 CALL xios_set_field_attr("KMFLOWN_read", enabled=.TRUE.) 295 CALL xios_set_field_attr("KMFLOWN_interp", enabled=.TRUE.) 296 297 ! Get number of vertical levels and level values 298 CALL xios_get_axis_attr( "aviation_lev", n_glo=nleva ) 299 ENDIF 300 CALL bcast_omp(nleva) 301 302 ! Allocation of arrays 303 ALLOCATE(flight_dist_read(klon, nleva,1), STAT=ierr) 304 IF (ierr /= 0) CALL abort_physic('lmdz_aviation', 'problem to allocate flight_dist',1) 305 ALLOCATE(flight_h2o_read(klon, nleva,1), STAT=ierr) 306 IF (ierr /= 0) CALL abort_physic('lmdz_aviation', 'problem to allocate flight_h2o',1) 307 ALLOCATE(aviation_lev(nleva), STAT=ierr) 308 IF (ierr /= 0) CALL abort_physic('lmdz_aviation', 'problem to allocate aviation_lev',1) 311 IF (first) THEN 312 IF (is_omp_master) THEN 313 ! Get number of vertical levels and level values 314 CALL xios_get_axis_attr("aviation_lev", n_glo=nleva) 315 ENDIF 316 CALL bcast_omp(nleva) 317 318 ! Allocation of arrays 319 ALLOCATE(flight_dist_read(klon, nleva, 1), STAT=ierr) 320 IF (ierr /= 0) CALL abort_physic('lmdz_aviation', 'problem to allocate flight_dist',1) 321 ALLOCATE(flight_h2o_read(klon, nleva, 1), STAT=ierr) 322 IF (ierr /= 0) CALL abort_physic('lmdz_aviation', 'problem to allocate flight_h2o',1) 323 ALLOCATE(aviation_lev(nleva), STAT=ierr) 324 IF (ierr /= 0) CALL abort_physic('lmdz_aviation', 'problem to allocate aviation_lev',1) 325 326 IF (is_omp_master) THEN 327 ! Get number of vertical levels and level values 328 CALL xios_get_axis_attr("aviation_lev", value=aviation_lev(:)) 329 ENDIF 330 CALL bcast_omp(aviation_lev) 331 first = .FALSE. 332 ENDIF ! first 309 333 310 334 ! Read the data from the file … … 318 342 !CALL xios_recv_field("KGH2O_interp", flight_h2o_mpi(:,:,1)) 319 343 flight_h2o_mpi(:,:,:) = 0. 320 ! Get number of vertical levels and level values321 CALL xios_get_axis_attr( "aviation_lev", value=aviation_lev(:))322 344 ENDIF 323 345 … … 325 347 CALL scatter_omp(flight_dist_mpi, flight_dist_read) 326 348 CALL scatter_omp(flight_h2o_mpi, flight_h2o_read) 327 CALL bcast_omp(aviation_lev)328 349 329 350 ELSE -
LMDZ6/branches/contrails/libf/phylmd/physiq_mod.F90
r5626 r5637 75 75 USE write_field_phy 76 76 use wxios_mod, ONLY: g_ctx, wxios_set_context 77 USE lmdz_aviation, ONLY : read_aviation_emissions, aviation_water_emissions, vertical_interpolation_aviation 77 USE lmdz_aviation, ONLY : init_read_aviation_emissions, read_aviation_emissions, & 78 aviation_water_emissions, vertical_interpolation_aviation 78 79 USE lmdz_lscp, ONLY : lscp 79 80 USE lmdz_call_cloud_optics_prop, ONLY : call_cloud_optics_prop … … 1393 1394 IF (read_climoz>=1 .AND. create_etat0_limit .AND. grid_type==unstructured) & 1394 1395 CALL regr_horiz_time_climoz(read_climoz,ok_daily_climoz) 1396 CALL init_read_aviation_emissions 1395 1397 1396 1398 print*, '================================================='
Note: See TracChangeset
for help on using the changeset viewer.