SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_pgd_seafluxn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_PGD_SEAFLUX_n(HPROGRAM)
00003 !     #########################################
00004 !
00005 !!****  *READ_PGD_SEAFLUX_n* - routine to read SEAFLUX physiographic fields
00006 !!
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!**  METHOD
00012 !!    ------
00013 !!
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!
00021 !!    REFERENCE
00022 !!    ---------
00023 !!
00024 !!
00025 !!    AUTHOR
00026 !!    ------
00027 !!      V. Masson   *Meteo France*      
00028 !!
00029 !!    MODIFICATIONS
00030 !!    -------------
00031 !!      Original    01/2003 
00032 !-------------------------------------------------------------------------------
00033 !
00034 !*       0.    DECLARATIONS
00035 !              ------------
00036 !
00037 USE MODD_TYPE_DATE_SURF
00038 !
00039 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
00040 USE MODD_SEAFLUX_n,      ONLY : XCOVER, XZS, XSEABATHY, TTIME, LCOVER
00041 USE MODD_SEAFLUX_GRID_n, ONLY : XLAT, XLON, XMESH_SIZE, CGRID, XGRID_PAR, NDIM
00042 USE MODD_DATA_SEAFLUX_n, ONLY : LSST_DATA
00043 !
00044 !
00045 USE MODI_READ_SURF
00046 USE MODI_READ_GRID
00047 USE MODI_READ_LCOVER
00048 USE MODI_READ_PGD_SEAFLUX_PAR_n
00049 !
00050 !
00051 !
00052 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00053 USE PARKIND1  ,ONLY : JPRB
00054 !
00055 USE MODI_GET_TYPE_DIM_n
00056 !
00057 IMPLICIT NONE
00058 !
00059 !*       0.1   Declarations of arguments
00060 !              -------------------------
00061 !
00062  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
00063 !
00064 !*       0.2   Declarations of local variables
00065 !              -------------------------------
00066 !
00067 INTEGER           :: IRESP          ! Error code after redding
00068 !
00069  CHARACTER(LEN=12) :: YRECFM         ! Name of the article to be read
00070 !
00071 INTEGER           :: IVERSION   ! surface version
00072 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00073 !
00074 !-------------------------------------------------------------------------------
00075 !
00076 !* 1D physical dimension
00077 !
00078 IF (LHOOK) CALL DR_HOOK('READ_PGD_SEAFLUX_N',0,ZHOOK_HANDLE)
00079 YRECFM='SIZE_SEA'
00080  CALL GET_TYPE_DIM_n('SEA   ',NDIM)
00081 !
00082 !
00083 !*       2.     Physiographic data fields:
00084 !               -------------------------
00085 !
00086 !* cover classes
00087 !
00088 ALLOCATE(LCOVER(JPCOVER))
00089  CALL READ_LCOVER(HPROGRAM,LCOVER)
00090 !
00091 ALLOCATE(XCOVER(NDIM,JPCOVER))
00092  CALL READ_SURF(HPROGRAM,'COVER',XCOVER(:,:),LCOVER,IRESP)
00093 !
00094 !* orography
00095 !
00096 ALLOCATE(XZS(NDIM))
00097 XZS(:) = 0.
00098 !
00099 YRECFM='VERSION'
00100  CALL READ_SURF(HPROGRAM,YRECFM,IVERSION,IRESP)
00101 !
00102 !* bathymetry
00103 !
00104 ALLOCATE(XSEABATHY(NDIM))
00105 IF (IVERSION<=3) THEN
00106   XSEABATHY(:) = 300.
00107 ELSE
00108   YRECFM='BATHY'
00109   CALL READ_SURF(HPROGRAM,YRECFM,XSEABATHY(:),IRESP)
00110 END IF
00111 !
00112 !* latitude, longitude 
00113 !
00114 ALLOCATE(XLAT      (NDIM))
00115 ALLOCATE(XLON      (NDIM))
00116 ALLOCATE(XMESH_SIZE(NDIM))
00117  CALL READ_GRID(HPROGRAM,CGRID,XGRID_PAR,XLAT,XLON,XMESH_SIZE,IRESP)
00118 !
00119 !
00120 !* sst
00121 !
00122 !
00123 IF (IVERSION<3) THEN
00124   LSST_DATA = .FALSE.
00125 ELSE
00126   YRECFM='SST_DATA'
00127   CALL READ_SURF(HPROGRAM,YRECFM,LSST_DATA,IRESP)
00128 END IF
00129 !
00130 IF (LSST_DATA) CALL READ_PGD_SEAFLUX_PAR_n(HPROGRAM,NDIM)
00131 IF (LHOOK) CALL DR_HOOK('READ_PGD_SEAFLUX_N',1,ZHOOK_HANDLE)
00132 !
00133 !------------------------------------------------------------------------------!
00134 END SUBROUTINE READ_PGD_SEAFLUX_n