SURFEX v8.1
General documentation of Surfex
fatcha.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 fatcha_fort &
4 & (fa, krep, cdnomc, ldcosp, klcham)
5 USE fa_mod, ONLY : fa_com, jpniil
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 !****
11 ! Sous-programme du logiciel de Fichiers ARPEGE:
12 ! recuperation de la taille d'un champ horizontal
13 !**
14 ! Arguments : KREP (Sortie) ==> Code-reponse du sous-programme;
15 ! CDNOMC (Entree) ==> Nom du cadre
16 ! LDCOSP (Entree) ==> Vrai si le champ est represente
17 ! par des coefficients spectraux;
18 ! KLCHAM (Sortie) ==> Taille du champ
19 !*
20 ! En mode multi-taches, il doit y avoir verrouillage du fichier
21 ! concerne avant l'appel au sous-programme.
22 !
23 !
24 TYPE(fa_com) :: FA
25 INTEGER (KIND=JPLIKB) KREP, KLCHAM
26 CHARACTER(LEN=*) CDNOMC
27 LOGICAL LDCOSP
28 !
29 INTEGER (KIND=JPLIKB) ITRONC
30 INTEGER (KIND=JPLIKB) IRANGC, INIMES, INUMER
31 !
32 LOGICAL LLMLAM
33 !
34 CHARACTER(LEN=FA%JPXNOM) CLACTI
35 CHARACTER(LEN=FA%JPLMES) CLMESS
36 CHARACTER(LEN=FA%JPLSPX) CLNSPR
37 LOGICAL LLFATA
38 
39 !**
40 ! 1. - CONTROLES ET INITIALISATIONS.
41 !-----------------------------------------------------------------------
42 !
43 REAL(KIND=JPRB) :: ZHOOK_HANDLE
44 IF (lhook) CALL dr_hook('FATCHA_MT',0,zhook_handle)
45 
46 krep=0
47 
48 CALL fanuca_fort (fa, cdnomc, irangc, .false.)
49 
50 IF (irangc.EQ.0) THEN
51  krep=-51
52  GOTO 1001
53 ENDIF
54 
55 clacti=''
56 
57 llmlam=fa%CADRE(irangc)%LIMLAM
58 itronc=fa%CADRE(irangc)%MTRONC
59 !
60 IF (ldcosp) THEN
61  IF (llmlam) THEN
62  klcham=fa%CADRE(irangc)%NSFLAM
63  ELSE
64  klcham=(1+itronc)*(2+itronc)
65  ENDIF
66 ELSE
67  klcham=fa%CADRE(irangc)%NVAPDG
68 ENDIF
69 
70 1001 CONTINUE
71 
72 llfata = .true.
73 
74 IF (fa%LFAMOP.OR.llfata) THEN
75  inimes=2
76  clnspr='FATCHA'
77  inumer=jpniil
78 !
79  WRITE (unit=clmess,fmt='(''KREP='',I5, &
80 & '', LDCOSP= '',L1, '', KLCHAM='',I6)') &
81 & krep, ldcosp, klcham
82  CALL faipar_fort &
83 & (fa, inumer,inimes,krep,.false.,clmess, &
84 & clnspr,clacti,.false.)
85 ENDIF
86 !
87 IF (lhook) CALL dr_hook('FATCHA_MT',1,zhook_handle)
88 
89 CONTAINS
90 
91 #include "facom2.llmoer.h"
92 
93 END SUBROUTINE
94 
95 SUBROUTINE fatchat64 (KREP, CDNOMC, LDCOSP, KLCHAM)
96 USE fa_mod, ONLY : fa => fa_com_default, &
99 USE lfi_precision
100 IMPLICIT NONE
101 INTEGER (KIND=JPLIKB) KREP, KLCHAM
102 CHARACTER(LEN=*) CDNOMC
103 LOGICAL LDCOSP
104 
105 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
106 
107 CALL fatcha_fort (fa, krep, cdnomc, ldcosp, klcham)
108 
109 END SUBROUTINE
110 
111 SUBROUTINE fatcha (KREP, CDNOMC, LDCOSP, KLCHAM)
112 USE fa_mod, ONLY : fa => fa_com_default, &
115 USE lfi_precision
116 IMPLICIT NONE
117 INTEGER (KIND=JPLIKM) KREP, KLCHAM
118 CHARACTER(LEN=*) CDNOMC
119 LOGICAL LDCOSP
120 
121 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
122 
123 CALL fatcha_mt (fa, krep, cdnomc, ldcosp, klcham)
124 
125 END SUBROUTINE
126 
127 SUBROUTINE fatcha_mt (FA, KREP, CDNOMC, LDCOSP, KLCHAM)
128 USE fa_mod, ONLY : fa_com
129 USE lfi_precision
130 IMPLICIT NONE
131 type(fa_com) fa
132 INTEGER (KIND=JPLIKM) KREP, KLCHAM
133 CHARACTER(LEN=*) CDNOMC
134 LOGICAL LDCOSP
135 
136 INTEGER (KIND=JPLIKB) IREP, ILCHAM
137 
138 
139 CALL fatcha_fort (fa, irep, cdnomc, ldcosp, ilcham)
140 
141 krep = int( irep, jplikm)
142 klcham = int(ilcham, jplikm)
143 
144 END SUBROUTINE
145 
146 
147 !INTF KREP OUT
148 !INTF CDNOMC IN
149 !INTF LDCOSP IN
150 !INTF KLCHAM OUT
151 
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
subroutine fanuca_fort(FA, CDNOMC, KRANGC, LDVERR)
Definition: fanuca.F90:5
Definition: fa_mod.F90:1
subroutine fatcha_mt(FA, KREP, CDNOMC, LDCOSP, KLCHAM)
Definition: fatcha.F90:128
integer, parameter jprb
Definition: parkind1.F90:32
subroutine fatchat64(KREP, CDNOMC, LDCOSP, KLCHAM)
Definition: fatcha.F90:96
subroutine fatcha(KREP, CDNOMC, LDCOSP, KLCHAM)
Definition: fatcha.F90:112
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
subroutine fatcha_fort(FA, KREP, CDNOMC, LDCOSP, KLCHAM)
Definition: fatcha.F90:5
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
Definition: faipar.F90:6
integer(kind=jplikb), parameter jpniil
Definition: fa_mod.F90:31