--- trunk/dyn3d/serre.f 2015/01/28 16:10:02 121 +++ trunk/Sources/dyn3d/read_serre.f 2015/05/26 17:46:03 139 @@ -1,40 +1,44 @@ -module serre +module read_serre_m implicit none - REAL:: clon = 0. ! longitude of the center of the zoom, in degrees - real:: clat = 0. ! latitude of the center of the zoom, in degrees - - real:: grossismx = 1., grossismy = 1. - ! facteurs de grossissement du zoom, selon la longitude et la latitude - ! = 2 si 2 fois, = 3 si 3 fois, etc. - - real:: dzoomx = 0., dzoomy = 0. - ! extensions en longitude et latitude de la zone du zoom (fractions - ! de la zone totale) - - real:: taux = 3., tauy = 3. - ! raideur de la transition de l'intérieur à l'extérieur du zoom - contains subroutine read_serre + use dynetat0_m, only: clon, clat, grossismx, grossismy, dzoomx, dzoomy, & + taux, tauy use unit_nml_m, only: unit_nml - use nr_util, only: assert + use nr_util, only: assert, pi - namelist /serre_nml/ clon, clat, grossismx, grossismy, dzoomx, dzoomy, & - taux, tauy + REAL:: clon_deg = 0. ! longitude of the center of the zoom, in degrees + real:: clat_deg = 0. ! latitude of the center of the zoom, in degrees + + namelist /serre_nml/ clon_deg, clat_deg, grossismx, grossismy, dzoomx, & + dzoomy, taux, tauy !------------------------------------------------- + ! Default values: + clon_deg = 0. + clat_deg = 0. + grossismx = 1. + grossismy = 1. + dzoomx = 0.2 + dzoomy = 0.2 + taux = 3. + tauy = 3. + print *, "Enter namelist 'serre_nml'." read(unit=*, nml=serre_nml) write(unit_nml, nml=serre_nml) call assert(grossismx >= 1. .and. grossismy >= 1., "read_serre grossism") - call assert(dzoomx < 1., dzoomy < 1., "read_serre dzoomx dzoomy") + call assert(dzoomx > 0., dzoomx < 1., dzoomy < 1., & + "read_serre dzoomx dzoomy") + clon = clon_deg / 180. * pi + clat = clat_deg / 180. * pi end subroutine read_serre -end module serre +end module read_serre_m