6 SUBROUTINE read_pstoke0(irec, zrec, zkon, zkev, airefi, phisfi, t, mfu, mfd, &
 
    7     en_u, de_u, en_d, de_d, coefh, fm_therm, en_therm, frac_impa, frac_nucl, &
 
    8     pyu1, pyv1, ftsol, psrf)
 
   27   INTEGER kon, kev, zkon, zkev
 
   30   REAL,
ALLOCATABLE :: phisfi2(:,:) 
 
   31   REAL,
ALLOCATABLE :: airefi2(:,:) 
 
   47   REAL,
ALLOCATABLE :: mfu2(:,:,:) 
 
   48   REAL,
ALLOCATABLE :: mfd2(:,:,:) 
 
   49   REAL,
ALLOCATABLE :: en_u2(:,:,:) 
 
   50   REAL,
ALLOCATABLE :: de_u2(:,:,:) 
 
   51   REAL,
ALLOCATABLE :: en_d2(:,:,:) 
 
   52   REAL,
ALLOCATABLE :: de_d2(:,:,:) 
 
   53   REAL,
ALLOCATABLE :: coefh2(:,:,:) 
 
   54   REAL,
ALLOCATABLE :: t2(:,:,:) 
 
   56   REAL,
ALLOCATABLE :: fm_therm2(:,:,:) 
 
   57   REAL,
ALLOCATABLE :: en_therm2(:,:,:) 
 
   59   REAL,
ALLOCATABLE :: pl(:) 
 
   61   INTEGER xid, yid, zid, tid
 
   62   INTEGER zrec, zim, zjm
 
   63   INTEGER ncrec, nckon, nckev, ncim, ncjm
 
   74   REAL,
ALLOCATABLE :: frac_impa2(:,:,:) 
 
   75   REAL,
ALLOCATABLE :: frac_nucl2(:,:,:) 
 
   78   REAL,
ALLOCATABLE :: pyu12(:,:), pyv12(:,:) 
 
   81   REAL,
ALLOCATABLE :: ftsol1(:),ftsol2(:) 
 
   82   REAL,
ALLOCATABLE :: ftsol3(:),ftsol4(:) 
 
   83   REAL,
ALLOCATABLE :: psrf1(:), psrf2(:) 
 
   84   REAL,
ALLOCATABLE :: psrf3(:), psrf4(:) 
 
   85   REAL,
ALLOCATABLE :: ftsol12(:,:) 
 
   86   REAL,
ALLOCATABLE :: ftsol22(:,:) 
 
   87   REAL,
ALLOCATABLE :: ftsol32(:,:) 
 
   88   REAL,
ALLOCATABLE :: ftsol42(:,:) 
 
   89   REAL,
ALLOCATABLE :: psrf12(:,:) 
 
   90   REAL,
ALLOCATABLE :: psrf22(:,:) 
 
   91   REAL,
ALLOCATABLE :: psrf32(:,:) 
 
   92   REAL,
ALLOCATABLE :: psrf42(:,:) 
 
   95   INTEGER,
SAVE :: varidmfu, varidmfd, varidps, varidenu, variddeu
 
   96   INTEGER,
SAVE :: varidt
 
   97   INTEGER,
SAVE :: varidend, varidded, varidch, varidfi, varidfn
 
   99   INTEGER,
SAVE :: varidfmth, varidenth
 
  100   INTEGER,
SAVE :: varidyu1, varidyv1, varidpl, varidai, varididvt
 
  101   INTEGER,
SAVE :: varidfts1, varidfts2, varidfts3, varidfts4
 
  102   INTEGER,
SAVE :: varidpsr1, varidpsr2, varidpsr3, varidpsr4
 
  105   INTEGER start(4), count(4), status
 
  107   LOGICAL,
SAVE :: first=.
true.
 
  129   ALLOCATE(ftsol1(kon), ftsol2(kon))
 
  130   ALLOCATE(ftsol3(kon), ftsol4(kon))
 
  131   ALLOCATE(psrf1(kon), psrf2(kon))
 
  132   ALLOCATE(psrf3(kon), psrf4(kon))
 
  148     rcode = nf90_open(
'phystoke.nc', nf90_nowrite, ncidp)
 
  150     rcode = nf90_inq_varid(ncidp, 
'phis', varidps)
 
  151     print *, 
