SURFEX v7.3
General documentation of Surfex
|
00001 ! ########################################################### 00002 SUBROUTINE SPLIT_GRID(HPROGRAM) 00003 ! ########################################################### 00004 !! 00005 !! PURPOSE 00006 !! ------- 00007 !! This program splits a PGD grid on several processors (according to host program) 00008 !! 00009 !! METHOD 00010 !! ------ 00011 !! 00012 !! EXTERNAL 00013 !! -------- 00014 !! 00015 !! 00016 !! IMPLICIT ARGUMENTS 00017 !! ------------------ 00018 !! 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! V. Masson Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 08/11 00032 !---------------------------------------------------------------------------- 00033 ! 00034 !* 0. DECLARATION 00035 ! ----------- 00036 ! 00037 USE MODD_SURF_ATM_GRID_n, ONLY : CGRID, XGRID_PAR, NGRID_PAR 00038 USE MODD_SURF_ATM_n, ONLY : NDIM_FULL, NSIZE_FULL 00039 ! 00040 USE MODI_SPLIT_GRID_CONF_PROJ 00041 USE MODI_SPLIT_GRID_CARTESIAN 00042 USE MODI_GET_SIZE_FULL_n 00043 ! 00044 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00045 USE PARKIND1 ,ONLY : JPRB 00046 ! 00047 ! 00048 IMPLICIT NONE 00049 ! 00050 !* 0.1 Declaration of dummy arguments 00051 ! ------------------------------ 00052 ! 00053 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling 00054 ! 00055 ! 00056 !* 0.2 Declaration of local variables 00057 ! ------------------------------ 00058 ! 00059 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00060 CHARACTER(LEN=100) :: YCOMMENT 00061 INTEGER :: IRESP ! error return code 00062 !------------------------------------------------------------------------------ 00063 IF (LHOOK) CALL DR_HOOK('SPLIT_GRID',0,ZHOOK_HANDLE) 00064 ! 00065 SELECT CASE(CGRID) 00066 00067 CASE('CONF PROJ ') 00068 CALL SPLIT_GRID_CONF_PROJ(HPROGRAM,NDIM_FULL,NSIZE_FULL,NGRID_PAR,XGRID_PAR) 00069 CASE('CARTESIAN ') 00070 CALL SPLIT_GRID_CARTESIAN(HPROGRAM,NDIM_FULL,NSIZE_FULL,NGRID_PAR,XGRID_PAR) 00071 CASE DEFAULT 00072 CALL GET_SIZE_FULL_n(HPROGRAM,NDIM_FULL,NSIZE_FULL) 00073 00074 END SELECT 00075 ! 00076 00077 IF (LHOOK) CALL DR_HOOK('SPLIT_GRID',1,ZHOOK_HANDLE) 00078 !_______________________________________________________________________________ 00079 ! 00080 END SUBROUTINE SPLIT_GRID