Program demo3 Use MBUFR ! Declaration and allocation of MBUFR interface variables type(sec1type)::sec1 type(sec3type)::sec3 type(sec4type)::sec4 ! real::ano,mes,dia,hora,lat,lon,temp integer::n integer::err !--------------------------------------------------- !Alocacao de espaço necessário nas estruturas sec3 e sec4 !(ate 10 subsets) !---------------------------------------------------- allocate(sec3%d(1:8), STAT = ERR) allocate(sec4%r(1:8, 1:10), stat = err) sec3%d(1) = 004001 ! Ano sec3%d(2) = 004002 ! Mes sec3%d(3) = 004003 ! Dia sec3%d(4) = 004004 ! Hora sec3%d(5) = 004005 ! Minuto sec3%d(6) = 005001 ! Latitude sec3%d(7) = 006001 ! Longitude sec3%d(8) = 012004 ! Descritor de temperatura em kelvin sec3%ndesc = 8 ! Número de descritores fornecidos, sec4%nvars=sec3%ndesc sec3%nsubsets=1 call OPEN_MBUFR(2, "exemplo1b.bufr", 46,11,0) open(1,file='exemplo1.txt',status='old') 10 read(1,*,end=999)ano,mes,dia,hora,lat,lon,temp n=n+1 sec4%r(1,1)=ano sec4%r(2,1)=mes sec4%r(3,1)=dia sec4%r(4,1)=hora sec4%r(5,1)=0.0 sec4%r(6,1)=lat sec4%r(7,1)=lon sec4%r(8,1)=temp+273.2 !Convertendo para Kelvin sec1%btype = 0 ! Dados de superfície sec1%bsubtype = 0 ! Subtipo da observação (não definido) sec1%center = 46 ! Codigo do centro gerador (INPE) sec1%subcenter = 0 ! Código do Subcentro sec1%MasterTable = 11 ! Usar tabela MASTER 11 sec1%LocalTable = 0 ! Tabelas nao contem descritores locais sec1%year = ano ! Ano da data sinótica sec1%month = mes ! mes da data sinótica sec1%day = dia ! Dia da data sinótica sec1%hour = hora ! Horario sinoptico sec1%minute = 0 ! Minutos do horário sinótico sec1%sec2present =.false. ! Nao gravar a secao 2 Call write_mbufr(2,sec1,sec3,sec4) goto 10 999 close(1) ! Termino da leitura dos dados Call CLOSE_MBUFR(2) end