'ncidp,varidps', ncidp, varidps
 
  153     rcode = nf90_inq_varid(ncidp, 
'sig_s', varidpl)
 
  154     print *, 
'ncidp,varidpl', ncidp, varidpl
 
  156     rcode = nf90_inq_varid(ncidp, 
'aire', varidai)
 
  157     print *, 
'ncidp,varidai', ncidp, varidai
 
  159     rcode = nf90_inq_varid(ncidp, 
't', varidt)
 
  160     print *, 
'ncidp,varidt', ncidp, varidt
 
  162     rcode = nf90_inq_varid(ncidp, 
'mfu', varidmfu)
 
  163     print *, 
'ncidp,varidmfu', ncidp, varidmfu
 
  165     rcode = nf90_inq_varid(ncidp, 
'mfd', varidmfd)
 
  166     print *, 
'ncidp,varidmfd', ncidp, varidmfd
 
  168     rcode = nf90_inq_varid(ncidp, 
'en_u', varidenu)
 
  169     print *, 
'ncidp,varidenu', ncidp, varidenu
 
  171     rcode = nf90_inq_varid(ncidp, 
'de_u', variddeu)
 
  172     print *, 
'ncidp,variddeu', ncidp, variddeu
 
  174     rcode = nf90_inq_varid(ncidp, 
'en_d', varidend)
 
  175     print *, 
'ncidp,varidend', ncidp, varidend
 
  177     rcode = nf90_inq_varid(ncidp, 
'de_d', varidded)
 
  178     print *, 
'ncidp,varidded', ncidp, varidded
 
  180     rcode = nf90_inq_varid(ncidp, 
'coefh', varidch)
 
  181     print *, 
'ncidp,varidch', ncidp, varidch
 
  184     rcode = nf90_inq_varid(ncidp, 
'fm_th', varidfmth)
 
  185     print *, 
'ncidp,varidfmth', ncidp, varidfmth
 
  187     rcode = nf90_inq_varid(ncidp, 
'en_th', varidenth)
 
  188     print *, 
'ncidp,varidenth', ncidp, varidenth
 
  190     rcode = nf90_inq_varid(ncidp, 
'frac_impa', varidfi)
 
  191     print *, 
'ncidp,varidfi', ncidp, varidfi
 
  193     rcode = nf90_inq_varid(ncidp, 
'frac_nucl', varidfn)
 
  194     print *, 
'ncidp,varidfn', ncidp, varidfn
 
  196     rcode = nf90_inq_varid(ncidp, 
'pyu1', varidyu1)
 
  197     print *, 
'ncidp,varidyu1', ncidp, varidyu1
 
  199     rcode = nf90_inq_varid(ncidp, 
'pyv1', varidyv1)
 
  200     print *, 
'ncidp,varidyv1', ncidp, varidyv1
 
  202     rcode = nf90_inq_varid(ncidp, 
'ftsol1', varidfts1)
 
  203     print *, 
'ncidp,varidfts1', ncidp, varidfts1
 
  205     rcode = nf90_inq_varid(ncidp, 
'ftsol2', varidfts2)
 
  206     print *, 
'ncidp,varidfts2', ncidp, varidfts2
 
  208     rcode = nf90_inq_varid(ncidp, 
'ftsol3', varidfts3)
 
  209     print *, 
'ncidp,varidfts3', ncidp, varidfts3
 
  211     rcode = nf90_inq_varid(ncidp, 
'ftsol4', varidfts4)
 
  212     print *, 
'ncidp,varidfts4', ncidp, varidfts4
 
  214     rcode = nf90_inq_varid(ncidp, 
'psrf1', varidpsr1)
 
  215     print *, 
'ncidp,varidpsr1', ncidp, varidpsr1
 
  217     rcode = nf90_inq_varid(ncidp, 
'psrf2', varidpsr2)
 
  218     print *, 
