/[MITgcm]/MITgcm/pkg/aim_v23/aim_initialise.F
ViewVC logotype

Diff of /MITgcm/pkg/aim_v23/aim_initialise.F

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

revision 1.10 by molod, Thu Jun 30 23:09:08 2005 UTC revision 1.12 by jmc, Tue Aug 8 03:14:33 2006 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "AIM_OPTIONS.h"  #include "AIM_OPTIONS.h"
5    
6    CBOP
7    C     !ROUTINE: AIM_INITIALISE
8    C     !INTERFACE:
9        SUBROUTINE AIM_INITIALISE( myThid )        SUBROUTINE AIM_INITIALISE( myThid )
10    C     !DESCRIPTION: \bv
11  C     *==================================================================*  C     *==================================================================*
12  C     | S/R AIM_INITIALISE  C     | S/R AIM_INITIALISE
13  C     *==================================================================*  C     *==================================================================*
14  C     | Initialisation of AIM atmospheric physics package :  C     | Initialisation of AIM atmospheric physics package :
15  C     | 1) call iniphys (=> set parameters to default value)  C     | 1) call iniphys (=> set parameters to default value)
16  C     | 2) read AIM parameters  C     | 2) read AIM parameters
17  C     *==================================================================*  C     *==================================================================*
18    C     \ev
19    
20    C     !USES:
21        IMPLICIT NONE        IMPLICIT NONE
22    
23  C     -------------- Global variables ------------------------------------  C     === Global variables ===
24  #include "SIZE.h"  #include "SIZE.h"
25  #include "EEPARAMS.h"  #include "EEPARAMS.h"
26  #include "PARAMS.h"  #include "PARAMS.h"
27  #include "GRID.h"  #include "GRID.h"
28  #include "SURFACE.h"  #include "SURFACE.h"
 #include "DYNVARS.h"  
29  #include "AIM_PARAMS.h"  #include "AIM_PARAMS.h"
30  #include "AIM_FFIELDS.h"  #include "AIM_FFIELDS.h"
31  c #include "AIM_GRID.h"  c #include "AIM_GRID.h"
32  #include "AIM_DIAGS.h"  c #include "AIM_DIAGS.h"
33  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
34  #include "MNC_PARAMS.h"  #include "MNC_PARAMS.h"
35  #endif  #endif
36    
37    C     !INPUT/OUTPUT PARAMETERS:
38  C     == Routine arguments ==  C     == Routine arguments ==
39  C     myThid -  Number of this instance  C     myThid :: my Thread Id number
40        INTEGER myThid        INTEGER myThid
41    
42  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
43    C     !LOCAL VARIABLES:
44  C     == Local variables ==  C     == Local variables ==
45  C     HSG  - Cell face in vertical  C     HSG     :: Cell face in vertical
46  C     pGround - Lower boundary pressure  C     pGround :: Lower boundary pressure
47  C     i, j, k, bi,bj  - Loop counters  C     bi,bj   :: Tile indices
48    C     i, j, k :: Loop counters
49        _RL HSG(0:Nr)        _RL HSG(0:Nr)
50        _RL pGround, tmpPgrnd        _RL pGround, tmpPgrnd
51        INTEGER i, j, K, bi, bj        INTEGER bi, bj
52          INTEGER i, j, k
53        INTEGER Katm        INTEGER Katm
54    CEOP
55    
56    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
57    
58          _BEGIN_MASTER(myThid )
59    
60  C--  Set default value for AIM interface code (AIM_PARAMS.h):  C--  Set default value for AIM interface code (AIM_PARAMS.h):
61        aim_useFMsurfBC = .TRUE.        aim_useFMsurfBC = .TRUE.
# Line 49  C--  Set default value for AIM interface Line 64  C--  Set default value for AIM interface
64        aim_energPrecip = .FALSE.        aim_energPrecip = .FALSE.
65        aim_splitSIOsFx = .FALSE.        aim_splitSIOsFx = .FALSE.
66        aim_clrSkyDiag  = .FALSE.        aim_clrSkyDiag  = .FALSE.
       aim_tave_mdsio  = .TRUE.  
