SURFEX v8.1
General documentation of Surfex
faienc.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 faienc_fort &
4 & (fa, krep, knumer, cdpref, knivau, cdsuff, &
5 & pchamp, 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 d'ECRITURE d'un CHAMP HORIZONTAL sur un fichier
13 ! ARPEGE.
14 ! ( Integration par Ecriture d'un (Nouveau ?) Champ )
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 ) PCHAMP (Entree) ==> Valeurs REELLES du champ a ecrire;
22 ! LDCOSP (Entree) ==> Vrai si le champ est represente
23 ! par des coefficients spectraux.
24 !
25 ! Modifications
26 ! -------------
27 !
28 ! Avril 1998: Partie "codage" (paragraphe 3 du sous-programme)
29 ! demenagee dans un sous-programme a usage interne au
30 ! logiciel (FACINE). Le but est de pouvoir, sur machine
31 ! a memoire distribuee, separer codage (via FACOND) et
32 ! ecriture (via FAISAN) afin de paralleliser le codage.
33 !
34 ! Avril 2004, D. Paradis, DSI/DEV:
35 !
36 ! -Declaration IVALCO en ALLOCATABLE (gain memoire)
37 !
38 !
39 !
40 TYPE(fa_com) :: FA
41 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNIVAU
42 !
43 REAL (KIND=JPDBLR) PCHAMP (*), ZUNDF
44 !
45 CHARACTER CDPREF*(*), CDSUFF*(*)
46 !
47 LOGICAL LDCOSP, LLUNDF
48 type(fagr1tab) ylgr1tab
49 !
50 REAL(KIND=JPRB) :: ZHOOK_HANDLE
51 IF (lhook) CALL dr_hook('FAIENC_MT',0,zhook_handle)
52 
53 llundf = .false.
54 zundf = 0._jpdblr
55 
56 CALL faien1_fort (fa, krep, knumer, cdpref, knivau, cdsuff, &
57  & pchamp, ldcosp, llundf, zundf, ylgr1tab)
58 
59 IF (lhook) CALL dr_hook('FAIENC_MT',1,zhook_handle)
60 
61 END SUBROUTINE faienc_fort
62 
63 ! Oct-2012 P. Marguinaud 64b LFI
64 SUBROUTINE faienc64 &
65 & (krep, knumer, cdpref, knivau, cdsuff, pchamp, &
66 & ldcosp)
67 USE fa_mod, ONLY : fa => fa_com_default, &
70 USE lfi_precision
71 IMPLICIT NONE
72 ! Arguments
73 INTEGER (KIND=JPLIKB) KREP ! OUT
74 INTEGER (KIND=JPLIKB) KNUMER ! IN
75 CHARACTER (LEN=*) CDPREF ! IN
76 INTEGER (KIND=JPLIKB) KNIVAU ! IN
77 CHARACTER (LEN=*) CDSUFF ! IN
78 REAL (KIND=JPDBLR) PCHAMP (*) ! IN
79 LOGICAL LDCOSP ! IN
80 
81 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
82 
83 CALL faienc_fort &
84 & (fa, krep, knumer, cdpref, knivau, cdsuff, pchamp, &
85 & ldcosp)
86 
87 END SUBROUTINE faienc64
88 
89 SUBROUTINE faienc &
90 & (krep, knumer, cdpref, knivau, cdsuff, pchamp, &
91 & ldcosp)
92 USE fa_mod, ONLY : fa => fa_com_default, &
95 USE lfi_precision
96 IMPLICIT NONE
97 ! Arguments
98 INTEGER (KIND=JPLIKM) KREP ! OUT
99 INTEGER (KIND=JPLIKM) KNUMER ! IN
100 CHARACTER (LEN=*) CDPREF ! IN
101 INTEGER (KIND=JPLIKM) KNIVAU ! IN
102 CHARACTER (LEN=*) CDSUFF ! IN
103 REAL (KIND=JPDBLR) PCHAMP (*) ! IN
104 LOGICAL LDCOSP ! IN
105 
106 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
107 
108 CALL faienc_mt &
109 & (fa, krep, knumer, cdpref, knivau, cdsuff, pchamp, &
110 & ldcosp)
111 
112 END SUBROUTINE faienc
113 
114 SUBROUTINE faienc_mt &
115 & (fa, krep, knumer, cdpref, knivau, cdsuff, pchamp, &
116 & ldcosp)
117 USE fa_mod, ONLY : fa_com
118 USE lfi_precision
119 IMPLICIT NONE
120 ! Arguments
121 type(fa_com) fa ! INOUT
122 INTEGER (KIND=JPLIKM) KREP ! OUT
123 INTEGER (KIND=JPLIKM) KNUMER ! IN
124 CHARACTER (LEN=*) CDPREF ! IN
125 INTEGER (KIND=JPLIKM) KNIVAU ! IN
126 CHARACTER (LEN=*) CDSUFF ! IN
127 REAL (KIND=JPDBLR) PCHAMP (*) ! IN
128 LOGICAL LDCOSP ! IN
129 ! Local integers
130 INTEGER (KIND=JPLIKB) IREP ! OUT
131 INTEGER (KIND=JPLIKB) INUMER ! IN
132 INTEGER (KIND=JPLIKB) INIVAU ! IN
133 ! Convert arguments
134 
135 inumer = int( knumer, jplikb)
136 inivau = int( knivau, jplikb)
137 
138 CALL faienc_fort &
139 & (fa, irep, inumer, cdpref, inivau, cdsuff, pchamp, &
140 & ldcosp)
141 
142 krep = int( irep, jplikm)
143 
144 END SUBROUTINE faienc_mt
145 
146 !INTF KREP OUT
147 !INTF KNUMER IN
148 !INTF CDPREF IN
149 !INTF KNIVAU IN
150 !INTF CDSUFF IN
151 !INTF PCHAMP IN DIMS=*
152 !INTF LDCOSP IN
153 
154 
subroutine faienc(KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP)
Definition: faienc.F90:92
integer, parameter jplikb
subroutine faienc64(KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP)
Definition: faienc.F90:67
subroutine faienc_fort(FA, KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP)
Definition: faienc.F90:6
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine faienc_mt(FA, KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP)
Definition: faienc.F90:117
subroutine new_fa_default()
Definition: fa_mod.F90:649
Definition: fa_mod.F90:1
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine faien1_fort(FA, KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP, LDUNDF, PUNDF, YDGR1TAB)
Definition: faien1.F90:6
integer, parameter jplikm
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476