'ncidp,varidpsr2', ncidp, varidpsr2
 
  220     rcode = nf90_inq_varid(ncidp, 
'psrf3', varidpsr3)
 
  221     print *, 
'ncidp,varidpsr3', ncidp, varidpsr3
 
  223     rcode = nf90_inq_varid(ncidp, 
'psrf4', varidpsr4)
 
  224     print *, 
'ncidp,varidpsr4', ncidp, varidpsr4
 
  228     status = nf_inq_dimid(ncidp, 
'y', yid)
 
  229     status = nf_inq_dimid(ncidp, 
'x', xid)
 
  230     status = nf_inq_dimid(ncidp, 
'sig_s', zid)
 
  231     status = nf_inq_dimid(ncidp, 
'time_counter', tid)
 
  235     status = nf_inq_dim(ncidp, yid, namedim, ncjm)
 
  236     status = nf_inq_dim(ncidp, xid, namedim, ncim)
 
  237     status = nf_inq_dim(ncidp, zid, namedim, nckev)
 
  238     status = nf_inq_dim(ncidp, tid, namedim, ncrec)
 
  245     zkon = zim*(zjm-2) + 2
 
  247     WRITE (*, *) 
'read_pstoke : zrec = ', zrec
 
  248     WRITE (*, *) 
'read_pstoke : kev = ', zkev
 
  249     WRITE (*, *) 
'read_pstoke : zim = ', zim
 
  250     WRITE (*, *) 
'read_pstoke : zjm = ', zjm
 
  251     WRITE (*, *) 
'read_pstoke : kon = ', zkon
 
  255     status = nf_get_vara_real(ncidp, varidpl, 1, kev, pl)
 
  273     status = nf_get_vara_double(ncidp, varidps, start, count, phisfi2)
 
  275     status = nf_get_vara_real(ncidp, varidps, start, count, phisfi2)
 
  282     status = nf_get_vara_double(ncidp, varidai, start, count, airefi2)
 
  284     status = nf_get_vara_real(ncidp, varidai, start, count, airefi2)
 
  295     print *, 
'WARNING!!! Il n y a pas de test de coherence' 
  296     print *, 
'sur le nombre de niveaux verticaux dans le fichier nc' 
  313     status = nf_get_vara_double(ncidp, varidt, start, count, t2)
 
  315     status = nf_get_vara_real(ncidp, varidt, start, count, t2)
 
  323     status = nf_get_vara_double(ncidp, varidmfu, start, count, mfu2)
 
  325     status = nf_get_vara_real(ncidp, varidmfu, start, count, mfu2)
 
  331     status = nf_get_vara_double(ncidp, varidmfd, start, count, mfd2)
 
  333     status = nf_get_vara_real(ncidp, varidmfd, start, count, mfd2)
 
  339     status = nf_get_vara_double(ncidp, varidenu, start, count, en_u2)
 
  341     status = nf_get_vara_real(ncidp, varidenu, start, count, en_u2)
 
  347     status = nf_get_vara_double(ncidp, variddeu, start, count, de_u2)
 
  349     status = nf_get_vara_real(ncidp, variddeu, start, count, de_u2)
 
  355     status = nf_get_vara_double(ncidp, varidend, start, count, en_d2)
 
  357     status = nf_get_vara_real(ncidp, varidend, start, count, en_d2)
 
  363     status = nf_get_vara_double(ncidp, varidded, start, count, de_d2)
 
  365     status = nf_get_vara_real(ncidp, varidded, start, count, de_d2)
 
  372     print *, 
'LECTURE de coefh a irec =', irec
 
  374     status = nf_get_vara_double(ncidp, varidch, start, count, coefh2)
 
  376     status = nf_get_vara_real(ncidp, varidch, start, count, coefh2)
 
  385     print *, 
'LECTURE de fm_therm a irec =', irec
 
  387     status = nf_get_vara_double(ncidp, varidfmth, start, count, fm_therm2)
 
  389     status = nf_get_vara_real(ncidp, varidfmth, start, count, fm_therm2)
 
  392     print *, 
