/[lmdze]/trunk/Sources/dyn3d/grid_change.f
ViewVC logotype

Diff of /trunk/Sources/dyn3d/grid_change.f

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

trunk/libf/dyn3d/grid_change.f90 revision 15 by guez, Fri Aug 1 15:24:12 2008 UTC trunk/Sources/dyn3d/grid_change.f revision 189 by guez, Tue Mar 29 15:20:23 2016 UTC
# Line 28  contains Line 28  contains
28    function gr_fi_dyn(pfi)    function gr_fi_dyn(pfi)
29    
30      ! From gr_fi_dyn.F, version 1.1.1.1 2004/05/19 12:53:05      ! From gr_fi_dyn.F, version 1.1.1.1 2004/05/19 12:53:05
31      ! Passage d'un champ de la grille physique à la grille dynamique      ! Passage d'un champ de la grille physique \`a la grille dynamique
32    
33      use dimphy, only: klon      use dimphy, only: klon
34    
35      REAL, intent(in):: pfi(:)      REAL, intent(in):: pfi(:) ! (klon)
36      real gr_fi_dyn(iim + 1, jjm + 1)      real gr_fi_dyn(iim + 1, jjm + 1)
37    
38      ! Variable local to the procedure:      ! Variable local to the procedure:
# Line 42  contains Line 42  contains
42    
43      if (size(pfi) /= klon) stop "gr_fi_dyn"      if (size(pfi) /= klon) stop "gr_fi_dyn"
44    
45      ! Traitement des pôles :      ! Traitement des p\^oles :
46      field(2:, 1) = pfi(1)      field(2:, 1) = pfi(1)
47      field(2:, jjm + 1) = pfi(klon)      field(2:, jjm + 1) = pfi(klon)
48      ! (We leave undefined elements in "field")      ! (We leave undefined elements in "field")
# Line 57  contains Line 57  contains
57    
58    !********************************************    !********************************************
59    
60    function gr_phy_write_2d(pfi)    function gr_dyn_phy(v)
61    
62      ! From phylmd/physiq.F, version 1.22 2006/02/20 09:38:28      ! Passage d'un champ 3D de la grille dynamique \`a la grille physique
     ! Transforme une variable de la grille physique à la grille d'écriture.  
     ! The grid for output files does not duplicate the first longitude  
     ! in the last longitude.  
63    
64      use dimphy, only: klon      use dimphy, only: klon
65    
66      REAL, intent(in):: pfi(:)      REAL, intent(in):: v(:, :, :) ! (iim + 1, jjm + 1, :)
67      real gr_phy_write_2d(iim, jjm + 1)      real gr_dyn_phy(klon, size(v, 3))
68    
69      ! Variable local to the procedure:      ! Local:
70      real field(iim, jjm + 1)      integer k
   
     !-----------------------------------------------------------------------  
   
     if (size(pfi) /= klon) stop "gr_phy_write_2d"  
   
     ! Traitement des pôles :  
     field(2:, 1) = pfi(1)  
     field(2:, jjm + 1) = pfi(klon)  
   
     gr_phy_write_2d = unpack(pfi, dyn_phy(:iim, :), field)  
   
   END function gr_phy_write_2d  
   
   !***************************************************  
   
   function gr_phy_write_3d(pfi)  
   
     ! Transforme une variable dépendant de la position verticale de la  
     ! grille physique à la grille d'écriture.  
     ! The grid for output files does not duplicate the first longitude  
     ! in the last longitude.  
   
     use dimphy, only: klon  
     use dimens_m, only: llm  
     use numer_rec, only: assert  
   
     REAL, intent(in):: pfi(:, :)  
     real gr_phy_write_3d(iim, jjm + 1, llm)  
   
     ! Variable local to the procedure:  
     integer l  
71    
72      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
73    
74      call assert(shape(pfi) == (/klon, llm/), "gr_phy_write_3d")      forall (k = 1:size(v, 3)) gr_dyn_phy(:, k) = pack(v(:, :, k), dyn_phy)
   
     do l = 1, llm  
        gr_phy_write_3d(:, :, l) = gr_phy_write_2d(pfi(:, l))  
     end do  
75    
76    END function gr_phy_write_3d    END function gr_dyn_phy
77    
78  end module grid_change  end module grid_change

Legend:
Removed from v.15  
changed lines
  Added in v.189

  ViewVC Help
Powered by ViewVC 1.1.21