SURFEX v7.3
General documentation of Surfex
|
00001 !############################## 00002 MODULE MODE_GRID_TRIP 00003 !############################## 00004 ! 00005 ! 00006 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00007 USE PARKIND1 ,ONLY : JPRB 00008 ! 00009 INTERFACE PUT_GRID_TRIP 00010 MODULE PROCEDURE PUT_GRID_TRIP 00011 END INTERFACE 00012 00013 INTERFACE GET_GRID_TRIP 00014 MODULE PROCEDURE GET_GRID_TRIP 00015 END INTERFACE 00016 ! 00017 !############################################################################ 00018 !############################################################################ 00019 !############################################################################ 00020 CONTAINS 00021 !############################################################################ 00022 !############################################################################ 00023 !############################################################################ 00024 ! #################################################################### 00025 SUBROUTINE PUT_GRID_TRIP(PGRID_TRIP,PLONMIN,PLONMAX,PLATMIN, & 00026 PLATMAX,PRES,KLON,KLAT,PLON,PLAT ) 00027 ! #################################################################### 00028 ! 00029 !!**** *PUT_GRID_TRIP* - routine to store in PGRID_TRIP the horizontal grid 00030 !! 00031 !! AUTHOR 00032 !! ------ 00033 !! B. Decharme *Meteo France* 00034 !! 00035 !! MODIFICATIONS 00036 !! ------------- 00037 !! Original 05/2005 00038 !------------------------------------------------------------------------------- 00039 ! 00040 !* 0. DECLARATIONS 00041 ! ------------ 00042 ! 00043 IMPLICIT NONE 00044 ! 00045 ! 00046 !* 0.1 Declarations of arguments 00047 ! ------------------------- 00048 ! 00049 REAL, INTENT(IN) :: PLONMIN ! minimum longitude 00050 REAL, INTENT(IN) :: PLONMAX ! maximum longitude 00051 REAL, INTENT(IN) :: PLATMIN ! minimum latitude 00052 REAL, INTENT(IN) :: PLATMAX ! maximum latitude 00053 REAL, INTENT(IN) :: PRES ! 1° or 0.5° resolution 00054 INTEGER, INTENT(IN) :: KLON ! number of points in longitude 00055 INTEGER, INTENT(IN) :: KLAT ! number of points in latitude 00056 REAL, DIMENSION(:), INTENT(IN) :: PLON ! longitude 00057 REAL, DIMENSION(:), INTENT(IN) :: PLAT ! latitude 00058 REAL, DIMENSION(:), INTENT(OUT) :: PGRID_TRIP! parameters defining this grid 00059 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00060 ! 00061 ! 00062 !* 0.2 Declarations of local variables 00063 ! ------------------------------- 00064 ! 00065 !------------------------------------------------------------------------------- 00066 IF (LHOOK) CALL DR_HOOK('MODE_GRID_TRIP:PUT_GRID_TRIP',0,ZHOOK_HANDLE) 00067 PGRID_TRIP(1) = PLONMIN 00068 PGRID_TRIP(2) = PLONMAX 00069 PGRID_TRIP(3) = PLATMIN 00070 PGRID_TRIP(4) = PLATMAX 00071 PGRID_TRIP(5) = PRES 00072 PGRID_TRIP(6) = FLOAT(KLON) 00073 PGRID_TRIP(7) = FLOAT(KLAT) 00074 PGRID_TRIP(8:7+KLON) = PLON 00075 PGRID_TRIP(8+KLON:7+KLON+KLAT) = PLAT 00076 IF (LHOOK) CALL DR_HOOK('MODE_GRID_TRIP:PUT_GRID_TRIP',1,ZHOOK_HANDLE) 00077 !------------------------------------------------------------------------------- 00078 END SUBROUTINE PUT_GRID_TRIP 00079 !############################################################################ 00080 !############################################################################ 00081 !############################################################################ 00082 ! #################################################################### 00083 SUBROUTINE GET_GRID_TRIP(PGRID_TRIP,PLONMIN,PLONMAX,PLATMIN, & 00084 PLATMAX,PRES,KLON,KLAT,PLON,PLAT ) 00085 ! #################################################################### 00086 ! 00087 !!**** *GET_GRID_TRIP* - routine to get from PGRID_TRIP the horizontal grid 00088 !! 00089 !! AUTHOR 00090 !! ------ 00091 !! B. Decharme *Meteo France* 00092 !! 00093 !! MODIFICATIONS 00094 !! ------------- 00095 !! Original 05/2005 00096 !------------------------------------------------------------------------------- 00097 ! 00098 !* 0. DECLARATIONS 00099 ! ------------ 00100 ! 00101 IMPLICIT NONE 00102 ! 00103 ! 00104 !* 0.1 Declarations of arguments 00105 ! ------------------------- 00106 ! 00107 REAL, DIMENSION(:), INTENT(IN) :: PGRID_TRIP! parameters defining this grid 00108 REAL, INTENT(OUT), OPTIONAL :: PLONMIN ! minimum longitude 00109 REAL, INTENT(OUT), OPTIONAL :: PLONMAX ! maximum longitude 00110 REAL, INTENT(OUT), OPTIONAL :: PLATMIN ! minimum latitude 00111 REAL, INTENT(OUT), OPTIONAL :: PLATMAX ! maximum latitude 00112 REAL, INTENT(OUT), OPTIONAL :: PRES ! 1° or 0.5° resolution 00113 INTEGER, INTENT(OUT), OPTIONAL :: KLON ! number of points in longitude 00114 INTEGER, INTENT(OUT), OPTIONAL :: KLAT ! number of points in latitude 00115 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PLON ! longitude 00116 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PLAT ! latitude 00117 ! 00118 ! 00119 !* 0.2 Declarations of local variables 00120 ! ------------------------------- 00121 ! 00122 INTEGER :: ILON, ILAT 00123 INTEGER :: IL 00124 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00125 !------------------------------------------------------------------------------- 00126 IF (LHOOK) CALL DR_HOOK('MODE_GRID_TRIP:GET_GRID_TRIP',0,ZHOOK_HANDLE) 00127 ILON = NINT(PGRID_TRIP(6)) 00128 ILAT = NINT(PGRID_TRIP(7)) 00129 ! 00130 IF (PRESENT(PLONMIN)) PLONMIN = PGRID_TRIP(1) 00131 IF (PRESENT(PLONMAX)) PLONMAX = PGRID_TRIP(2) 00132 IF (PRESENT(PLATMIN)) PLATMIN = PGRID_TRIP(3) 00133 IF (PRESENT(PLATMAX)) PLATMAX = PGRID_TRIP(4) 00134 IF (PRESENT(PRES )) PRES = PGRID_TRIP(5) 00135 IF (PRESENT(KLON )) KLON = ILON 00136 IF (PRESENT(KLAT )) KLAT = ILAT 00137 IF (PRESENT(PLON )) PLON(:) = PGRID_TRIP(8:7+ILON) 00138 IF (PRESENT(PLAT )) PLAT(:) = PGRID_TRIP(8+ILON:7+ILON+ILAT) 00139 IF (LHOOK) CALL DR_HOOK('MODE_GRID_TRIP:GET_GRID_TRIP',1,ZHOOK_HANDLE) 00140 ! 00141 !------------------------------------------------------------------------------- 00142 END SUBROUTINE GET_GRID_TRIP 00143 !--------------------------------------------------------------------------------- 00144 ! 00145 !############################################################################ 00146 !############################################################################ 00147 !############################################################################ 00148 !############################################################################ 00149 !############################################################################ 00150 !############################################################################ 00151 ! 00152 END MODULE MODE_GRID_TRIP