SURFEX v7.3
General documentation of Surfex
|
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