Changeset 3772 for trunk/LMDZ.PLUTO/libf


Ignore:
Timestamp:
May 21, 2025, 6:37:40 PM (7 weeks ago)
Author:
afalco
Message:

Pluto: allow to write controle in XIOS output.
AF

Location:
trunk/LMDZ.PLUTO/libf/phypluto
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/iniwrite.F

    r3184 r3772  
    22
    33      use comsoil_h, only: mlayer, nsoilmx
    4       USE comcstfi_mod, only: g, mugaz, omeg, rad, rcp, pi 
     4      USE comcstfi_mod, only: g, mugaz, omeg, rad, rcp, pi
    55      USE vertical_layers_mod, ONLY: ap,bp,aps,bps,pseudoalt
    66!      USE logic_mod, ONLY: fxyhypb,ysinus
     
    1010      USE regular_lonlat_mod, ONLY: lon_reg, lat_reg
    1111      USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, nbp_lev
     12      use tabfi_mod, only: tab_cntrl_mod
    1213      IMPLICIT NONE
    1314
     
    4142c   Local:
    4243c   ------
    43       INTEGER length,l
    44       parameter (length = 100)
    45       REAL tab_cntrl(length) ! run parameters are stored in this array
     44    !   INTEGER length,l
     45    !   parameter (length = 100)
     46    !   REAL tab_cntrl(length) ! run parameters are stored in this array
    4647      INTEGER ierr
    4748      REAl,ALLOCATABLE :: lon_reg_ext(:) ! extended longitudes
     
    5051      integer :: idim_rlatu,idim_llmp1,idim_llm
    5152      integer :: idim_nsoilmx ! "subsurface_layers" dimension ID #
    52       integer, dimension(2) :: id 
     53      integer, dimension(2) :: id
    5354c-----------------------------------------------------------------------
    5455
     
    6162      ENDIF
    6263
    63       DO l=1,length
    64          tab_cntrl(l)=0.
    65       ENDDO
    66       tab_cntrl(1)  = real(nbp_lon)
    67       tab_cntrl(2)  = real(nbp_lat-1)
    68       tab_cntrl(3)  = real(nbp_lev)
    69       tab_cntrl(4)  = real(idayref)
    70       tab_cntrl(5)  = rad
    71       tab_cntrl(6)  = omeg
    72       tab_cntrl(7)  = g
    73       tab_cntrl(8)  = mugaz
    74       tab_cntrl(9)  = rcp
    75       tab_cntrl(10) = daysec
    76       tab_cntrl(11) = dtphys
     64    !   DO l=1,length
     65    !      tab_cntrl(l)=0.
     66    !   ENDDO
     67    !   tab_cntrl(1)  = real(nbp_lon)
     68    !   tab_cntrl(2)  = real(nbp_lat-1)
     69    !   tab_cntrl(3)  = real(nbp_lev)
     70    !   tab_cntrl(4)  = real(idayref)
     71    !   tab_cntrl(5)  = rad
     72    !   tab_cntrl(6)  = omeg
     73    !   tab_cntrl(7)  = g
     74    !   tab_cntrl(8)  = mugaz
     75    !   tab_cntrl(9)  = rcp
     76    !   tab_cntrl(10) = daysec
     77    !   tab_cntrl(11) = dtphys
    7778!      tab_cntrl(12) = etot0
    7879!      tab_cntrl(13) = ptot0
     
    8283c
    8384c    ..........    P.Le Van  ( ajout le 8/04/96 )    .........
    84 c         .....        parametres  pour le zoom          ......   
     85c         .....        parametres  pour le zoom          ......
    8586!      tab_cntrl(17)  = clon
    8687!      tab_cntrl(18)  = clat
     
    105106
    106107! Define dimensions
    107    
    108       ierr = NF_REDEF (nid)
    109 
    110       ierr = NF_DEF_DIM (nid, "index", length, idim_index)
     108
     109      ierr = NF_REDEF (nid)
     110
     111      ierr = NF_DEF_DIM (nid, "index", SIZE(tab_cntrl_mod), idim_index)
    111112!      ierr = NF_DEF_DIM (nid, "rlonu", iip1, idim_rlonu)
    112113      ierr = NF_DEF_DIM (nid, "latitude", nbp_lat, idim_rlatu)
     
    126127      ierr = NF_REDEF (nid)
    127128#ifdef NC_DOUBLE
    128       ierr = NF_DEF_VAR (nid, "controle", NF_DOUBLE, 1, 
     129      ierr = NF_DEF_VAR (nid, "controle", NF_DOUBLE, 1,
    129130     .       idim_index,nvarid)
    130131#else
    131       ierr = NF_DEF_VAR (nid, "controle", NF_FLOAT, 1, 
     132      ierr = NF_DEF_VAR (nid, "controle", NF_FLOAT, 1,
    132133     .       idim_index,nvarid)
    133134#endif
     
    136137      ierr = NF_ENDDEF(nid)
    137138#ifdef NC_DOUBLE
    138       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
    139 #else
    140       ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
     139      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl_mod)
     140#else
     141      ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl_mod)
    141142#endif
    142143
     
    177178c
    178179c --------------------------
    179      
     180
    180181      lon_reg_ext(1:nbp_lon)=lon_reg(1:nbp_lon)
    181182      IF (nbp_lon*nbp_lat/=1) THEN
     
    204205      ierr = NF_REDEF (nid)
    205206#ifdef NC_DOUBLE
    206       ierr = NF_DEF_VAR (nid, "altitude", NF_DOUBLE, 1, 
     207      ierr = NF_DEF_VAR (nid, "altitude", NF_DOUBLE, 1,
    207208     .       idim_llm,nvarid)
    208209#else
    209       ierr = NF_DEF_VAR (nid, "altitude", NF_FLOAT, 1, 
     210      ierr = NF_DEF_VAR (nid, "altitude", NF_FLOAT, 1,
    210211     .       idim_llm,nvarid)
    211212#endif
  • trunk/LMDZ.PLUTO/libf/phypluto/phyetat0_mod.F90

    r3736 r3772  
    33implicit none
    44
    5 real, save :: tab_cntrl_mod(100)
    6 
    75integer,save :: nid_start ! NetCDF file identifier for startfi.nc file
    8 
    9 !$OMP THREADPRIVATE(tab_cntrl_mod)
    10 
    116
    127contains
     
    2621!!
    2722  use comsoil_h, only: nsoilmx,inertiedat
    28   use tabfi_mod, only: tabfi
     23  use tabfi_mod, only: tabfi,ini_tab_controle_dyn_xios,tab_cntrl_mod
    2924  USE tracer_h, ONLY: noms
    3025  USE surfdat_h, only: phisfi, albedodat, zmea, zstd, zsig, zgam, zthe
     
    282277    !AF24
    283278endif ! of if (startphy_file)
     279
     280call ini_tab_controle_dyn_xios(day_ini)
    284281!
    285282! close file:
     
    289286end subroutine phyetat0
    290287
    291 
    292 !======================================================================
    293 subroutine ini_tab_controle_dyn_xios(idayref)
    294 
    295 use comcstfi_mod,        only: g, mugaz, omeg, rad, rcp
    296 use time_phylmdz_mod,  only: daysec, dtphys
    297 use mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, nbp_lev
    298 
    299 implicit none
    300 
    301 integer*4, intent(in) :: idayref ! date (initial date for this run)
    302 
    303 integer :: length, l
    304 parameter (length = 100)
    305 real    :: tab_cntrl(length) ! run parameters are stored in this array
    306 
    307 do l = 1,length
    308     tab_cntrl(l) = 0.
    309 enddo
    310 tab_cntrl(1)  = real(nbp_lon)
    311 tab_cntrl(2)  = real(nbp_lat-1)
    312 tab_cntrl(3)  = real(nbp_lev)
    313 tab_cntrl(4)  = real(idayref)
    314 tab_cntrl(5)  = rad
    315 tab_cntrl(6)  = omeg
    316 tab_cntrl(7)  = g
    317 tab_cntrl(8)  = mugaz
    318 tab_cntrl(9)  = rcp
    319 tab_cntrl(10) = daysec
    320 tab_cntrl(11) = dtphys
    321 
    322 tab_cntrl_mod = tab_cntrl
    323 
    324 end subroutine ini_tab_controle_dyn_xios
    325 
    326 
    327288end module phyetat0_mod
  • trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90

    r3765 r3772  
    3636                          nesp, is_chim
    3737      use time_phylmdz_mod, only: diagfi_output_rate, startfi_output_rate, nday
    38       use phyetat0_mod, only: phyetat0,tab_cntrl_mod
     38      use phyetat0_mod, only: phyetat0
     39      use tabfi_mod, only: tab_cntrl_mod
    3940      use wstats_mod, only: callstats, wstats, mkstats
    4041      use phyredem, only: physdem0, physdem1
  • trunk/LMDZ.PLUTO/libf/phypluto/tabfi_mod.F90

    r3736 r3772  
    22
    33IMPLICIT NONE
     4
     5real, save :: tab_cntrl_mod(100)
     6!$OMP THREADPRIVATE(tab_cntrl_mod)
    47
    58CONTAINS
     
    588591      END SUBROUTINE tabfi
    589592
     593
     594      subroutine ini_tab_controle_dyn_xios(idayref)
     595      ! Initialize controle variable for XIOS & diagfi
     596
     597        use comcstfi_mod,        only: g, mugaz, omeg, rad, rcp
     598        use time_phylmdz_mod,  only: daysec, dtphys
     599        use mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, nbp_lev
     600
     601        implicit none
     602
     603        integer*4, intent(in) :: idayref ! date (initial date for this run)
     604
     605        integer :: length, l
     606        parameter (length = 100)
     607        real    :: tab_cntrl(length) ! run parameters are stored in this array
     608
     609        do l = 1,length
     610            tab_cntrl(l) = 0.
     611        enddo
     612        tab_cntrl(1)  = real(nbp_lon)
     613        tab_cntrl(2)  = real(nbp_lat-1)
     614        tab_cntrl(3)  = real(nbp_lev)
     615        tab_cntrl(4)  = real(idayref)
     616        tab_cntrl(5)  = rad
     617        tab_cntrl(6)  = omeg
     618        tab_cntrl(7)  = g
     619        tab_cntrl(8)  = mugaz
     620        tab_cntrl(9)  = rcp
     621        tab_cntrl(10) = daysec
     622        tab_cntrl(11) = dtphys
     623
     624        tab_cntrl_mod = tab_cntrl
     625
     626      end subroutine ini_tab_controle_dyn_xios
     627
     628
    590629end module tabfi_mod
Note: See TracChangeset for help on using the changeset viewer.