SURFEX v8.1
General documentation of Surfex
fanumu.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 fanumu_fort &
4 & (fa, knumer, krang )
5 USE fa_mod, ONLY : fa_com
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 !****
11 ! Ce sous-programme calcule le RANG du Numero d'Unite logique
12 ! *KNUMER* dans la table des unites logiques *FA%NULOGI*;
13 ! s'il n'y est pas trouve, le resultat est ZERO.
14 ! Ce sous-programme, appele par tous les sous-programmes
15 ! "fichier" du Logiciel de Fichiers ARPEGE, se charge lors de son
16 ! premier appel d'appeler le sous-programme preparatoire FARINE.
17 !**
18 ! Arguments : KNUMER (Entree) ==> Numero d'unite logique cherche;
19 ! KRANG (Sortie) ==> Rang dans la table des fichiers
20 ! du logiciel FA (0 si absent).
21 !
22 !
23 !
24 TYPE(fa_com) :: FA
25 INTEGER (KIND=JPLIKB) KNUMER, KRANG
26 !
27 INTEGER (KIND=JPLIKB) J, IRESUL
28 !
29 !
30 
31 !
32 REAL(KIND=JPRB) :: ZHOOK_HANDLE
33 IF (lhook) CALL dr_hook('FANUMU_MT',0,zhook_handle)
34 
35 IF (fa%FANUMU_LLPREA) THEN
36  CALL farine_fort &
37 & (fa, 2_jplikb )
38  fa%FANUMU_LLPREA=.false.
39 ENDIF
40 !
41 ! VERROUILLAGE GLOBAL (A CAUSE DE L'UTILISATION DE FA%NFIOUV )
42 !
43 IF (fa%LFAMUL) CALL lfiver_fort &
44 & (fa%LFI, fa%VRGLAS,'ON')
45 !
46 DO j=1,fa%NFIOUV
47 !
48 IF (knumer.EQ.fa%FICHIER(fa%NULIND(j))%NULOGI) THEN
49  iresul=fa%NULIND(j)
50  GOTO 20
51 ENDIF
52 !
53 ENDDO
54 !
55 iresul=0
56 !
57 20 CONTINUE
58 !
59 ! DEVERROUILLAGE GLOBAL
60 !
61 IF (fa%LFAMUL) CALL lfiver_fort &
62 & (fa%LFI, fa%VRGLAS,'OFF')
63 krang=iresul
64 !
65 IF (lhook) CALL dr_hook('FANUMU_MT',1,zhook_handle)
66 END SUBROUTINE fanumu_fort
67 
68 
69 
70 ! Oct-2012 P. Marguinaud 64b LFI
71 SUBROUTINE fanumu64 &
72 & (knumer, krang)
73 USE fa_mod, ONLY : fa => fa_com_default, &
76 USE lfi_precision
77 IMPLICIT NONE
78 ! Arguments
79 INTEGER (KIND=JPLIKB) KNUMER ! IN
80 INTEGER (KIND=JPLIKB) KRANG ! OUT
81 
82 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
83 
84 CALL fanumu_fort &
85 & (fa, knumer, krang)
86 
87 END SUBROUTINE fanumu64
88 
89 SUBROUTINE fanumu &
90 & (knumer, krang)
91 USE fa_mod, ONLY : fa => fa_com_default, &
94 USE lfi_precision
95 IMPLICIT NONE
96 ! Arguments
97 INTEGER (KIND=JPLIKM) KNUMER ! IN
98 INTEGER (KIND=JPLIKM) KRANG ! OUT
99 
100 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
101 
102 CALL fanumu_mt &
103 & (fa, knumer, krang)
104 
105 END SUBROUTINE fanumu
106 
107 SUBROUTINE fanumu_mt &
108 & (fa, knumer, krang)
109 USE fa_mod, ONLY : fa_com
110 USE lfi_precision
111 IMPLICIT NONE
112 ! Arguments
113 type(fa_com) fa ! INOUT
114 INTEGER (KIND=JPLIKM) KNUMER ! IN
115 INTEGER (KIND=JPLIKM) KRANG ! OUT
116 ! Local integers
117 INTEGER (KIND=JPLIKB) INUMER ! IN
118 INTEGER (KIND=JPLIKB) IRANG ! OUT
119 ! Convert arguments
120 
121 inumer = int( knumer, jplikb)
122 
123 CALL fanumu_fort &
124 & (fa, inumer, irang)
125 
126 krang = int( irang, jplikm)
127 
128 END SUBROUTINE fanumu_mt
129 
130 !INTF KNUMER IN
131 !INTF KRANG OUT
subroutine fanumu(KNUMER, KRANG)
Definition: fanumu.F90:91
integer, parameter jplikb
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
subroutine fanumu64(KNUMER, KRANG)
Definition: fanumu.F90:73
Definition: fa_mod.F90:1
subroutine fanumu_mt(FA, KNUMER, KRANG)
Definition: fanumu.F90:109
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
Definition: lfiver.F90:6
integer, parameter jprb
Definition: parkind1.F90:32
subroutine farine_fort(FA, KOPTIO)
Definition: farine.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 fanumu_fort(FA, KNUMER, KRANG)
Definition: fanumu.F90:5