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