7 KI,KSV,KSW, HSV,PCO2,PRHOA, &
8 PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB, &
10 KYEAR, KMONTH,KDAY, PTIME, TPDATE_END, &
11 HATMFILE,HATMFILETYPE, HTEST )
73 USE modd_data_cover_par
, ONLY : ntilesfc
88 USE modi_init_io_surf_n
90 USE modi_default_ch_surf_atm
91 USE modi_default_diag_surf_atm
92 USE modi_read_default_surf_atm_n
93 USE modi_read_surf_atm_conf_n
94 USE modi_read_surf_atm_date
95 USE modi_read_nam_prep_surf_n
98 USE modi_get_size_full_n
101 USE modi_subscale_z0eff
102 USE modi_read_sso_canopy_n
103 USE modi_read_dummy_n
105 USE modi_read_gridtype
106 USE modi_end_io_surf_n
107 USE modi_prep_ctrl_surf_atm
109 USE modi_average_tsurf
110 USE modi_init_chemical_n
111 USE modi_ch_init_depconst
112 USE modi_ch_init_emission_n
113 USE modi_ch_init_snap_n
114 USE modi_open_namelist
115 USE modi_close_namelist
117 USE modi_alloc_diag_surf_atm_n
119 USE modi_ini_data_cover
120 USE modi_init_inland_water_n
121 USE modi_init_nature_n
124 USE modi_read_arrange_cover
125 USE modi_read_cover_garden
126 USE modi_read_eco2_irrig
127 USE modi_read_lclim_lai
128 USE modi_read_lecoclimap
129 USE modi_surf_version
131 USE modi_set_surfex_filein
133 USE modi_init_cpl_gcm_n
148 TYPE(
surfex_t),
INTENT(INOUT) :: YSC
150 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
151 CHARACTER(LEN=3),
INTENT(IN) :: HINIT
152 LOGICAL,
INTENT(IN) :: OLAND_USE
153 INTEGER,
INTENT(IN) :: KI
154 INTEGER,
INTENT(IN) :: KSV
155 INTEGER,
INTENT(IN) :: KSW
156 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN) :: HSV
157 REAL,
DIMENSION(KI),
INTENT(IN) :: PCO2
158 REAL,
DIMENSION(KI),
INTENT(IN) :: PRHOA
159 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH
160 REAL,
DIMENSION(KI),
INTENT(IN) :: PAZIM
161 REAL,
DIMENSION(KSW),
INTENT(IN) :: PSW_BANDS
162 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: PDIR_ALB
163 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: PSCA_ALB
164 REAL,
DIMENSION(KI),
INTENT(OUT) :: PEMIS
165 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTSRAD
166 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTSURF
168 INTEGER,
INTENT(IN) :: KYEAR
169 INTEGER,
INTENT(IN) :: KMONTH
170 INTEGER,
INTENT(IN) :: KDAY
171 REAL,
INTENT(IN) :: PTIME
173 TYPE(
date),
INTENT(INOUT) :: TPDATE_END
175 CHARACTER(LEN=28),
INTENT(IN) :: HATMFILE
176 CHARACTER(LEN=6),
INTENT(IN) :: HATMFILETYPE
177 CHARACTER(LEN=2),
INTENT(IN) :: HTEST
182 CHARACTER(LEN=3) :: YREAD
189 INTEGER :: IVERSION, IBUGFIX
191 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISIZE_OMP
195 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZFRAC_TILE
196 REAL,
DIMENSION(KI,KSW,NTILESFC) :: ZDIR_ALB_TILE
197 REAL,
DIMENSION(KI,KSW,NTILESFC) :: ZSCA_ALB_TILE
198 REAL,
DIMENSION(KI,NTILESFC) :: ZEMIS_TILE
199 REAL,
DIMENSION(KI,NTILESFC) :: ZTSRAD_TILE
200 REAL,
DIMENSION(KI,NTILESFC) :: ZTSURF_TILE
201 REAL,
DIMENSION(KI) :: ZZENITH
202 REAL,
DIMENSION(KI) :: ZAZIM
203 REAL,
DIMENSION(KI) :: ZTSUN
205 REAL,
DIMENSION(:),
ALLOCATABLE :: ZP_ZENITH
206 REAL,
DIMENSION(:),
ALLOCATABLE :: ZP_AZIM
207 REAL,
DIMENSION(:),
ALLOCATABLE :: ZP_CO2
208 REAL,
DIMENSION(:),
ALLOCATABLE :: ZP_RHOA
209 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZP_DIR_ALB
210 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZP_SCA_ALB
211 REAL,
DIMENSION(:),
ALLOCATABLE :: ZP_EMIS
212 REAL,
DIMENSION(:),
ALLOCATABLE :: ZP_TSRAD
213 REAL,
DIMENSION(:),
ALLOCATABLE :: ZP_TSURF
215 REAL,
DIMENSION(:),
ALLOCATABLE :: ZZ0VEG
218 INTEGER :: ISIZE_FULL
220 REAL(KIND=JPRB) :: ZHOOK_HANDLE
223 IF (
lhook)
CALL dr_hook(
'INIT_SURF_ATM_N',0,zhook_handle)
228 IF (htest/=
'OK')
THEN 229 CALL abor1_sfx(
'INIT_SURF_ATMN: FATAL ERROR DURING ARGUMENT TRANSFER')
247 CALL default_sso(ysc%USS%CROUGH, ysc%USS%XFRACZ0, ysc%USS%XCOEFBE)
250 ysc%DUO%L2M_MIN_ZS, ysc%DUO%LRAD_BUDGET, ysc%DUO%LCOEF,&
251 ysc%DUO%LSURF_VARS, ysc%DUO%LSURF_BUDGETC, &
252 ysc%DUO%LRESET_BUDGETC, ysc%DUO%LSELECT, &
253 ysc%DUO%LPROVAR_TO_DIAG, ysc%DUO%LDIAG_GRID, &
254 ysc%DUO%LFRAC, ysc%DUO%XDIAG_TSTEP, &
255 ysc%DUO%LSNOWDIMNC, ysc%DUO%LRESETCUMUL )
271 WRITE(iluout,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 272 WRITE(iluout,*)
'!!! !!!' 273 WRITE(iluout,*)
'!!! WARNING WARNING !!!' 274 WRITE(iluout,*)
'!!! !!!' 275 WRITE(iluout,*)
'!!! Decoupling between CO2 for photosynthesis !!!' 276 WRITE(iluout,*)
'!!! and atmospheric CO2 activated !!!' 277 WRITE(iluout,*)
'!!! In NAM_SURF_ATM XCO2UNCPL =',
xco2uncpl,
' !!!' 278 WRITE(iluout,*)
'!!! !!!' 279 WRITE(iluout,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 286 ysc%U%TTIME%TDATE%YEAR =
nundef 287 ysc%U%TTIME%TDATE%MONTH=
nundef 288 ysc%U%TTIME%TDATE%DAY =
nundef 296 CALL read_surf_atm_date(hprogram,hinit,iluout,hatmfile,hatmfiletype,kyear,kmonth,kday,ptime,ysc%U%TTIME)
299 CALL init_io_surf_n(ysc%DTCO, ysc%U, hprogram,
'FULL ',
'SURF ',
'READ ')
300 CALL read_surf(hprogram,
'DTCUR',ysc%U%TTIME,iresp)
315 CALL init_io_surf_n(ysc%DTCO, ysc%U, hprogram,
'FULL ',
'SURF ',
'READ ')
316 CALL read_surf(hprogram,
'DIM_FULL ',ysc%U%NDIM_FULL, iresp)
318 CALL init_io_surf_n(ysc%DTCO, ysc%U, hprogram,
'FULL ',
'SURF ',
'READ ')
321 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
322 CALL read_surf(hprogram,
'BUG',ibugfix,iresp)
324 IF (iversion>7 .OR. iversion==7 .AND.ibugfix>=2)
THEN 325 CALL read_surf(hprogram,
'STORAGETYPE',yread,iresp)
329 CALL read_surf(hprogram,
'SEA ',ysc%U%CSEA ,iresp)
330 CALL read_surf(hprogram,
'WATER ',ysc%U%CWATER ,iresp)
331 CALL read_surf(hprogram,
'NATURE',ysc%U%CNATURE,iresp)
332 CALL read_surf(hprogram,
'TOWN ',ysc%U%CTOWN ,iresp)
335 CALL read_surf(hprogram,
'DIM_SEA ',ysc%U%NDIM_SEA, iresp)
336 CALL read_surf(hprogram,
'DIM_NATURE',ysc%U%NDIM_NATURE,iresp)
337 CALL read_surf(hprogram,
'DIM_WATER ',ysc%U%NDIM_WATER, iresp)
338 CALL read_surf(hprogram,
'DIM_TOWN ',ysc%U%NDIM_TOWN, iresp)
347 .AND. ysc%U%TTIME%TDATE%YEAR <=
neco2_end_year ) ysc%DTCO%NYEAR=ysc%U%TTIME%TDATE%YEAR
356 CALL get_size_full_n(hprogram,ysc%U%NDIM_FULL,ysc%U%NSIZE_FULL,isize_full)
357 ysc%U%NSIZE_FULL = isize_full
365 ALLOCATE(ysc%UG%G%XLAT (ysc%U%NSIZE_FULL))
366 ALLOCATE(ysc%UG%G%XLON (ysc%U%NSIZE_FULL))
367 ALLOCATE(ysc%UG%G%XMESH_SIZE(ysc%U%NSIZE_FULL))
368 ALLOCATE(ysc%USS%XZ0EFFJPDIR(ysc%U%NSIZE_FULL))
369 CALL read_grid(hprogram,ysc%UG%G,iresp,ysc%USS%XZ0EFFJPDIR)
373 lzenith = all(pzenith /=
xundef)
374 IF (.NOT. lzenith)
CALL sunpos(kyear, kmonth, kday, ptime, ysc%UG%G%XLON, ysc%UG%G%XLAT, ztsun, zzenith, zazim)
376 IF (hprogram/=
'AROME '.AND.
nrank==
npio)
THEN 378 IF (.NOT.
ASSOCIATED(ysc%UG%XGRID_FULL_PAR))
THEN 380 CALL read_gridtype(hprogram,ysc%UG%G%CGRID,ysc%UG%G%NGRID_PAR,ysc%U%NSIZE_FULL,.false.,hdir=
'H')
381 ALLOCATE(ysc%UG%XGRID_FULL_PAR(ysc%UG%G%NGRID_PAR))
382 CALL read_gridtype(hprogram,ysc%UG%G%CGRID,ysc%UG%G%NGRID_PAR,ysc%U%NSIZE_FULL,.true.,&
383 ysc%UG%XGRID_FULL_PAR,iresp,hdir=
'H')
385 CALL read_gridtype(hprogram,ysc%UG%G%CGRID,ysc%UG%NGRID_FULL_PAR,ysc%U%NDIM_FULL,.false.,hdir=
'A')
386 ALLOCATE(ysc%UG%XGRID_FULL_PAR(ysc%UG%NGRID_FULL_PAR))
387 CALL read_gridtype(hprogram,ysc%UG%G%CGRID,ysc%UG%NGRID_FULL_PAR,ysc%U%NDIM_FULL,.true.,&
388 ysc%UG%XGRID_FULL_PAR,iresp,hdir=
'A')
397 ysc%CHU%CCH_NAMES, ysc%CHU%CAER_NAMES )
401 CALL read_surf(hprogram,
'CH_EMIS',ysc%CHU%LCH_EMIS,iresp)
403 IF (ysc%CHU%LCH_EMIS)
THEN 405 IF ( iversion<7 .OR. iversion==7 .AND. ibugfix<3 )
THEN 406 ysc%CHU%CCH_EMIS=
'AGGR' 408 CALL read_surf(hprogram,
'CH_EMIS_OPT',ysc%CHU%CCH_EMIS,iresp)
411 IF (ysc%CHU%CCH_EMIS==
'AGGR')
THEN 413 hprogram,ysc%U%NSIZE_FULL,hinit,prhoa,ysc%CHU%CCHEM_SURF_FILE)
416 hprogram,ysc%U%NSIZE_FULL,hinit,prhoa,ysc%CHU%CCHEM_SURF_FILE)
423 IF (ysc%SV%NBEQ .GT. 0)
THEN 425 IF (hinit==
'ALL')
CALL ch_init_depconst(hprogram,ysc%CHU%CCHEM_SURF_FILE,iluout,ysc%SV%CSV(ysc%SV%NSV_CHSBEG:ysc%SV%NSV_CHSEND))
431 CALL read_sso_n(ysc%U%NSIZE_FULL, ysc%U%XSEA, ysc%USS, hprogram)
435 ALLOCATE(ysc%USS%XZ0EFFIP(ysc%U%NSIZE_FULL))
436 ALLOCATE(ysc%USS%XZ0EFFIM(ysc%U%NSIZE_FULL))
437 ALLOCATE(ysc%USS%XZ0EFFJP(ysc%U%NSIZE_FULL))
438 ALLOCATE(ysc%USS%XZ0EFFJM(ysc%U%NSIZE_FULL))
439 ALLOCATE(ysc%USS%XZ0REL (ysc%U%NSIZE_FULL))
441 ALLOCATE(zz0veg(ysc%U%NSIZE_FULL))
465 CALL init_io_surf_n(ysc%DTCO, ysc%U, hprogram,
'FULL ',
'SURF ',
'READ ')
469 IF (hinit==
'ALL')
THEN 471 ysc%U%NSIZE_FULL, ysc%U%TTIME, hprogram,ksw)
476 IF (ysc%USS%CROUGH==
'BE04')
THEN 494 ysc%U%NSIZE_NATURE =
count(ysc%U%XNATURE(:) > 0.0)
495 ysc%U%NSIZE_TOWN =
count(ysc%U%XTOWN(:) > 0.0)
496 ysc%U%NSIZE_WATER =
count(ysc%U%XWATER(:) > 0.0)
497 ysc%U%NSIZE_SEA =
count(ysc%U%XSEA(:) > 0.0)
499 ALLOCATE(ysc%U%NR_NATURE (ysc%U%NSIZE_NATURE))
500 ALLOCATE(ysc%U%NR_TOWN (ysc%U%NSIZE_TOWN ))
501 ALLOCATE(ysc%U%NR_WATER (ysc%U%NSIZE_WATER ))
502 ALLOCATE(ysc%U%NR_SEA (ysc%U%NSIZE_SEA ))
504 IF (ysc%U%NSIZE_SEA >0)
CALL get_1d_mask( ysc%U%NSIZE_SEA, ysc%U%NSIZE_FULL, ysc%U%XSEA , ysc%U%NR_SEA )
505 IF (ysc%U%NSIZE_WATER >0)
CALL get_1d_mask( ysc%U%NSIZE_WATER, ysc%U%NSIZE_FULL, ysc%U%XWATER , ysc%U%NR_WATER )
506 IF (ysc%U%NSIZE_TOWN >0)
CALL get_1d_mask( ysc%U%NSIZE_TOWN, ysc%U%NSIZE_FULL, ysc%U%XTOWN , ysc%U%NR_TOWN )
507 IF (ysc%U%NSIZE_NATURE>0)
CALL get_1d_mask( ysc%U%NSIZE_NATURE, ysc%U%NSIZE_FULL, ysc%U%XNATURE, ysc%U%NR_NATURE)
513 ALLOCATE(zfrac_tile(ysc%U%NSIZE_FULL,ntilesfc))
534 zfrac_tile(:,jtile) = ysc%U%XSEA(:)
540 IF (ysc%U%NDIM_SEA>0) &
541 CALL init_sea_n(ysc%DTCO, ysc%DUO%LREAD_BUDGETC, ysc%UG, ysc%U, ysc%GCP, &
542 ysc%SM, ysc%DLO, ysc%DL, ysc%DLC, &
543 hprogram,hinit,ysc%U%NSIZE_SEA,ksv,ksw, &
544 hsv,zp_co2,zp_rhoa, &
545 zp_zenith,zp_azim,psw_bands,zp_dir_alb,zp_sca_alb, &
546 zp_emis,zp_tsrad,zp_tsurf, &
547 kyear,kmonth,kday,ptime, hatmfile,hatmfiletype, &
563 zfrac_tile(:,jtile) = ysc%U%XWATER(:)
569 IF (ysc%U%NDIM_WATER>0) &
571 ysc%U, ysc%WM, ysc%FM, ysc%DLO, ysc%DL, ysc%DLC, &
572 hprogram,hinit,ysc%U%NSIZE_WATER,ksv,ksw, &
573 hsv,zp_co2,zp_rhoa, &
574 zp_zenith,zp_azim,psw_bands,zp_dir_alb,zp_sca_alb, &
575 zp_emis,zp_tsrad,zp_tsurf, &
576 kyear,kmonth,kday,ptime, hatmfile,hatmfiletype, &
591 zfrac_tile(:,jtile) = ysc%U%XNATURE(:)
597 IF (ysc%U%NDIM_NATURE>0) &
598 CALL init_nature_n(ysc%DTCO, ysc%DUO%LREAD_BUDGETC, ysc%UG, ysc%U, &
599 ysc%USS, ysc%GCP, ysc%IM, ysc%DTZ, ysc%DLO, ysc%DL,&
600 ysc%DLC, ysc%NDST, ysc%SLT, ysc%SV, &
601 hprogram,hinit,oland_use,ysc%U%NSIZE_NATURE, &
602 ksv,ksw, hsv,zp_co2,zp_rhoa, &
603 zp_zenith,zp_azim,psw_bands,zp_dir_alb,zp_sca_alb, &
604 zp_emis,zp_tsrad,zp_tsurf, &
605 kyear,kmonth,kday,ptime,tpdate_end, &
606 hatmfile,hatmfiletype,
'OK' )
620 zfrac_tile(:,jtile) = ysc%U%XTOWN(:)
626 IF (ysc%U%NDIM_TOWN>0) &
627 CALL init_town_n(ysc%DTCO, ysc%DUO%LREAD_BUDGETC, ysc%UG, ysc%U, ysc%GCP, &
628 ysc%TM, ysc%GDM, ysc%GRM, ysc%DLO, ysc%DL, ysc%DLC, &
629 hprogram,hinit,ysc%U%NSIZE_TOWN,ksv,ksw, &
630 hsv,zp_co2,zp_rhoa, &
631 zp_zenith,zp_azim,psw_bands,zp_dir_alb,zp_sca_alb, &
632 zp_emis,zp_tsrad,zp_tsurf, &
633 kyear,kmonth,kday,ptime, hatmfile,hatmfiletype, &
647 IF (
SIZE(pdir_alb)>0) &
649 zdir_alb_tile, zsca_alb_tile, zemis_tile, ztsrad_tile, &
650 pdir_alb, psca_alb, pemis, ptsrad )
652 IF (
SIZE(ptsurf)>0) &
655 DEALLOCATE(zfrac_tile)
659 IF (
lhook)
CALL dr_hook(
'INIT_SURF_ATM_N',1,zhook_handle)
664 INTEGER,
INTENT(IN) :: KSIZE
665 INTEGER,
INTENT(IN),
DIMENSION(:) :: KMASK
667 REAL(KIND=JPRB) :: ZHOOK_HANDLE
671 IF (
lhook)
CALL dr_hook(
'PACK_SURF_INIT_ARG',0,zhook_handle)
672 ALLOCATE(zp_co2(ksize))
673 ALLOCATE(zp_rhoa(ksize))
674 ALLOCATE(zp_zenith(ksize))
675 ALLOCATE(zp_azim(ksize))
680 ALLOCATE(zp_dir_alb(ksize,iswb))
681 ALLOCATE(zp_sca_alb(ksize,iswb))
682 ALLOCATE(zp_emis(ksize))
683 ALLOCATE(zp_tsrad(ksize))
684 ALLOCATE(zp_tsurf(ksize))
700 zp_co2(jj) = pco2(kmask(jj))
702 zp_rhoa(jj) = prhoa(kmask(jj))
703 IF (
SIZE(pzenith)>0)
THEN 705 zp_zenith(jj) = pzenith(kmask(jj))
707 zp_zenith(jj) = zzenith(kmask(jj))
710 IF (
SIZE(pazim )>0)
THEN 712 zp_azim(jj) = pazim(kmask(jj))
714 zp_azim(jj) = zazim(kmask(jj))
718 IF (
lhook)
CALL dr_hook(
'PACK_SURF_INIT_ARG',1,zhook_handle)
724 INTEGER,
INTENT(IN) :: KTILE, KSIZE
726 INTEGER,
INTENT(IN),
DIMENSION(:) :: KMASK
729 REAL(KIND=JPRB) :: ZHOOK_HANDLE
732 IF (
lhook)
CALL dr_hook(
'UNPACK_SURF_INIT_ARG',0,zhook_handle)
734 IF (
SIZE(ztsrad_tile)>0) &
735 ztsrad_tile(kmask(jj),ktile) = zp_tsrad(jj)
736 IF (
SIZE(zdir_alb_tile)>0) &
737 zdir_alb_tile(kmask(jj),:,ktile)= zp_dir_alb(jj,:)
738 IF (
SIZE(zsca_alb_tile)>0) &
739 zsca_alb_tile(kmask(jj),:,ktile)= zp_sca_alb(jj,:)
740 IF (
SIZE(zemis_tile)>0) &
741 zemis_tile(kmask(jj),ktile) = zp_emis(jj)
742 IF (
SIZE(ztsurf_tile)>0) &
743 ztsurf_tile(kmask(jj),ktile) = zp_tsurf(jj)
748 DEALLOCATE(zp_zenith )
750 DEALLOCATE(zp_dir_alb)
751 DEALLOCATE(zp_sca_alb)
753 DEALLOCATE(zp_tsrad )
754 DEALLOCATE(zp_tsurf )
755 IF (
lhook)
CALL dr_hook(
'UNPACK_SURF_INIT_ARG',1,zhook_handle)
subroutine init_chemical_n(KLUOUT, KSV, HSV, SV, HCH_NAMES, HAER_NAMES, HDSTNAMES, HSLTNAMES)
subroutine average_tsurf(PFRAC_TILE, PTSURF_TILE, PTSURF)
subroutine read_cover_garden(HPROGRAM, OGARDEN, HDIR)
subroutine set_surfex_filein(HPROGRAM, HMASK)
real, dimension(:,:,:), allocatable xdata_lai_all_years
subroutine init_surf_atm_n(YSC, HPROGRAM, HINIT, OLAND_USE, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PAZIM, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, KYEAR, KMONTH, KDAY, PTIME, TPDATE_END, HATMFILE, HATMFILETYPE, HTEST)
subroutine read_cover_n(DTCO, U, HPROGRAM)
subroutine read_sso_n(KSIZE_FULL, PSEA, USS, HPROGRAM)
subroutine ch_init_emission_n(CHE, PCONVERSION, HSV, HPROGRAM, KLU
subroutine get_size_full_n(HPROGRAM, KDIM_FULL, KSIZE_FULL_IN, KSIZE
subroutine alloc_diag_surf_atm_n(DGO, D, DC, ND, NDC, KSIZE_FULL, TPTIME, HPROGRAM, KSW)
subroutine subscale_z0eff(ISSK, PZ0VEG, OZ0REL, OMASK)
subroutine read_surf_atm_conf_n(CHU, DGO, USS, HPROGRAM)
integer, dimension(:), allocatable, target nmask_full
subroutine read_eco2_irrig(DTCO, HPROGRAM)
subroutine init_sea_n(DTCO, OREAD_BUDGETC, UG, U, GCP, SM, DGO, DL, DLC, HPROGRAM, HINIT, KI, KSV, KSW, HSV, PCO2, PRHOA,
subroutine ch_init_snap_n(CHN, HSV, HPROGRAM, KLU, HINIT, PRHOA, HCHE
subroutine abor1_sfx(YTEXT)
subroutine default_ch_surf_atm(HCHEM_SURF_FILE, OSURF_EMIS)
subroutine init_inland_water_n(DTCO, OREAD_BUDGETC, UG, U, WM, FM
subroutine sunpos(KYEAR, KMONTH, KDAY, PTIME, PLON, PLAT, PTSUN, PZENITH, PAZIMSOL)
subroutine read_gridtype( HPROGRAM, HGRID, KGRID_PAR, KLU, OREAD, PGRID
subroutine read_lecoclimap(HPROGRAM, OECOCLIMAP, OECOSG, HDIR)
subroutine prep_ctrl_surf_atm(DGO, ONOWRITE_TEXFILE, KLUOUT)
subroutine read_surf_atm_date( HPROGRAM, HINIT, KLUOUT, HATMFILE, HATMFILETYPE,
character(len=6) cprogname
integer, parameter nundef
subroutine read_default_surf_atm_n(CHU, DGO, USS, HPROGRAM)
subroutine default_sso(HROUGH, PFRACZ0, PCOEFBE)
subroutine init_cpl_gcm_n(U, HPROGRAM, HINIT)
subroutine end_io_surf_n(HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine ch_init_depconst(HPROGRAM, HCHEM_SURF_FILE, KLUOUT, HSV)
subroutine get_1d_mask(KSIZE, KFRAC, PFRAC, KMASK)
real, dimension(:,:,:), allocatable xdata_lai
subroutine read_arrange_cover( HPROGRAM, OWATER_TO_NATURE, OTOWN_TO_
subroutine pack_surf_init_arg(KSIZE, KMASK)
subroutine unpack_surf_init_arg(KTILE, KSIZE, KMASK)
subroutine average_rad(PFRAC_TILE, PDIR_ALB_TILE, PSCA_ALB_TILE, PEMIS_TILE, PTRAD_TILE,
subroutine read_lclim_lai(HPROGRAM, OCLIM_LAI)
subroutine read_grid(HPROGRAM, G, KRESP, PDIR)
subroutine read_nam_prep_surf_n(HPROGRAM)
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION
subroutine init_nature_n(DTCO, OREAD_BUDGETC, UG, U, USS, GCP, IM
subroutine ini_data_cover(DTCO, U)
subroutine read_sso_canopy_n(DTCO, SB, U, HPROGRAM, HINIT)
subroutine read_dummy_n(DUU, KSIZE_FULL, HPROGRAM)
subroutine init_town_n(DTCO, OREAD_BUDGETC, UG, U, GCP, TM, GDM,
subroutine default_diag_surf_atm(K2M, OT2MMW, OSURF_BUDGET, O2M_MI