SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_SEAFLUX_BUFFER(HPROGRAM,HSURF,KLUOUT,PFIELD) 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_SEAFLUX_BUFFER* - prepares SEAFLUX fields from 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 01/2004 00024 !!------------------------------------------------------------------ 00025 ! 00026 00027 ! 00028 USE MODE_READ_BUFFER 00029 ! 00030 USE MODD_TYPE_DATE_SURF 00031 ! 00032 USE MODI_PREP_BUFFER_GRID 00033 ! 00034 USE MODD_PREP, ONLY : CINTERP_TYPE 00035 USE MODD_GRID_BUFFER, ONLY : NNI 00036 ! 00037 ! 00038 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00039 USE PARKIND1 ,ONLY : JPRB 00040 ! 00041 IMPLICIT NONE 00042 ! 00043 !* 0.1 declarations of arguments 00044 ! 00045 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00046 CHARACTER(LEN=7), INTENT(IN) :: HSURF ! type of field 00047 INTEGER, INTENT(IN) :: KLUOUT ! logical unit of output listing 00048 REAL,DIMENSION(:,:), POINTER :: PFIELD ! field to prepare 00049 ! 00050 !* 0.2 declarations of local variables 00051 ! 00052 TYPE (DATE_TIME) :: TZTIME_BUF ! current date and time 00053 CHARACTER(LEN=6) :: YINMODEL ! model from which BUFFER data originate 00054 REAL, DIMENSION(:), POINTER :: ZFIELD ! field read 00055 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00056 ! 00057 !------------------------------------------------------------------------------------- 00058 ! 00059 !* 1. Reading of grid 00060 ! --------------- 00061 ! 00062 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_BUFFER',0,ZHOOK_HANDLE) 00063 CALL PREP_BUFFER_GRID(KLUOUT,YINMODEL,TZTIME_BUF) 00064 00065 ! 00066 !* 2. Reading of field 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('SST ') 00089 SELECT CASE (YINMODEL) 00090 CASE ('ALADIN') 00091 CALL READ_BUFFER_SST(KLUOUT,YINMODEL,ZFIELD) 00092 ALLOCATE(PFIELD(NNI,1)) 00093 PFIELD(:,1) = ZFIELD(:) 00094 DEALLOCATE(ZFIELD) 00095 END SELECT 00096 00097 END SELECT 00098 00099 ! 00100 !* 4. Interpolation method 00101 ! -------------------- 00102 ! 00103 CINTERP_TYPE='BUFFER' 00104 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_BUFFER',1,ZHOOK_HANDLE) 00105 ! 00106 ! 00107 !------------------------------------------------------------------------------------- 00108 END SUBROUTINE PREP_SEAFLUX_BUFFER