37 CHARACTER(LEN=1), 
POINTER :: clname(:)
 
   38 INTEGER(KIND=JPIM) :: ifields
 
   39 INTEGER(KIND=JPIM) :: idgen
 
   40 INTEGER(KIND=JPIM) :: idgenl
 
   41 INTEGER(KIND=JPIM) :: iblen
 
   42 INTEGER(KIND=JPIM) :: ipack
 
   44 REAL(KIND=JPRB),    
POINTER :: gpbuf(:)
 
   47 #include "abor1.intfb.h" 
   56 CHARACTER(LEN=*) , 
INTENT(IN)  :: CDNAME
 
   57 INTEGER(KIND=JPIM)        , 
INTENT(IN)  :: KFIELDS,KPACK
 
   58 INTEGER(KIND=JPIM)        , 
INTENT(IN),
OPTIONAL  :: KGPTOT
 
   60 INTEGER(KIND=JPIM)   ::   J, IGPTOT
 
   61 REAL(KIND=JPRB)      :: ZDUM
 
   62 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
   64 IF (
lhook) 
CALL dr_hook(
'GRIDPOINT_BUFFERS:ALLOCATE_GRIDPOINT_BUFFER',0,zhook_handle)
 
   66 IF(
PRESENT(kgptot))
THEN 
   72 ALLOCATE (ydgpbuf%CLNAME(len(cdname)))
 
   75   ydgpbuf%CLNAME(j)  = cdname(j:j)
 
   78 ydgpbuf%IFIELDS = kfields
 
   81 IF (kpack > 1) 
CALL abor1(
'ALLOCATE_GRIDPOINT_BUFFER: KPACK > 1')
 
   82 ydgpbuf%IBLEN = igptot  * kfields
 
   84 ALLOCATE (ydgpbuf%GPBUF(ydgpbuf%IBLEN))
 
   86  & 
WRITE(nulout,91) cdname,
SIZE(ydgpbuf%GPBUF),shape(ydgpbuf%GPBUF)  
 
   87 ydgpbuf%GPBUF(:) = huge(zdum)
 
   88 ydgpbuf%LFILLED = .
false.
 
   90 IF (
lhook) 
CALL dr_hook(
'GRIDPOINT_BUFFERS:ALLOCATE_GRIDPOINT_BUFFER',1,zhook_handle)
 
   91 91  
FORMAT(1
x,
'ALLOCATED GRIDPOINT BUFFER ',a,
', SIZE=',i8,
', SHAPE=',7i8)
 
   96 INTEGER(KIND=JPIM) :: J
 
   97 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
   99 IF (
lhook) 
CALL dr_hook(
'GRIDPOINT_BUFFERS:DEALLOCATE_GRIDPOINT_BUFFER',0,zhook_handle)
 
  101  & 
WRITE(nulout,92) (ydgpbuf%CLNAME(j),j=1,
SIZE(ydgpbuf%CLNAME))  
 
  103 DEALLOCATE (ydgpbuf%GPBUF)
 
  104 DEALLOCATE (ydgpbuf%CLNAME)
 
  105 ydgpbuf%LFILLED = .
false.
 
  107 IF (
lhook) 
CALL dr_hook(
'GRIDPOINT_BUFFERS:DEALLOCATE_GRIDPOINT_BUFFER',1,zhook_handle)
 
  108 92  
FORMAT(1
x,
'DEALLOCATED GRIDPOINT BUFFER:,',100a1)
 
logical function, public allocated_gridpoint_buffer(YDGPBUF)
 
integer(kind=jpim) ngptot
 
!$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
 
integer(kind=jpim) nprintlev
 
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
 
subroutine, public deallocate_gridpoint_buffer(YDGPBUF)
 
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
 
subroutine, public allocate_gridpoint_buffer(CDNAME, YDGPBUF, KFIELDS, KPACK, KGPTOT)