Changeset 339 for trunk/LMDZ.MARS/libf
- Timestamp:
- Nov 3, 2011, 11:19:09 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/LMDZ.MARS/libf/phymars/surflayer_interpol.F ¶
r319 r339 32 32 33 33 #include "comcstfi.h" 34 #include "callkeys.h" 34 35 35 36 ! Arguments: … … 77 78 REAL pz0tcomp(ngrid) ! computed z0t 78 79 REAL ite 79 REAL residual 80 REAL residual,zcd0,z1 80 81 REAL pcdv(ngrid),pcdh(ngrid) 81 82 ! For output : … … 85 86 ! couche de surface: 86 87 ! ------------------ 87 zout=z_out 88 89 c Init : 90 91 L_mo(:)=0. 92 ustar(:)=0. 88 93 tstar(:)=0. 89 ustar(:)=0. 94 zout=z_out 95 90 96 reynolds(:)=0. 91 97 … … 140 146 ! ENDIF 141 147 148 if(.not.callrichsl) then 149 rib(ig) = (pg/ph(ig,1)) 150 & *sqrt(pz(ig,1)*pz0(ig)) 151 & *(((log(pz(ig,1)/pz0(ig)))**2)/(log(pz(ig,1)/pz0t))) 152 & *(ph(ig,1)-pts(ig))/(zu2(ig)+6.) 153 else 142 154 rib(ig) = (pg/ph(ig,1)) 143 155 ! & *pz(ig,1)*pz0(ig)/sqrt(pz(ig,1)*pz0t) … … 148 160 ! & /(MAX(pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1),wmax(ig)**2)) 149 161 ! & /( pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) + wmax(ig)**2) 162 163 endif 150 164 151 165 else … … 211 225 ENDDO 212 226 227 ! endif !of if callrichsl 228 213 229 ! Large-scale wind at first layer (without gustiness) and 214 230 ! u* theta* computation 215 231 DO ig=1,ngrid 216 232 217 if (rib(ig) .g t. ric) then233 if (rib(ig) .ge. ric) then 218 234 ustar(ig)=0. 219 235 tstar(ig)=0. … … 230 246 & /sqrt(pcdv(ig)) 231 247 232 if ( tstar(ig) .lt. -50) then248 if ((tstar(ig) .lt. -50) .and. callrichsl) then 233 249 print*, fh(ig),rib(ig),(ph(ig,1)-pts(ig)) 234 250 & ,log(pz(ig,1)/pz0tcomp(ig)),sqrt(fm(ig)) … … 329 345 ENDDO 330 346 347 ! when using convective adjustment without thermals, a vertical potential temperature 348 ! profile is assumed up to the thermal roughness length. Hence, theoretically, theta 349 ! interpolated at any height in the surface layer is theta at the first level. 350 351 IF ((.not.calltherm).and.(calladj)) THEN 352 Teta_out(:)=ph(:,1) 353 ENDIF 354 331 355 ! Usefull diagnostics for the interpolation routine : 332 356 357 ! 358 ! call WRITEDIAGFI(ngrid,'Ri', 359 ! & 'Richardson','m', 360 ! & 2,rib) 361 ! 333 362 ! call WRITEDIAGFI(ngrid,'z0T', 334 363 ! & 'thermal roughness length','m',
Note: See TracChangeset
for help on using the changeset viewer.