SURFEX v8.1
General documentation of Surfex
fanime.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 fanime_fort &
4 & (fa, krep, knumer, knimes )
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 permet d'ajuster le Niveau de Messagerie
12 ! propre aux actions faites sur un fichier particulier, ouvert pour
13 ! le Logiciel de Fichiers ARPEGE, de meme que le Niveau correspon-
14 ! dant du logiciel LFI.
15 ! Cependant, tant que le Niveau de Messagerie Global *FA%NIMSGA*
16 ! vaut 0 ou 2, le niveau propre au fichier est inoperant.
17 ! *FA%NIMSGA* vaut par defaut 1, et est reglable via le s/p "FANMSG".
18 !**
19 ! Arguments : KREP (Sortie) ==> Code-reponse du sous-programme;
20 ! KNUMER (Entree) ==> Numero d'Unite Logique concernee;
21 ! KNIMES (Entree) ==> Niveau de Messagerie souhaite.
22 !
23 !
24 !
25 TYPE(fa_com) :: FA
26 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNIMES
27 !
28 INTEGER (KIND=JPLIKB) IREP, IRANG, INIMEX, INIMES
29 !
30 LOGICAL LLRLFI
31 !
32 CHARACTER(LEN=FA%JPXNOM) CLACTI
33 CHARACTER(LEN=FA%JPLMES) CLMESS
34 CHARACTER(LEN=FA%JPLSPX) CLNSPR
35 LOGICAL LLFATA
36 
37 !
38 REAL(KIND=JPRB) :: ZHOOK_HANDLE
39 IF (lhook) CALL dr_hook('FANIME_MT',0,zhook_handle)
40 clacti=''
41 CALL fanumu_fort &
42 & (fa, knumer,irang)
43 inimex=0
44 !
45 IF (irang.EQ.0) THEN
46  irep=-51
47 ELSEIF (knimes.GE.0.AND.knimes.LE.2) THEN
48  inimex=ixnvms(irang)
49  fa%FICHIER(irang)%NIVOMS=knimes
50  CALL lfinim_fort &
51 & (fa%LFI, irep,knumer,knimes)
52  llrlfi=irep.NE.0
53 ELSE
54  irep=-52
55 ENDIF
56 !
57 krep=irep
58 llfata=llmoer(irep,irang)
59 !
60 IF (llfata.OR.max(ixnvms(irang),inimex).EQ.2) THEN
61  inimes=2
62 ELSE
63  IF (lhook) CALL dr_hook('FANIME_MT',1,zhook_handle)
64  RETURN
65 ENDIF
66 !
67 clnspr='FANIME'
68 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
69 & '', KNIMES='',I3)') krep,knumer,knimes
70 CALL faipar_fort &
71 & (fa, knumer,inimes,irep,llfata,clmess, &
72 & clnspr,clacti,.false.)
73 !
74 IF (lhook) CALL dr_hook('FANIME_MT',1,zhook_handle)
75 
76 CONTAINS
77 
78 #include "facom2.llmoer.h"
79 #include "facom2.ixnvms.h"
80 
81 END SUBROUTINE fanime_fort
82 
83 
84 
85 ! Oct-2012 P. Marguinaud 64b LFI
86 SUBROUTINE fanime64 &
87 & (krep, knumer, knimes)
88 USE fa_mod, ONLY : fa => fa_com_default, &
91 USE lfi_precision
92 IMPLICIT NONE
93 ! Arguments
94 INTEGER (KIND=JPLIKB) KREP ! OUT
95 INTEGER (KIND=JPLIKB) KNUMER ! IN
96 INTEGER (KIND=JPLIKB) KNIMES ! IN
97 
98 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
99 
100 CALL fanime_fort &
101 & (fa, krep, knumer, knimes)
102 
103 END SUBROUTINE fanime64
104 
105 SUBROUTINE fanime &
106 & (krep, knumer, knimes)
107 USE fa_mod, ONLY : fa => fa_com_default, &
110 USE lfi_precision
111 IMPLICIT NONE
112 ! Arguments
113 INTEGER (KIND=JPLIKM) KREP ! OUT
114 INTEGER (KIND=JPLIKM) KNUMER ! IN
115 INTEGER (KIND=JPLIKM) KNIMES ! IN
116 
117 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
118 
119 CALL fanime_mt &
120 & (fa, krep, knumer, knimes)
121 
122 END SUBROUTINE fanime
123 
124 SUBROUTINE fanime_mt &
125 & (fa, krep, knumer, knimes)
126 USE fa_mod, ONLY : fa_com
127 USE lfi_precision
128 IMPLICIT NONE
129 ! Arguments
130 type(fa_com) fa ! INOUT
131 INTEGER (KIND=JPLIKM) KREP ! OUT
132 INTEGER (KIND=JPLIKM) KNUMER ! IN
133 INTEGER (KIND=JPLIKM) KNIMES ! IN
134 ! Local integers
135 INTEGER (KIND=JPLIKB) IREP ! OUT
136 INTEGER (KIND=JPLIKB) INUMER ! IN
137 INTEGER (KIND=JPLIKB) INIMES ! IN
138 ! Convert arguments
139 
140 inumer = int( knumer, jplikb)
141 inimes = int( knimes, jplikb)
142 
143 CALL fanime_fort &
144 & (fa, irep, inumer, inimes)
145 
146 krep = int( irep, jplikm)
147 
148 END SUBROUTINE fanime_mt
149 
150 !INTF KREP OUT
151 !INTF KNUMER IN
152 !INTF KNIMES IN
integer, parameter jplikb
subroutine lfinim_fort(LFI, KREP, KNUMER, KNIMES)
Definition: lfinim.F90:6
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine fanime_mt(FA, KREP, KNUMER, KNIMES)
Definition: fanime.F90:126
subroutine new_fa_default()
Definition: fa_mod.F90:649
Definition: fa_mod.F90:1
integer, parameter jprb
Definition: parkind1.F90:32
subroutine fanime64(KREP, KNUMER, KNIMES)
Definition: fanime.F90:88
subroutine fanime(KREP, KNUMER, KNIMES)
Definition: fanime.F90:107
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine fanime_fort(FA, KREP, KNUMER, KNIMES)
Definition: fanime.F90:5
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
Definition: faipar.F90:6
subroutine fanumu_fort(FA, KNUMER, KRANG)
Definition: fanumu.F90:5