SURFEX v8.1
General documentation of Surfex
lfitam.F90
Go to the documentation of this file.
1 ! Oct-2012 P. Marguinaud 64b LFI
2 ! Jan-2011 P. Marguinaud Thread-safe LFI
3 SUBROUTINE lfitam_fort &
4 & (lfi, krep, knumer, ldtaml, ldtame )
5 USE lfimod, ONLY : lficom
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 !****
11 ! CE SOUS-PROGRAMME PERMET D'ACTIVER OU DE DESACTIVER LES OPTIONS
12 ! D'UTILISATION MAXIMUM DE LA MEMOIRE TAMPON SUR UN FICHIER
13 ! PARTICULIER, OUVERT POUR LE LOGICIEL LFI.
14 ! LES OPTIONS INITIALES SONT DEFINIES A L'OUVERTURE PAR LES
15 ! VARIABLES GLOBALES *LFI%LTAMLG* ET *LFI%LTAMEG*, RESPECTIVEMENT POUR LES
16 ! OPERATIONS DE LECTURE ET D'ECRITURE .
17 ! ( CES VARIABLES GLOBALES SONT DEFINIES DANS LE S/P *LFIINI* )
18 !**
19 ! ARGUMENTS : KREP (SORTIE) ==> CODE-REPONSE DU SOUS-PROGRAMME;
20 ! KNUMER (ENTREE) ==> LFI%NUMERO D'UNITE LOGIQUE CONCERNEE;
21 ! LDTAML (ENTREE) ==> OPTION D'UTILISATION MAXIMUM DE LA
22 ! LA MEMOIRE TAMPON EN LECTURE;
23 ! LDTAME (ENTREE) ==> CF. CI-DESSUS, EN ECRITURE.
24 !
25 !
26 TYPE(lficom) :: LFI
27 INTEGER (KIND=JPLIKB) KREP, KNUMER, IRANG, IREP, INIMES
28 !
29 LOGICAL LDTAML, LDTAME
30 !
31 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
32 CHARACTER(LEN=LFI%JPLMES) CLMESS
33 CHARACTER(LEN=LFI%JPLFTX) CLACTI
34 LOGICAL LLFATA
35 
36 !
37 REAL(KIND=JPRB) :: ZHOOK_HANDLE
38 IF (lhook) CALL dr_hook('LFITAM_FORT',0,zhook_handle)
39 clacti=''
40 CALL lfinum_fort &
41 & (lfi, knumer,irang)
42 !
43 IF (irang.NE.0) THEN
44  IF (lfi%LMULTI) CALL lfiver_fort &
45 & (lfi, lfi%VERRUE(irang),'ON')
46  lfi%LTAMPL(irang)=ldtaml
47  lfi%LTAMPE(irang)=ldtame
48  lfi%NDEROP(irang)=6
49  IF (lfi%LMULTI) CALL lfiver_fort &
50 & (lfi, lfi%VERRUE(irang),'OFF')
51  irep=0
52 ELSE
53  irep=-1
54 ENDIF
55 !
56 llfata=llmoer(irep,irang)
57 krep=irep
58 !
59 IF (llfata.OR.ixnims(irang).EQ.2) THEN
60  inimes=2
61 ELSE
62  IF (lhook) CALL dr_hook('LFITAM_FORT',1,zhook_handle)
63  RETURN
64 ENDIF
65 !
66 clnspr='LFITAM'
67 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
68 & '', LDTAML= '',L1,'', LDTAME= '',L1)') krep,knumer,ldtaml,ldtame
69 CALL lfiems_fort &
70 & (lfi, knumer,inimes,irep,llfata, &
71 & clmess,clnspr,clacti)
72 !
73 IF (lhook) CALL dr_hook('LFITAM_FORT',1,zhook_handle)
74 
75 CONTAINS
76 
77 #include "lficom2.ixnims.h"
78 #include "lficom2.llmoer.h"
79 
80 END SUBROUTINE lfitam_fort
81 
82 
83 
84 ! Oct-2012 P. Marguinaud 64b LFI
85 SUBROUTINE lfitam64 &
86 & (krep, knumer, ldtaml, ldtame)
87 USE lfimod, ONLY : lfi => lficom_default, &
90 USE lfi_precision
91 IMPLICIT NONE
92 ! Arguments
93 INTEGER (KIND=JPLIKB) KREP ! OUT
94 INTEGER (KIND=JPLIKB) KNUMER ! IN
95 LOGICAL LDTAML ! IN
96 LOGICAL LDTAME ! IN
97 
98 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
99 
100 CALL lfitam_fort &
101 & (lfi, krep, knumer, ldtaml, ldtame)
102 
103 END SUBROUTINE lfitam64
104 
105 SUBROUTINE lfitam &
106 & (krep, knumer, ldtaml, ldtame)
107 USE lfimod, ONLY : lfi => lficom_default, &
110 USE lfi_precision
111 IMPLICIT NONE
112 ! Arguments
113 INTEGER (KIND=JPLIKM) KREP ! OUT
114 INTEGER (KIND=JPLIKM) KNUMER ! IN
115 LOGICAL LDTAML ! IN
116 LOGICAL LDTAME ! IN
117 
118 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
119 
120 CALL lfitam_mt &
121 & (lfi, krep, knumer, ldtaml, ldtame)
122 
123 END SUBROUTINE lfitam
124 
125 SUBROUTINE lfitam_mt &
126 & (lfi, krep, knumer, ldtaml, ldtame)
127 USE lfimod, ONLY : lficom
128 USE lfi_precision
129 IMPLICIT NONE
130 ! Arguments
131 type(lficom) lfi ! INOUT
132 INTEGER (KIND=JPLIKM) KREP ! OUT
133 INTEGER (KIND=JPLIKM) KNUMER ! IN
134 LOGICAL LDTAML ! IN
135 LOGICAL LDTAME ! IN
136 ! Local integers
137 INTEGER (KIND=JPLIKB) IREP ! OUT
138 INTEGER (KIND=JPLIKB) INUMER ! IN
139 ! Convert arguments
140 
141 inumer = int( knumer, jplikb)
142 
143 CALL lfitam_fort &
144 & (lfi, irep, inumer, ldtaml, ldtame)
145 
146 krep = int( irep, jplikm)
147 
148 END SUBROUTINE lfitam_mt
149 
150 !INTF KREP OUT
151 !INTF KNUMER IN
152 !INTF LDTAML IN
153 !INTF LDTAME IN
integer, parameter jplikb
subroutine new_lfi_default()
Definition: lfimod.F90:376
subroutine lfitam(KREP, KNUMER, LDTAML, LDTAME)
Definition: lfitam.F90:107
subroutine lfitam64(KREP, KNUMER, LDTAML, LDTAME)
Definition: lfitam.F90:87
logical, save lficom_default_init
Definition: lfimod.F90:371
subroutine lfinum_fort(LFI, KNUMER, KRANG)
Definition: lfinum.F90:6
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
Definition: lfiver.F90:6
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfitam_fort(LFI, KREP, KNUMER, LDTAML, LDTAME)
Definition: lfitam.F90:5
type(lficom), target, save lficom_default
Definition: lfimod.F90:370
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
Definition: lfimod.F90:1
subroutine lfitam_mt(LFI, KREP, KNUMER, LDTAML, LDTAME)
Definition: lfitam.F90:127