SURFEX v8.1
General documentation of Surfex
facile.F90
Go to the documentation of this file.
1 ! Oct-2012 P. Marguinaud 64b LFI
2 ! Jan-2011 P. Marguinaud Thread-safe FA
3 SUBROUTINE facile_fort &
4 & (fa, krep, knumer, cdpref, knivau, cdsuff, &
5 & kchamp, ldcosp)
6 USE fa_mod, ONLY : fa_com, fagr1tab
7 USE parkind1, ONLY : jprb
8 USE yomhook , ONLY : lhook, dr_hook
10 IMPLICIT NONE
11 !****
12 ! Sous-programme de LECTURE d'un CHAMP HORIZONTAL sur un fichier
13 ! ARPEGE.
14 ! ( Champ d'Interet en LEcture )
15 !**
16 ! Arguments : KREP (Sortie) ==> Code-reponse du sous-programme;
17 ! KNUMER (Entree) ==> Numero de l'unite logique;
18 ! CDPREF (Entree) ==> Prefixe eventuel du nom d'article;
19 ! KNIVAU (Entree) ==> Niveau vertical eventuel;
20 ! CDSUFF (Entree) ==> Suffixe eventuel du nom d'article;
21 ! ( Tableau ) KCHAMP (Sortie) ==> Valeurs REELLES du champ lu;
22 ! LDCOSP (Entree) ==> Vrai si le champ est represente
23 ! par des coefficients spectraux.
24 ! MODIF:
25 ! JM AUDOIN GMAP/EXT 10/05/95 intro de IVALC3 pour eviter ecrasement
26 ! D PARADIS TTI/DEV 12/10/98 partie controle et decodage de l'article
27 ! demenagee dans un ss-prg a usage interne
28 ! du logiciel (FADECI).
29 ! D PARADIS DSI/DEV 15/04/04 nettoyage code + declaration IVALCO en
30 ! ALLOCATABLE
31 !
32 !
33 TYPE(fa_com) :: FA
34 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNIVAU
35 !
36 CHARACTER CDPREF*(*), CDSUFF*(*)
37 !
38 INTEGER (KIND=JPLIKB) IUNDF
39 !
40 INTEGER (KIND=JPLIKB) KCHAMP (*)
41 !
42 type(fagr1tab) ylgr1tab
43 !
44 LOGICAL LDCOSP, LLUNDF
45 
46 !**
47 ! 1. - CONTROLES ET INITIALISATIONS.
48 !-----------------------------------------------------------------------
49 !
50 REAL(KIND=JPRB) :: ZHOOK_HANDLE
51 IF (lhook) CALL dr_hook('FACILE_MT',0,zhook_handle)
52 
53 CALL facil1_fort (fa, krep, knumer, cdpref, knivau, cdsuff, kchamp, ldcosp, &
54  & llundf, iundf, ylgr1tab)
55 
56 
57 IF (lhook) CALL dr_hook('FACILE_MT',1,zhook_handle)
58 
59 END SUBROUTINE facile_fort
60 
61 ! Oct-2012 P. Marguinaud 64b LFI
62 SUBROUTINE facile64 &
63 & (krep, knumer, cdpref, knivau, cdsuff, kchamp, &
64 & ldcosp)
65 USE fa_mod, ONLY : fa => fa_com_default, &
68 USE lfi_precision
69 IMPLICIT NONE
70 ! Arguments
71 INTEGER (KIND=JPLIKB) KREP ! OUT
72 INTEGER (KIND=JPLIKB) KNUMER ! IN
73 CHARACTER (LEN=*) CDPREF ! IN
74 INTEGER (KIND=JPLIKB) KNIVAU ! IN
75 CHARACTER (LEN=*) CDSUFF ! IN
76 INTEGER (KIND=JPLIKB) KCHAMP (*) ! OUT
77 LOGICAL LDCOSP ! IN
78 
79 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
80 
81 CALL facile_fort &
82 & (fa, krep, knumer, cdpref, knivau, cdsuff, kchamp, &
83 & ldcosp)
84 
85 END SUBROUTINE facile64
86 
87 SUBROUTINE facile &
88 & (krep, knumer, cdpref, knivau, cdsuff, kchamp, &
89 & ldcosp)
90 USE fa_mod, ONLY : fa => fa_com_default, &
93 USE lfi_precision
94 IMPLICIT NONE
95 ! Arguments
96 INTEGER (KIND=JPLIKM) KREP ! OUT
97 INTEGER (KIND=JPLIKM) KNUMER ! IN
98 CHARACTER (LEN=*) CDPREF ! IN
99 INTEGER (KIND=JPLIKM) KNIVAU ! IN
100 CHARACTER (LEN=*) CDSUFF ! IN
101 INTEGER (KIND=JPLIKB) KCHAMP (*) ! OUT
102 LOGICAL LDCOSP ! IN
103 
104 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
105 
106 CALL facile_mt &
107 & (fa, krep, knumer, cdpref, knivau, cdsuff, kchamp, &
108 & ldcosp)
109 
110 END SUBROUTINE facile
111 
112 SUBROUTINE facile_mt &
113 & (fa, krep, knumer, cdpref, knivau, cdsuff, kchamp, &
114 & ldcosp)
115 USE fa_mod, ONLY : fa_com
116 USE lfi_precision
117 IMPLICIT NONE
118 ! Arguments
119 type(fa_com) fa ! INOUT
120 INTEGER (KIND=JPLIKM) KREP ! OUT
121 INTEGER (KIND=JPLIKM) KNUMER ! IN
122 CHARACTER (LEN=*) CDPREF ! IN
123 INTEGER (KIND=JPLIKM) KNIVAU ! IN
124 CHARACTER (LEN=*) CDSUFF ! IN
125 INTEGER (KIND=JPLIKB) KCHAMP (*) ! OUT
126 LOGICAL LDCOSP ! IN
127 ! Local integers
128 INTEGER (KIND=JPLIKB) IREP ! OUT
129 INTEGER (KIND=JPLIKB) INUMER ! IN
130 INTEGER (KIND=JPLIKB) INIVAU ! IN
131 ! Convert arguments
132 
133 inumer = int( knumer, jplikb)
134 inivau = int( knivau, jplikb)
135 
136 CALL facile_fort &
137 & (fa, irep, inumer, cdpref, inivau, cdsuff, kchamp, &
138 & ldcosp)
139 
140 krep = int( irep, jplikm)
141 
142 END SUBROUTINE facile_mt
143 
144 !INTF KREP OUT
145 !INTF KNUMER IN
146 !INTF CDPREF IN
147 !INTF KNIVAU IN
148 !INTF CDSUFF IN
149 !INTF KCHAMP OUT DIMS=* KIND=JPLIKB
150 !INTF LDCOSP IN
151 
integer, parameter jplikb
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine facile(KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, KCHAMP, LDCOSP)
Definition: facile.F90:90
subroutine new_fa_default()
Definition: fa_mod.F90:649
subroutine facile_fort(FA, KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, KCHAMP, LDCOSP)
Definition: facile.F90:6
Definition: fa_mod.F90:1
integer, parameter jprb
Definition: parkind1.F90:32
subroutine facile64(KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, KCHAMP, LDCOSP)
Definition: facile.F90:65
subroutine facile_mt(FA, KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, KCHAMP, LDCOSP)
Definition: facile.F90:115
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine facil1_fort(FA, KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP, LDUNDF, PUNDF, YDGR1TAB)
Definition: facil1.F90:6