SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_SEAFLUX_NETCDF(HPROGRAM,HSURF,HFILE,KLUOUT,PFIELD) 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_SEAFLUX_NETCDF* - prepares SEAFLUX fields from oceanic analyses in NETCDF 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! REFERENCE 00014 !! --------- 00015 !! 00016 !! 00017 !! AUTHOR 00018 !! ------ 00019 !! C. Lebeaupin Brossier 00020 !! 00021 !! MODIFICATIONS 00022 !! ------------- 00023 !! Original 01/2008 00024 !!------------------------------------------------------------------ 00025 ! 00026 USE MODE_READ_NETCDF_MERCATOR 00027 ! 00028 !USE MODD_TYPE_DATE_SURF 00029 ! 00030 USE MODD_PREP, ONLY : CINGRID_TYPE 00031 USE MODD_GRID_LATLONREGUL, ONLY : NILENGTH 00032 ! 00033 ! 00034 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00035 USE PARKIND1 ,ONLY : JPRB 00036 ! 00037 IMPLICIT NONE 00038 ! 00039 !* 0.1 declarations of arguments 00040 ! 00041 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00042 CHARACTER(LEN=7), INTENT(IN) :: HSURF ! type of field 00043 CHARACTER(LEN=28), INTENT(IN) :: HFILE ! name of file 00044 INTEGER, INTENT(IN) :: KLUOUT ! logical unit of output listing 00045 REAL,DIMENSION(:,:), POINTER :: PFIELD ! field to interpolate horizontally 00046 ! 00047 !* 0.2 declarations of local variables 00048 ! 00049 !TYPE (DATE_TIME) :: TZTIME_GRIB ! current date and time 00050 !CHARACTER(LEN=6) :: YINMODEL ! model from which GRIB file originates 00051 REAL, DIMENSION(:), POINTER :: ZFIELD ! field read 00052 CHARACTER(LEN=28) :: YNCVAR 00053 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00054 ! 00055 !------------------------------------------------------------------------------------- 00056 ! 00057 !* 1. Grid type 00058 ! --------- 00059 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_NETCDF',0,ZHOOK_HANDLE) 00060 CINGRID_TYPE='LATLON ' 00061 ! 00062 !* 2. Reading of field 00063 ! ---------------- 00064 !----------------- 00065 SELECT CASE(HSURF) 00066 !----------------- 00067 ! 00068 !* 2.1 Orography 00069 ! --------- 00070 ! 00071 CASE('ZS ') 00072 YNCVAR='topo' 00073 CALL PREP_NETCDF_GRID(HFILE,YNCVAR) 00074 CALL READ_NETCDF_ZS_SEA(HFILE,YNCVAR,ZFIELD) 00075 ALLOCATE(PFIELD(MAX(1,NILENGTH),1)) 00076 PFIELD(:,1) = ZFIELD(:) 00077 DEALLOCATE(ZFIELD) 00078 ! 00079 ! 00080 !* 2.2 Temperature profiles 00081 ! -------------------- 00082 ! 00083 CASE('SST ') 00084 YNCVAR='temperature' 00085 CALL PREP_NETCDF_GRID(HFILE,YNCVAR) 00086 CALL READ_NETCDF_SST(HFILE,YNCVAR,ZFIELD) 00087 ALLOCATE(PFIELD(MAX(1,NILENGTH),1)) 00088 PFIELD(:,1) = ZFIELD(:) 00089 DEALLOCATE(ZFIELD) 00090 ! 00091 END SELECT 00092 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_NETCDF',1,ZHOOK_HANDLE) 00093 !------------------------------------------------------------------------------------- 00094 END SUBROUTINE PREP_SEAFLUX_NETCDF