SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_io_buffn.F90
Go to the documentation of this file.
00001 !     ##################
00002       MODULE MODD_IO_BUFF_n
00003 !     ##################
00004 !
00005 !!****  *MODD_IO_IO_BUFF - 
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!
00011 !!**  IMPLICIT ARGUMENTS
00012 !!    ------------------
00013 !!      None 
00014 !!
00015 !!    REFERENCE
00016 !!    ---------
00017 !!
00018 !!    AUTHOR
00019 !!    ------
00020 !!      V. Masson    *Meteo France*
00021 !!
00022 !!    MODIFICATIONS
00023 !!    -------------
00024 !!    
00025 !
00026 !*       0.   DECLARATIONS
00027 !
00028 !!      
00029 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00030 USE PARKIND1  ,ONLY : JPRB
00031 !
00032 IMPLICIT NONE
00033 
00034 TYPE IO_BUFF_t
00035 
00036  CHARACTER(LEN=12), DIMENSION(3000) :: CREC   ! list of records already read/written
00037 INTEGER                            :: NREC   ! number of records read/written
00038 
00039 END TYPE IO_BUFF_t
00040 !
00041 TYPE(IO_BUFF_t), ALLOCATABLE, TARGET, SAVE :: IO_BUFF_MODEL(:)
00042  CHARACTER(LEN=12), DIMENSION(:),    POINTER :: CREC=> NULL()
00043 INTEGER,                            POINTER :: NREC=> NULL()
00044 !
00045 CONTAINS
00046 SUBROUTINE IO_BUFF_GOTO_MODEL(KFROM, KTO, LKFROM)
00047 LOGICAL, INTENT(IN) :: LKFROM
00048 INTEGER, INTENT(IN) :: KFROM, KTO
00049 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00050 IF (LHOOK) CALL DR_HOOK('MODD_IO_BUFF_N:IO_BUFF_GOTO_MODEL',0,ZHOOK_HANDLE)
00051 CREC=>IO_BUFF_MODEL(KTO)%CREC
00052 NREC=>IO_BUFF_MODEL(KTO)%NREC
00053 IF (LHOOK) CALL DR_HOOK('MODD_IO_BUFF_N:IO_BUFF_GOTO_MODEL',1,ZHOOK_HANDLE)
00054 !
00055 END SUBROUTINE IO_BUFF_GOTO_MODEL
00056 
00057 SUBROUTINE IO_BUFF_ALLOC(KMODEL)
00058 INTEGER, INTENT(IN) :: KMODEL
00059 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00060 IF (LHOOK) CALL DR_HOOK("MODD_IO_BUFF_N:IO_BUFF_ALLOC",0,ZHOOK_HANDLE)
00061 ALLOCATE(IO_BUFF_MODEL(KMODEL))
00062 IO_BUFF_MODEL(:)%NREC=0
00063 IF (LHOOK) CALL DR_HOOK("MODD_IO_BUFF_N:IO_BUFF_ALLOC",1,ZHOOK_HANDLE)
00064 END SUBROUTINE IO_BUFF_ALLOC
00065 
00066 SUBROUTINE IO_BUFF_DEALLO
00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00068 IF (LHOOK) CALL DR_HOOK("MODD_IO_BUFF_N:IO_BUFF_DEALLO",0,ZHOOK_HANDLE)
00069 IF (ALLOCATED(IO_BUFF_MODEL)) DEALLOCATE(IO_BUFF_MODEL)
00070 IF (LHOOK) CALL DR_HOOK("MODD_IO_BUFF_N:IO_BUFF_DEALLO",1,ZHOOK_HANDLE)
00071 END SUBROUTINE IO_BUFF_DEALLO
00072 !
00073 END MODULE MODD_IO_BUFF_n