[4728] | 1 | ! (C) Copyright 2022- ECMWF. |
---|
| 2 | ! |
---|
| 3 | ! This software is licensed under the terms of the Apache Licence Version 2.0 |
---|
| 4 | ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. |
---|
| 5 | ! |
---|
| 6 | ! In applying this licence, ECMWF does not waive the privileges and immunities |
---|
| 7 | ! granted to it by virtue of its status as an intergovernmental organisation |
---|
| 8 | ! nor does it submit to any jurisdiction. |
---|
| 9 | ! |
---|
| 10 | ! Author: Robin Hogan |
---|
| 11 | ! Email: r.j.hogan@ecmwf.int |
---|
| 12 | ! |
---|
| 13 | |
---|
| 14 | ! Program to test the functionality of the |
---|
| 15 | ! radiation_aerosol_optics_description module. Usage is for example: |
---|
| 16 | ! "test_aerosol_optics_description aerosol_ifs_49R1.nc" |
---|
| 17 | program test_aerosol_optics_description |
---|
| 18 | |
---|
| 19 | use radiation_aerosol_optics_description |
---|
| 20 | |
---|
| 21 | type(aerosol_optics_description_type) :: aer_desc |
---|
| 22 | |
---|
| 23 | character(len=512) :: file_name |
---|
| 24 | |
---|
| 25 | integer :: istatus |
---|
| 26 | |
---|
| 27 | call get_command_argument(1, file_name, status=istatus) |
---|
| 28 | if (istatus /= 0) then |
---|
| 29 | stop 'Usage: test_aerosol_optics_description <aerosol_file.nc>' |
---|
| 30 | end if |
---|
| 31 | |
---|
| 32 | call aer_desc%read(file_name=file_name) |
---|
| 33 | |
---|
| 34 | ! These two should issue a warning that the aerosol type is ambiguous |
---|
| 35 | print *, 'DD: ', aer_desc%get_index('DD',.false.) |
---|
| 36 | print *, 'DD (bin=2): ', aer_desc%get_index('DD',.false.,ibin=2) |
---|
| 37 | ! Indicate preferred aerosol optical model, after which further |
---|
| 38 | ! calls will prefer one particular model |
---|
| 39 | print *, 'preferred_optical_model(DD,Fouquart)' |
---|
| 40 | call aer_desc%preferred_optical_model('DD','Fouquart') |
---|
| 41 | print *, 'DD (bin=2): ', aer_desc%get_index('DD',.false.,ibin=2) |
---|
| 42 | print *, 'DD (bin=2,model=Woodward): ', aer_desc%get_index('DD',.false.,ibin=2,optical_model_str="Woodward") |
---|
| 43 | print *, 'DD (bin=2,model=Woodward2001): ', aer_desc%get_index('DD',.false.,ibin=2,optical_model_str="Woodward2001") |
---|
| 44 | ! This should fail to find a match, returning zero |
---|
| 45 | print *, 'DD (model=Nobody): ', aer_desc%get_index('DD',.false.,optical_model_str="Nobody") |
---|
| 46 | print *, 'SS (bin=3): ', aer_desc%get_index('SS',.true.,ibin=3) |
---|
| 47 | |
---|
| 48 | end program test_aerosol_optics_description |
---|