Changeset 5509 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Jan 28, 2025, 5:21:18 PM (6 days ago)
Author:
fhourdin
Message:

Bug fix lecture netcdf nudging

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3dmem/guide_loc_mod.f90

    r5285 r5509  
    15891589!=======================================================================
    15901590  SUBROUTINE guide_read(timestep)
    1591     USE netcdf, ONLY: nf90_put_var
     1591    USE netcdf, ONLY: nf90_get_var
    15921592    USE dimensions_mod, ONLY: iim, jjm, llm, ndm
    15931593USE paramet_mod_h
     
    18031803         endif
    18041804! Coefs ap, bp pour calcul de la pression aux differents niveaux
     1805!function nf90_get_var(ncid, varid, values, start, count, stride, map)
     1806!  integer,                         intent( in) :: ncid, varid
     1807!  any valid type, scalar or array of any rank, &
     1808!                                   intent(out) :: values
     1809!  integer, dimension(:), optional, intent( in) :: start, count, stride, map
     1810!  integer                                      :: nf90_get_var
    18051811         IF (guide_plevs.EQ.1) THEN
    1806              status = nf90_put_var(ncidpl, varidap, apnc, [1], [nlevnc])
    1807              status = nf90_put_var(ncidpl, varidbp, bpnc, [1], [nlevnc])
     1812             status = nf90_get_var(ncidpl, varidap, apnc, [1], [nlevnc])
     1813             status = nf90_get_var(ncidpl, varidbp, bpnc, [1], [nlevnc])
    18081814         ELSEIF (guide_plevs.EQ.0) THEN
    1809              status = nf90_put_var(ncidpl, varidpl, apnc, [1], [nlevnc])
     1815             status = nf90_get_var(ncidpl, varidpl, apnc, [1], [nlevnc])
    18101816!FC Pour les corrections la pression est deja en Pascals on commente la ligne ci-dessous
    18111817             IF(convert_Pa) apnc=apnc*100.! conversion en Pascals
     
    18331839! Pression
    18341840     if (guide_plevs.EQ.2) then
    1835          status = nf90_put_var(ncidp, varidp, pnat2, start, count)
     1841         status = nf90_get_var(ncidp, varidp, pnat2, start, count)
    18361842         IF (invert_y) THEN
    18371843!           PRINT*,"Invertion impossible actuellement"
     
    18431849!  Vent zonal
    18441850     if (guide_u) then
    1845          status = nf90_put_var(ncidu, varidu, unat2, start, count)
     1851         status = nf90_get_var(ncidu, varidu, unat2, start, count)
    18461852         IF (invert_y) THEN
    18471853!           PRINT*,"Invertion impossible actuellement"
     
    18551861!  Temperature
    18561862     if (guide_T) then
    1857          status = nf90_put_var(ncidt, varidt, tnat2, start, count)
     1863         status = nf90_get_var(ncidt, varidt, tnat2, start, count)
    18581864         IF (invert_y) THEN
    18591865!           PRINT*,"Invertion impossible actuellement"
     
    18651871!  Humidite
    18661872     if (guide_Q) then
    1867          status = nf90_put_var(ncidQ, varidQ, qnat2, start, count)
     1873         status = nf90_get_var(ncidQ, varidQ, qnat2, start, count)
    18681874         IF (invert_y) THEN
    18691875!           PRINT*,"Invertion impossible actuellement"
     
    18791885         count(2)=jjnb_v
    18801886         IF (invert_y) start(2)=jjm-jje_v+1
    1881          status = nf90_put_var(ncidv, varidv, vnat2, start, count)
     1887         status = nf90_get_var(ncidv, varidv, vnat2, start, count)
    18821888         IF (invert_y) THEN
    18831889!           PRINT*,"Invertion impossible actuellement"
     
    18961902         count(4)=0
    18971903         IF (invert_y) start(2)=jjp1-jje_u+1
    1898          status = nf90_put_var(ncidps, varidps, psnat2, start, count)
     1904         status = nf90_get_var(ncidps, varidps, psnat2, start, count)
    18991905         IF (invert_y) THEN
    19001906!           PRINT*,"Invertion impossible actuellement"
     
    19081914!=======================================================================
    19091915  SUBROUTINE guide_read2D(timestep)
    1910     USE netcdf, ONLY: nf90_put_var
     1916    USE netcdf, ONLY: nf90_get_var
    19111917    USE dimensions_mod, ONLY: iim, jjm, llm, ndm
    19121918USE paramet_mod_h
     
    20572063! Coefs ap, bp pour calcul de la pression aux differents niveaux
    20582064         if (guide_plevs.EQ.1) then
    2059              status = nf90_put_var(ncidpl, varidap, apnc, [1], [nlevnc])
    2060              status = nf90_put_var(ncidpl, varidbp, bpnc, [1], [nlevnc])
     2065             status = nf90_get_var(ncidpl, varidap, apnc, [1], [nlevnc])
     2066             status = nf90_get_var(ncidpl, varidbp, bpnc, [1], [nlevnc])
    20612067         elseif (guide_plevs.EQ.0) THEN
    2062              status = nf90_put_var(ncidpl, varidpl, apnc, [1], [nlevnc])
     2068             status = nf90_get_var(ncidpl, varidpl, apnc, [1], [nlevnc])
    20632069             apnc=apnc*100.! conversion en Pascals
    20642070             bpnc(:)=0.
     
    20852091!  Pression
    20862092     if (guide_plevs.EQ.2) then
    2087          status = nf90_put_var(ncidp, varidp, zu, start, count)
     2093         status = nf90_get_var(ncidp, varidp, zu, start, count)
    20882094         DO i=1,iip1
    20892095             pnat2(i,:,:)=zu(:,:)
     
    20982104!  Vent zonal
    20992105     if (guide_u) then
    2100          status = nf90_put_var(ncidu, varidu, zu, start, count)
     2106         status = nf90_get_var(ncidu, varidu, zu, start, count)
    21012107         DO i=1,iip1
    21022108             unat2(i,:,:)=zu(:,:)
     
    21132119!  Temperature
    21142120     if (guide_T) then
    2115          status = nf90_put_var(ncidt, varidt, zu, start, count)
     2121         status = nf90_get_var(ncidt, varidt, zu, start, count)
    21162122         DO i=1,iip1
    21172123             tnat2(i,:,:)=zu(:,:)
     
    21272133!  Humidite
    21282134     if (guide_Q) then
    2129          status = nf90_put_var(ncidQ, varidQ, zu, start, count)
     2135         status = nf90_get_var(ncidQ, varidQ, zu, start, count)
    21302136         DO i=1,iip1
    21312137             qnat2(i,:,:)=zu(:,:)
     
    21442150         count(2)=jjnb_v
    21452151         IF (invert_y) start(2)=jjm-jje_v+1
    2146          status = nf90_put_var(ncidv, varidv, zv, start, count)
     2152         status = nf90_get_var(ncidv, varidv, zv, start, count)
    21472153         DO i=1,iip1
    21482154             vnat2(i,:,:)=zv(:,:)
     
    21662172         count(4)=0
    21672173         IF (invert_y) start(2)=jjp1-jje_u+1
    2168          status = nf90_put_var(ncidps, varidps, zu(:, 1), start, count)
     2174         status = nf90_get_var(ncidps, varidps, zu(:, 1), start, count)
    21692175         DO i=1,iip1
    21702176             psnat2(i,:)=zu(:,1)
Note: See TracChangeset for help on using the changeset viewer.