SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_covern.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_COVER_n(HPROGRAM)
00003 !     ################################
00004 !
00005 !!****  *READ_COVER_n* - routine to read a file for
00006 !!                         physiographic data file of model _n 
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!       The purpose of this routine is to initialise the 
00011 !!       physiographic data file.
00012 !!
00013 !!
00014 !!**  METHOD
00015 !!    ------
00016 !!      The data are read in the initial surface file :
00017 !!        - 2D physiographic data fields
00018 !!          
00019 !!      It does not read the grid definition. This should have been
00020 !!      read already.
00021 !!
00022 !!    EXTERNAL
00023 !!    --------
00024 !!      
00025 !!
00026 !!
00027 !!    IMPLICIT ARGUMENTS
00028 !!    ------------------
00029 !!
00030 !!    REFERENCE
00031 !!    ---------
00032 !!
00033 !!
00034 !!    AUTHOR
00035 !!    ------
00036 !!      V. Masson   *Meteo France*      
00037 !!
00038 !!    MODIFICATIONS
00039 !!    -------------
00040 !!      Original    01/2003
00041 !-------------------------------------------------------------------------------
00042 !
00043 !*       0.    DECLARATIONS
00044 !              ------------
00045 !
00046 USE MODD_SURF_ATM_n,     ONLY : XSEA, XWATER, XNATURE, XTOWN, &
00047                                 XCOVER, XZS, TTIME, LCOVER, NSIZE_FULL
00048 !
00049 USE MODD_DATA_COVER_PAR, ONLY : NBARE_SOIL, JPCOVER
00050 !
00051 USE MODI_READ_LCOVER
00052 USE MODI_READ_SURF
00053 USE MODI_CONVERT_COVER_FRAC
00054 !
00055 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00056 USE PARKIND1  ,ONLY : JPRB
00057 !
00058 IMPLICIT NONE
00059 !
00060 !*       0.1   Declarations of arguments
00061 !              -------------------------
00062 !
00063  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
00064 !
00065 !*       0.2   Declarations of local variables
00066 !              -------------------------------
00067 !
00068 
00069 INTEGER           :: IRESP          ! Error code after redding
00070 ! 
00071 INTEGER           :: IVERSION       ! surface version
00072 !
00073  CHARACTER(LEN=12) :: YRECFM         ! Name of the article to be read
00074 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00075 !
00076 !-------------------------------------------------------------------------------
00077 !
00078 !
00079 !*       2.     Physiographic data fields:
00080 !               -------------------------
00081 !
00082 !*       2.1    Cover classes :
00083 !               -------------
00084 !
00085 IF (LHOOK) CALL DR_HOOK('READ_COVER_N',0,ZHOOK_HANDLE)
00086 !
00087 YRECFM='VERSION'
00088  CALL READ_SURF(HPROGRAM,YRECFM,IVERSION,IRESP)
00089 !
00090 ALLOCATE(LCOVER(JPCOVER))
00091  CALL READ_LCOVER(HPROGRAM,LCOVER)
00092 !
00093 !
00094 ALLOCATE(XCOVER(NSIZE_FULL,JPCOVER))
00095  CALL READ_SURF(HPROGRAM,'COVER',XCOVER(:,:),LCOVER,IRESP)
00096 !
00097 !*       2.1    Fractions :
00098 !               ---------
00099 !
00100 ALLOCATE(XSEA   (NSIZE_FULL))
00101 ALLOCATE(XNATURE(NSIZE_FULL))
00102 ALLOCATE(XWATER (NSIZE_FULL))
00103 ALLOCATE(XTOWN  (NSIZE_FULL))
00104 !
00105 IF (IVERSION>=7) THEN
00106   !
00107   CALL READ_SURF(HPROGRAM,'FRAC_SEA   ',XSEA,   IRESP)
00108   CALL READ_SURF(HPROGRAM,'FRAC_NATURE',XNATURE,IRESP)
00109   CALL READ_SURF(HPROGRAM,'FRAC_WATER ',XWATER, IRESP)
00110   CALL READ_SURF(HPROGRAM,'FRAC_TOWN  ',XTOWN,  IRESP)
00111   !
00112 ELSE
00113   CALL CONVERT_COVER_FRAC(XCOVER,XSEA,XNATURE,XTOWN,XWATER)
00114 ENDIF
00115 !
00116 !*       2.2    Orography :
00117 !               ---------
00118 !
00119 !
00120 ALLOCATE(XZS(NSIZE_FULL))
00121 YRECFM='ZS'
00122  CALL READ_SURF(HPROGRAM,YRECFM,XZS(:),IRESP)
00123 IF (LHOOK) CALL DR_HOOK('READ_COVER_N',1,ZHOOK_HANDLE)
00124 !
00125 !
00126 !-------------------------------------------------------------------------------
00127 !
00128 END SUBROUTINE READ_COVER_n