Changeset 5549
- Timestamp:
- Feb 18, 2025, 5:49:06 PM (4 months ago)
- Location:
- LMDZ6/branches/contrails/libf/phylmd
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails/libf/phylmd/limit_read_mod.f90
r5546 r5549 48 48 49 49 END SUBROUTINE init_limit_read 50 51 SUBROUTINE init_aviation_read(first_day)52 USE mod_grid_phy_lmdz53 USE surface_data54 USE mod_phys_lmdz_para55 USE lmdz_xios56 57 IMPLICIT NONE58 INTEGER, INTENT(IN) :: first_day59 LOGICAL :: ok_plane_contrail, ok_plane_h2o60 61 IF ( ok_plane_contrail .OR. ok_plane_h2o ) THEN62 IF (grid_type==unstructured) THEN63 IF (is_omp_master) CALL xios_set_file_attr("aviation_file", enabled=.TRUE.)64 ENDIF65 ENDIF66 67 END SUBROUTINE init_aviation_read68 50 69 51 SUBROUTINE limit_read_frac(itime, dtime, jour, pctsrf_new, is_modified) -
LMDZ6/branches/contrails/libf/phylmd/lmdz_aviation.f90
r5546 r5549 631 631 USE lmdz_xios 632 632 USE print_control_mod, ONLY: lunout 633 !USE dimphy634 !USE phys_state_var_mod635 633 IMPLICIT NONE 636 634 635 INTEGER, INTENT(IN) :: klon, klev ! number of horizontal grid points and vertical levels 637 636 REAL, DIMENSION(klon,klev), INTENT(OUT) :: flight_dist ! Aviation distance flown within the mesh [m/s/mesh] 638 637 REAL, DIMENSION(klon,klev), INTENT(OUT) :: flight_h2o ! Aviation H2O emitted within the mesh [kgH2O/s/mesh] 639 640 INTEGER, INTENT(IN) :: klon, klev ! number of horizontal grid points and vertical levels641 638 642 639 !---------------------------------------------------- 643 640 ! Local variable 644 641 !---------------------------------------------------- 645 INTEGER :: i, error, varid, iret 646 CHARACTER(len=*), PARAMETER :: filename='aviation.nc' 647 REAL, ALLOCATABLE :: flight_dist_mpi(:,:,:) 642 REAL, DIMENSION(klon_mpi,klev,1) :: flight_dist_mpi 648 643 649 644 !--Initialisation … … 651 646 flight_h2o(:,:) = 0. 652 647 648 ! Read the data from the file 653 649 ! is_omp_master is necessary to make XIOS works 654 IF (is_omp_master) THEN 655 656 ! Allocation of KMFLOWN for the local MPI process 657 ALLOCATE(flight_dist_mpi(klon_mpi,klev,1), STAT=error) 658 IF (error /= 0) CALL abort_physic('airplane_mod.F90', 'pb in allocation pointer flight_dist_mpi',1) 659 660 ! Read the data from the file 661 CALL xios_recv_field("KMFLOWN_interp", flight_dist_mpi(:,:,1)) 662 ENDIF !- is_omp_master 650 IF (is_omp_master) CALL xios_recv_field("KMFLOWN_interp", flight_dist_mpi(:,:,1)) 663 651 664 652 ! Propagate to other OMP threads: flight_dist_mpi(klon_mpi,klev) to flight_dist(klon,klev) … … 668 656 END SUBROUTINE read_aviation_emissions 669 657 670 !SUBROUTINE read_aviation_emissions( &671 ! klon, klev, latitude_deg, longitude_deg, pplay, &672 ! flight_dist, flight_h2o &673 ! )674 !675 !IMPLICIT NONE676 !!677 !! Input678 !!679 !INTEGER, INTENT(IN) :: klon, klev ! number of horizontal grid points and vertical levels680 !REAL, INTENT(IN), DIMENSION(klon) :: latitude_deg ! latitude of the grid points [deg]681 !REAL, INTENT(IN), DIMENSION(klon) :: longitude_deg ! longitude of the grid points [deg]682 !REAL, INTENT(IN), DIMENSION(klon,klev) :: pplay ! layer pressure [Pa]683 !!684 !! Output685 !!686 !REAL, INTENT(OUT), DIMENSION(klon,klev) :: flight_dist ! aviation distance flown within the mesh [m/s/mesh]687 !REAL, INTENT(OUT), DIMENSION(klon,klev) :: flight_h2o ! aviation H2O emitted within the mesh [kgH2O/s/mesh]688 !!689 !! Local690 !!691 !INTEGER :: i, k692 !693 !!--Initialisation694 !flight_dist(:,:) = 0.695 !flight_h2o(:,:) = 0.696 !697 !DO i=1, klon698 ! IF ( ( latitude_deg(i) .GE. 42. ) .AND. ( latitude_deg(i) .LE. 48. ) ) THEN699 ! flight_dist(i,15) = 50000. !--5000 m of flight/second in grid cell x 10 scaling700 ! flight_h2o(i,15) = 100. !--10 kgH2O/second in grid cell x 10 scaling701 ! ENDIF702 !ENDDO703 !704 !END SUBROUTINE read_aviation_emissions705 706 658 END MODULE lmdz_aviation 707 708 !*******************************************************************709 !710 !SUBROUTINE airplane(debut,pphis,pplay,paprs,t_seri)711 !712 ! USE dimphy713 ! USE mod_grid_phy_lmdz, ONLY: klon_glo714 ! USE geometry_mod, ONLY: cell_area715 ! USE phys_cal_mod, ONLY : mth_cur716 ! USE mod_phys_lmdz_mpi_data, ONLY: is_mpi_root717 ! USE mod_phys_lmdz_omp_data, ONLY: is_omp_root718 ! USE mod_phys_lmdz_para, ONLY: scatter, bcast719 ! USE print_control_mod, ONLY: lunout720 !721 ! IMPLICIT NONE722 !723 ! INCLUDE "YOMCST.h"724 ! INCLUDE 'netcdf.inc'725 !726 !!727 !END SUBROUTINE airplane -
LMDZ6/branches/contrails/libf/phylmd/physiq_mod.F90
r5546 r5549 2121 2121 IF (is_omp_master) CALL xios_get_field_attr("temp",default_value=missing_val) 2122 2122 CALL bcast_omp(missing_val) 2123 2124 !--Read the aviation emissions 2125 IF ( ok_plane_h2o .OR. ok_plane_contrail ) THEN 2126 CALL read_aviation_emissions(klon, klev, flight_dist, flight_h2o) 2127 ENDIF 2123 2128 ! 2124 2129 ! Now we activate some double radiation call flags only if some … … 3865 3870 ratqs,ratqsc,ratqs_inter_,sigma_qtherm) 3866 3871 3867 !--Read the aviation emissions3868 IF ( ok_plane_h2o .OR. ok_plane_contrail ) THEN3869 CALL read_aviation_emissions(klon, klev, flight_dist, flight_h2o)3870 ENDIF3871 3872 3872 !--Add the water emissions from aviation 3873 3873 IF ( ok_plane_h2o ) THEN
Note: See TracChangeset
for help on using the changeset viewer.