47 USE modi_writesurf_gr_snow
60 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
61 LOGICAL,
INTENT(IN) :: OSNOWDIMNC
67 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
68 CHARACTER(LEN=3),
INTENT(IN) :: HPATCH
73 INTEGER,
DIMENSION(SIZE(PEK%XTG,1)) :: IMASK_P
75 CHARACTER(LEN=30) :: YRECFM
76 CHARACTER(LEN=100) :: YCOMMENT
77 CHARACTER(LEN=14) :: YFORM
78 CHARACTER(LEN=4 ) :: YLVL
82 REAL,
DIMENSION(:),
ALLOCATABLE :: ZWORK
86 INTEGER :: JSV, JNBIOMASS
88 REAL(KIND=JPRB) :: ZHOOK_HANDLE
95 IF (
lhook)
CALL dr_hook(
'WRITESURF_TEB_GREENROOF_N',0,zhook_handle)
96 ALLOCATE(zwork(
SIZE(pek%XTG,1)))
101 iwork=io%NGROUND_LAYER
104 WRITE(ylvl,
'(I2)') jl
105 yrecfm=hpatch//
'GR_TG'//adjustl(ylvl(:len_trim(ylvl)))
106 yrecfm=adjustl(yrecfm)
107 yform=
'(A13,I1.1,A4)' 108 IF (jl >= 10) yform=
'(A13,I2.2,A4)' 109 WRITE(ycomment,fmt=yform)
'X_Y_TWN_TG_GR',jl,
' (K)' 111 CALL write_surf(hselect, hprogram,yrecfm,zwork,iresp,hcomment=ycomment
116 DO jl=1,io%NGROUND_LAYER
117 WRITE(ylvl,
'(I2)') jl
118 yrecfm=hpatch//
'GR_WG'//adjustl(ylvl(:len_trim(ylvl)))
119 yrecfm=adjustl(yrecfm)
120 yform=
'(A13,I1.1,A8)' 121 IF (jl >= 10) yform=
'(A13,I2.2,A8)' 122 WRITE(ycomment,fmt=yform)
'X_Y_TWN_WG_GR',jl,
' (m3/m3)' 124 CALL write_surf(hselect, hprogram,yrecfm,zwork,iresp,hcomment=ycomment
130 DO jl=1,io%NGROUND_LAYER
131 WRITE(ylvl,
'(I2)') jl
132 yrecfm=hpatch//
'GR_WGI'//adjustl(ylvl(:len_trim(ylvl)))
133 yrecfm=adjustl(yrecfm)
134 yform=
'(A14,I1.1,A8)' 135 IF (jl >= 10) yform=
'(A14,I2.2,A8)' 136 WRITE(ycomment,yform)
'X_Y_GR_WGI',jl,
' (m3/m3)' 138 CALL write_surf(hselect, hprogram,yrecfm,zwork,iresp,hcomment=ycomment
145 yrecfm=hpatch//
'GR_WR' 146 yrecfm=adjustl(yrecfm)
147 ycomment=
'X_Y_TWN_WR_GR (kg/m2)' 148 CALL write_surf(hselect, hprogram,yrecfm,pek%XWR(:),iresp,hcomment=ycomment
152 IF (io%CPHOTO/=
'NON' .AND. io%CPHOTO/=
'AST')
THEN 153 yrecfm=hpatch//
'GR_LAI' 154 yrecfm=adjustl(yrecfm)
155 ycomment=
'X_Y_GR_LAI (m2/m2)' 156 CALL write_surf(hselect, hprogram,yrecfm,pek%XLAI(:),iresp,hcomment=ycomment
162 IF (io%CPHOTO==
'NIT')
THEN 163 DO jnbiomass=1,io%NNBIOMASS
164 WRITE(ylvl,
'(I1)') jnbiomass
165 yrecfm=hpatch//
'GR_BIOMA'//adjustl(ylvl(:len_trim(ylvl)))
166 yrecfm=adjustl(yrecfm)
167 yform=
'(A11,I1.1,A8)' 168 WRITE(ycomment,fmt=yform)
'X_Y_BIOMASS',jnbiomass,
' (kg/m2)' 169 CALL write_surf(hselect, hprogram,yrecfm,pek%XBIOMASS(:,jnbiomass),iresp
173 DO jnbiomass=2,io%NNBIOMASS
174 WRITE(ylvl,
'(I1)') jnbiomass
175 yrecfm=hpatch//
'GR_RESPI'//adjustl(ylvl(:len_trim(ylvl)))
176 yrecfm=adjustl(yrecfm)
177 yform=
'(A16,I1.1,A10)' 178 WRITE(ycomment,fmt=yform)
'X_Y_RESP_BIOMASS',jnbiomass,
' (kg/m2/s)' 179 CALL write_surf(hselect, hprogram,yrecfm,pek%XRESP_BIOMASS(:,jnbiomass
186 yrecfm=hpatch//
'GR_RESA' 187 yrecfm=adjustl(yrecfm)
188 ycomment=
'X_Y_GR_RESA (s/m)' 189 CALL write_surf(hselect, hprogram,yrecfm,pek%XRESA(:),iresp,hcomment=ycomment
193 DO ji = 1,
SIZE(imask_p)
198 SIZE(pek%XTG,1), imask_p, 0, pek%TSNOW, s%XWSN_WR
203 IF (
lhook)
CALL dr_hook(
'WRITESURF_TEB_GREENROOF_N',1,zhook_handle)
subroutine writesurf_teb_greenroof_n(HSELECT, OSNOWDIMNC, IO, S,
subroutine writesurf_gr_snow(OSNOWDIMNC, HSELECT, HPROGRAM, HSURF