42 USE modd_surfex_omp, ONLY : nwork, nwork2, xwork, xwork2, xwork3, nblocktot, &
43 nwork_full, nwork2_full, xwork_full, xwork2_full
54 USE modi_open_namelist
55 USE modi_close_namelist
56 USE modi_read_all_namelists
59 USE modi_init_pgd_surf_atm
60 USE modi_io_buff_clean
61 USE modi_prep_surf_atm
62 USE modi_write_diag_surf_atm_n
63 USE modi_write_header_mnh
64 USE modi_write_surf_atm_n
70 USE modi_sfx_oasis_init
71 USE modi_sfx_oasis_read_nam
72 USE modi_sfx_oasis_prep
73 USE modi_sfx_oasis_end
75 USE modi_init_output_nc_n
81 USE yomhook
,ONLY : lhook, dr_hook
82 USE parkind1
,ONLY : jprb
102 INTEGER :: iyear, imonth, iday
106 REAL,
DIMENSION(0) :: zzs
107 CHARACTER(LEN=28) :: yatmfile =
' '
108 CHARACTER(LEN=6) :: yatmfiletype =
' '
109 CHARACTER(LEN=28) :: ypgdfile =
' '
110 CHARACTER(LEN=6) :: ypgdfiletype =
' '
111 CHARACTER(LEN=28) :: yluout =
'LISTING_PREP '
113 INTEGER,
DIMENSION(11) :: idatef
118 INTEGER :: ilocal_comm, infompi, inproc
120 REAL(KIND=JPRB) :: zhook_handle
135 IF (lhook) CALL dr_hook(
'PREP',0,zhook_handle)
139 CALL mpi_comm_size(ilocal_comm,inproc,infompi)
141 CALL
abor1_sfx(
'PREP: FOR PREP"WITH OASIS ONLY 1 PROC MUST BE USED')
163 cluout_lfi = adjustl(adjustr(yluout)//
'.txt')
165 OPEN (unit=iluout,file=adjustl(adjustr(yluout)//
'.txt'),form=
'FORMATTED',action=
'WRITE')
172 CALL
posnam(ilunam,
'NAM_IO_OFFLINE',gfound)
173 IF (gfound)
READ (unit=ilunam,nml=nam_io_offline)
175 cfilepgd = adjustl(adjustr(cpgdfile)//
'.txt')
176 cfilein = adjustl(adjustr(cpgdfile)//
'.txt')
177 cfilein_save = cfilein
178 cfileout = adjustl(adjustr(cprepfile)//
'.txt')
180 cfilepgd_fa = adjustl(adjustr(cpgdfile)//
'.fa')
181 cfilein_fa = adjustl(adjustr(cpgdfile)//
'.fa')
182 cfilein_fa_save = cfilein_fa
183 cfileout_fa = adjustl(adjustr(cprepfile)//
'.fa')
185 cfilepgd_lfi = cpgdfile
186 cfilein_lfi = cpgdfile
187 cfilein_lfi_save = cfilein_lfi
188 cfileout_lfi = cprepfile
190 cfilepgd_nc = adjustl(adjustr(cpgdfile)//
'.nc')
191 cfilein_nc = adjustl(adjustr(cpgdfile)//
'.nc')
192 cfilein_nc_save = cfilein_nc
193 cfileout_nc = adjustl(adjustr(cprepfile)//
'.nc')
198 ysurf_cur => ysurf_list(1)
200 csurf_filetype,
'PRE',.false.)
221 csurf_filetype,
'PRE',yatmfile,yatmfiletype, &
222 iyear, imonth, iday, ztime )
226 csurf_filetype,yatmfile,yatmfiletype,ypgdfile,ypgdfiletype)
239 CALL
flag_update(ysurf_cur%IM%DGI, ysurf_cur%DGU, &
240 .false.,.true.,.false.,.false.)
243 IF (csurf_filetype==
'FA ')
THEN
245 lfanocompact = .true.
246 idatef(1)=ysurf_cur%U%TTIME%TDATE%YEAR
247 idatef(2)=ysurf_cur%U%TTIME%TDATE%MONTH
248 idatef(3)=ysurf_cur%U%TTIME%TDATE%DAY
249 idatef(4)=nint(ysurf_cur%U%TTIME%TIME/3600.)
250 idatef(5)=nint(ysurf_cur%U%TTIME%TIME/60.) - idatef(4) * 60
253 CALL faitou(iret,nunit_fa,.true.,cfileout_fa,
'NEW',.true.,.false.,iverbfa,0,inb,cdnomc)
254 CALL fandar(iret,nunit_fa,idatef)
260 IF (csurf_filetype==
"NC ")
THEN
261 CALL
init_output_nc_n(ysurf_cur%TM%BDD, ysurf_cur%CHE, ysurf_cur%CHN, ysurf_cur%CHU, &
262 ysurf_cur%SM%DTS, ysurf_cur%TM%DTT, ysurf_cur%DTZ, ysurf_cur%IM%I, &
263 ysurf_cur%UG, ysurf_cur%U, ysurf_cur%DGU)
267 IF (csurf_filetype==
"NC ") inw = 2
279 csurf_filetype,
'PRE',lland_use)
281 csurf_filetype,
'ALL')
289 IF (csurf_filetype==
'FA ')
THEN
291 CALL fairme(iret,nunit_fa,
'UNKNOWN')
303 WRITE(iluout,*)
' -----------------------'
304 WRITE(iluout,*)
' | PREP ENDS CORRECTLY |'
305 WRITE(iluout,*)
' -----------------------'
308 WRITE(*,*)
' -----------------------'
309 WRITE(*,*)
' | PREP ENDS CORRECTLY |'
310 WRITE(*,*)
' -----------------------'
316 IF (
ASSOCIATED(nwork))
DEALLOCATE(nwork)
317 IF (
ASSOCIATED(xwork))
DEALLOCATE(xwork)
318 IF (
ASSOCIATED(nwork2))
DEALLOCATE(nwork2)
319 IF (
ASSOCIATED(xwork2))
DEALLOCATE(xwork2)
320 IF (
ASSOCIATED(xwork3))
DEALLOCATE(xwork3)
321 IF (
ASSOCIATED(nwork_full))
DEALLOCATE(nwork_full)
322 IF (
ASSOCIATED(xwork_full))
DEALLOCATE(xwork_full)
323 IF (
ASSOCIATED(nwork2_full))
DEALLOCATE(nwork2_full)
324 IF (
ASSOCIATED(xwork2_full))
DEALLOCATE(xwork2_full)
326 IF (lhook) CALL dr_hook(
'PREP',1,zhook_handle)
subroutine init_output_nc_n(BDD, CHE, CHN, CHU, DTS, DTT, DTZ, I, UG, U, DGU)
subroutine sfx_oasis_read_nam(HPROGRAM, PTSTEP_SURF, HINIT)
subroutine get_lonlat_n(YSC, HPROGRAM)
subroutine abor1_sfx(YTEXT)
subroutine flag_update(DGI, DGU, ONOWRITE_CANOPY, OPGD, OPROVAR_TO_DIAG, OSELECT)
subroutine write_diag_surf_atm_n(YSC, HPROGRAM, HWRITE)
subroutine sfx_oasis_init(HNAMELIST, KLOCAL_COMM, HINIT)
subroutine surfex_deallo_list
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine init_pgd_surf_atm(YSC, HPROGRAM, HINIT, HATMFILE, HATMFILETYPE, KYEAR, KMONTH, KDAY, PTIME)
subroutine read_all_namelists(YSC, HPROGRAM, HINIT, ONAM_READ)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine write_surf_atm_n(YSC, HPROGRAM, HWRITE, OLAND_USE)
subroutine surfex_alloc_list(KMODEL)
subroutine prep_surf_atm(YSC, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
subroutine sfx_oasis_prep(I, UG, U, HPROGRAM)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)