/[MITgcm]/MITgcm/model/src/do_atmospheric_phys.F
ViewVC logotype

Contents of /MITgcm/model/src/do_atmospheric_phys.F

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


Revision 1.13 - (show annotations) (download)
Thu Sep 4 22:30:46 2014 UTC (9 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, HEAD
Changes since 1.12: +15 -1 lines
document calling sequence

1 C $Header: /u/gcmpack/MITgcm/model/src/do_atmospheric_phys.F,v 1.12 2014/08/06 23:12:41 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6 #ifdef ALLOW_AUTODIFF
7 # include "AUTODIFF_OPTIONS.h"
8 #endif
9
10 CBOP
11 C !ROUTINE: DO_ATMOSPHERIC_PHYS
12 C !INTERFACE:
13 SUBROUTINE DO_ATMOSPHERIC_PHYS(myTime, myIter, myThid)
14 C !DESCRIPTION: \bv
15 C *==========================================================*
16 C | SUBROUTINE DO_ATMOSPHERIC_PHYS
17 C | o Controlling routine for atmospheric physics and
18 C | parameterization
19 C *==========================================================*
20 C | o originally, part of S/R thermodynamics & forward_step
21 C *==========================================================*
22 C \ev
23
24 C !CALLING SEQUENCE:
25 C DO_ATMOSPHERIC_PHYS
26 C |
27 C |-- UPDATE_OCEAN_EXPORTS
28 C |-- UPDATE_EARTH_EXPORTS
29 C |-- UPDATE_CHEMISTRY_EXPORTS
30 C |-- FIZHI_WRAPPER
31 C |-- STEP_FIZHI_FG
32 C |-- FIZHI_UPDATE_TIME
33 C |
34 C |-- ATM_PHYS_DRIVER
35 C |
36 C |-- AIM_DO_PHYSICS
37
38 C !USES:
39 IMPLICIT NONE
40 C == Global variables ===
41 #include "SIZE.h"
42 #include "EEPARAMS.h"
43 #include "PARAMS.h"
44 #include "GRID.h"
45 #include "DYNVARS.h"
46 #ifdef ALLOW_AUTODIFF
47 # include "tamc.h"
48 #endif /* ALLOW_AUTODIFF */
49
50 C !INPUT/OUTPUT PARAMETERS:
51 C == Routine arguments ==
52 C myTime :: Current time in simulation
53 C myIter :: Current iteration number in simulation
54 C myThid :: my Thread Id number
55 _RL myTime
56 INTEGER myIter
57 INTEGER myThid
58 CEOP
59
60 C !LOCAL VARIABLES:
61 C == Local variables
62 C bi, bj :: tile indices
63 C i,j,k :: loop indices
64 INTEGER bi, bj
65 INTEGER i, j, k
66 _RL thetaRef
67
68 #ifdef ALLOW_DEBUG
69 IF (debugMode) CALL DEBUG_ENTER('DO_ATMOSPHERIC_PHYS',myThid)
70 #endif
71
72 IF ( fluidIsAir ) THEN
73 #ifdef ALLOW_AUTODIFF_TAMC
74 CADJ STORE theta = comlev1, key=ikey_dynamics, kind=isbyte
75 CADJ STORE salt = comlev1, key=ikey_dynamics, kind=isbyte
76 #endif
77 DO bj=myByLo(myThid),myByHi(myThid)
78 DO bi=myBxLo(myThid),myBxHi(myThid)
79
80 C-- Compute virtual potential temperature anomaly (including water vapour
81 C effect), stored in rhoInSitu (similar to what is done for oceanic EOS)
82 DO k=1,Nr
83 IF ( select_rStar.GE.1 .OR. selectSigmaCoord.GE.1 ) THEN
84 C- isothermal (theta=const) reference state
85 thetaRef = thetaConst
86 ELSE
87 C- horizontally uniform (tRef) reference state
88 thetaRef = tRef(k)
89 ENDIF
90 DO j=1-OLy,sNy+OLy
91 DO i=1-OLx,sNx+OLx
92 rhoInSitu(i,j,k,bi,bj) =
93 & ( theta(i,j,k,bi,bj)
94 & *( salt(i,j,k,bi,bj)*atm_Rq + oneRL )
95 & - thetaRef )*maskC(i,j,k,bi,bj)
96 ENDDO
97 ENDDO
98 ENDDO
99
100 ENDDO
101 ENDDO
102 #ifdef ALLOW_AUTODIFF
103 ELSE
104 DO bj=myByLo(myThid),myByHi(myThid)
105 DO bi=myBxLo(myThid),myBxHi(myThid)
106 DO k=1,Nr
107 DO j=1-OLy,sNy+OLy
108 DO i=1-OLx,sNx+OLx
109 rhoInSitu(i,j,k,bi,bj) = 0.
110 ENDDO
111 ENDDO
112 ENDDO
113 ENDDO
114 ENDDO
115 #endif /* ALLOW_AUTODIFF */
116 ENDIF
117
118 #ifdef ALLOW_FIZHI
119 IF ( useFIZHI ) THEN
120 CALL TIMER_START('FIZHI [DO_ATMOSPHERIC_PHYS]',myThid)
121 CALL UPDATE_OCEAN_EXPORTS ( myTime, myIter, myThid )
122 CALL UPDATE_EARTH_EXPORTS ( myTime, myIter, myThid )
123 CALL UPDATE_CHEMISTRY_EXPORTS ( myTime, myIter, myThid )
124 CALL FIZHI_WRAPPER ( myTime, myIter, myThid )
125 CALL STEP_FIZHI_FG ( myTime, myIter, myThid, dTtracerLev(1) )
126 CALL FIZHI_UPDATE_TIME ( myIter, myThid, deltaTClock )
127 CALL TIMER_STOP ('FIZHI [DO_ATMOSPHERIC_PHYS]',myThid)
128 ENDIF
129 #endif /* ALLOW_FIZHI */
130
131 #ifdef ALLOW_ATM_PHYS
132 C Atmospheric Physics package - Atm_Phys - main driver
133 IF ( useAtm_Phys ) THEN
134 CALL TIMER_START('ATM_PHYS_DRIVER [DO_ATMOSPHERIC_PHYS]',myThid)
135 CALL ATM_PHYS_DRIVER( myTime, myIter, myThid )
136 CALL TIMER_STOP( 'ATM_PHYS_DRIVER [DO_ATMOSPHERIC_PHYS]',myThid)
137 ENDIF
138 #endif /* ALLOW_ATM_PHYS */
139
140 #ifdef ALLOW_AIM
141 IF ( useAIM ) THEN
142 C AIM - atmospheric intermediate model, physics package code.
143 #ifdef ALLOW_DEBUG
144 IF (debugMode) CALL DEBUG_CALL('AIM_DO_PHYSICS',myThid)
145 #endif
146 CALL TIMER_START('AIM_DO_PHYSICS [DO_ATMOSPHERIC_PHYS]',myThid)
147 CALL AIM_DO_PHYSICS( myTime, myIter, myThid )
148 CALL TIMER_STOP( 'AIM_DO_PHYSICS [DO_ATMOSPHERIC_PHYS]',myThid)
149 ENDIF
150 #endif /* ALLOW_AIM */
151
152 #ifdef ALLOW_DEBUG
153 IF (debugMode) CALL DEBUG_LEAVE('DO_ATMOSPHERIC_PHYS',myThid)
154 #endif
155
156 RETURN
157 END

  ViewVC Help
Powered by ViewVC 1.1.22