SURFEX v7.3
General documentation of Surfex
|
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