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

 

  Simpson Weather Associates, Inc.


Last Updated: 02/07/2007