SURFEX v8.1
General documentation of Surfex
fadies.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 fadies_fort &
4 & (fa, krep, knumer, kdatef )
5 USE fa_mod, ONLY : fa_com
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 !****
11 ! Sous-programme permettant d'obtenir la date d'un fichier ouvert
12 ! pour le logiciel de Fichiers ARPEGE, et deja muni d'une date.
13 ! ( "DIES" = jour en latin... )
14 !**
15 ! Arguments : KREP (Sortie) ==> Code-reponse du sous-programme;
16 ! KNUMER (Entree) ==> Numero de l'unite logique;
17 ! (Tableau) KDATEF (Sortie) ==> Date elle-meme (FA%JPLDAT mots).
18 !
19 !
20 !
21 TYPE(fa_com) :: FA
22 INTEGER (KIND=JPLIKB) KREP, KNUMER
23 INTEGER (KIND=JPLIKB) KDATEF (fa%jpldat)
24 !
25 INTEGER (KIND=JPLIKB) IRANG, J, IREP, INIMES
26 !
27 LOGICAL LLVERF
28 !
29 CHARACTER(LEN=FA%JPXNOM) CLACTI
30 CHARACTER(LEN=FA%JPLMES) CLMESS
31 CHARACTER(LEN=FA%JPLSPX) CLNSPR
32 LOGICAL LLFATA
33 
34 !**
35 ! 1. - CONTROLES DES PARAMETRES D'APPEL, ET INITIALISATIONS.
36 !-----------------------------------------------------------------------
37 !
38 REAL(KIND=JPRB) :: ZHOOK_HANDLE
39 IF (lhook) CALL dr_hook('FADIES_MT',0,zhook_handle)
40 clacti=''
41 llverf=.false.
42 CALL fanumu_fort &
43 & (fa, knumer,irang)
44 !
45 IF (irang.EQ.0) THEN
46  irep=-51
47  GOTO 1001
48 ENDIF
49 !
50 ! Verrouillage eventuel du fichier.
51 !
52 IF (fa%LFAMUL) CALL lfiver_fort &
53 & (fa%LFI, fa%FICHIER(irang)%VRFICH,'ON')
54 llverf=fa%LFAMUL
55 !**
56 ! 2. - CONTROLE DE DEFINITION PREALABLE DE LA DATE.
57 !-----------------------------------------------------------------------
58 !
59 IF (fa%FICHIER(irang)%LCREAF) THEN
60  irep=-85
61  GOTO 1001
62 ENDIF
63 !**
64 ! 3. - TRANSFERT DE LA TABLE "FA%MADATE" DANS LE TABLEAU ARGUMENT.
65 !-----------------------------------------------------------------------
66 !
67 DO j=1,fa%JPLDAT
68 kdatef(j)=fa%FICHIER(irang)%MADATE(j)
69 ENDDO
70 !
71 irep=0
72 !**
73 ! 10. - PHASE TERMINALE : MESSAGERIE, AVEC "ABORT" EVENTUEL,
74 ! VIA LE SOUS-PROGRAMME "FAIPAR" .
75 !-----------------------------------------------------------------------
76 !
77 1001 CONTINUE
78 krep=irep
79 llfata=llmoer(irep,irang)
80 !
81 ! Deverrouillage eventuel du fichier.
82 !
83 IF (llverf) CALL lfiver_fort &
84 & (fa%LFI, fa%FICHIER(irang)%VRFICH,'OFF')
85 !
86 IF (llfata.OR.ixnvms(irang).EQ.2) THEN
87  inimes=2
88 ELSE
89  IF (lhook) CALL dr_hook('FADIES_MT',1,zhook_handle)
90  RETURN
91 ENDIF
92 !
93 clnspr='FADIES'
94 !
95 IF (inimes.EQ.2) THEN
96  WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
97 & '', KDATEF(1:5)='',I5,2(''/'',I2),I3,'':'',I2.2, &
98 & '', KDATEF(7:8)='',I6,''-'',I6)') krep,knumer, &
99 & (kdatef(j),j=1,5),(kdatef(j),j=7,8)
100  CALL faipar_fort &
101 & (fa, knumer,inimes,irep,llfata,clmess, &
102 & clnspr,clacti,.false.)
103 ENDIF
104 !
105 IF (lhook) CALL dr_hook('FADIES_MT',1,zhook_handle)
106 
107 CONTAINS
108 
109 #include "facom2.llmoer.h"
110 #include "facom2.ixnvms.h"
111 
112 END SUBROUTINE fadies_fort
113 
114 
115 
116 ! Oct-2012 P. Marguinaud 64b LFI
117 SUBROUTINE fadies64 &
118 & (krep, knumer, kdatef)
119 USE fa_mod, ONLY : fa => fa_com_default, &
122 USE lfi_precision
123 IMPLICIT NONE
124 ! Arguments
125 INTEGER (KIND=JPLIKB) KREP ! OUT
126 INTEGER (KIND=JPLIKB) KNUMER ! IN
127 INTEGER (KIND=JPLIKB) KDATEF (*) ! OUT
128 
129 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
130 
131 CALL fadies_fort &
132 & (fa, krep, knumer, kdatef)
133 
134 END SUBROUTINE fadies64
135 
136 SUBROUTINE fadies &
137 & (krep, knumer, kdatef)
138 USE fa_mod, ONLY : fa => fa_com_default, &
141 USE lfi_precision
142 IMPLICIT NONE
143 ! Arguments
144 INTEGER (KIND=JPLIKM) KREP ! OUT
145 INTEGER (KIND=JPLIKM) KNUMER ! IN
146 INTEGER (KIND=JPLIKM) KDATEF (*) ! OUT
147 
148 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
149 
150 CALL fadies_mt &
151 & (fa, krep, knumer, kdatef)
152 
153 END SUBROUTINE fadies
154 
155 SUBROUTINE fadies_mt &
156 & (fa, krep, knumer, kdatef)
157 USE fa_mod, ONLY : fa_com
158 USE lfi_precision
159 IMPLICIT NONE
160 ! Arguments
161 type(fa_com) fa ! INOUT
162 INTEGER (KIND=JPLIKM) KREP ! OUT
163 INTEGER (KIND=JPLIKM) KNUMER ! IN
164 INTEGER (KIND=JPLIKM) KDATEF (fa%jpldat) ! OUT
165 ! Local integers
166 INTEGER (KIND=JPLIKB) IREP ! OUT
167 INTEGER (KIND=JPLIKB) INUMER ! IN
168 INTEGER (KIND=JPLIKB) IDATEF (fa%jpldat) ! OUT
169 ! Convert arguments
170 
171 inumer = int( knumer, jplikb)
172 
173 CALL fadies_fort &
174 & (fa, irep, inumer, idatef)
175 
176 krep = int( irep, jplikm)
177 kdatef = int( idatef, jplikm)
178 
179 END SUBROUTINE fadies_mt
180 
181 !INTF KREP OUT
182 !INTF KNUMER IN
183 !INTF KDATEF OUT DIMS=FA%JPLDAT
184 
185 
subroutine fadies(KREP, KNUMER, KDATEF)
Definition: fadies.F90:138
integer, parameter jplikb
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
subroutine fadies64(KREP, KNUMER, KDATEF)
Definition: fadies.F90:119
Definition: fa_mod.F90:1
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
Definition: lfiver.F90:6
integer, parameter jprb
Definition: parkind1.F90:32
subroutine fadies_fort(FA, KREP, KNUMER, KDATEF)
Definition: fadies.F90:5
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
Definition: faipar.F90:6
subroutine fadies_mt(FA, KREP, KNUMER, KDATEF)
Definition: fadies.F90:157
subroutine fanumu_fort(FA, KNUMER, KRANG)
Definition: fanumu.F90:5