SURFEX v8.1
General documentation of Surfex
fmreadx2.F90
Go to the documentation of this file.
1 ! ######spl
2  SUBROUTINE fmreadx2(HFILEM,HRECFM,HFIPRI,KLENG,PFIELD,KGRID,&
3  KLENCH,HCOMMENT,KRESP)
4  USE parkind1, ONLY : jprb
5  USE yomhook , ONLY : lhook, dr_hook
6 ! #############################################################
7 !
8 !!**** *FMREADX2* - routine to read a real 2D array into a "FM"-file
9 !!
10 !! PURPOSE
11 !! -------
12 !
13 ! The purpose of FMREADX0 is to convert the real into integer(kind=8)
14 ! by calling FM_READ without interface module
15 !
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !! FM_READ
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !!
28 !! REFERENCE
29 !! ---------
30 !!
31 !!
32 !! AUTHOR
33 !! ------
34 !!
35 !! V. MASSON *METEO-FRANCE*
36 !!
37 !! MODIFICATIONS
38 !! -------------
39 !!
40 !! original 06/08/97
41 !! Modification 15/10/97 (V.Masson) 1D and 2D cases
42 !----------------------------------------------------------------------------
43 !
44 !* 0. DECLARATIONS
45 ! ------------
46 !
47 USE modd_fmdeclar
48 IMPLICIT NONE
49 !
50 !* 0.1 Declarations of arguments
51 !
52 CHARACTER(LEN=*) ,INTENT(IN) ::HFILEM ! file name
53 CHARACTER(LEN=*) ,INTENT(IN) ::HRECFM ! name of the article to be written
54 
55 CHARACTER(LEN=*) ,INTENT(IN) ::HFIPRI ! file for prints in FM
56 
57 INTEGER, INTENT(IN) ::KLENG ! length of the data field
58 REAL, DIMENSION(:,:), &
59  INTENT(OUT)::PFIELD ! array containing the data field
60 INTEGER, INTENT(OUT)::KGRID ! C-grid indicator (u,v,w,T)
61 INTEGER, INTENT(OUT)::KLENCH ! length of comment string
62 
63 CHARACTER(LEN=*) ,INTENT(OUT)::HCOMMENT ! comment string
64 
65 INTEGER, INTENT(OUT)::KRESP ! return-code if problems araised
66 !
67 !* 0.2 Declarations of local variables
68 !
69 CHARACTER(LEN=JPXKRK) ::YCOMMENT
70 INTEGER :: ILENG
71 REAL(KIND=8),DIMENSION(SIZE(PFIELD,1),SIZE(PFIELD,2)) :: ZFIELD
72 !-------------------------------------------------------------------------------
73 REAL(KIND=JPRB) :: ZHOOK_HANDLE
74 IF (lhook) CALL dr_hook('FMREADX2',0,zhook_handle)
75 ileng=SIZE(pfield)
76 CALL FM_READ(HFILEM,HRECFM,HFIPRI,ILENG,ZFIELD,KGRID,KLENCH,YCOMMENT,KRESP)
77 IF(kresp==0) pfield = zfield
78 IF(kresp==0) hcomment = ycomment
79 !-------------------------------------------------------------------------------
80 IF (lhook) CALL dr_hook('FMREADX2',1,zhook_handle)
81 END SUBROUTINE fmreadx2
integer, parameter jprb
Definition: parkind1.F90:32
subroutine fmreadx2(HFILEM, HRECFM, HFIPRI, KLENG, PFIELD, KGRID, KLENCH, HCOMMENT, KRESP)
Definition: fmreadx2.F90:4
logical lhook
Definition: yomhook.F90:15