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)