SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/pgd_seaflux.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE PGD_SEAFLUX(HPROGRAM)
00003 !     ##############################################################
00004 !
00005 !!**** *PGD_SEAFLUX* monitor for averaging and interpolations of SEAFLUX physiographic fields
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!    METHOD
00011 !!    ------
00012 !!   
00013 !
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!    AUTHOR
00024 !!    ------
00025 !!
00026 !!    V. Masson        Meteo-France
00027 !!
00028 !!    MODIFICATION
00029 !!    ------------
00030 !!
00031 !!    Original    03/2004
00032 !!    Lebeaupin-B C. 01/2008 : include bathymetry
00033 !!
00034 !----------------------------------------------------------------------------
00035 !
00036 !*    0.     DECLARATION
00037 !            -----------
00038 !
00039 USE MODD_PGD_GRID,       ONLY : NL
00040 USE MODD_DATA_COVER_PAR,  ONLY : JPCOVER
00041 USE MODD_SEAFLUX_n,       ONLY : XCOVER, LCOVER, XZS
00042 USE MODD_SEAFLUX_GRID_n,  ONLY : CGRID, XGRID_PAR, XLAT, XLON, XMESH_SIZE, NDIM
00043 USE MODD_DATA_SEAFLUX_n,  ONLY : LSST_DATA
00044 !
00045 USE MODI_READ_NAM_PGD_SEABATHY
00046 USE MODI_PGD_BATHYFIELD
00047 !
00048 USE MODI_GET_SURF_SIZE_n
00049 USE MODI_PACK_PGD
00050 USE MODI_PACK_PGD_SEAFLUX
00051 USE MODI_PGD_SEAFLUX_PAR
00052 !
00053 !
00054 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00055 USE PARKIND1  ,ONLY : JPRB
00056 !
00057 IMPLICIT NONE
00058 !
00059 !*    0.1    Declaration of arguments
00060 !            ------------------------
00061 !
00062  CHARACTER(LEN=6),    INTENT(IN)    :: HPROGRAM     ! Type of program
00063 !
00064 !
00065 !*    0.2    Declaration of local variables
00066 !            ------------------------------
00067 !
00068 REAL, DIMENSION(NL)               :: ZSEABATHY ! bathymetry on all surface points
00069 !
00070 !*    0.3    Declaration of namelists
00071 !            ------------------------
00072 !
00073  CHARACTER(LEN=28)        :: YSEABATHY         ! file name for bathymetrie
00074  CHARACTER(LEN=6)         :: YSEABATHYFILETYPE ! bathymetry data file type
00075  CHARACTER(LEN=28)        :: YNCVARNAME        ! variable to read in netcdf
00076                                               ! file
00077 REAL                     :: XUNIF_SEABATHY    ! uniform value of bathymetry
00078 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00079 !
00080 !
00081 !-------------------------------------------------------------------------------
00082 !
00083 !*    1.      Initializations of defaults
00084 !             ---------------------------
00085 !
00086 !-------------------------------------------------------------------------------
00087 !
00088 !*    2.      Reading of namelist
00089 !             -------------------
00090 !
00091 IF (LHOOK) CALL DR_HOOK('PGD_SEAFLUX',0,ZHOOK_HANDLE)
00092  CALL READ_NAM_PGD_SEABATHY(HPROGRAM,YSEABATHY,YSEABATHYFILETYPE,YNCVARNAME,&
00093        XUNIF_SEABATHY)  
00094 !
00095 !-------------------------------------------------------------------------------
00096 !
00097 !*    3.      Coherence of options
00098 !             --------------------
00099 !
00100 !-------------------------------------------------------------------------------
00101 !
00102 !*    4.      Bathymetry
00103 !             ----------
00104 !
00105  CALL PGD_BATHYFIELD(HPROGRAM,'bathymetry','SEA',YSEABATHY,YSEABATHYFILETYPE,&
00106        YNCVARNAME,XUNIF_SEABATHY,ZSEABATHY(:))  
00107 !-------------------------------------------------------------------------------
00108 !
00109 !*    5.      Number of points and packing
00110 !             ----------------------------
00111 !
00112  CALL GET_SURF_SIZE_n('SEA   ',NDIM)
00113 !
00114 ALLOCATE(LCOVER     (JPCOVER))
00115 ALLOCATE(XCOVER     (NDIM,JPCOVER))
00116 ALLOCATE(XZS        (NDIM))
00117 ALLOCATE(XLAT       (NDIM))
00118 ALLOCATE(XLON       (NDIM))
00119 ALLOCATE(XMESH_SIZE (NDIM))
00120 !
00121  CALL PACK_PGD(HPROGRAM, 'SEA   ',                    &
00122                 CGRID,  XGRID_PAR,                     &
00123                 LCOVER, XCOVER, XZS,                   &
00124                 XLAT, XLON, XMESH_SIZE                 )  
00125 !
00126  CALL PACK_PGD_SEAFLUX(HPROGRAM, ZSEABATHY)
00127 !
00128  CALL PGD_SEAFLUX_PAR(HPROGRAM,LSST_DATA)
00129 IF (LHOOK) CALL DR_HOOK('PGD_SEAFLUX',1,ZHOOK_HANDLE)
00130 !-------------------------------------------------------------------------------
00131 !
00132 END SUBROUTINE PGD_SEAFLUX