SURFEX v8.1
General documentation of Surfex
fagrtw.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 fagrtw_fort &
4 & (fa, krep, kunit)
5 USE fa_mod, ONLY : fa_com, fagr1tab
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 TYPE(fa_com) :: FA
11 INTEGER (KIND=JPLIKB) KREP, KUNIT
12 !
13 INTEGER (KIND=JPLIKB) JJ
14 
15 INTEGER :: IOST
16 
17 REAL(KIND=JPRB) :: ZHOOK_HANDLE
18 
19 IF (lhook) CALL dr_hook('FAGRTW_MT',0,zhook_handle)
20 
21 krep=0
22 
23 IF (.NOT. ASSOCIATED (fa%YGR1TAB)) THEN
24  CALL faicor_fort (fa)
25 ENDIF
26 
27 iost = 0
28 
29 WRITE (kunit, '("VERSION = ",I10)', err=999, iostat=iost) 1
30 WRITE (kunit, '(I10)', err=999, iostat=iost) SIZE (fa%YGR1TAB)
31 
32 DO jj = 1, SIZE (fa%YGR1TAB)
33  WRITE (kunit, '(" | ",A8," | ",A24," | ",7I10," | ",L1," | ",E23.16," | ",L1," | ")', &
34 & err=999, iostat=iost) &
35 & fa%YGR1TAB (jj)%CIPREF, fa%YGR1TAB (jj)%CISUFF, fa%YGR1TAB (jj)%NCODPA(1:7), &
36 & fa%YGR1TAB (jj)%LFNIVA, fa%YGR1TAB (jj)%FMULTI, fa%YGR1TAB (jj)%LMULTI
37 ENDDO
38 
39 
40 
41 999 CONTINUE
42 
43 IF (iost /= 0) THEN
44  krep = iost
45 ENDIF
46 
47 IF (lhook) CALL dr_hook('FAGRTW_MT',1,zhook_handle)
48 
49 END SUBROUTINE fagrtw_fort
50 
51 ! Oct-2012 P. Marguinaud 64b LFI
52 SUBROUTINE fagrtw64 &
53 & (krep, kunit)
54 USE fa_mod, ONLY : fa => fa_com_default, &
57 USE lfi_precision
58 IMPLICIT NONE
59 ! Arguments
60 INTEGER (KIND=JPLIKB) KREP ! OUT
61 INTEGER (KIND=JPLIKB) KUNIT ! IN
62 
63 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
64 
65 CALL fagrtw_fort &
66 & (fa, krep, kunit)
67 
68 END SUBROUTINE fagrtw64
69 
70 SUBROUTINE fagrtw &
71 & (krep, kunit)
72 USE fa_mod, ONLY : fa => fa_com_default, &
75 USE lfi_precision
76 IMPLICIT NONE
77 ! Arguments
78 INTEGER (KIND=JPLIKM) KREP ! OUT
79 INTEGER (KIND=JPLIKM) KUNIT ! IN
80 
81 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
82 
83 CALL fagrtw_mt &
84 & (fa, krep, kunit)
85 
86 END SUBROUTINE fagrtw
87 
88 SUBROUTINE fagrtw_mt &
89 & (fa, krep, kunit)
90 USE fa_mod, ONLY : fa_com
91 USE lfi_precision
92 IMPLICIT NONE
93 ! Arguments
94 type(fa_com) fa ! INOUT
95 INTEGER (KIND=JPLIKM) KREP ! OUT
96 INTEGER (KIND=JPLIKM) KUNIT ! OUT
97 ! Local integers
98 INTEGER (KIND=JPLIKB) IREP ! OUT
99 INTEGER (KIND=JPLIKB) IUNIT ! IN
100 ! Convert arguments
101 
102 iunit = int( kunit, jplikb)
103 
104 CALL fagrtw_fort &
105 & (fa, irep, iunit)
106 
107 krep = int( irep, jplikm)
108 
109 END SUBROUTINE fagrtw_mt
110 
111 !INTF KREP OUT
112 !INTF KUNIT IN
113 
subroutine fagrtw(KREP, KUNIT)
Definition: fagrtw.F90:72
integer, parameter jplikb
subroutine fagrtw64(KREP, KUNIT)
Definition: fagrtw.F90:54
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 faicor_fort(FA)
Definition: faicor.F90:5
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
subroutine fagrtw_fort(FA, KREP, KUNIT)
Definition: fagrtw.F90:5
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine fagrtw_mt(FA, KREP, KUNIT)
Definition: fagrtw.F90:90