SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_idealn.F90
Go to the documentation of this file.
00001 !     #################
00002       MODULE MODD_IDEAL_n
00003 !     #################
00004 !
00005 !!****  *MODD_IDEAL_n - declaration of surface parameters for an inland water surface
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !     Declaration of surface parameters
00010 !
00011 !!
00012 !!**  IMPLICIT ARGUMENTS
00013 !!    ------------------
00014 !!      None 
00015 !!
00016 !!    REFERENCE
00017 !!    ---------
00018 !!
00019 !!    AUTHOR
00020 !!    ------
00021 !!      V. Masson   *Meteo France*
00022 !!
00023 !!    MODIFICATIONS
00024 !!    -------------
00025 !!      Original       01/2004
00026 !
00027 !*       0.   DECLARATIONS
00028 !             ------------
00029 !
00030 USE MODD_TYPE_DATE_SURF
00031 !
00032 !
00033 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00034 USE PARKIND1  ,ONLY : JPRB
00035 !
00036 IMPLICIT NONE
00037 
00038 TYPE IDEAL_t
00039 !
00040 ! Time-step:
00041 !
00042   REAL                                  :: XTSTEP  ! time step
00043 !
00044   REAL                                  :: XOUT_TSTEP  ! output writing time step
00045 !
00046 !
00047 !
00048 END TYPE IDEAL_t
00049 
00050 TYPE(IDEAL_t), ALLOCATABLE, TARGET, SAVE :: IDEAL_MODEL(:)
00051 
00052 REAL, POINTER :: XTSTEP=>NULL()
00053 !$OMP THREADPRIVATE(XTSTEP)
00054 REAL, POINTER :: XOUT_TSTEP=>NULL()
00055 !$OMP THREADPRIVATE(XOUT_TSTEP)
00056 
00057 CONTAINS
00058 
00059 SUBROUTINE IDEAL_GOTO_MODEL(KFROM, KTO, LKFROM)
00060 LOGICAL, INTENT(IN) :: LKFROM
00061 INTEGER, INTENT(IN) :: KFROM, KTO
00062 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00063 !
00064 ! Save current state for allocated arrays
00065 !
00066 ! Current model is set to model KTO
00067 IF (LHOOK) CALL DR_HOOK('MODD_IDEAL_N:IDEAL_GOTO_MODEL',0,ZHOOK_HANDLE)
00068 XTSTEP=>IDEAL_MODEL(KTO)%XTSTEP
00069 XOUT_TSTEP=>IDEAL_MODEL(KTO)%XOUT_TSTEP
00070 IF (LHOOK) CALL DR_HOOK('MODD_IDEAL_N:IDEAL_GOTO_MODEL',1,ZHOOK_HANDLE)
00071 
00072 END SUBROUTINE IDEAL_GOTO_MODEL
00073 
00074 SUBROUTINE IDEAL_ALLOC(KMODEL)
00075 INTEGER, INTENT(IN) :: KMODEL
00076 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00077 IF (LHOOK) CALL DR_HOOK("MODD_IDEAL_N:IDEAL_ALLOC",0,ZHOOK_HANDLE)
00078 ALLOCATE(IDEAL_MODEL(KMODEL))
00079 IDEAL_MODEL(:)%XTSTEP=0.
00080 IDEAL_MODEL(:)%XOUT_TSTEP=0.
00081 IF (LHOOK) CALL DR_HOOK("MODD_IDEAL_N:IDEAL_ALLOC",1,ZHOOK_HANDLE)
00082 END SUBROUTINE IDEAL_ALLOC
00083 
00084 SUBROUTINE IDEAL_DEALLO
00085 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00086 IF (LHOOK) CALL DR_HOOK("MODD_IDEAL_N:IDEAL_DEALLO",0,ZHOOK_HANDLE)
00087 IF (ALLOCATED(IDEAL_MODEL)) DEALLOCATE(IDEAL_MODEL)
00088 IF (LHOOK) CALL DR_HOOK("MODD_IDEAL_N:IDEAL_DEALLO",1,ZHOOK_HANDLE)
00089 END SUBROUTINE IDEAL_DEALLO
00090 
00091 END MODULE MODD_IDEAL_n