61 USE modi_open_namelist
62 USE modi_close_namelist
63 USE modi_read_all_namelists
66 USE modi_init_pgd_surf_atm
67 USE modi_io_buff_clean
68 USE modi_prep_surf_atm
69 USE modi_write_diag_surf_atm_n
70 USE modi_write_header_mnh
71 USE modi_write_surf_atm_n
77 USE modi_sfx_oasis_init
78 USE modi_sfx_oasis_read_nam
79 USE modi_sfx_oasis_prep_ol
80 USE modi_sfx_oasis_end
82 USE modi_init_output_nc_n
83 USE modi_init_index_mpi
113 INTEGER :: IYEAR, IMONTH, IDAY
117 REAL,
DIMENSION(0) :: ZZS
118 CHARACTER(LEN=28) :: YATMFILE =
' ' 119 CHARACTER(LEN=6) :: YATMFILETYPE =
' ' 120 CHARACTER(LEN=28) :: YPGDFILE =
' ' 121 CHARACTER(LEN=6) :: YPGDFILETYPE =
' ' 122 CHARACTER(LEN=28) :: YLUOUT =
'LISTING_PREP ' 123 CHARACTER(LEN=100) :: YNAME
125 INTEGER,
DIMENSION(11) :: IDATEF
130 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: ISTATUS
132 INTEGER :: ILEVEL, INFOMPI
134 INTEGER :: IRET, INB, JPROC
135 DOUBLE PRECISION :: XTIME0
136 REAL(KIND=JPRB) :: ZHOOK_HANDLE
157 CALL mpi_init_thread(mpi_thread_multiple,ilevel,infompi)
158 IF (infompi /= mpi_success)
THEN 159 CALL abor1_sfx(
'OFFLINE: ERROR WHEN INITIALIZING MPI')
161 ncomm = mpi_comm_world
188 WRITE(yname,fmt=
'(A15,I2)') trim(yluout),
nrank 190 WRITE(yname,fmt=
'(A15,I1)') trim(yluout),
nrank 194 cluout_nc = adjustl(adjustr(yname)//
'.txt')
196 OPEN (unit=iluout,file=adjustl(adjustr(yname)//
'.txt'),form=
'FORMATTED',action=
'WRITE')
203 CALL posnam(ilunam,
'NAM_IO_OFFLINE',gfound)
204 IF (gfound)
READ (unit=ilunam,nml=nam_io_offline)
263 iyear, imonth, iday, ztime)
286 idatef(1)=
ysc%U%TTIME%TDATE%YEAR
287 idatef(2)=
ysc%U%TTIME%TDATE%MONTH
288 idatef(3)=
ysc%U%TTIME%TDATE%DAY
289 idatef(4)=nint(
ysc%U%TTIME%TIME/3600.)
290 idatef(5)=nint(
ysc%U%TTIME%TIME/60.) - idatef(4) * 60
293 CALL faitou(iret,
nunit_fa,.true.,
cfileout_fa,
'NEW',.true.,.false.,
iverbfa,0,inb,
cdnomc)
299 ALLOCATE(
ysc%DUO%CSELECT(0))
349 WRITE(iluout,*)
' -----------------------' 350 WRITE(iluout,*)
' | PREP ENDS CORRECTLY |' 351 WRITE(iluout,*)
' -----------------------' 354 WRITE(*,*)
' -----------------------' 355 WRITE(*,*)
' | PREP ENDS CORRECTLY |' 356 WRITE(*,*)
' -----------------------' 365 IF (
ALLOCATED(
nnum))
DEALLOCATE(
nnum)
378 CALL mpi_finalize(infompi)
character(len=28) cnamelist
subroutine fairme(KREP, KNUMER, CDSTTU)
integer(kind=jpim) mplusercomm
character(len=6) csurf_filetype
character(len=28), save cfileout_nc
subroutine prep_surf_atm(YSC, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, YDCTL)
subroutine sfx_oasis_prep_ol(IO, S, UG, U, HPROGRAM, HALG_MPI)
subroutine sfx_oasis_read_nam(HPROGRAM, PTSTEP_SURF, HINIT)
character(len=28), save cfileout_fa
subroutine get_lonlat_n(DTCO, U, UG, HSELECT, HPROGRAM)
subroutine init_index_mpi(DTCO, U, UG, GCP, HPROGRAM, HINIT, HALG, PIO_FRAC, OSHADOWS)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
character(len=28), save cfilein_lfi_save
character(len=28), save cluout_lfi
integer, dimension(:), allocatable nnum
character(len=28), save cfilepgd
subroutine abor1_sfx(YTEXT)
character(len=28), save cfilein_save
subroutine write_diag_surf_atm_n(YSC, HPROGRAM, HWRITE)
subroutine surfex_deallo_list
character(len=28), save cluout_nc
character(len=28), save cfilein_fa_save
integer, parameter nundef
character(len=7) csoftware
character(len=6), save cdnomc
subroutine sfx_oasis_init(HNAMELIST, KLOCAL_COMM, HINIT)
subroutine flag_update(DIO, DUO, ONOWRITE_CANOPY, OPGD, OPROVAR_TO_DIAG, OSELE
type(surfex_t), pointer ysc
subroutine close_namelist(HPROGRAM, KLUNAM)
character(len=28), save cfilepgd_lfi
subroutine init_pgd_surf_atm(YSC, HPROGRAM, HINIT, HATMFILE, HATMFILETYPE, KYEAR, KMONTH, KDAY, PTIME)
subroutine read_all_namelists(YSC, HPROGRAM, HINIT, ONAM_READ)
subroutine init_output_nc_n(BDD, CHE, CHN, CHU, DTS, DTT, DTZ, IM
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine write_surf_atm_n(YSC, HPROGRAM, HWRITE, OLAND_USE)
character(len=28), save cfilepgd_fa
integer, dimension(:), allocatable nsize_task
character(len=28), save cfileout_lfi
type(surfex_t), dimension(:), allocatable, target, save ysurf_list
subroutine fandar(KREP, KNUMER, KDATEF)
integer, dimension(:), allocatable nindex
subroutine surfex_alloc_list(KMODEL)
character(len=4) yalg_mpi
character(len=28), save cfileout
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)
character(len=28), save cfilein
character(len=28), save cfilein_fa
logical, save lfanocompact
character(len=28) cpgdfile
character(len=28), save cfilepgd_nc
character(len=28) cprepfile
subroutine wlog_mpi(HLOG, PLOG, KLOG, KLOG2, OLOG)
character(len=28), save cfilein_lfi
character(len=28), save cfilein_nc_save
subroutine faitou(KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)
character(len=28), save cfilein_nc