SURFEX v8.1
General documentation of Surfex
fa_limits.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 fa_limits_fort &
4 & (fa, kpxpah,kpxind,kpxgeo,kpxniv)
5 USE fa_mod, ONLY : fa_com
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 
11 ! -----
12 ! Purpose:
13 ! Returns limits necessary for proper dimensioning of FA fields
14 ! (arrays entering subroutine FACIES). It was created because
15 ! of two reasons:
16 !
17 ! 1) Subroutine FALIMU does not provide all needed limits.
18 !
19 ! 2) Direct use of parameters JPX* from include "facomp.h" would
20 ! be more convenient (no need to define interface arrays as
21 ! allocatable). But since this include contains CPP directives,
22 ! its use in external utilities might give wrong numbers with
23 ! improper compile options. Moreover, include is written
24 ! in fixed form and cannot be inserted into free form source.
25 !
26 ! Created:
27 ! 25-Jun-2010, J. Masek
28 !
29 ! Modified:
30 !
31 ! -----
32 
33 TYPE(fa_com) :: FA
34 INTEGER (KIND=JPLIKB) :: KPXPAH,KPXIND,KPXGEO,KPXNIV
35 
36 kpxpah=fa%JPXPAH
37 kpxind=fa%JPXIND
38 kpxgeo=fa%JPXGEO
39 kpxniv=fa%JPXNIV
40 
41 END SUBROUTINE fa_limits_fort
42 
43 
44 
45 ! Oct-2012 P. Marguinaud 64b LFI
46 SUBROUTINE fa_limits64 &
47 & (kpxpah, kpxind, kpxgeo, kpxniv)
48 USE fa_mod, ONLY : fa => fa_com_default, &
51 USE lfi_precision
52 IMPLICIT NONE
53 ! Arguments
54 INTEGER (KIND=JPLIKB) KPXPAH ! OUT
55 INTEGER (KIND=JPLIKB) KPXIND ! OUT
56 INTEGER (KIND=JPLIKB) KPXGEO ! OUT
57 INTEGER (KIND=JPLIKB) KPXNIV ! OUT
58 
59 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
60 
61 CALL fa_limits_fort &
62 & (fa, kpxpah, kpxind, kpxgeo, kpxniv)
63 
64 END SUBROUTINE fa_limits64
65 
66 SUBROUTINE fa_limits &
67 & (kpxpah, kpxind, kpxgeo, kpxniv)
68 USE fa_mod, ONLY : fa => fa_com_default, &
71 USE lfi_precision
72 IMPLICIT NONE
73 ! Arguments
74 INTEGER (KIND=JPLIKM) KPXPAH ! OUT
75 INTEGER (KIND=JPLIKM) KPXIND ! OUT
76 INTEGER (KIND=JPLIKM) KPXGEO ! OUT
77 INTEGER (KIND=JPLIKM) KPXNIV ! OUT
78 
79 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
80 
81 CALL fa_limits_mt &
82 & (fa, kpxpah, kpxind, kpxgeo, kpxniv)
83 
84 END SUBROUTINE fa_limits
85 
86 SUBROUTINE fa_limits_mt &
87 & (fa, kpxpah, kpxind, kpxgeo, kpxniv)
88 USE fa_mod, ONLY : fa_com
89 USE lfi_precision
90 IMPLICIT NONE
91 ! Arguments
92 type(fa_com) fa ! INOUT
93 INTEGER (KIND=JPLIKM) KPXPAH ! OUT
94 INTEGER (KIND=JPLIKM) KPXIND ! OUT
95 INTEGER (KIND=JPLIKM) KPXGEO ! OUT
96 INTEGER (KIND=JPLIKM) KPXNIV ! OUT
97 ! Local integers
98 INTEGER (KIND=JPLIKB) IPXPAH ! OUT
99 INTEGER (KIND=JPLIKB) IPXIND ! OUT
100 INTEGER (KIND=JPLIKB) IPXGEO ! OUT
101 INTEGER (KIND=JPLIKB) IPXNIV ! OUT
102 ! Convert arguments
103 
104 
105 CALL fa_limits_fort &
106 & (fa, ipxpah, ipxind, ipxgeo, ipxniv)
107 
108 kpxpah = int( ipxpah, jplikm)
109 kpxind = int( ipxind, jplikm)
110 kpxgeo = int( ipxgeo, jplikm)
111 kpxniv = int( ipxniv, jplikm)
112 
113 END SUBROUTINE fa_limits_mt
114 
115 !INTF KPXPAH OUT
116 !INTF KPXIND OUT
117 !INTF KPXGEO OUT
118 !INTF KPXNIV OUT
subroutine fa_limits64(KPXPAH, KPXIND, KPXGEO, KPXNIV)
Definition: fa_limits.F90:48
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
subroutine fa_limits_mt(FA, KPXPAH, KPXIND, KPXGEO, KPXNIV)
Definition: fa_limits.F90:88
Definition: fa_mod.F90:1
integer, parameter jprb
Definition: parkind1.F90:32
subroutine fa_limits_fort(FA, KPXPAH, KPXIND, KPXGEO, KPXNIV)
Definition: fa_limits.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 fa_limits(KPXPAH, KPXIND, KPXGEO, KPXNIV)
Definition: fa_limits.F90:68