Ignore:
Timestamp:
Oct 30, 2023, 5:37:00 PM (7 months ago)
Author:
Laurent Fairhead
Message:

Merge of ACC branch with 4740 revision from trunk

Location:
LMDZ6/branches/Portage_acc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Portage_acc

  • LMDZ6/branches/Portage_acc/libf/phydev/iophy.F90

    r2588 r4743  
    1313 
    1414
    15 #ifdef CPP_XIOS
    1615! interfaces for both IOIPSL and XIOS
    1716  INTERFACE histwrite_phy
    1817    MODULE PROCEDURE histwrite2d_phy,histwrite3d_phy,histwrite2d_xios,histwrite3d_xios
    1918  END INTERFACE
    20 #else
    21 ! interfaces for IOIPSL
    22   INTERFACE histwrite_phy
    23     MODULE PROCEDURE histwrite2d_phy,histwrite3d_phy
    24   END INTERFACE
    25 #endif
    26 
    27 #ifdef CPP_XIOS
     19
    2820! interfaces for both IOIPSL and XIOS
    2921  INTERFACE histbeg_phy_all
    3022    MODULE PROCEDURE histbeg_phy, histbeg_phyxios
    3123  END INTERFACE
    32 #else
    33 ! interfaces for IOIPSL
    34   INTERFACE histbeg_phy_all
    35     MODULE PROCEDURE histbeg_phy
    36   END INTERFACE
    37 #endif
    3824
    3925contains
     
    5137  USE ioipsl, only: flio_dom_set
    5238#endif
    53 #ifdef CPP_XIOS
    54   use wxios, only: wxios_domain_param
    55 #endif
     39  use wxios, only: wxios_domain_param, using_xios
    5640  implicit none
    5741    real,dimension(klon),intent(in) :: rlon
     
    122106                      'APPLE',phys_domain_id)
    123107#endif
    124 #ifdef CPP_XIOS
    125     ! Set values for the mask:
    126     IF (mpi_rank == 0) THEN
    127         data_ibegin = 0
    128     ELSE
    129         data_ibegin = ii_begin - 1
    130     END IF
    131 
    132     IF (mpi_rank == mpi_size-1) THEN
    133         data_iend = nbp_lon
    134     ELSE
    135         data_iend = ii_end + 1
    136     END IF
    137 
    138     if (prt_level>=10) then
    139       write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," iibegin=",ii_begin , " ii_end=",ii_end," jjbegin=",jj_begin," jj_nb=",jj_nb," jj_end=",jj_end
    140       write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," nbp_lon=",nbp_lon," nbp_lat=",nbp_lat
    141       write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend
    142       write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend
    143       write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," is_south_pole=",is_south_pole_dyn
    144     endif
    145 
    146     ! Initialize the XIOS domain coreesponding to this process:
    147     CALL wxios_domain_param("dom_glo", is_sequential, nbp_lon, jj_nb, nbp_lon, nbp_lat, &
    148                             1, nbp_lon, ii_begin, ii_end, jj_begin, jj_end,             &
    149                             klon_mpi+2*(nbp_lon-1), data_ibegin, data_iend,             &
    150                             io_lat, io_lon,is_south_pole_dyn,mpi_rank)
    151 #endif
     108    IF (using_xios) THEN
     109      ! Set values for the mask:
     110      IF (mpi_rank == 0) THEN
     111          data_ibegin = 0
     112      ELSE
     113          data_ibegin = ii_begin - 1
     114      END IF
     115
     116      IF (mpi_rank == mpi_size-1) THEN
     117          data_iend = nbp_lon
     118      ELSE
     119          data_iend = ii_end + 1
     120      END IF
     121
     122      if (prt_level>=10) then
     123        write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," iibegin=",ii_begin , " ii_end=",ii_end," jjbegin=",jj_begin," jj_nb=",jj_nb," jj_end=",jj_end
     124        write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," nbp_lon=",nbp_lon," nbp_lat=",nbp_lat
     125        write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend
     126        write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend
     127        write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," is_south_pole=",is_south_pole_dyn
     128      endif
     129
     130      ! Initialize the XIOS domain coreesponding to this process:
     131       CALL wxios_domain_param("dom_glo")
     132!      CALL wxios_domain_param("dom_glo", is_sequential, nbp_lon, jj_nb, nbp_lon, nbp_lat, &
     133!                              1, nbp_lon, ii_begin, ii_end, jj_begin, jj_end,             &
     134!                              klon_mpi+2*(nbp_lon-1), data_ibegin, data_iend,             &
     135!                              io_lat, io_lon,is_south_pole_dyn,mpi_rank)
     136    ENDIF
    152137!$OMP END MASTER
    153138     
     
    184169!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    185170
    186 #ifdef CPP_XIOS
    187171
    188172! SUBROUTINE histbeg_phyxios(name,itau0,zjulian,dtime,ffreq,lev,nhori,nid_day)
     
    213197  END SUBROUTINE histbeg_phyxios
    214198
    215 #endif
    216199
    217200!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    339322
    340323! VERSION DES HISTWRITE DEDIEES AU TOUT-XIOS-XML DEJA UTILISEE DANS PHYDEV
    341 #ifdef CPP_XIOS
     324
    342325  SUBROUTINE histwrite2d_xios(field_name,field)
    343326  USE dimphy, only: klon
    344327  USE mod_phys_lmdz_para, only: gather_omp, grid1Dto2D_mpi, &
    345328                                jj_nb, klon_mpi
    346   USE xios, only: xios_send_field
     329  USE lmdz_xios, only: xios_send_field
    347330  USE print_control_mod, ONLY: prt_level, lunout
    348331  USE mod_grid_phy_lmdz, ONLY: nbp_lon
     
    368351    IF (prt_level >= 10) WRITE(lunout,*)'End histrwrite2d_xios ',trim(field_name)
    369352  END SUBROUTINE histwrite2d_xios
    370 #endif
    371353
    372354!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    373355
    374356! VERSION DES HISTWRITE DEDIEES AU TOUT-XIOS-XML DEJA UTILISEE DANS PHYDEV
    375 #ifdef CPP_XIOS
     357
    376358  SUBROUTINE histwrite3d_xios(field_name, field)
    377359  USE dimphy, only: klon, klev
    378360  USE mod_phys_lmdz_para, only: gather_omp, grid1Dto2D_mpi, &
    379361                                jj_nb, klon_mpi
    380   USE xios, only: xios_send_field
     362  USE lmdz_xios, only: xios_send_field
    381363  USE print_control_mod, ONLY: prt_level,lunout
    382364  USE mod_grid_phy_lmdz, ONLY: nbp_lon
     
    407389    IF (prt_level >= 10) write(lunout,*)'End histrwrite3d_xios ',trim(field_name)
    408390  END SUBROUTINE histwrite3d_xios
    409 #endif
    410391
    411392end module iophy
Note: See TracChangeset for help on using the changeset viewer.