SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_gr_biog_gardenn.F90
Go to the documentation of this file.
00001 !     #####################
00002       MODULE MODD_GR_BIOG_GARDEN_n
00003 !     ######################
00004 !
00005 !!
00006 !!!!****  *MODD_GR_BIOG_GARDEN_n* - Declaration of variables for biogenic emissions 
00007 !
00008 !!
00009 !!**  IMPLICIT ARGUMENTS
00010 !!    ------------------
00011 !!      None 
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!    AUTHOR
00016 !!    ------
00017 !!      F. Solmon  *LA*
00018 !!
00019 !!    MODIFICATIONS
00020 !!    -------------
00021 !!    P. Tulet  30/07/03 externalisation of biogenics fluxes
00022 !!     
00023 !*       0.   DECLARATIONS
00024 !             ----------
00025 !
00026 !
00027 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00028 USE PARKIND1  ,ONLY : JPRB
00029 !
00030 IMPLICIT NONE
00031 
00032 TYPE GR_BIOG_GARDEN_t
00033 !
00034 !
00035 !
00036 !* Emission potential for isoprene and monoterpenes 
00037   REAL, DIMENSION(:), POINTER :: XISOPOT 
00038   REAL, DIMENSION(:), POINTER :: XMONOPOT 
00039 !
00040 !* Radiation at different level(cf Gauss) in the canopy
00041   REAL, DIMENSION(:,:,:),POINTER ::XIACAN ! PAR at 3 gauss level for each patch
00042 !
00043 !* XFISO  = isoprene emission flux (ppp.m.s-1)
00044 !  XFMONO = monoterpenes emission flux (ppp m s-1)
00045   REAL, DIMENSION(:), POINTER :: XFISO, XFMONO
00046 !
00047 !
00048 END TYPE GR_BIOG_GARDEN_t
00049 
00050 TYPE(GR_BIOG_GARDEN_t), ALLOCATABLE, TARGET, SAVE :: GR_BIOG_GARDEN_MODEL(:)
00051 
00052 REAL, DIMENSION(:), POINTER :: XISOPOT=>NULL()
00053 !$OMP THREADPRIVATE(XISOPOT)
00054 REAL, DIMENSION(:), POINTER :: XMONOPOT=>NULL()
00055 !$OMP THREADPRIVATE(XMONOPOT)
00056 REAL, DIMENSION(:,:,:),POINTER :: XIACAN=>NULL()
00057 !$OMP THREADPRIVATE(XIACAN)
00058 REAL, DIMENSION(:), POINTER :: XFISO=>NULL(), XFMONO=>NULL()
00059 !$OMP THREADPRIVATE(XFISO, XFMONO)
00060 
00061 CONTAINS
00062 
00063 SUBROUTINE GR_BIOG_GARDEN_GOTO_MODEL(KFROM, KTO, LKFROM)
00064 LOGICAL, INTENT(IN) :: LKFROM
00065 INTEGER, INTENT(IN) :: KFROM, KTO
00066 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00067 !
00068 ! Save current state for allocated arrays
00069 IF (LKFROM) THEN
00070 GR_BIOG_GARDEN_MODEL(KFROM)%XISOPOT=>XISOPOT
00071 GR_BIOG_GARDEN_MODEL(KFROM)%XMONOPOT=>XMONOPOT
00072 GR_BIOG_GARDEN_MODEL(KFROM)%XIACAN=>XIACAN
00073 GR_BIOG_GARDEN_MODEL(KFROM)%XFISO=>XFISO
00074 GR_BIOG_GARDEN_MODEL(KFROM)%XFMONO=>XFMONO
00075 ENDIF
00076 !
00077 ! Current model is set to model KTO
00078 IF (LHOOK) CALL DR_HOOK('MODD_GR_BIOG_GARDEN_N:GR_BIOG_GARDEN_GOTO_MODEL',0,ZHOOK_HANDLE)
00079 XISOPOT=>GR_BIOG_GARDEN_MODEL(KTO)%XISOPOT
00080 XMONOPOT=>GR_BIOG_GARDEN_MODEL(KTO)%XMONOPOT
00081 XIACAN=>GR_BIOG_GARDEN_MODEL(KTO)%XIACAN
00082 XFISO=>GR_BIOG_GARDEN_MODEL(KTO)%XFISO
00083 XFMONO=>GR_BIOG_GARDEN_MODEL(KTO)%XFMONO
00084 IF (LHOOK) CALL DR_HOOK('MODD_GR_BIOG_GARDEN_N:GR_BIOG_GARDEN_GOTO_MODEL',1,ZHOOK_HANDLE)
00085 
00086 END SUBROUTINE GR_BIOG_GARDEN_GOTO_MODEL
00087 
00088 SUBROUTINE GR_BIOG_GARDEN_ALLOC(KMODEL)
00089 INTEGER, INTENT(IN) :: KMODEL
00090 INTEGER :: J
00091 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00092 IF (LHOOK) CALL DR_HOOK("MODD_GR_BIOG_GARDEN_N:GR_BIOG_GARDEN_ALLOC",0,ZHOOK_HANDLE)
00093 ALLOCATE(GR_BIOG_GARDEN_MODEL(KMODEL))
00094 DO J=1,KMODEL
00095   NULLIFY(GR_BIOG_GARDEN_MODEL(J)%XISOPOT)
00096   NULLIFY(GR_BIOG_GARDEN_MODEL(J)%XMONOPOT)
00097   NULLIFY(GR_BIOG_GARDEN_MODEL(J)%XIACAN)
00098   NULLIFY(GR_BIOG_GARDEN_MODEL(J)%XFISO)
00099   NULLIFY(GR_BIOG_GARDEN_MODEL(J)%XFMONO)
00100 ENDDO
00101 IF (LHOOK) CALL DR_HOOK("MODD_GR_BIOG_GARDEN_N:GR_BIOG_GARDEN_ALLOC",1,ZHOOK_HANDLE)
00102 END SUBROUTINE GR_BIOG_GARDEN_ALLOC
00103 
00104 SUBROUTINE GR_BIOG_GARDEN_DEALLO
00105 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00106 IF (LHOOK) CALL DR_HOOK("MODD_GR_BIOG_GARDEN_N:GR_BIOG_GARDEN_DEALLO",0,ZHOOK_HANDLE)
00107 IF (ALLOCATED(GR_BIOG_GARDEN_MODEL)) DEALLOCATE(GR_BIOG_GARDEN_MODEL)
00108 IF (LHOOK) CALL DR_HOOK("MODD_GR_BIOG_GARDEN_N:GR_BIOG_GARDEN_DEALLO",1,ZHOOK_HANDLE)
00109 END SUBROUTINE GR_BIOG_GARDEN_DEALLO
00110 
00111 END MODULE MODD_GR_BIOG_GARDEN_n