SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/mode_split_grid_parameter.F90
Go to the documentation of this file.
00001 !##################
00002 MODULE MODE_SPLIT_GRID_PARAMETER
00003 !##################
00004 !
00005 CONTAINS
00006 !
00007 !     #############################################################
00008       SUBROUTINE SPLIT_GRID_PARAMETERX1(HPROGRAM,HGRID,HREC,KDIM,KSIZE,PFIELD,PFIELD_SPLIT)
00009 !     #############################################################
00010 !
00011 !!****  * - routine to split a real array on the splitted grid 
00012 !
00013 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00014 USE PARKIND1  ,ONLY : JPRB
00015 !
00016 #ifdef OL
00017 USE MODE_SPLIT_GRID_PARAMETER_OL
00018 #endif
00019 #ifdef MNH
00020 USE MODI_SPLIT_GRID_PARAMETERX1_MNH
00021 #endif
00022 !
00023 IMPLICIT NONE
00024 !
00025 !*      0.1   Declarations of arguments
00026 !
00027  CHARACTER(LEN=6),       INTENT(IN) :: HPROGRAM    ! calling program
00028  CHARACTER(LEN=10),      INTENT(IN) :: HGRID       ! grid type
00029  CHARACTER(LEN=6),       INTENT(IN) :: HREC        ! name of the parameter
00030 INTEGER,                INTENT(IN) :: KDIM        ! size of PFIELD
00031 INTEGER,                INTENT(IN) :: KSIZE       ! size of PFIELD_SPLIT
00032 REAL, DIMENSION(KDIM ), INTENT(IN) :: PFIELD      ! real field for complete grid
00033 REAL, DIMENSION(KSIZE), INTENT(OUT):: PFIELD_SPLIT! real field for splitted grid
00034 !
00035 !*      0.2   Declarations of local variables
00036 !
00037 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00038 !-------------------------------------------------------------------------------
00039 IF (LHOOK) CALL DR_HOOK('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERX1',0,ZHOOK_HANDLE)
00040 !
00041 IF (HPROGRAM=='MESONH') THEN
00042 #ifdef MNH
00043   CALL SPLIT_GRID_PARAMETERX1_MNH(HGRID,HREC,KDIM,KSIZE,PFIELD,PFIELD_SPLIT)
00044 #endif
00045 ENDIF
00046 !
00047 !
00048 IF (HPROGRAM=='OFFLIN') THEN
00049 #ifdef OL
00050   CALL SPLIT_GRID_PARAMETERX1_OL(HPROGRAM,HGRID,HREC,KDIM,KSIZE,PFIELD,PFIELD_SPLIT)
00051 #endif
00052 ENDIF
00053 !
00054 IF (LHOOK) CALL DR_HOOK('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERX1',1,ZHOOK_HANDLE)
00055 !
00056 !-------------------------------------------------------------------------------
00057 END SUBROUTINE SPLIT_GRID_PARAMETERX1
00058 !
00059 !
00060 !     #############################################################
00061       SUBROUTINE SPLIT_GRID_PARAMETERN0(HPROGRAM,HGRID,HREC,KFIELD,KFIELD_SPLIT)
00062 !     #############################################################
00063 !
00064 !!****  * - routine to define an integer related to splitted grid
00065 !
00066 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00067 USE PARKIND1  ,ONLY : JPRB
00068 !
00069 #ifdef OL
00070 USE MODE_SPLIT_GRID_PARAMETER_OL
00071 #endif
00072 #ifdef MNH
00073 USE MODI_SPLIT_GRID_PARAMETERN0_MNH
00074 #endif
00075 !
00076 IMPLICIT NONE
00077 !
00078 !*      0.1   Declarations of arguments
00079 !
00080  CHARACTER(LEN=6),  INTENT(IN) :: HPROGRAM     ! calling program
00081  CHARACTER(LEN=10), INTENT(IN) :: HGRID        ! grid type
00082  CHARACTER(LEN=6),  INTENT(IN) :: HREC         ! name of the parameter
00083 INTEGER,           INTENT(IN) :: KFIELD       ! integer scalar for complete grid
00084 INTEGER,           INTENT(OUT):: KFIELD_SPLIT ! integer scalar for splitted grid
00085 !*      0.2   Declarations of local variables
00086 !
00087 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00088 !-------------------------------------------------------------------------------
00089 IF (LHOOK) CALL DR_HOOK('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERN0',0,ZHOOK_HANDLE)
00090 !
00091 !-------------------------------------------------------------------------------
00092 !
00093 IF (HPROGRAM=='MESONH') THEN
00094 #ifdef MNH
00095   CALL SPLIT_GRID_PARAMETERN0_MNH(HGRID,HREC,KFIELD,KFIELD_SPLIT)
00096 #endif
00097 ENDIF
00098 !
00099 IF (HPROGRAM=='OFFLIN') THEN
00100 #ifdef OL
00101   CALL SPLIT_GRID_PARAMETERN0_OL(HPROGRAM,HGRID,HREC,KFIELD,KFIELD_SPLIT)
00102 #endif
00103 ENDIF
00104 !
00105 IF (LHOOK) CALL DR_HOOK('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERN0',1,ZHOOK_HANDLE)
00106 !
00107 !-------------------------------------------------------------------------------
00108 END SUBROUTINE SPLIT_GRID_PARAMETERN0
00109 !
00110 END MODULE MODE_SPLIT_GRID_PARAMETER