SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_FLAKE_ASCLLV(HPROGRAM,HSURF,KLUOUT,PFIELD) 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_FLAKE_ASCLLV* - prepares FLAKE field from prescribed values 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! REFERENCE 00014 !! --------- 00015 !! 00016 !! 00017 !! AUTHOR 00018 !! ------ 00019 !! P. Le Moigne 00020 !! 00021 !! MODIFICATIONS 00022 !! ------------- 00023 !! Original 03/2007 00024 !!------------------------------------------------------------------ 00025 ! 00026 ! 00027 USE MODD_PREP, ONLY : CINTERP_TYPE 00028 USE MODD_PGD_GRID, ONLY : NL,LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR 00029 USE MODD_PGDWORK, ONLY : CATYPE 00030 USE MODD_SURF_PAR, ONLY : XUNDEF 00031 USE MODD_PREP_FLAKE, ONLY : CTYPE, CFILE_FLAKE 00032 USE MODI_PGD_FIELD 00033 USE MODI_GET_LATLONMASK_n 00034 ! 00035 ! 00036 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00037 USE PARKIND1 ,ONLY : JPRB 00038 ! 00039 USE MODI_GET_TYPE_DIM_n 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, POINTER, DIMENSION(:,:) :: PFIELD ! field to interpolate horizontally 00049 ! 00050 !* 0.2 declarations of local variables 00051 ! 00052 INTEGER :: IL 00053 ! 00054 REAL, ALLOCATABLE, DIMENSION(:) :: ZFIELD 00055 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00056 ! 00057 !------------------------------------------------------------------------------------- 00058 ! 00059 IF (LHOOK) CALL DR_HOOK('PREP_FLAKE_ASCLLV',0,ZHOOK_HANDLE) 00060 CATYPE = 'ARI' 00061 ! 00062 !* 1. get full dimension of grid 00063 ! 00064 CALL GET_TYPE_DIM_n('FULL ',NL) 00065 ! 00066 !* 2. get water dimension 00067 ! 00068 CALL GET_TYPE_DIM_n('WATER ',IL) 00069 ! 00070 ALLOCATE(ZFIELD(IL)) 00071 ! 00072 !* 3. get grid informations known over full grid 00073 ! 00074 CALL GET_LATLONMASK_n(LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR) 00075 ! 00076 ! 00077 SELECT CASE(HSURF) 00078 ! 00079 ! 00080 !* 5. surface temperature 00081 00082 CASE('TS ') 00083 00084 CALL PGD_FIELD(HPROGRAM,'TS_WATER: temperature','WAT',CFILE_FLAKE, & 00085 CTYPE,XUNDEF,ZFIELD(:)) 00086 00087 ALLOCATE(PFIELD(IL,1)) 00088 PFIELD(:,1) = ZFIELD(:) 00089 00090 END SELECT 00091 ! 00092 !* 6. Interpolation method 00093 ! -------------------- 00094 ! 00095 CINTERP_TYPE='NONE ' 00096 DEALLOCATE(ZFIELD) 00097 IF (LHOOK) CALL DR_HOOK('PREP_FLAKE_ASCLLV',1,ZHOOK_HANDLE) 00098 ! 00099 !------------------------------------------------------------------------------------- 00100 END SUBROUTINE PREP_FLAKE_ASCLLV