67  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
68        aim_tave_mnc    = timeave_mnc        aim_timeave_mnc       = timeave_mnc .AND. useMNC
69          aim_snapshot_mnc      = snapshot_mnc .AND. useMNC
70          aim_pickup_write_mnc  = pickup_write_mnc .AND. useMNC
71          aim_pickup_read_mnc   = pickup_read_mnc .AND. useMNC
72  #else  #else
73        aim_tave_mnc    = .FALSE.        aim_timeave_mnc       = .FALSE.
74          aim_snapshot_mnc      = .FALSE.
75          aim_pickup_write_mnc  = .FALSE.
76          aim_pickup_read_mnc   = .FALSE.
77  #endif  #endif
78        aim_MMsufx = '.bin'        aim_MMsufx = '.bin'
79        aim_MMsufxLength = 4        aim_MMsufxLength = 4
# Line 80  C--  Set default value for atmos. physic Line 100  C--  Set default value for atmos. physic
100         Katm = _KD2KA( k )         Katm = _KD2KA( k )
101         HSG(Katm) = rF(k)/pGround         HSG(Katm) = rF(k)/pGround
102    
103  c     DO bj = myByLo(myThid), myByHi(myThid)        _END_MASTER ( myThid )
 c      DO bi = myBxLo(myThid), myBxHi(myThid)  
104    
105  C--   set default value for all atmos. physics parameter:  C--   set default value for all atmos. physics parameter:
106          CALL INPHYS( HSG, myThid )        CALL INPHYS( HSG, myThid )
   
 c      ENDDO  
 c     ENDDO  
107    
108  C--   Read AIM parameters (from file data.aimphys):  C--   Read AIM parameters (from file data.aimphys):
109        CALL AIM_READPARMS( myThid )        CALL AIM_READPARMS( myThid )
110    
111  C--   set energy fractions in LW bands as a function of temperature:  C--   set energy fractions in LW bands as a function of temperature:
112  C     initialize common block RADFIX (originally called from FORDATE in SPEEDY)  C     initialize common block RADFIX (originally called from FORDATE in SPEEDY)
113        _BEGIN_MASTER(myThid)          _BEGIN_MASTER(myThid )
114         CALL RADSET( myThid)         CALL RADSET( myThid )
115        _END_MASTER ( myThid)          _END_MASTER ( myThid )
116    
117  C--   Set truncSurfP : used to correct for truncation (because of hFacMin)  C--   Set truncSurfP : used to correct for truncation (because of hFacMin)
118  C      of surface reference pressure Ro_surf that affects Surf.Temp.  C      of surface reference pressure Ro_surf that affects Surf.Temp.
# Line 106  C      of surface reference pressure Ro_ Line 122  C      of surface reference pressure Ro_
122          DO j=1,sNy          DO j=1,sNy
123           DO i=1,sNx           DO i=1,sNx
124            tmpPgrnd = MIN(truncSurfP(i,j,bi,bj),atm_Po)            tmpPgrnd = MIN(truncSurfP(i,j,bi,bj),atm_Po)
125            truncSurfP(i,j,bi,bj)=            truncSurfP(i,j,bi,bj)=
126       &     ( Ro_surf(i,j,bi,bj)/tmpPgrnd )**atm_kappa       &     ( Ro_surf(i,j,bi,bj)/tmpPgrnd )**atm_kappa
127           ENDDO           ENDDO
128          ENDDO          ENDDO
# Line 120  C      of surface reference pressure Ro_ Line 136  C      of surface reference pressure Ro_
136          ENDIF          ENDIF
137         ENDDO         ENDDO
138        ENDDO        ENDDO
139          
140  C--   Initialise Land Fraction (in AIM_FFIELDS.h):  C--   Initialise Land Fraction (in AIM_FFIELDS.h):
141        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
142         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
143          DO j=1-Oly,sNy+Oly          DO j=1-Oly,sNy+Oly
144           DO i=1-Olx,sNx+Olx             DO i=1-Olx,sNx+Olx
145            aim_landFr   (i,j,bi,bj) = 0.            aim_landFr   (i,j,bi,bj) = 0.
146           ENDDO           ENDDO
147          ENDDO          ENDDO
# Line 133  C--   Initialise Land Fraction (in AIM_F Line 149  C--   Initialise Land Fraction (in AIM_F
149        ENDDO        ENDDO
150    
151        IF ( aim_LandFile .NE. ' '  ) THEN        IF ( aim_LandFile .NE. ' '  ) THEN
152             _BARRIER
153           CALL READ_REC_XY_RS(aim_LandFile,aim_landFr,1,nIter0,myThid)           CALL READ_REC_XY_RS(aim_LandFile,aim_landFr,1,nIter0,myThid)
154        ENDIF        ENDIF
155    
# Line 143  C--   Initialise Land Fraction (in AIM_F Line 160  C--   Initialise Land Fraction (in AIM_F
160  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
161    
162  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
163        if ( useDiagnostics ) then        IF ( useDiagnostics ) THEN
164          call aim_diagnostics_init( myThid )          CALL AIM_DIAGNOSTICS_INIT( myThid )
165        endif        ENDIF
166  #endif  #endif
167    
168    C--   Everyone else must wait for the parameters to be set
169          _BARRIER
170    
171  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
172    
173        RETURN        RETURN

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.22