source: trunk/SOURCES/source_3.20/ice_phy_grid.f

Last change on this file was 4, checked in by vancop, 8 years ago

initial import /Users/ioulianikolskaia/Boulot/CODES/LIM1D/ARCHIVE/TMP/LIM1D_v3.20/

File size: 3.0 KB
Line 
1      SUBROUTINE ice_phy_grid(kideb,kiut,nlay,zht_i,ln_write,snoorice)
2
3! This routine creates thermodynamical vertical grid
4! (c) Martin Vancoppenolle, May 2007
5 
6      INCLUDE 'type.com'
7      INCLUDE 'para.com'
8      INCLUDE 'const.com'
9      INCLUDE 'ice.com'
10      INCLUDE 'thermo.com'
11      INCLUDE 'bio.com'
12
13      INTEGER :: 
14     &  ji          , ! : index for space
15     &  jk            ! : index for ice layers
16
17      CHARACTER(len=3) :: 
18     &   snoorice     ! : message indicating whether we have to compute ice or snow
19
20      LOGICAL ::
21     &   ln_write
22
23!=============================================================================!
24
25      IF ( ln_write ) THEN
26         ji = 1
27         WRITE(numout,*) ' *** ice_phy_grid : '
28         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~ '
29         WRITE(numout,*)
30         WRITE(numout,*) ' ht_i_b : ', zht_i
31         WRITE(numout,*) ' nlay   : ', nlay   
32         WRITE(numout,*) ' which? : ', snoorice
33      ENDIF
34
35      DO ji = kideb, kiut
36
37      !---------------------------
38      ! layer thickness
39      !---------------------------
40      IF ( snoorice .EQ. 'ice' ) THEN
41         DO layer = 1, nlay
42            deltaz_i_phy(layer) = zht_i / nlay
43         END DO
44      ENDIF
45
46      IF ( snoorice .EQ. 'sno' ) THEN
47         DO layer = 1, nlay
48            deltaz_s_phy(layer) = zht_i / nlay
49         END DO
50      ENDIF
51
52      !---------------------------
53      ! layer cotes
54      !---------------------------
55      IF ( snoorice .EQ. 'ice' ) THEN
56         z_i_phy(1)  = deltaz_i_phy(1) / 2.0
57         DO layer = 2, nlay
58            z_i_phy(layer)  = z_i_phy(layer-1) + ( deltaz_i_phy(layer-1)
59     &                      + deltaz_i_phy(layer) ) / 2.0
60         END DO
61
62         IF ( ln_write ) THEN
63            WRITE(numout,*) ' deltaz_i_phy : ', ( deltaz_i_phy(layer), 
64     &                      layer = 1, nlay )
65            WRITE(numout,*) ' z_i_phy      : ', ( z_i_phy(layer), 
66     &                      layer = 1, nlay )
67            WRITE(numout,*) ' end '
68         ENDIF
69
70      ENDIF
71
72      IF ( snoorice .EQ. 'sno' ) THEN
73         z_s_phy(1)  = deltaz_s_phy(1) / 2.0
74         DO layer = 2, nlay
75            z_s_phy(layer)  = z_s_phy(layer-1) + ( deltaz_s_phy(layer-1)
76     &                      + deltaz_s_phy(layer) ) / 2.0
77         END DO
78
79         IF ( ln_write ) THEN
80            WRITE(numout,*) ' deltaz_s_phy : ', ( deltaz_s_phy(layer), 
81     &                      layer = 1, nlay )
82            WRITE(numout,*) ' z_s_phy      : ', ( z_s_phy(layer), 
83     &                      layer = 1, nlay )
84            WRITE(numout,*) ' end '
85         ENDIF
86
87      ENDIF
88
89      !-----------------------------------------------------------------------!
90      ! Layer boundaries
91      !-----------------------------------------------------------------------!
92      zb_i_phy(0) = 0.0
93      DO layer = 1, nlay
94         zb_i_phy(layer) = zb_i_phy(layer-1) + deltaz_i_phy(layer)
95      END DO ! layer
96
97      END DO ! ji
98
99!=============================================================================!
100!-- End of ice_phy_grid --
101 
102      END
Note: See TracBrowser for help on using the repository browser.