|
The Mars Lidar Simulation Model (MLSM) readMARSMCDGADS Model |
!---------------------------------------------------------------------------------------------------
!
! Routine: subroutine readMARSMCDGADS
!
! Passed from calling routine: None
!
! Passed to calling routine: None
!
! Description: readMARSMCDGADS reads the direct access "nature run" MCD mgs data in SWA's Global Atmosphere
! Data Set (GADS) 2004 format and creates an ASCII fdata file for
graphic tools.
!
! GADS record:
!
! Surface Variables (marsData1):
! 01 - adjusted MOLA terrain
! 02 - surface Pressure
! 03 - surface Temperature
!
! Upper Variable Profiles (marsData2):
! 01 - Height referenced from minimum terrain
! 02 - mean "boundary layer" eddy kinetic energy (m2/s2)
! 03 - mean density (kg/m3)
! 04 - mean temperature (K)
! 05 - horizontal Wind Component U (M/S)
! 06 - horizontal Wind Component V (M/S)
! SWA computed Upper Variable Profiles (sdU,sdV,sdW):
! 07 - subgrid scale standard deviation in U (9 point) (M/S)
! 08 - subgrid scale standard deviation in V (9 point) (M/S)
! 09 - subgrid scale standard deviation in W (9 point) (M/S)
!
! Author: Sidney A. Wood
! Simpson Weather Assoc., Inc.
! Winter, 2006
!
! Subprograms: None
!
! Devices: File 12, File 13, terminal
!
! Modules: None
!
!---------------------------------------------------------------------------------------------------
program readMARSMCDGADS
implicit none
integer, parameter :: numberOfMCDGADSLevels = 32 ! number of atmospheric levels in a MCD GADS
integer, parameter :: numberOfMCDGADSsfcVar = 2 ! number of MCD GADS surface variables
integer, parameter :: numberOfMCDGADSprofileVar = 5 ! number of MCD GADS vertical profile variables
integer :: totalNumberOfRecords
integer :: indxSW
character (len=80) :: filen
integer :: ivar, svar, pvar
integer :: i, iz, ilat, ilon
real :: latitude, longitude
real, dimension(2,36,72) :: marsData1
real, dimension(6,32,36,72) :: marsData2
real, dimension(32,36,72) :: sdu, sdv, sdw
real :: terrain
totalNumberOfRecords = (numberOfMCDGADSsfcVar + ((numberOfMCDGADSprofileVar+4)*numberOfMCDGADSLevels) + 3 )*4
write(*,*)
write(*,*)' Enter input GADSfilename.'
write(*,*)
read(*,'(a80)')filen
open(unit=11,file=trim(filen)//'.atm', form='unformatted',access='direct',recl=totalNumberOfRecords,status='unknown',convert='big_endian')
open(unit=12,file=trim(filen)//'.dat')
indxSW = 0
do ilat = 1, 36
do ilon = 1, 72
indxSW = indxSW+1
read(11,rec=indxSW)latitude,longitude, terrain, &
(marsData1(svar,ilat,ilon),svar=1,2), &
((marsData2(pvar,iz,ilat,ilon),iz=1,32),pvar=1,numberOfMCDGADSprofileVar+1), &
(sdU(iz,ilat,ilon),iz=1,32), &
(sdV(iz,ilat,ilon),iz=1,32), &
(sdW(iz,ilat,ilon),iz=1,32)
write(12,'(293(1x,f15.9))')latitude,longitude, terrain*1000., &
(marsData1(svar,ilat,ilon),svar=1,2), &
((marsData2(pvar,iz,ilat,ilon),iz=1,32),pvar=1,numberOfMCDGADSprofileVar+1), &
(sdU(iz,ilat,ilon),iz=1,32), &
(sdV(iz,ilat,ilon),iz=1,32), &
(sdW(iz,ilat,ilon),iz=1,32)
end do
end do
stop
end
Last Updated: 02/07/2007