13 |
C | SUBROUTINE INI_LINEAR_PHISURF |
C | SUBROUTINE INI_LINEAR_PHISURF |
14 |
C | o Initialise the Linear Relation Phi_surf(eta) |
C | o Initialise the Linear Relation Phi_surf(eta) |
15 |
C *==========================================================* |
C *==========================================================* |
16 |
C | Presently: Initialise -Boyancy at surface level (Bo_surf) |
C | Initialise -Boyancy at surface level (Bo_surf) |
17 |
C | to setup the Linear relation: Phi_surf(eta)=Bo_surf*eta |
C | to setup the Linear relation: Phi_surf(eta)=Bo_surf*eta |
18 |
C | Futur: might add other things for Non-Linear FreeSurface |
C | Initialise phi0surf = starting point for integrating |
19 |
|
C | phiHyd (= phiHyd at r=RoSurf) |
20 |
C *==========================================================* |
C *==========================================================* |
21 |
C \ev |
C \ev |
22 |
|
|
129 |
DO I=1-Olx,sNx+Olx |
DO I=1-Olx,sNx+Olx |
130 |
IF ( Ro_surf(I,J,bi,bj).GT.0. _d 0 |
IF ( Ro_surf(I,J,bi,bj).GT.0. _d 0 |
131 |
& .AND. ksurfC(I,J,bi,bj).LE.Nr ) THEN |
& .AND. ksurfC(I,J,bi,bj).LE.Nr ) THEN |
132 |
dPIdp = (atm_cp*atm_kappa/atm_po)* |
dPIdp = (atm_Cp*atm_kappa/atm_Po)* |
133 |
& (Ro_surf(I,J,bi,bj)/atm_po)**(atm_kappa-1. _d 0) |
& (Ro_surf(I,J,bi,bj)/atm_Po)**(atm_kappa-1. _d 0) |
134 |
Bo_surf(I,J,bi,bj) = dPIdp*tRef(ksurfC(I,J,bi,bj)) |
Bo_surf(I,J,bi,bj) = dPIdp*tRef(ksurfC(I,J,bi,bj)) |
135 |
recip_Bo(I,J,bi,bj) = 1. _d 0 / Bo_surf(I,J,bi,bj) |
recip_Bo(I,J,bi,bj) = 1. _d 0 / Bo_surf(I,J,bi,bj) |
136 |
ELSE |
ELSE |
154 |
IF ( ( buoyancyRelation .eq. 'ATMOSPHERIC' .OR. |
IF ( ( buoyancyRelation .eq. 'ATMOSPHERIC' .OR. |
155 |
& buoyancyRelation .eq. 'OCEANICP' ) |
& buoyancyRelation .eq. 'OCEANICP' ) |
156 |
& .AND. .NOT.uniformLin_PhiSurf ) THEN |
& .AND. .NOT.uniformLin_PhiSurf ) THEN |
157 |
|
|
158 |
|
_BEGIN_MASTER( myThid ) |
159 |
CALL WRITE_FLD_XY_RL( 'Bo_surf',' ',Bo_surf,0,myThid) |
CALL WRITE_FLD_XY_RL( 'Bo_surf',' ',Bo_surf,0,myThid) |
160 |
|
_END_MASTER( myThid ) |
161 |
|
|
162 |
ENDIF |
ENDIF |
163 |
|
|
164 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
165 |
|
|
166 |
|
C-- Initialise phi0surf: used for atmos. surf. P-loading (ocean, z-coord) |
167 |
|
C or topographic geopotential anom. (p-coord) |
168 |
|
|
169 |
|
DO bj=myByLo(myThid),myByHi(myThid) |
170 |
|
DO bi=myBxLo(myThid),myBxHi(myThid) |
171 |
|
DO J=1-Oly,sNy+Oly |
172 |
|
DO I=1-Olx,sNx+Olx |
173 |
|
phi0surf(I,J,bi,bj) = 0. |
174 |
|
ENDDO |
175 |
|
ENDDO |
176 |
|
ENDDO |
177 |
|
ENDDO |
178 |
|
|
179 |
|
IF ( buoyancyRelation .eq. 'ATMOSPHERIC' |
180 |
|
& .AND. selectFindRoSurf.EQ.1 ) THEN |
181 |
|
|
182 |
|
C- set phi0surf = starting point for integrating Geopotential: |
183 |
|
CALL INI_P_GROUND( -selectFindRoSurf, |
184 |
|
O phi0surf, |
185 |
|
I Ro_surf, myThid ) |
186 |
|
|
187 |
|
_EXCH_XY_RS(phi0surf, myThid) |
188 |
|
|
189 |
|
_BEGIN_MASTER( myThid ) |
190 |
|
CALL WRITE_FLD_XY_RS( 'phi0surf',' ',phi0surf,0,myThid) |
191 |
|
_END_MASTER( myThid ) |
192 |
|
|
193 |
|
ENDIF |
194 |
|
|
195 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
196 |
RETURN |
RETURN |
197 |
END |
END |