SURFEX v8.1
General documentation of Surfex
faifla.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 faifla_fort &
4 & (fa, 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 est charge des Initialisations des
12 ! tableaux FLAp1d., utilises pour aplatir le spectre des champs
13 ! d'un fichier avant le compactage (coefficients spectraux seulement).
14 !**
15 !
16 !
17 !**
18 ! ARGUMENTS : KRANG (Entree) ==> Rang de l'unite logique
19 !
20 !
21 !
22 !
23 TYPE(fa_com) :: FA
24 INTEGER (KIND=JPLIKB) KRANG
25 !
26 INTEGER (KIND=JPLIKB) J, IRANGC, IPUILA, ITRONC
27 
28 !
29 REAL(KIND=JPRB) :: ZHOOK_HANDLE
30 IF (lhook) CALL dr_hook('FAIFLA_MT',0,zhook_handle)
31 !
32 ipuila = fa%FICHIER(krang)%NPUFLA
33 irangc = fa%FICHIER(krang)%NUCADR
34 itronc = fa%CADRE(irangc)%MTRONC
35 !
36 IF (.NOT. ASSOCIATED (fa%FICHIER(krang)%FLAP1D)) &
37 & ALLOCATE (fa%FICHIER(krang)%FLAP1D (itronc))
38 IF (.NOT. ASSOCIATED (fa%FICHIER(krang)%FLAP1DA)) &
39 & ALLOCATE (fa%FICHIER(krang)%FLAP1DA (fa%JPXTRO*fa%JPXTRO))
40 
41 !
42 IF (ipuila.GT.0) THEN
43 !
44  DO j=1,itronc
45  fa%FICHIER(krang)%FLAP1D(j)=fa%XLAP1D(j,0)**ipuila
46  ENDDO
47  DO j=1,fa%JPXTRO*fa%JPXTRO
48  fa%FICHIER(krang)%FLAP1DA(j)=fa%XLAP1DA(j,0)**ipuila
49  ENDDO
50 !
51 ELSEIF (ipuila.LT.0) THEN
52 !
53  DO j=1,itronc
54  fa%FICHIER(krang)%FLAP1D(j)=fa%XLAP1D(j,1)**(-ipuila)
55  ENDDO
56  DO j=1,fa%JPXTRO*fa%JPXTRO
57  fa%FICHIER(krang)%FLAP1DA(j)=fa%XLAP1DA(j,1)**(-ipuila)
58  ENDDO
59 !
60 ENDIF
61 !
62 IF (lhook) CALL dr_hook('FAIFLA_MT',1,zhook_handle)
63 END SUBROUTINE faifla_fort
64 
65 
66 
67 ! Oct-2012 P. Marguinaud 64b LFI
68 SUBROUTINE faifla64 &
69 & (krang)
70 USE fa_mod, ONLY : fa => fa_com_default, &
73 USE lfi_precision
74 IMPLICIT NONE
75 ! Arguments
76 INTEGER (KIND=JPLIKB) KRANG ! IN
77 
78 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
79 
80 CALL faifla_fort &
81 & (fa, krang)
82 
83 END SUBROUTINE faifla64
84 
85 SUBROUTINE faifla &
86 & (krang)
87 USE fa_mod, ONLY : fa => fa_com_default, &
90 USE lfi_precision
91 IMPLICIT NONE
92 ! Arguments
93 INTEGER (KIND=JPLIKM) KRANG ! IN
94 
95 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
96 
97 CALL faifla_mt &
98 & (fa, krang)
99 
100 END SUBROUTINE faifla
101 
102 SUBROUTINE faifla_mt &
103 & (fa, krang)
104 USE fa_mod, ONLY : fa_com
105 USE lfi_precision
106 IMPLICIT NONE
107 ! Arguments
108 type(fa_com) fa ! INOUT
109 INTEGER (KIND=JPLIKM) KRANG ! IN
110 ! Local integers
111 INTEGER (KIND=JPLIKB) IRANG ! IN
112 ! Convert arguments
113 
114 irang = int( krang, jplikb)
115 
116 CALL faifla_fort &
117 & (fa, irang)
118 
119 
120 END SUBROUTINE faifla_mt
121 
122 !INTF KRANG IN
integer, parameter jplikb
subroutine faifla_fort(FA, KRANG)
Definition: faifla.F90:5
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
Definition: fa_mod.F90:1
subroutine faifla_mt(FA, KRANG)
Definition: faifla.F90:104
integer, parameter jprb
Definition: parkind1.F90:32
subroutine faifla64(KRANG)
Definition: faifla.F90:70
logical lhook
Definition: yomhook.F90:15
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine faifla(KRANG)
Definition: faifla.F90:87