/[lmdze]/trunk/libf/dyn3d/startdyn.f90
ViewVC logotype

Diff of /trunk/libf/dyn3d/startdyn.f90

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 13 by guez, Fri Jul 25 19:59:34 2008 UTC revision 32 by guez, Tue Apr 6 17:52:58 2010 UTC
# Line 22  CONTAINS Line 22  CONTAINS
22      ! Host associated variables appearing and modified in this procedure :      ! Host associated variables appearing and modified in this procedure :
23      ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini      ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini
24    
25      USE ioipsl, only: flininfo, flinopen_nozoom, flinget      USE flincom, only: flininfo, flinopen_nozoom
26        use flinget_m, only: flinget
27      use comgeom, only: aire_2d, apoln, apols      use comgeom, only: aire_2d, apoln, apols
28      use conf_dat2d_m, only: conf_dat2d      use conf_dat2d_m, only: conf_dat2d
29      use inter_barxy_m, only: inter_barxy      use inter_barxy_m, only: inter_barxy
# Line 71  CONTAINS Line 72  CONTAINS
72      ALLOCATE(lon_dyn(iml_dyn, jml_dyn))      ALLOCATE(lon_dyn(iml_dyn, jml_dyn))
73      ALLOCATE(levdyn_ini(llm_dyn))      ALLOCATE(levdyn_ini(llm_dyn))
74    
75      CALL flinopen_nozoom(physfname, iml_dyn, jml_dyn, llm_dyn, &      CALL flinopen_nozoom(iml_dyn, jml_dyn, llm_dyn, &
76           lon_dyn, lat_dyn, levdyn_ini, ttm_dyn, itau, date, dt, fid_dyn)           lon_dyn, lat_dyn, levdyn_ini, ttm_dyn, itau, date, dt, fid_dyn)
77    
78      ALLOCATE(var_ana(iml_dyn, jml_dyn))      ALLOCATE(var_ana(iml_dyn, jml_dyn))
# Line 136  CONTAINS Line 137  CONTAINS
137    
138    !********************************    !********************************
139    
140    function start_inter_3d(varname, lon_in2, lat_in2, pls_in)    subroutine start_inter_3d(varname, lon_in2, lat_in2, pls_in, var3d)
141    
142      ! This procedure gets a 3D variable from a file and does the      ! This procedure gets a 3D variable from a file and does the
143      ! interpolations needed.      ! interpolations needed.
144    
145      USE ioipsl, only: flinget      use flinget_m, only: flinget
146      use numer_rec, only: assert_eq, spline, splint      use numer_rec, only: assert_eq, spline, splint
147      use inter_barxy_m, only: inter_barxy      use inter_barxy_m, only: inter_barxy
148      use gr_int_dyn_m, only: gr_int_dyn      use gr_int_dyn_m, only: gr_int_dyn
# Line 150  CONTAINS Line 151  CONTAINS
151      CHARACTER(len=*), intent(in):: varname      CHARACTER(len=*), intent(in):: varname
152      REAL, intent(in):: lon_in2(:), lat_in2(:)      REAL, intent(in):: lon_in2(:), lat_in2(:)
153      REAL, intent(in):: pls_in(:, :, :)      REAL, intent(in):: pls_in(:, :, :)
154        REAL, intent(out):: var3d(:, :, :)
     REAL start_inter_3d(size(lon_in2), size(pls_in, 2), size(pls_in, 3))  
155    
156      ! LOCAL:      ! LOCAL:
157      INTEGER iml, jml, lml      INTEGER iml, jml, lml
# Line 167  CONTAINS Line 167  CONTAINS
167    
168      print *, "Call sequence information: start_inter_3d"      print *, "Call sequence information: start_inter_3d"
169    
170      iml = assert_eq(size(pls_in, 1), size(lon_in2), "start_inter_3d iml")      iml = assert_eq(size(pls_in, 1), size(lon_in2), size(var3d, 1), &
171      jml = size(pls_in, 2)           "start_inter_3d iml")
172      lml = size(pls_in, 3)      jml = assert_eq(size(pls_in, 2), size(var3d, 2), "start_inter_3d jml")
173        lml = assert_eq(size(pls_in, 3), size(var3d, 3), "start_inter_3d lml")
174    
175      print *, "iml = ", iml, ", jml = ", jml      print *, "iml = ", iml, ", jml = ", jml
176      print *, 'Going into flinget to extract the 3D field.'      print *, "varname = ", varname
     print *, "fid_dyn = ", fid_dyn, ", varname = ", varname  
177      print *, "iml_dyn = ", iml_dyn, ", jml_dyn = ", jml_dyn, &      print *, "iml_dyn = ", iml_dyn, ", jml_dyn = ", jml_dyn, &
178           ", llm_dyn = ", llm_dyn, ", ttm_dyn = ", ttm_dyn           ", llm_dyn = ", llm_dyn, ", ttm_dyn = ", ttm_dyn
179        print *, 'Going into flinget to extract the 3D field.'
180      CALL flinget(fid_dyn, varname, iml_dyn, jml_dyn, llm_dyn, ttm_dyn, 1, 1, &      CALL flinget(fid_dyn, varname, iml_dyn, jml_dyn, llm_dyn, ttm_dyn, 1, 1, &
181           var_ana3d)           var_ana3d)
182    
# Line 196  CONTAINS Line 197  CONTAINS
197            ay(:) = var_tmp3d(ii, ij, llm_dyn:1:-1)            ay(:) = var_tmp3d(ii, ij, llm_dyn:1:-1)
198            yder(:) = SPLINE(ax, ay)            yder(:) = SPLINE(ax, ay)
199            do il=1, lml            do il=1, lml
200               start_inter_3d(ii, ij, il) &               var3d(ii, ij, il) = SPLINT(ax, ay, yder, pls_in(ii, ij, il))
                   = SPLINT(ax, ay, yder, pls_in(ii, ij, il))  
201            END do            END do
202         ENDDO         ENDDO
203      ENDDO      ENDDO
204      start_inter_3d(iml, :, :) = start_inter_3d(1, :, :)      var3d(iml, :, :) = var3d(1, :, :)
205    
206    END function start_inter_3d    END subroutine start_inter_3d
207    
208  END MODULE startdyn  END MODULE startdyn

Legend:
Removed from v.13  
changed lines
  Added in v.32

  ViewVC Help
Powered by ViewVC 1.1.21