SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_WATFLUX_BUFFER(HPROGRAM,HSURF,KLUOUT,PFIELD) 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_WATFLUX_BUFFER* - prepares WATFLUX field from operational BUFFER 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! REFERENCE 00014 !! --------- 00015 !! 00016 !! 00017 !! AUTHOR 00018 !! ------ 00019 !! S. Malardel 00020 !! 00021 !! MODIFICATIONS 00022 !! ------------- 00023 !! Original 03/2005 00024 !!------------------------------------------------------------------ 00025 ! 00026 ! 00027 USE MODE_READ_BUFFER 00028 ! 00029 USE MODD_TYPE_DATE_SURF 00030 ! 00031 USE MODI_PREP_BUFFER_GRID 00032 ! 00033 USE MODD_PREP, ONLY : CINTERP_TYPE 00034 USE MODD_GRID_BUFFER, ONLY : NNI 00035 ! 00036 ! 00037 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00038 USE PARKIND1 ,ONLY : JPRB 00039 ! 00040 IMPLICIT NONE 00041 ! 00042 !* 0.1 declarations of arguments 00043 ! 00044 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00045 CHARACTER(LEN=7), INTENT(IN) :: HSURF ! type of field 00046 INTEGER, INTENT(IN) :: KLUOUT ! logical unit of output listing 00047 REAL,DIMENSION(:,:), POINTER :: PFIELD ! field to interpolate horizontally 00048 ! 00049 !* 0.2 declarations of local variables 00050 ! 00051 TYPE (DATE_TIME) :: TZTIME_BUF ! current date and time 00052 CHARACTER(LEN=6) :: YINMODEL ! model from which BUFFER file originates 00053 REAL, DIMENSION(:), POINTER :: ZFIELD ! field read 00054 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00055 ! 00056 !------------------------------------------------------------------------------------- 00057 ! 00058 !* 1. Reading of grid 00059 ! --------------- 00060 ! 00061 IF (LHOOK) CALL DR_HOOK('PREP_WATFLUX_BUFFER',0,ZHOOK_HANDLE) 00062 CALL PREP_BUFFER_GRID(KLUOUT,YINMODEL,TZTIME_BUF) 00063 00064 ! 00065 !* 2. Reading of field 00066 ! ---------------- 00067 ! 00068 !-------------------- 00069 SELECT CASE(HSURF) 00070 !-------------------- 00071 ! 00072 !* 1. Orography 00073 ! --------- 00074 ! 00075 CASE('ZS ') 00076 SELECT CASE (YINMODEL) 00077 CASE ('ALADIN') 00078 CALL READ_BUFFER_ZS(KLUOUT,YINMODEL,ZFIELD) 00079 ALLOCATE(PFIELD(NNI,1)) 00080 PFIELD(:,1) = ZFIELD(:) 00081 DEALLOCATE(ZFIELD) 00082 END SELECT 00083 00084 ! 00085 !* 3. Temperature profiles 00086 ! -------------------- 00087 ! 00088 CASE('TSWATER') 00089 SELECT CASE (YINMODEL) 00090 CASE ('ALADIN') 00091 CALL READ_BUFFER_T2(KLUOUT,YINMODEL,ZFIELD) 00092 ALLOCATE(PFIELD(NNI,1)) 00093 PFIELD(:,1) = ZFIELD(:) 00094 DEALLOCATE(ZFIELD) 00095 END SELECT 00096 00097 END SELECT 00098 ! 00099 !* 4. Interpolation method 00100 ! -------------------- 00101 ! 00102 CINTERP_TYPE='BUFFER' 00103 IF (LHOOK) CALL DR_HOOK('PREP_WATFLUX_BUFFER',1,ZHOOK_HANDLE) 00104 ! 00105 ! 00106 !------------------------------------------------------------------------------------- 00107 END SUBROUTINE PREP_WATFLUX_BUFFER