SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
write_data.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########################
6  SUBROUTINE write_data(HPROGRAM)
7 ! #########################
8 !
9 !!**** *WRITE_DATA* initializes cover-field correspondance arrays
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !! METHOD
15 !! ------
16 !!
17 !!
18 !! EXTERNAL
19 !! --------
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !! AUTHOR
28 !! ------
29 !!
30 !! V. Masson Meteo-France
31 !!
32 !! MODIFICATION
33 !! ------------
34 !!
35 !! Original 15/12/97
36 !! F.solmon 01/06/00 adaptation for patch approach
37 !! R. Alkama 05/2012 : add new vegtypes (from 12 to 19)
38 !----------------------------------------------------------------------------
39 !
40 !* 0. DECLARATION
41 ! -----------
42 
43 USE modd_surf_par, ONLY : xundef
44 !
45 USE modd_data_cover, ONLY : xdata_town, xdata_nature, xdata_sea, xdata_water, &
46  xdata_lai, xdata_vegtype, xdata_h_tree, &
47  xdata_ground_depth, xdata_root_depth, &
48  tdata_seed, tdata_reap, xdata_watsup, xdata_irrig,&
49  xdata_lai_all_years
50 USE modd_data_cover_par, ONLY : cnames
51 !
52 
53 USE modd_data_cover_par, ONLY : nvegtype, nvt_irr, jpcover
54 !
55 !
56 USE yomhook ,ONLY : lhook, dr_hook
57 USE parkind1 ,ONLY : jprb
58 !
59 IMPLICIT NONE
60 !
61 !* 0.1 Declaration of arguments
62 ! ------------------------
63 !
64  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! Type of program
65 !
66 !
67 !* 0.2 Declaration of local variables
68 ! ------------------------------
69 !
70 !
71 INTEGER :: jcover,jdec,jk ! loop counters on covers, decades and vegtypes
72 !
73 
74 !
75 !* 0.3 Declaration of namelists
76 ! ------------------------
77 !
78  CHARACTER(LEN=8), DIMENSION(19) :: cnvt
79  CHARACTER(LEN=2) :: cf
80 REAL(KIND=JPRB) :: zhook_handle
81 !-------------------------------------------------------------------------------
82 IF (lhook) CALL dr_hook('WRITE_DATA',0,zhook_handle)
83  cnvt(1) = "NVT_NO " ! no vegetation (smooth)
84  cnvt(2) = "NVT_ROCK" ! no vegetation (rocks)
85  cnvt(3) = "NVT_SNOW" ! permanent snow and ice
86  cnvt(4) = "NVT_TEBD" ! temperate broadleaf deciduous trees
87  cnvt(5) = "NVT_BONE" ! boreal needleleaf evergreen trees
88  cnvt(6) = "NVT_TRBE" ! tropical broadleaf evergreen trees
89  cnvt(7) = "NVT_C3 " ! C3 cultures types
90  cnvt(8) = "NVT_C4 " ! C4 cultures types
91  cnvt(9) = "NVT_IRR " ! irrigated crops
92  cnvt(10)= "NVT_GRAS" ! temperate grassland C3
93  cnvt(11)= "NVT_TROG" ! tropical grassland C4
94  cnvt(12)= "NVT_PARK" ! peat bogs, parks and gardens (irrigated grass)
95  cnvt(13)= "NVT_TRBD" ! tropical broadleaf deciduous trees
96  cnvt(14)= "NVT_TEBE" ! temperate broadleaf evergreen trees
97  cnvt(15)= "NVT_TENE" ! temperate needleleaf evergreen trees
98  cnvt(16)= "NVT_BOBD" ! boreal broadleaf deciduous trees
99  cnvt(17)= "NVT_BOND" ! boreal needleleaf deciduous trees
100  cnvt(18)= "NVT_BOGR" ! boreal grassland C3
101  cnvt(19)= "NVT_SHRB" ! broadleaf shrub
102 
103 DO jcover=301,jpcover
104 WRITE(*,fmt='(A80)') '!-------------------------------------------------------------------------------'
105 WRITE(*,fmt='(A16,I3.3)') 'SUBROUTINE COVER',jcover
106 WRITE(*,fmt='(A1)') '!'
107 WRITE(*,fmt='(A10,I3.3)') '!* cover',jcover
108 WRITE(*,fmt='(A5,A60)') '! ',cnames(jcover,1)
109 WRITE(*,fmt='(A1)') '!'
110 WRITE(*,fmt='(A7,I3)') 'ICOVER=',jcover
111 WRITE(*,fmt='(A1)') '!'
112 WRITE(*,fmt='(A21,F4.2)') 'XDATA_TOWN (ICOVER)=',xdata_town(jcover)
113 WRITE(*,fmt='(A21,F4.2)') 'XDATA_NATURE(ICOVER)=',xdata_nature(jcover)
114 WRITE(*,fmt='(A21,F4.2)') 'XDATA_WATER (ICOVER)=',xdata_water(jcover)
115 WRITE(*,fmt='(A21,F4.2)') 'XDATA_SEA (ICOVER)=',xdata_sea(jcover)
116 WRITE(*,fmt='(A1)') '!'
117 DO jk=1,19
118  IF (xdata_vegtype(jcover,jk)==0.) cycle
119  IF (all(xdata_lai_all_years(jcover,:,jk)==0.)) THEN
120  WRITE(*,fmt='(A29,A8,A5)') &
121  'XDATA_LAI_ALL_YEARS(ICOVER,:,',cnvt(jk),')= 0.'
122  cycle
123  END IF
124  WRITE(*,fmt='(A29,A8,A7)') &
125  'XDATA_LAI_ALL_YEARS(ICOVER,:,',cnvt(jk),')= (/ &'
126  DO jdec=1,18
127  cf=', '
128  IF (jdec==18) cf=' '
129  WRITE(*,fmt='(A7,12(F4.1,A2),A1)') ' ', &
130  max(xdata_lai_all_years(jcover,(jdec-1)*12+1,jk),0.1),', ', &
131  max(xdata_lai_all_years(jcover,(jdec-1)*12+2,jk),0.1),', ', &
132  max(xdata_lai_all_years(jcover,(jdec-1)*12+3,jk),0.1),', ', &
133  max(xdata_lai_all_years(jcover,(jdec-1)*12+4,jk),0.1),', ', &
134  max(xdata_lai_all_years(jcover,(jdec-1)*12+5,jk),0.1),', ', &
135  max(xdata_lai_all_years(jcover,(jdec-1)*12+6,jk),0.1),', ', &
136  max(xdata_lai_all_years(jcover,(jdec-1)*12+7,jk),0.1),', ', &
137  max(xdata_lai_all_years(jcover,(jdec-1)*12+8,jk),0.1),', ', &
138  max(xdata_lai_all_years(jcover,(jdec-1)*12+9,jk),0.1),', ', &
139  max(xdata_lai_all_years(jcover,(jdec-1)*12+10,jk),0.1),', ', &
140  max(xdata_lai_all_years(jcover,(jdec-1)*12+11,jk),0.1),', ', &
141  max(xdata_lai_all_years(jcover,(jdec-1)*12+12,jk),0.1),cf,'&'
142  END DO
143  WRITE(*,fmt='(A7)') ' /)'
144 END DO
145 WRITE(*,fmt='(A1)') '!'
146 DO jk=1,19
147  IF (xdata_vegtype(jcover,jk)==0.) cycle
148  WRITE(*,fmt='(A21,A8,A3,F4.2)') &
149  'XDATA_VEGTYPE(ICOVER,',cnvt(jk),')= ',xdata_vegtype(jcover,jk)
150 END DO
151 WRITE(*,fmt='(A1)') '!'
152 DO jk=4,6
153  IF (xdata_vegtype(jcover,jk)==0.) cycle
154  WRITE(*,fmt='(A20,A8,A3,F4.1)') &
155  'XDATA_H_TREE(ICOVER,',cnvt(jk),')= ',xdata_h_tree(jcover,jk)
156 END DO
157 WRITE(*,fmt='(A1)') '!'
158 DO jk=1,19
159  IF (xdata_vegtype(jcover,jk)==0.) cycle
160  WRITE(*,fmt='(A24,A8,A3,F4.1)') &
161  'XDATA_ROOT_DEPTH(ICOVER,',cnvt(jk),')= ',xdata_root_depth(jcover,jk)
162 END DO
163 WRITE(*,fmt='(A1)') '!'
164 DO jk=1,19
165  IF (xdata_vegtype(jcover,jk)==0.) cycle
166  WRITE(*,fmt='(A26,A8,A3,F4.1)') &
167  'XDATA_GROUND_DEPTH(ICOVER,',cnvt(jk),')= ',xdata_ground_depth(jcover,jk)
168 END DO
169 WRITE(*,fmt='(A1)') '!'
170 IF (xdata_vegtype(jcover,9)/=0.) THEN
171  WRITE(*,fmt='(A18,A8,A15,I2.2)') &
172  'TDATA_SEED(ICOVER,',cnvt(9),')%TDATE%MONTH= ',tdata_seed(jcover,9)%TDATE%MONTH
173  WRITE(*,fmt='(A18,A8,A15,I2.2)') &
174  'TDATA_SEED(ICOVER,',cnvt(9),')%TDATE%DAY = ',tdata_seed(jcover,9)%TDATE%DAY
175  WRITE(*,fmt='(A18,A8,A15,I2.2)') &
176  'TDATA_REAP(ICOVER,',cnvt(9),')%TDATE%MONTH= ',tdata_reap(jcover,9)%TDATE%MONTH
177  WRITE(*,fmt='(A18,A8,A15,I2.2)') &
178  'TDATA_REAP(ICOVER,',cnvt(9),')%TDATE%DAY = ',tdata_reap(jcover,9)%TDATE%DAY
179  WRITE(*,fmt='(A20,A8,A3,F4.1)') &
180  'XDATA_WATSUP(ICOVER,',cnvt(9),')= ',xdata_watsup(jcover,9)
181  WRITE(*,fmt='(A20,A8,A3,F4.1)') &
182  'XDATA_IRRIG (ICOVER,',cnvt(9),')= ',xdata_irrig(jcover,9)
183 END IF
184 WRITE(*,fmt='(A20,I3.3)') 'END SUBROUTINE COVER',jcover
185 END DO
186 !-------------------------------------------------------------------------------
187 !-------------------------------------------------------------------------------
188 !-------------------------------------------------------------------------------
189 !
190 DO jcover=301,jpcover
191  WRITE(*,fmt='(A10,I3.3)') 'CALL COVER',jcover
192 END DO
193 IF (lhook) CALL dr_hook('WRITE_DATA',1,zhook_handle)
194 !-------------------------------------------------------------------------------
195 !
196 END SUBROUTINE write_data
subroutine write_data(HPROGRAM)
Definition: write_data.F90:6