SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_OUTPUT_GRID(KLUOUT,HGRID,PGRID_PAR,PLAT,PLON) 00003 ! ####################################### 00004 !! 00005 !! PURPOSE 00006 !! ------- 00007 !! Computes variables used for interpolation 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 01/2004 00032 !---------------------------------------------------------------------------- 00033 ! 00034 !* 0. DECLARATION 00035 ! ----------- 00036 ! 00037 USE MODI_GET_GRID_COORD 00038 ! 00039 USE MODD_PREP, ONLY : XLAT_OUT, XLON_OUT, XX_OUT, XY_OUT, LINTERP 00040 ! 00041 ! 00042 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00043 USE PARKIND1 ,ONLY : JPRB 00044 ! 00045 IMPLICIT NONE 00046 ! 00047 !* 0.1 Declaration of dummy arguments 00048 ! ------------------------------ 00049 ! 00050 INTEGER, INTENT(IN) :: KLUOUT ! output listing logical unit 00051 CHARACTER(LEN=10), INTENT(IN) :: HGRID ! grid type 00052 REAL, DIMENSION(:), POINTER :: PGRID_PAR ! parameters defining this grid 00053 REAL, DIMENSION(:),INTENT(IN) :: PLAT ! latitudes 00054 REAL, DIMENSION(:),INTENT(IN) :: PLON ! longitudes 00055 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00056 ! 00057 ! 00058 !* 0.2 Declaration of local variables 00059 ! ------------------------------ 00060 ! 00061 ! 00062 !------------------------------------------------------------------------------ 00063 ! 00064 IF (LHOOK) CALL DR_HOOK('PREP_OUTPUT_GRID',0,ZHOOK_HANDLE) 00065 IF (.NOT.ALLOCATED(XLAT_OUT)) ALLOCATE(XLAT_OUT(SIZE(PLAT))) 00066 IF (.NOT.ALLOCATED(XLON_OUT)) ALLOCATE(XLON_OUT(SIZE(PLAT))) 00067 IF (.NOT.ALLOCATED(XX_OUT)) ALLOCATE(XX_OUT (SIZE(PLAT))) 00068 IF (.NOT.ALLOCATED(XY_OUT)) ALLOCATE(XY_OUT (SIZE(PLAT))) 00069 ! 00070 IF (.NOT.ALLOCATED(LINTERP)) ALLOCATE(LINTERP (SIZE(PLAT))) 00071 00072 XLAT_OUT = PLAT 00073 XLON_OUT = PLON 00074 LINTERP = .TRUE. 00075 ! 00076 CALL GET_GRID_COORD(KLUOUT,XX_OUT,XY_OUT,SIZE(PLAT),HGRID,PGRID_PAR) 00077 IF (LHOOK) CALL DR_HOOK('PREP_OUTPUT_GRID',1,ZHOOK_HANDLE) 00078 !------------------------------------------------------------------------------- 00079 ! 00080 END SUBROUTINE PREP_OUTPUT_GRID