/[MITgcm]/MITgcm/pkg/fizhi/fizhi_init_fixed.F
ViewVC logotype

Diff of /MITgcm/pkg/fizhi/fizhi_init_fixed.F

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

revision 1.9 by molod, Wed Jun 9 20:33:37 2004 UTC revision 1.29 by jmc, Sat Aug 13 20:50:50 2005 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "FIZHI_OPTIONS.h"
5         subroutine fizhi_init_fixed (myThid)         subroutine fizhi_init_fixed (myThid)
6  c-----------------------------------------------------------------------  c-----------------------------------------------------------------------
7  c  Routine to initialise the fizhi package.  c  Routine to initialise the fizhi package.
# Line 21  c   3) For now, the fizhi package contai Line 22  c   3) For now, the fizhi package contai
22  c      routines, so this routine will also initialize the alarms.  c      routines, so this routine will also initialize the alarms.
23  c-----------------------------------------------------------------------  c-----------------------------------------------------------------------
24         implicit none         implicit none
 #include "CPP_OPTIONS.h"  
25  #include "SIZE.h"  #include "SIZE.h"
26  #include "fizhi_SIZE.h"  #include "fizhi_SIZE.h"
27  #include "fizhi_land_SIZE.h"  #include "fizhi_land_SIZE.h"
# Line 29  c--------------------------------------- Line 29  c---------------------------------------
29  #include "fizhi_chemistry_coms.h"  #include "fizhi_chemistry_coms.h"
30  #include "fizhi_earth_coms.h"  #include "fizhi_earth_coms.h"
31  #include "fizhi_land_coms.h"  #include "fizhi_land_coms.h"
32    #include "fizhi_ocean_coms.h"
33  #include "chronos.h"  #include "chronos.h"
34  #include "gridalt_mapping.h"  #include "gridalt_mapping.h"
35  #include "GRID.h"  #include "GRID.h"
36    #include "PARAMS.h"
37    
38         integer myThid         integer myThid
39    
40         integer i,j,bi,bj         integer i,j,L,bi,bj
41         integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2         integer im1, im2, jm1, jm2, idim2, jdim2
42         integer nymdb,nhmsb         integer nymdb,nhmsb
43         character*40 vegdata         character*40 vegdata
44           _RL pressure0(Nrphys+1)
45         _RL pressure(Nrphys)         _RL pressure(Nrphys)
46         real lats(sNx,sNy,nSx,nSy), lons(sNx,sNy,nSx,nSy)         _RL lats(sNx,sNy,Nsx,Nsy), lons(sNx,sNy,Nsx,Nsy)
47           _RL fracland(sNx,sNy,Nsx,Nsy)
48         im1 = 1-OLx         _RL tempoverlap(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nsx,Nsy)
49         im2 = sNx+OLx  
50         jm1 = 1-OLy         idim2 = sNx+OLx
51         jm2 = sNy+OLy         jdim2 = sNy+OLy
52         idim1 = 1         im1 = 1
53         idim2 = sNx         im2 = sNx
54         jdim1 = 1         jm1 = 1
55         jdim2 = sNy         jm2 = sNy
56         nymdb = nymd0         nymdb = nymd0
57         nhmsb = nhms0         nhmsb = nhms0
58    
59    #ifdef ALLOW_MNC
60           if (useMNC) then
61            call fizhi_mnc_init(myThid)
62           endif
63    #endif
64    
65    #ifdef ALLOW_DIAGNOSTICS
66          if ( useDiagnostics ) then
67            call fizhi_diagnostics_init( myThid )
68          endif
69    #endif
70    
71         call fizhi_alarms(nymdb,nhmsb,deltaTClock)         call fizhi_alarms(nymdb,nhmsb,deltaTClock)
72    
73         do bj = myByLo(myThid), myByHi(myThid)         do bj = myByLo(myThid), myByHi(myThid)
# Line 65  c--------------------------------------- Line 80  c---------------------------------------
80         enddo         enddo
81         enddo         enddo
82         enddo         enddo
83         call fizhi_init_veg ( mythid, vegdata,idim2,jdim2,Nsx,Nsy,         vegdata = 'veg19232.data'
84       .                 nSx*nPx,nSy*nPy,maxtyp,nchp,lons,lats,         call fizhi_init_veg ( mythid, vegdata,im2,jm2,Nsx,Nsy,
85       .            surftype,tilefrac,igrd,ityp,chfr,chlt,chlon)       .         nSx*nPx,nSy*nPy,maxtyp,nchp,nchptot,nchpland,lons,lats,
86         .         surftype,tilefrac,igrd,ityp,chfr,chlt,chlon)
87    
88    C And now fill the earth export landtype
89           do bj = myByLo(myThid), myByHi(myThid)
90           do bi = myBxLo(myThid), myBxHi(myThid)
91            call get_landfrac(im2,jm2,Nsx,Nsy,bi,bj,maxtyp,
92         .        surftype,tilefrac,fracland(1,1,bi,bj))
93            do j=jm1,jm2
94            do i=im1,im2
95             landtype(i,j,bi,bj) = surftype(i,j,1,bi,bj)
96             if(fracland(i,j,bi,bj).ge.0.3.and.surftype(i,j,1,bi,bj).ge.100)
97         .            landtype(i,j,bi,bj) = surftype(i,j,2,bi,bj)
98             if(sice(i,j,bi,bj).ne.0.0)landtype(i,j,bi,bj) = 101
99            enddo
100            enddo
101           enddo
102           enddo
103    
104  C Compute pressure profile to get methane and n2o values (bottom-up)  C Compute pressure profile to get methane and n2o values
105    C     - First bottom-up (in mb)
106    
107         pressure(1)=1000.         pressure0(1)=1000.
108         do L = 2,Nrphys+1         do L = 2,Nrphys+1
109          pressure(L)=pressure(L-1)-dpphys0(1,1,L-1,1,1)          pressure0(L)=pressure0(L-1)-dpphys0(1,1,L-1,1,1)/100.
110           enddo
111    C Now flip pressure to a top-down array and average to mid levels
112    C     to send to fizhi init chem
113           do L = 1,Nrphys
114            pressure(L)=(pressure0(Nrphys+2-L)+pressure0(Nrphys+1-L))/2.
115         enddo         enddo
116    
117         call fizhi_init_chem(mythid,         call fizhi_init_chem(mythid,
118       .      nlatsoz,nlevsoz,ntimesoz,latsoz,levsoz,ozone,       .      nlatsoz,nlevsoz,ntimesoz,latsoz,levsoz,ozone,
119       .      nlatsq,nlevsq,ntimesq,latsq,levsq,stratq,       .      nlatsq,nlevsq,ntimesq,latsq,levsq,stratq,
120       .      Nrphys,pressure,n20,methane,co2,cfc11,cfc12,cfc22)       .      Nrphys,pressure,n2o,methane,co2,cfc11,cfc12,cfc22)
121    
122    C Read dataset that contains topography variance (10m by 10m in a 2x2.5 box)
123           CALL READ_REC_XY_RL('topvar19232.data',tempoverlap,1,0,mythid )
124           _BARRIER
125    
126           do bj = myByLo(myThid), myByHi(myThid)
127           do bi = myBxLo(myThid), myBxHi(myThid)
128            do j=jm1,jm2
129            do i=im1,im2
130             if(fracland(i,j,bi,bj).gt.0.3) then
131              phis_var(i,j,bi,bj) = tempoverlap(i,j,bi,bj)
132             else
133              phis_var(i,j,bi,bj) = 0.
134             endif
135            enddo
136            enddo
137           enddo
138           enddo
139    
140    C Finally, grab unit numbers for reading sst and sea ice
141    C   (held in common block fizhi ocean coms)
142    
143           call mdsfindunit( kice, myThid )
144           open(kice)
145           call mdsfindunit( ksst, myThid )
146           open(ksst)
147    
148         return         return
149         end         end

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.29

  ViewVC Help
Powered by ViewVC 1.1.22