SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
ol_find_file_write.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE ol_find_file_write(HNAME,IFILE_ID)
7 ! ###############################
8 !
9 !!**** *OL_FIND_FILE
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !!** METHOD
15 !! ------
16 !!
17 !! EXTERNAL
18 !! --------
19 !!
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !!
28 !! AUTHOR
29 !! ------
30 !! F. Habets *Meteo France*
31 !!
32 !! MODIFICATIONS
33 !! -------------
34 !! Original 07-03
35 !-------------------------------------------------------------------------------
36 !
37 !* 0. DECLARATIONS
38 ! ------------
39 
40 USE modd_ol_fileid, ONLY : xvar_surf, xvar_nature, xvar_sea, xvar_water, xvar_town, &
41  xid_surf, xid_nature, xid_sea, xid_water, xid_town
42 
43 !
44 USE yomhook ,ONLY : lhook, dr_hook
45 USE parkind1 ,ONLY : jprb
46 !
47 IMPLICIT NONE
48 include "netcdf.inc"
49 
50 
51 !
52  CHARACTER(LEN=*), INTENT(IN) :: hname
53 INTEGER, INTENT(OUT):: ifile_id
54  CHARACTER(LEN=100) :: hname_pas
55 REAL(KIND=JPRB) :: zhook_handle
56 
57 !******************************************
58 IF (lhook) CALL dr_hook('OL_FIND_FILE_WRITE',0,zhook_handle)
59 hname_pas=hname(:len_trim(hname))
60 
61 ifile_id=0
62 
63 IF (ASSOCIATED(xvar_surf)) CALL search_var(xvar_surf,xid_surf,hname_pas,ifile_id)
64 IF (ifile_id==0 .AND. ASSOCIATED(xvar_nature)) CALL search_var(xvar_nature,xid_nature,hname_pas,ifile_id)
65 IF (ifile_id==0 .AND. ASSOCIATED(xvar_sea)) CALL search_var(xvar_sea,xid_sea,hname_pas,ifile_id)
66 IF (ifile_id==0 .AND. ASSOCIATED(xvar_water)) CALL search_var(xvar_water,xid_water,hname_pas,ifile_id)
67 IF (ifile_id==0 .AND. ASSOCIATED(xvar_town)) CALL search_var(xvar_town,xid_town,hname_pas,ifile_id)
68 
69 !------------------------------------------------
70 
71 IF (lhook) CALL dr_hook('OL_FIND_FILE_WRITE',1,zhook_handle)
72  CONTAINS
73 
74 !------------------------------------------------
75 
76 SUBROUTINE search_var(HVAR,NVAR,HNAM,IFILEID)
77 
78 IMPLICIT NONE
79 
80  CHARACTER(LEN=20),DIMENSION(:), INTENT(IN):: hvar
81 INTEGER, DIMENSION(:), INTENT(IN):: nvar
82  CHARACTER(LEN=*), INTENT(IN) :: hnam
83 INTEGER, INTENT(OUT) :: ifileid
84 INTEGER :: jvar
85 REAL(KIND=JPRB) :: zhook_handle
86 
87 IF (lhook) CALL dr_hook('SEARCH_VAR',0,zhook_handle)
88 ifileid=0
89 
90 DO jvar=1,SIZE(hvar)
91  IF (hnam==trim(hvar(jvar))) THEN
92  ifileid=nvar(jvar)
93  EXIT
94  ENDIF
95 ENDDO
96 IF (lhook) CALL dr_hook('SEARCH_VAR',1,zhook_handle)
97 
98 END SUBROUTINE search_var
99 
100 !------------------------------------------------
101 END SUBROUTINE ol_find_file_write
subroutine ol_find_file_write(HNAME, IFILE_ID)
subroutine search_var(HVAR, NVAR, HNAM, IFILEID)