'LECTURE de en_therm a irec =', irec
 
  394     status = nf_get_vara_double(ncidp, varidenth, start, count, en_therm2)
 
  396     status = nf_get_vara_real(ncidp, varidenth, start, count, en_therm2)
 
  404     status = nf_get_vara_double(ncidp, varidfi, start, count, frac_impa2)
 
  406     status = nf_get_vara_real(ncidp, varidfi, start, count, frac_impa2)
 
  408     CALL gr_ecrit_fi(kev, kon, 
nbp_lon, 
nbp_lat, frac_impa2, frac_impa)
 
  413     status = nf_get_vara_double(ncidp, varidfn, start, count, frac_nucl2)
 
  415     status = nf_get_vara_real(ncidp, varidfn, start, count, frac_nucl2)
 
  417     CALL gr_ecrit_fi(kev, kon, 
nbp_lon, 
nbp_lat, frac_nucl2, frac_nucl)
 
  427     print *, 
'LECTURE de yu1 a irec =', irec
 
  429     status = nf_get_vara_double(ncidp, varidyu1, start, count, pyu12)
 
  431     status = nf_get_vara_real(ncidp, varidyu1, start, count, pyu12)
 
  436     print *, 
'LECTURE de yv1 a irec =', irec
 
  438     status = nf_get_vara_double(ncidp, varidyv1, start, count, pyv12)
 
  440     status = nf_get_vara_real(ncidp, varidyv1, start, count, pyv12)
 
  446     print *, 
'LECTURE de ftsol1 a irec =', irec
 
  448     status = nf_get_vara_double(ncidp, varidfts1, start, count, ftsol12)
 
  450     status = nf_get_vara_real(ncidp, varidfts1, start, count, ftsol12)
 
  455     print *, 
'LECTURE de ftsol2 a irec =', irec
 
  457     status = nf_get_vara_double(ncidp, varidfts2, start, count, ftsol22)
 
  459     status = nf_get_vara_real(ncidp, varidfts2, start, count, ftsol22)
 
  464     print *, 
'LECTURE de ftsol3 a irec =', irec
 
  466     status = nf_get_vara_double(ncidp, varidfts3, start, count, ftsol32)
 
  468     status = nf_get_vara_real(ncidp, varidfts3, start, count, ftsol32)
 
  474     status = nf_get_vara_double(ncidp, varidfts4, start, count, ftsol42)
 
  476     status = nf_get_vara_real(ncidp, varidfts4, start, count, ftsol42)
 
  483     status = nf_get_vara_double(ncidp, varidpsr1, start, count, psrf12)
 
  485     status = nf_get_vara_real(ncidp, varidpsr1, start, count, psrf12)
 
  492     status = nf_get_vara_double(ncidp, varidpsr2, start, count, psrf22)
 
  494     status = nf_get_vara_real(ncidp, varidpsr2, start, count, psrf22)
 
  501     status = nf_get_vara_double(ncidp, varidpsr3, start, count, psrf32)
 
  503     status = nf_get_vara_real(ncidp, varidpsr3, start, count, psrf32)
 
  509     status = nf_get_vara_double(ncidp, varidpsr4, start, count, psrf42)
 
  511     status = nf_get_vara_real(ncidp, varidpsr4, start, count, psrf42)
 
  517       psrf(i, 1) = psrf1(i)
 
  518       psrf(i, 2) = psrf2(i)
 
  519       psrf(i, 3) = psrf3(i)
 
  522       psrf(i, 4) = psrf4(i)
 
  524       ftsol(i, 1) = ftsol1(i)
 
  525       ftsol(i, 2) = ftsol2(i)
 
  526       ftsol(i, 3) = ftsol3(i)
 
  527       ftsol(i, 4) = ftsol4(i)
 
subroutine read_pstoke0(irec, zrec, zkon, zkev, airefi, phisfi, t, mfu, mfd, en_u, de_u, en_d, de_d, coefh, fm_therm, en_therm, frac_impa, frac_nucl, pyu1, pyv1, ftsol, psrf)
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true