LMDZ
ecribin.F90
Go to the documentation of this file.
1 
2 ! $Header$
3 
4 SUBROUTINE ecribins(unit, pz)
5  USE dimphy
6  IMPLICIT NONE
7  ! -----------------------------------------------------------------------
8  include "dimensions.h"
9  ! ccc#include "dimphy.h"
10  include "paramet.h"
11  include "comgeom.h"
12 
13  ! arguments:
14  ! ----------
15  INTEGER unit
16  REAL pz(klon)
17 
18  ! local:
19  ! ------
20  INTEGER i, j, ig
21  REAL zz(iim+1, jjm+1)
22  ! -----------------------------------------------------------------------
23  ! passage a la grille dynamique:
24  ! ------------------------------
25  DO i = 1, iim + 1
26  zz(i, 1) = pz(1)
27  zz(i, jjm+1) = pz(klon)
28  END DO
29  ! traitement des point normaux
30  DO j = 2, jjm
31  ig = 2 + (j-2)*iim
32  CALL scopy(iim, pz(ig), 1, zz(1,j), 1)
33  zz(iim+1, j) = zz(1, j)
34  END DO
35  ! -----------------------------------------------------------------------
36 #ifdef VPP
37  CALL ecriture(unit, zz, (iim+1)*(jjm+1))
38 #else
39  WRITE (unit) zz
40 #endif
41 
42 
43  RETURN
44 END SUBROUTINE ecribins
45 SUBROUTINE ecribina(unit, pz)
46  USE dimphy
47  IMPLICIT NONE
48  ! -----------------------------------------------------------------------
49  include "dimensions.h"
50  ! ccc#include "dimphy.h"
51  include "paramet.h"
52  include "comgeom.h"
53 
54  ! arguments:
55  ! ----------
56  INTEGER unit
57  REAL pz(klon, klev)
58 
59  ! local:
60  ! ------
61  INTEGER i, j, ilay, ig
62  REAL zz(iim+1, jjm+1, llm)
63  ! -----------------------------------------------------------------------
64  ! passage a la grille dynamique:
65  ! ------------------------------
66  DO ilay = 1, llm
67  ! traitement des poles
68  DO i = 1, iim + 1
69  zz(i, 1, ilay) = pz(1, ilay)
70  zz(i, jjm+1, ilay) = pz(klon, ilay)
71  END DO
72  ! traitement des point normaux
73  DO j = 2, jjm
74  ig = 2 + (j-2)*iim
75  CALL scopy(iim, pz(ig,ilay), 1, zz(1,j,ilay), 1)
76  zz(iim+1, j, ilay) = zz(1, j, ilay)
77  END DO
78  END DO
79  ! -----------------------------------------------------------------------
80  DO ilay = 1, llm
81 #ifdef VPP
82  CALL ecriture(unit, zz(1,1,ilay), (iim+1)*(jjm+1))
83 #else
84  WRITE (unit)((zz(i,j,ilay),i=1,iim+1), j=1, jjm+1)
85 #endif
86  END DO
87 
88  RETURN
89 END SUBROUTINE ecribina
90 #ifdef VPP
91 @options nodouble
92 SUBROUTINE ecriture(nunit, r8, n)
93  INTEGER nunit, n, i
94  REAL (KIND=8) r8(n)
95  REAL r4(n)
96 
97  DO i = 1, n
98  r4(i) = r8(i)
99  END DO
100  WRITE (nunit) r4
101  RETURN
102 END SUBROUTINE ecriture
103 #endif
subroutine ecribina(unit, pz)
Definition: ecribin.F90:46
integer, save klon
Definition: dimphy.F90:3
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
integer, save klev
Definition: dimphy.F90:7
subroutine scopy(n, sx, incx, sy, incy)
Definition: cray.F:9
c c zjulian c cym CALL iim cym klev iim
Definition: ini_bilKP_ave.h:24
Definition: dimphy.F90:1
subroutine ecribins(unit, pz)
Definition: ecribin.F90:5