/[lmdze]/trunk/dyn3d/writehist.f
ViewVC logotype

Diff of /trunk/dyn3d/writehist.f

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

trunk/Sources/dyn3d/writehist.f revision 178 by guez, Fri Mar 11 18:47:26 2016 UTC trunk/dyn3d/writehist.f revision 265 by guez, Tue Mar 20 09:35:59 2018 UTC
# Line 4  module writehist_m Line 4  module writehist_m
4    
5  contains  contains
6    
7    subroutine writehist(time, vcov, ucov, teta, phi, masse, ps)    subroutine writehist(vcov, ucov, teta, pk, phi, q, masse, ps, itau_w)
8    
9      ! From writehist.F 1403 2010-07-01 09:02:53Z      ! From writehist.F, revision 1403, 2010-07-01 09:02:53
10      ! Écriture du fichier histoire au format IOIPSL      ! Écriture du fichier histoire au format IOIPSL
     ! Appels successifs des routines histwrite  
11      ! L. Fairhead, LMD, 03/99      ! L. Fairhead, LMD, 03/99
12    
13      use dimens_m, only: llm      USE comconst, ONLY: cpp
     use com_io_dyn, only: histid, histvid, histuid  
     use paramet_m, only: ip1jm, ip1jmp1  
     use temps, only: itau_dyn  
     use histwrite_m, only: histwrite  
     use histsync_m, only: histsync  
14      use covnat_m, only: covnat      use covnat_m, only: covnat
15        use dimensions, only: llm
16        use histsync_m, only: histsync
17        use histwrite_m, only: histwrite
18        use iniadvtrac_m, only: ttext
19        use inithist_m, only: histid, histvid, histuid
20        use nr_util, only: assert
21        use paramet_m, only: ip1jm, ip1jmp1
22    
23      ! Entree:      ! Vent covariant :
24      ! time: temps de l'ecriture      REAL, intent(in):: vcov(:, :, :) ! (iim + 1, jjm, llm)
25      ! vcov: vents v covariants      REAL, intent(in):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm)
26      ! ucov: vents u covariants  
27      ! teta: temperature potentielle      REAL, intent(in):: teta(:, :, :) ! (iim + 1, jjm + 1, llm)
28      ! phi : geopotentiel instantane      ! temperature potentielle
29      ! masse: masse  
30      ! ps :pression au sol      real, intent(in):: pk(:, :, :) ! (iim + 1, jjm + 1, llm)
31        real, intent(in):: phi(:, :, :) ! (iim + 1, jjm + 1, llm) ! geopotential
32      ! Arguments      REAL, intent(in):: q(:, :, :, :) ! (iim + 1, jjm + 1, llm, nqmx) traceurs
33        real, intent(in):: masse(:, :, :) ! (iim + 1, jjm + 1, llm)
34      REAL vcov(ip1jm, llm), ucov(ip1jmp1, llm)      REAL, intent(in):: ps(:, :) ! (iim + 1, jjm + 1) pression au sol
35      REAL teta(ip1jmp1, llm), phi(ip1jmp1, llm)      integer, intent(in):: itau_w ! temps de l'ecriture
     REAL, intent(in):: ps(ip1jmp1), masse(ip1jmp1, llm)  
     integer time  
   
     ! This routine needs IOIPSL to work  
     ! Variables locales  
36    
37      logical ok_sync      ! Local:
38      integer itau_w      integer iq
39      REAL vnat(ip1jm, llm), unat(ip1jmp1, llm)      REAL vnat(ip1jm, llm), unat(ip1jmp1, llm)
40    
41      !---------------------------------------------------------------------      !---------------------------------------------------------------------
42    
43      ! Initialisations      call assert([size(vcov, 1), size(ucov, 1), size(teta, 1), size(phi, 1), &
44             size(pk, 1), size(ps, 1), size(masse, 1)] == size(q, 1), &
45             "writehist iim")
46        call assert([size(vcov, 2) + 1, size(ucov, 2), size(teta, 2), &
47             size(phi, 2), size(pk, 2), size(ps, 2), size(masse, 2)] &
48             == size(q, 2), "writehist jjm")
49        call assert([size(vcov, 3), size(ucov, 3), size(teta, 3), size(phi, 3), &
50             size(pk, 3), size(masse, 3), size(q, 3)] == llm, "writehist llm")
51    
     ok_sync =.TRUE.  
     itau_w = itau_dyn + time  
     ! Passage aux composantes naturelles du vent  
52      call covnat(llm, ucov, vcov, unat, vnat)      call covnat(llm, ucov, vcov, unat, vnat)
53    
     ! Appels a histwrite pour l'ecriture des variables a sauvegarder  
   
     ! Vents U  
   
54      call histwrite(histuid, 'u', itau_w, unat)      call histwrite(histuid, 'u', itau_w, unat)
   
     ! Vents V  
   
55      call histwrite(histvid, 'v', itau_w, vnat)      call histwrite(histvid, 'v', itau_w, vnat)
56        call histwrite(histid, 'theta', itau_w, teta)
57      ! Temperature potentielle      call histwrite(histid, 'temp', itau_w, teta * pk / cpp)
   
     call histwrite(histid, 'teta', itau_w, teta)  
   
     ! Geopotentiel  
   
58      call histwrite(histid, 'phi', itau_w, phi)      call histwrite(histid, 'phi', itau_w, phi)
59    
60      ! Masse      DO iq = 1, size(q, 4)
61           call histwrite(histid, ttext(iq), itau_w, q(:, :, :, iq))
62        enddo
63    
64      call histwrite(histid, 'masse', itau_w, masse)      call histwrite(histid, 'masse', itau_w, masse)
   
     ! Pression au sol  
65      call histwrite(histid, 'ps', itau_w, ps)      call histwrite(histid, 'ps', itau_w, ps)
66    
67      if (ok_sync) then      call histsync(histid)
68         call histsync(histid)      call histsync(histvid)
69         call histsync(histvid)      call histsync(histuid)
        call histsync(histuid)  
     endif  
70    
71    end subroutine writehist    end subroutine writehist
72    

Legend:
Removed from v.178  
changed lines
  Added in v.265

  ViewVC Help
Powered by ViewVC 1.1.21