MODULE setupmd USE varsmd IMPLICIT NONE TYPE domain CHARACTER(LEN=4) :: init REAL :: blon, blat END TYPE CONTAINS SUBROUTINE modeldf() z1 = (/0.0, 5.0, 10.0, 16.0, 23.0, 31.0, 40.0, 50.0, 62.0, 75.0, & 90.0, 108.0, 128.0, 150.0, 176.0, 205.0, 238.0, 276.0, & 320.0, 369.0, 426.0, 490.0, 563.0, 647.0, 742.0, 850.0, & 974.0, 1115.0, 1276.0, 1459.0, 1668.0, 1906.0, 2178.0, & 2488.0, 2840.0, 3243.0, 3701.0, 4224.0, 4820.0, 5500.0/) zrtof =(/0.0, 2.5, 5.0, 7.5, 10.0, 15.0, 20.0, 30.0, 40.0, 50.0, & 75.0, 100.0, 125.0, 150.0, 176.0, 205.0, 238.0, 276.0, & 320.0, 369.0, 426.0, 490.0, 563.0, 647.0, 742.0, 850.0, & 974.0, 1115.0, 1276.0, 1459.0, 1668.0, 1906.0, 2178.0, & 2488.0, 2840.0, 3243.0, 3701.0, 4224.0, 4820.0, 5500.0/) END SUBROUTINE modeldf SUBROUTINE swcorner(init, blon, blat) INTEGER, PARAMETER :: ndom = 9 INTEGER :: k CHARACTER(LEN=4), INTENT(IN) :: init REAL, INTENT(OUT) :: blon, blat TYPE(domain) :: tr, ep, cp, wp, ni, si, sw, se, sa TYPE(domain), DIMENSION(ndom) :: d tr = domain('rttr', -98.5, 7.5) ep = domain('rtep', -167.5, 5.0) cp = domain('rtcp', 135.0, 5.0) wp = domain('rtwp', 96.6, 5.0) ni = domain('rtni', 32.3, 2.5) si = domain('rtsi', 32.3,-40.0) sw = domain('rtsw', 96.6, -40.0) se = domain('rtse', -179.8, -40.0) sa = domain('rtsa', -83.5, -40.0) d = (/tr, ep, cp, wp, ni, si, sw, se, sa/) DO k = 1, ndom IF ( d(k)%init == init ) THEN blon = d(k)%blon blat = d(k)%blat RETURN ENDIF ENDDO WRITE(6,*) 'Bad region selection... stopping now.' STOP END SUBROUTINE swcorner END MODULE setupmd