3 SUBROUTINE limit_slab(itime, dtime, jour, lmt_bils, diff_sst, diff_siv)
 
   17   INTEGER, 
INTENT(IN) :: itime   
 
   18   INTEGER, 
INTENT(IN) :: jour    
 
   19   REAL   , 
INTENT(IN) :: dtime   
 
   20   REAL, 
DIMENSION(klon), 
INTENT(OUT) :: lmt_bils, diff_sst, diff_siv
 
   24   REAL, 
DIMENSION(:), 
ALLOCATABLE, 
SAVE :: bils_save, diff_sst_save
 
   25   REAL, 
DIMENSION(:), 
ALLOCATABLE, 
SAVE :: diff_siv_save
 
   31   INTEGER                  :: nvarid, nid, ierr, i
 
   32   INTEGER, 
DIMENSION(2)    :: start, epais 
 
   33   REAL, 
DIMENSION(klon_glo):: bils_glo, sst_l_glo, sst_lp1_glo, diff_sst_glo
 
   34   REAL, 
DIMENSION(klon_glo):: siv_l_glo, siv_lp1_glo, diff_siv_glo
 
   35   CHARACTER (len = 20)     :: modname = 
'limit_slab' 
   36   LOGICAL                  :: read_bils,read_sst,read_siv
 
   42   lmt_pas = nint(86400./dtime)
 
   45   IF (mod(itime-1, lmt_pas) == 0) 
THEN    
   48         print*,
'in limit_slab time to read, itime=',itime
 
   53         ierr = nf90_open(
'limit_slab.nc', nf90_nowrite, nid)
 
   54         IF (ierr /= nf90_noerr) 
THEN 
   72         ierr = nf90_inq_varid(nid, 
'BILS_OCE', nvarid)
 
   73         IF (ierr /= nf90_noerr) 
THEN 
   76             ierr = nf90_get_var(nid,nvarid,bils_glo,start,epais)
 
   77             IF (ierr /= nf90_noerr) read_bils=.
false.
 
   80         ierr = nf90_inq_varid(nid, 
'SST', nvarid)
 
   81         IF (ierr /= nf90_noerr)  
THEN 
   84             ierr = nf90_get_var(nid,nvarid,sst_l_glo,start,epais)
 
   85             IF (ierr /= nf90_noerr) read_sst=.
false.
 
   88             IF (start(2) > 360) start(2)=1
 
   89             ierr = nf90_get_var(nid,nvarid,sst_lp1_glo,start,epais)
 
   90             IF (ierr /= nf90_noerr) read_sst=.
false.
 
   94         ierr = nf90_inq_varid(nid, 
'SICV', nvarid)
 
   95         IF (ierr /= nf90_noerr)  
THEN 
   99             ierr = nf90_get_var(nid,nvarid,siv_l_glo,start,epais)
 
  100             IF (ierr /= nf90_noerr) read_siv=.
false.
 
  103             IF (start(2) > 360) start(2)=1
 
  104             ierr = nf90_get_var(nid,nvarid,siv_lp1_glo,start,epais)
 
  105             IF (ierr /= nf90_noerr) read_siv=.
false.
 
  112         ierr = nf90_close(nid)
 
  113         IF (ierr /= nf90_noerr) 
CALL abort_physic(modname,
'Pb when closing file', 1)
 
  118                diff_sst_glo(i) = sst_lp1_glo(i) - sst_l_glo(i)
 
  124                diff_siv_glo(i) = siv_lp1_glo(i) - siv_l_glo(i)
 
  131      IF (.NOT. 
ALLOCATED(bils_save)) 
THEN 
  132         ALLOCATE(bils_save(
klon), diff_sst_save(
klon), diff_siv_save(
klon), stat=ierr)
 
  133         IF (ierr /= 0) 
CALL abort_physic(
'limit_slab', 
'pb in allocation',1)
 
  138          CALL scatter(bils_glo, bils_save)
 
  143          CALL scatter(diff_sst_glo, diff_sst_save)
 
  148          CALL scatter(diff_siv_glo, diff_siv_save)
 
  155   lmt_bils(:) = bils_save(:)
 
  156   diff_sst(:) = diff_sst_save(:)
 
  157   diff_siv(:) = diff_siv_save(:)
 
subroutine limit_slab(itime, dtime, jour, lmt_bils, diff_sst, diff_siv)
 
!$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 false
 
!$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
 
subroutine abort_physic(modname, message, ierr)