| 1 | MODULE regular_lonlat_mod |
|---|
| 2 | |
|---|
| 3 | ! Store information on the global physics grid |
|---|
| 4 | ! for a regular (longitude-latitude) grid |
|---|
| 5 | |
|---|
| 6 | INTEGER, PARAMETER :: north_east=1 ! boundaries of regular lontlat |
|---|
| 7 | INTEGER, PARAMETER :: north_west=2 ! boundaries of regular lontlat |
|---|
| 8 | INTEGER, PARAMETER :: south_west=3 ! boundaries of regular lontlat |
|---|
| 9 | INTEGER, PARAMETER :: south_east=4 ! boundaries of regular lontlat |
|---|
| 10 | INTEGER, PARAMETER :: east=1 ! boundaries of regular lontlat |
|---|
| 11 | INTEGER, PARAMETER :: west=2 ! boundaries of regular lontlat |
|---|
| 12 | INTEGER, PARAMETER :: north=1 ! boundaries of regular lontlat |
|---|
| 13 | INTEGER, PARAMETER :: south=2 ! boundaries of regular lontlat |
|---|
| 14 | |
|---|
| 15 | ! Global definition, shared by all threads |
|---|
| 16 | ! Do not set threadprivate directives |
|---|
| 17 | |
|---|
| 18 | REAL,SAVE,ALLOCATABLE :: lon_reg(:) ! value of longitude cell (rad) |
|---|
| 19 | |
|---|
| 20 | REAL,SAVE,ALLOCATABLE :: lat_reg(:) ! value of longitude cell (rad) |
|---|
| 21 | |
|---|
| 22 | REAL,SAVE,ALLOCATABLE :: boundslon_reg(:,:) ! value of boundaries cell (1=>east, 2=>west)(rad) |
|---|
| 23 | |
|---|
| 24 | REAL,SAVE,ALLOCATABLE :: boundslat_reg(:,:) ! value of longitude cell (1=>north, 2=>south)(rad) |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | CONTAINS |
|---|
| 28 | |
|---|
| 29 | SUBROUTINE init_regular_lonlat(nbp_lon, nbp_lat, lon_reg_, lat_reg_, boundslon_reg_, boundslat_reg_) |
|---|
| 30 | IMPLICIT NONE |
|---|
| 31 | INTEGER,INTENT(IN) :: nbp_lon |
|---|
| 32 | INTEGER,INTENT(IN) :: nbp_lat |
|---|
| 33 | REAL, INTENT(IN) :: lon_reg_(nbp_lon) |
|---|
| 34 | REAL, INTENT(IN) :: lat_reg_(nbp_lat) |
|---|
| 35 | REAL, INTENT(IN) :: boundslon_reg_(nbp_lon,2) |
|---|
| 36 | REAL, INTENT(IN) :: boundslat_reg_(nbp_lat,2) |
|---|
| 37 | |
|---|
| 38 | |
|---|
| 39 | ALLOCATE(lon_reg(nbp_lon)) |
|---|
| 40 | lon_reg(:)=lon_reg_(:) |
|---|
| 41 | |
|---|
| 42 | ALLOCATE(lat_reg(nbp_lat)) |
|---|
| 43 | lat_reg(:)=lat_reg_(:) |
|---|
| 44 | |
|---|
| 45 | ALLOCATE(boundslon_reg(nbp_lon,2)) |
|---|
| 46 | boundslon_reg(:,:)=boundslon_reg_(:,:) |
|---|
| 47 | |
|---|
| 48 | ALLOCATE(boundslat_reg(nbp_lat,2)) |
|---|
| 49 | boundslat_reg(:,:)=boundslat_reg_(:,:) |
|---|
| 50 | |
|---|
| 51 | |
|---|
| 52 | END SUBROUTINE init_regular_lonlat |
|---|
| 53 | |
|---|
| 54 | END MODULE regular_lonlat_mod |
|---|
| 55 | |
|---|