SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_sson.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_SSO_n(HPROGRAM)
00003 !     ################################
00004 !
00005 !!****  *READ_SSO_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_SSO_n,     ONLY : XAVG_ZS, XSIL_ZS, XSSO_STDEV,    &
00047                                       XSSO_ANIS, XSSO_DIR, XSSO_SLOPE, &
00048                                       XMIN_ZS, XMAX_ZS,                &
00049                                       XAOSIP, XAOSIM, XAOSJP, XAOSJM,  &
00050                                       XHO2IP, XHO2IM, XHO2JP, XHO2JM  
00051 USE MODD_SURF_ATM_n    ,     ONLY : NSIZE_FULL, XSEA
00052 !
00053 !
00054 USE MODI_READ_SURF
00055 !
00056 USE MODD_SURF_PAR, ONLY : XUNDEF
00057 !
00058 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00059 USE PARKIND1  ,ONLY : JPRB
00060 !
00061 IMPLICIT NONE
00062 !
00063 !*       0.1   Declarations of arguments
00064 !              -------------------------
00065 !
00066  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
00067 !
00068 !*       0.2   Declarations of local variables
00069 !              -------------------------------
00070 !
00071 
00072 !
00073 INTEGER           :: IRESP          ! Error code after redding
00074 ! 
00075  CHARACTER(LEN=12) :: YRECFM         ! Name of the article to be read
00076 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00077 !
00078 !-------------------------------------------------------------------------------
00079 !
00080 !*       2.     Orography :
00081 !               ---------
00082 !
00083 !
00084 IF (LHOOK) CALL DR_HOOK('READ_SSO_N',0,ZHOOK_HANDLE)
00085 IF(.NOT.ASSOCIATED(XAVG_ZS)) ALLOCATE(XAVG_ZS(NSIZE_FULL))
00086 YRECFM='AVG_ZS'
00087  CALL READ_SURF(HPROGRAM,YRECFM,XAVG_ZS(:),IRESP)
00088 !
00089 IF(.NOT.ASSOCIATED(XSIL_ZS)) ALLOCATE(XSIL_ZS(NSIZE_FULL))
00090 YRECFM='SIL_ZS'
00091  CALL READ_SURF(HPROGRAM,YRECFM,XSIL_ZS(:),IRESP)
00092 !
00093 !
00094 !*       3.     Subgrid Orography :
00095 !               -----------------
00096 !
00097 !
00098 IF(.NOT.ASSOCIATED(XSSO_STDEV)) ALLOCATE(XSSO_STDEV(NSIZE_FULL))
00099 YRECFM='SSO_STDEV'
00100  CALL READ_SURF(HPROGRAM,YRECFM,XSSO_STDEV(:),IRESP)
00101 WHERE (XSEA(:) == 1.) XSSO_STDEV(:) = XUNDEF
00102 !
00103 IF(.NOT.ASSOCIATED(XMIN_ZS)) ALLOCATE(XMIN_ZS(NSIZE_FULL))
00104 YRECFM='MIN_ZS'
00105  CALL READ_SURF(HPROGRAM,YRECFM,XMIN_ZS(:),IRESP)
00106 !
00107 IF(.NOT.ASSOCIATED(XMAX_ZS)) ALLOCATE(XMAX_ZS(NSIZE_FULL))
00108 YRECFM='MAX_ZS'
00109  CALL READ_SURF(HPROGRAM,YRECFM,XMAX_ZS(:),IRESP)
00110 !
00111 IF(.NOT.ASSOCIATED(XSSO_ANIS)) ALLOCATE(XSSO_ANIS(NSIZE_FULL))
00112 YRECFM='SSO_ANIS'
00113  CALL READ_SURF(HPROGRAM,YRECFM,XSSO_ANIS(:),IRESP)
00114 WHERE (XSEA(:) == 1.) XSSO_ANIS(:) = XUNDEF
00115 !
00116 IF(.NOT.ASSOCIATED(XSSO_DIR)) ALLOCATE(XSSO_DIR(NSIZE_FULL))
00117 YRECFM='SSO_DIR'
00118  CALL READ_SURF(HPROGRAM,YRECFM,XSSO_DIR(:),IRESP)
00119 WHERE (XSEA(:) == 1.) XSSO_DIR(:) = XUNDEF
00120 !
00121 IF(.NOT.ASSOCIATED(XSSO_SLOPE)) ALLOCATE(XSSO_SLOPE(NSIZE_FULL))
00122 YRECFM='SSO_SLOPE'
00123  CALL READ_SURF(HPROGRAM,YRECFM,XSSO_SLOPE(:),IRESP)
00124 WHERE (XSEA(:) == 1.) XSSO_SLOPE(:) = XUNDEF
00125 !
00126 !-------------------------------------------------------------------------------
00127 !
00128 !*       3.     Subgrid Orography roughness:
00129 !               ---------------------------
00130 !
00131 !
00132 IF(.NOT.ASSOCIATED(XHO2IP)) ALLOCATE(XHO2IP(NSIZE_FULL))
00133 YRECFM='HO2IP'
00134  CALL READ_SURF(HPROGRAM,YRECFM,XHO2IP(:),IRESP)
00135 WHERE (XSEA(:) == 1.) XHO2IP(:) = XUNDEF
00136 !
00137 IF(.NOT.ASSOCIATED(XHO2JP)) ALLOCATE(XHO2JP(NSIZE_FULL))
00138 YRECFM='HO2JP'
00139  CALL READ_SURF(HPROGRAM,YRECFM,XHO2JP(:),IRESP)
00140 WHERE (XSEA(:) == 1.) XHO2JP(:) = XUNDEF
00141 !
00142 IF(.NOT.ASSOCIATED(XHO2IM)) ALLOCATE(XHO2IM(NSIZE_FULL))
00143 YRECFM='HO2IM'
00144  CALL READ_SURF(HPROGRAM,YRECFM,XHO2IM(:),IRESP)
00145 WHERE (XSEA(:) == 1.) XHO2IM(:) = XUNDEF
00146 !
00147 IF(.NOT.ASSOCIATED(XHO2JM)) ALLOCATE(XHO2JM(NSIZE_FULL))
00148 YRECFM='HO2JM'
00149  CALL READ_SURF(HPROGRAM,YRECFM,XHO2JM(:),IRESP)
00150 WHERE (XSEA(:) == 1.) XHO2JM(:) = XUNDEF
00151 !
00152 IF(.NOT.ASSOCIATED(XAOSIP)) ALLOCATE(XAOSIP(NSIZE_FULL))
00153 YRECFM='AOSIP'
00154  CALL READ_SURF(HPROGRAM,YRECFM,XAOSIP(:),IRESP)
00155 WHERE (XSEA(:) == 1.) XAOSIP(:) = XUNDEF
00156 !
00157 IF(.NOT.ASSOCIATED(XAOSJP)) ALLOCATE(XAOSJP(NSIZE_FULL))
00158 YRECFM='AOSJP'
00159  CALL READ_SURF(HPROGRAM,YRECFM,XAOSJP(:),IRESP)
00160 WHERE (XSEA(:) == 1.) XAOSJP(:) = XUNDEF
00161 !
00162 IF(.NOT.ASSOCIATED(XAOSIM)) ALLOCATE(XAOSIM(NSIZE_FULL))
00163 YRECFM='AOSIM'
00164  CALL READ_SURF(HPROGRAM,YRECFM,XAOSIM(:),IRESP)
00165 WHERE (XSEA(:) == 1.) XAOSIM(:) = XUNDEF
00166 !
00167 IF(.NOT.ASSOCIATED(XAOSJM)) ALLOCATE(XAOSJM(NSIZE_FULL))
00168 YRECFM='AOSJM'
00169  CALL READ_SURF(HPROGRAM,YRECFM,XAOSJM(:),IRESP)
00170 WHERE (XSEA(:) == 1.) XAOSJM(:) = XUNDEF
00171 IF (LHOOK) CALL DR_HOOK('READ_SSO_N',1,ZHOOK_HANDLE)
00172 !
00173 !
00174 !-------------------------------------------------------------------------------
00175 !
00176 END SUBROUTINE READ_SSO_n