[1] | 1 | subroutine load_mie_table(mie_table_name,mt) |
---|
| 2 | use radar_simulator_types |
---|
| 3 | implicit none |
---|
| 4 | |
---|
| 5 | ! Purpose: |
---|
| 6 | ! Loads the Mie table data |
---|
| 7 | ! Part of Quickbeam v1.03 |
---|
| 8 | ! http://reef.atmos.colostate.edu/haynes/radarsim |
---|
| 9 | ! |
---|
| 10 | ! Inputs: |
---|
| 11 | ! [mie_table_name] Mie table input file |
---|
| 12 | ! |
---|
| 13 | ! Outputs: |
---|
| 14 | ! [mt] structure of Mie table data |
---|
| 15 | ! |
---|
| 16 | ! Created from Quickbeam v1.02 08/24/2006 by Roger Marchand |
---|
| 17 | |
---|
| 18 | ! ----- INPUT ----- |
---|
| 19 | character*200, intent(in) :: mie_table_name |
---|
| 20 | |
---|
| 21 | ! ----- OUTPUT ----- |
---|
| 22 | type(mie), intent(out) :: mt |
---|
| 23 | |
---|
| 24 | ! ----- INTERNAL ----- |
---|
| 25 | integer :: i |
---|
| 26 | |
---|
| 27 | integer*4 :: dummy_in(4) |
---|
| 28 | |
---|
| 29 | open(51,file=mie_table_name,action='read') |
---|
| 30 | |
---|
| 31 | read(51,*) dummy_in |
---|
| 32 | |
---|
| 33 | if(dummy_in(1).ne. mt_nfreq .or. & |
---|
| 34 | dummy_in(2).ne. mt_ntt .or. & |
---|
| 35 | dummy_in(3).ne. mt_nf .or. & |
---|
| 36 | dummy_in(4).ne. mt_nd) then |
---|
| 37 | |
---|
| 38 | print *,'Mie file is of size :',dummy_in(:) |
---|
| 39 | print *,' expected a size of:',mt_nfreq, mt_ntt,mt_nf,mt_nf |
---|
| 40 | print *,' change paramters in radar_simulator_types.f90 ?? ' |
---|
| 41 | stop |
---|
| 42 | endif |
---|
| 43 | |
---|
| 44 | read(51,*) mt%freq |
---|
| 45 | read(51,*) mt%tt |
---|
| 46 | read(51,*) mt%f |
---|
| 47 | read(51,*) mt%phase |
---|
| 48 | read(51,*) mt%D |
---|
| 49 | read(51,*) mt%qext |
---|
| 50 | read(51,*) mt%qbsca |
---|
| 51 | |
---|
| 52 | close(51) |
---|
| 53 | |
---|
| 54 | ! // create arrays of liquid/ice temperature |
---|
| 55 | cnt_liq = 0 |
---|
| 56 | cnt_ice = 0 |
---|
| 57 | do i=1,mt_ntt |
---|
| 58 | if (mt%phase(i) == 0) cnt_liq = cnt_liq + 1 |
---|
| 59 | if (mt%phase(i) == 1) cnt_ice = cnt_ice + 1 |
---|
| 60 | enddo |
---|
| 61 | allocate(mt_ttl(cnt_liq),mt_tti(cnt_ice)) |
---|
| 62 | do i=1,cnt_liq |
---|
| 63 | mt_ttl(i) = mt%tt(i) |
---|
| 64 | enddo |
---|
| 65 | do i=1,cnt_ice |
---|
| 66 | mt_tti(i) = mt%tt(cnt_liq+i) |
---|
| 67 | enddo |
---|
| 68 | |
---|
| 69 | end subroutine load_mie_table |
---|