SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_buffer.F90
Go to the documentation of this file.
00001 !     #######################
00002       MODULE MODI_READ_BUFFER
00003 !     #######################
00004 INTERFACE READ_BUFFER
00005 !
00006       SUBROUTINE READ_BUFX1(HNAME,PFIELD,KRET)
00007  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00008 REAL, DIMENSION(:),           INTENT(OUT)  :: PFIELD ! array containing the data field
00009 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00010 !
00011 END SUBROUTINE READ_BUFX1
00012 !
00013       SUBROUTINE READ_BUFX0(HNAME,PFIELD,KRET)
00014  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00015 REAL,                         INTENT(OUT)  :: PFIELD ! array containing the data field
00016 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00017 !
00018 END SUBROUTINE READ_BUFX0
00019 !
00020       SUBROUTINE READ_BUFN0(HNAME,KFIELD,KRET)
00021  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00022 INTEGER,                      INTENT(OUT)  :: KFIELD ! array containing the data field
00023 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00024 !
00025 END SUBROUTINE READ_BUFN0
00026 !
00027       SUBROUTINE READ_BUFN1(HNAME,KFIELD,KRET)
00028  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00029 INTEGER, DIMENSION(:),        INTENT(OUT)  :: KFIELD ! array containing the data field
00030 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00031 !
00032 END SUBROUTINE READ_BUFN1
00033 !
00034       SUBROUTINE READ_BUFC0(HNAME,HFIELD,KRET)
00035  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME     ! name of field
00036  CHARACTER(LEN=*),             INTENT(OUT)  :: HFIELD    ! array containing the data field
00037 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00038 !
00039 END SUBROUTINE READ_BUFC0
00040 !
00041 END INTERFACE
00042 END MODULE MODI_READ_BUFFER
00043 !     #######################################################
00044  SUBROUTINE READ_BUFC0(HNAME,HFIELD,KRET)
00045 !     #######################################################
00046 !
00047 !!****  *READ_BUFC0* - routine to read a character (LEN=6) in a buffer from SURFEX
00048 !!
00049 !!    PURPOSE
00050 !!    -------
00051 !!
00052 !!**  METHOD
00053 !!    ------
00054 !!
00055 !!    EXTERNAL
00056 !!    --------
00057 !!
00058 !!
00059 !!    IMPLICIT ARGUMENTS
00060 !!    ------------------
00061 !!
00062 !!    REFERENCE
00063 !!    ---------
00064 !!
00065 !!
00066 !!    AUTHOR
00067 !!    ------
00068 !!      S.Malardel   *Meteo France*     
00069 !!
00070 !!    MODIFICATIONS
00071 !!    -------------
00072 !!      Original    03/2005 
00073 !-------------------------------------------------------------------------------
00074 !
00075 !*       0.    DECLARATIONS
00076 !              ------------
00077 !
00078 !
00079 USE MODI_GET_LUOUT
00080 !
00081 !
00082 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00083 USE PARKIND1  ,ONLY : JPRB
00084 !
00085 IMPLICIT NONE
00086 !
00087 !*       0.1   Declarations of arguments
00088 !              -------------------------
00089 !
00090  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME     ! name of field
00091  CHARACTER(LEN=*),             INTENT(OUT)  :: HFIELD    ! array containing the data field
00092 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00093 !
00094 !
00095 !*       0.2   Declarations of local variables
00096 !              -------------------------------
00097 !
00098 INTEGER                                    :: ILUOUT ! Listing file number
00099 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00100 !
00101 !-------------------------------------------------------------------------------
00102 !
00103 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFC0',0,ZHOOK_HANDLE)
00104  CALL GET_LUOUT('AROME ',ILUOUT)
00105 !
00106 #ifdef ARO
00107  CALL GET_BUFC0(HNAME,HFIELD,LEN(HFIELD),KRET)
00108 #endif
00109 !
00110 IF (KRET /=0) THEN
00111   WRITE(ILUOUT,*) ' '
00112   WRITE(ILUOUT,*) 'ERROR'
00113   WRITE(ILUOUT,*) '-------'
00114   WRITE(ILUOUT,*) ' '
00115   WRITE(ILUOUT,*) 'error when de-burrering article', HNAME,' KRET=',KRET
00116   WRITE(ILUOUT,*) ' '
00117 ENDIF
00118 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFC0',1,ZHOOK_HANDLE)
00119 !
00120 END SUBROUTINE READ_BUFC0
00121 !     #######################################################
00122  SUBROUTINE READ_BUFN0(HNAME,KFIELD,KRET)
00123 !     #######################################################
00124 !
00125 !!****  *READ_BUFN0* - routine to read an integer in a buffer from SURFEX
00126 !!
00127 !!    PURPOSE
00128 !!    -------
00129 !!
00130 !!**  METHOD
00131 !!    ------
00132 !!
00133 !!    EXTERNAL
00134 !!    --------
00135 !!
00136 !!
00137 !!    IMPLICIT ARGUMENTS
00138 !!    ------------------
00139 !!
00140 !!    REFERENCE
00141 !!    ---------
00142 !!
00143 !!
00144 !!    AUTHOR
00145 !!    ------
00146 !!      S.Malardel   *Meteo France*     
00147 !!
00148 !!    MODIFICATIONS
00149 !!    -------------
00150 !!      Original    03/2005 
00151 !-------------------------------------------------------------------------------
00152 !
00153 !*       0.    DECLARATIONS
00154 !              ------------
00155 !
00156 !
00157 USE MODI_GET_LUOUT
00158 !
00159 !
00160 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00161 USE PARKIND1  ,ONLY : JPRB
00162 !
00163 IMPLICIT NONE
00164 !
00165 !*       0.1   Declarations of arguments
00166 !              -------------------------
00167 !
00168  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00169 INTEGER,                      INTENT(OUT)  :: KFIELD ! array containing the data field
00170 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00171 !
00172 !
00173 !*       0.2   Declarations of local variables
00174 !              -------------------------------
00175 !
00176 INTEGER                                    :: ILUOUT ! Listing file number
00177 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00178 !
00179 !-------------------------------------------------------------------------------
00180 !
00181 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFN0',0,ZHOOK_HANDLE)
00182  CALL GET_LUOUT('AROME ',ILUOUT)
00183 !
00184 #ifdef ARO
00185  CALL GET_BUFN0(HNAME,KFIELD,KRET)
00186 #endif
00187 !
00188 IF (KRET /=0) THEN
00189   WRITE(ILUOUT,*) ' '
00190   WRITE(ILUOUT,*) 'ERROR'
00191   WRITE(ILUOUT,*) '-------'
00192   WRITE(ILUOUT,*) ' '
00193   WRITE(ILUOUT,*) 'error when de-burrering article', HNAME,' KRET=',KRET
00194   WRITE(ILUOUT,*) ' '
00195 ENDIF
00196 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFN0',1,ZHOOK_HANDLE)
00197 !
00198 END SUBROUTINE READ_BUFN0
00199 !     #######################################################
00200  SUBROUTINE READ_BUFN1(HNAME,KFIELD,KRET)
00201 !     #######################################################
00202 !
00203 !!****  *READ_BUFN1* - routine to read a 1D integer array in a buffer from SURFEX
00204 !!
00205 !!    PURPOSE
00206 !!    -------
00207 !!
00208 !!**  METHOD
00209 !!    ------
00210 !!
00211 !!    EXTERNAL
00212 !!    --------
00213 !!
00214 !!
00215 !!    IMPLICIT ARGUMENTS
00216 !!    ------------------
00217 !!
00218 !!    REFERENCE
00219 !!    ---------
00220 !!
00221 !!
00222 !!    AUTHOR
00223 !!    ------
00224 !!      S.Malardel   *Meteo France*     
00225 !!
00226 !!    MODIFICATIONS
00227 !!    -------------
00228 !!      Original    03/2005 
00229 !-------------------------------------------------------------------------------
00230 !
00231 !*       0.    DECLARATIONS
00232 !              ------------
00233 !
00234 !
00235 USE MODI_GET_LUOUT
00236 !
00237 !
00238 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00239 USE PARKIND1  ,ONLY : JPRB
00240 !
00241 IMPLICIT NONE
00242 !
00243 !*       0.1   Declarations of arguments
00244 !              -------------------------
00245 !
00246  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00247 INTEGER, DIMENSION(:),        INTENT(OUT)  :: KFIELD ! array containing the data field
00248 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00249 !
00250 !
00251 !*       0.2   Declarations of local variables
00252 !              -------------------------------
00253 !
00254 INTEGER                                    :: ILUOUT ! Listing file number
00255 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00256 !
00257 !-------------------------------------------------------------------------------
00258 !
00259 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFN1',0,ZHOOK_HANDLE)
00260  CALL GET_LUOUT('AROME ',ILUOUT)
00261 !
00262 #ifdef ARO
00263  CALL GET_BUFN1(HNAME,SIZE(KFIELD),KFIELD,KRET)
00264 #endif
00265 !
00266 IF (KRET /=0) THEN
00267   WRITE(ILUOUT,*) ' '
00268   WRITE(ILUOUT,*) 'ERROR'
00269   WRITE(ILUOUT,*) '-------'
00270   WRITE(ILUOUT,*) ' '
00271   WRITE(ILUOUT,*) 'error when de-burrering article', HNAME,' KRET=',KRET
00272   WRITE(ILUOUT,*) ' '
00273 ENDIF
00274 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFN1',1,ZHOOK_HANDLE)
00275 !
00276 END SUBROUTINE READ_BUFN1
00277 !     #######################################################
00278  SUBROUTINE READ_BUFX0(HNAME,PFIELD,KRET)
00279 !     #######################################################
00280 !
00281 !!****  *READ_BUFX0* - routine to read a real in a buffer from SURFEX
00282 !!
00283 !!    PURPOSE
00284 !!    -------
00285 !!
00286 !!**  METHOD
00287 !!    ------
00288 !!
00289 !!    EXTERNAL
00290 !!    --------
00291 !!
00292 !!
00293 !!    IMPLICIT ARGUMENTS
00294 !!    ------------------
00295 !!
00296 !!    REFERENCE
00297 !!    ---------
00298 !!
00299 !!
00300 !!    AUTHOR
00301 !!    ------
00302 !!      S.Malardel   *Meteo France*     
00303 !!
00304 !!    MODIFICATIONS
00305 !!    -------------
00306 !!      Original    03/2005 
00307 !-------------------------------------------------------------------------------
00308 !
00309 !*       0.    DECLARATIONS
00310 !              ------------
00311 !
00312 !
00313 USE MODI_GET_LUOUT
00314 !
00315 !
00316 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00317 USE PARKIND1  ,ONLY : JPRB
00318 !
00319 IMPLICIT NONE
00320 !
00321 !*       0.1   Declarations of arguments
00322 !              -------------------------
00323 !
00324  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00325 REAL,                         INTENT(OUT)  :: PFIELD ! array containing the data field
00326 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00327 !
00328 !
00329 !*       0.2   Declarations of local variables
00330 !              -------------------------------
00331 !
00332 INTEGER                                    :: ILUOUT ! Listing file number
00333 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00334 !
00335 !-------------------------------------------------------------------------------
00336 !
00337 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFX0',0,ZHOOK_HANDLE)
00338  CALL GET_LUOUT('AROME ',ILUOUT)
00339 !
00340 #ifdef ARO
00341  CALL GET_BUFX0(HNAME,PFIELD,KRET)
00342 #endif
00343 !
00344 IF (KRET /=0) THEN
00345   WRITE(ILUOUT,*) ' '
00346   WRITE(ILUOUT,*) 'ERROR'
00347   WRITE(ILUOUT,*) '-------'
00348   WRITE(ILUOUT,*) ' '
00349   WRITE(ILUOUT,*) 'error when de-burrering article', HNAME,' KRET=',KRET
00350   WRITE(ILUOUT,*) ' '
00351 ENDIF
00352 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFX0',1,ZHOOK_HANDLE)
00353 !
00354 END SUBROUTINE READ_BUFX0
00355 !     #######################################################
00356  SUBROUTINE READ_BUFX1(HNAME,PFIELD,KRET)
00357 !     #######################################################
00358 !
00359 !!****  *READ_BUFX1* - routine to read a 1D real array in a buffer from SURFEX
00360 !!
00361 !!    PURPOSE
00362 !!    -------
00363 !!
00364 !!**  METHOD
00365 !!    ------
00366 !!
00367 !!    EXTERNAL
00368 !!    --------
00369 !!
00370 !!
00371 !!    IMPLICIT ARGUMENTS
00372 !!    ------------------
00373 !!
00374 !!    REFERENCE
00375 !!    ---------
00376 !!
00377 !!
00378 !!    AUTHOR
00379 !!    ------
00380 !!      S.Malardel   *Meteo France*     
00381 !!
00382 !!    MODIFICATIONS
00383 !!    -------------
00384 !!      Original    03/2005 
00385 !-------------------------------------------------------------------------------
00386 !
00387 !*       0.    DECLARATIONS
00388 !              ------------
00389 !
00390 !
00391 USE MODI_GET_LUOUT
00392 !
00393 !
00394 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00395 USE PARKIND1  ,ONLY : JPRB
00396 !
00397 IMPLICIT NONE
00398 !
00399 !*       0.1   Declarations of arguments
00400 !              -------------------------
00401 !
00402  CHARACTER(LEN=*),             INTENT(IN)   :: HNAME        ! name of field
00403 REAL, DIMENSION(:),           INTENT(OUT)  :: PFIELD ! array containing the data field
00404 INTEGER,                      INTENT(OUT)  :: KRET      !  error code
00405 !
00406 !
00407 !*       0.2   Declarations of local variables
00408 !              -------------------------------
00409 !
00410 INTEGER                                    :: ILUOUT ! Listing file number
00411 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00412 !
00413 !-------------------------------------------------------------------------------
00414 !
00415 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFX1',0,ZHOOK_HANDLE)
00416  CALL GET_LUOUT('AROME ',ILUOUT)
00417 !
00418 #ifdef ARO
00419  CALL GET_BUFX1(HNAME,SIZE(PFIELD),PFIELD,KRET)
00420 #endif
00421 !
00422 IF (KRET /=0) THEN
00423   WRITE(ILUOUT,*) ' '
00424   WRITE(ILUOUT,*) 'ERROR'
00425   WRITE(ILUOUT,*) '-------'
00426   WRITE(ILUOUT,*) ' '
00427   WRITE(ILUOUT,*) 'error when de-burrering article', HNAME,' KRET=',KRET
00428   WRITE(ILUOUT,*) ' '
00429 ENDIF
00430 IF (LHOOK) CALL DR_HOOK('MODI_READ_BUFFER:READ_BUFX1',1,ZHOOK_HANDLE)
00431 !
00432 END SUBROUTINE READ_BUFX1