| 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=2           ! boundaries of regular lontlat | 
|---|
| 11 |   INTEGER, PARAMETER :: west=1           ! 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=>west, 2=>east)(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 |  | 
|---|