16 & top_height_direction,
91 INTEGER sunlit(npoints)
93 REAL pfull(npoints,nlev)
98 REAL phalf(npoints,nlev+1)
103 REAL qv(npoints,nlev)
107 REAL cc(npoints,nlev)
112 REAL conv(npoints,nlev)
118 REAL dtau_s(npoints,nlev)
126 REAL dtau_c(npoints,nlev)
150 INTEGER top_height_direction
152 ! determined cloud-top temperature
155 ! with interpolated temperature equal to the radiance
156 ! determined cloud-top temperature
159 ! with interpolated temperature equal to the radiance
160 ! determined cloud-top temperature
162 !
only applicable
IF top_height equals 1 or 3
164 ! 1 = old setting: matches all versions of
165 ! isccp simulator with versions numbers 3.5.1 and lower
167 ! 2 = default setting: for version numbers 4.0 and higher
173 REAL at(npoints,nlev)
174 REAL dem_s(npoints,nlev)
177 REAL dem_c(npoints,nlev)
181 REAL frac_out(npoints,ncol,nlev)
192 REAL fq_isccp(npoints,7,7)
195 REAL totalcldarea(npoints)
197 ! does not count model clouds with
tau < isccp_taumin
206 REAL meanptop(npoints)
209 REAL meantaucld(npoints)
212 real meanalbedocld(npoints)
217 real meantbclr(npoints)
219 REAL boxtau(npoints,ncol)
221 REAL boxptop(npoints,ncol)
229 REAL dem(npoints,ncol),bb(npoints)
235 REAL attropmin (npoints)
238 REAL transmax(npoints)
240 INTEGER i,j,ilev,ibox,itrop(npoints)
241 INTEGER ipres(npoints)
242 INTEGER itau(npoints),ilev2
243 INTEGER acc(nlev,ncol)
244 INTEGER match(npoints,nlev-1)
245 INTEGER nmatch(npoints)
246 INTEGER levmatch(npoints,ncol)
249 real fluxtop_clrsky(npoints),trans_layers_above_clrsky(npoints)
251 real dem_wv(npoints,nlev), wtmair, wtmh20, Navo, grav, pstd, t0
252 real press(npoints), dpress(npoints), atmden(npoints)
253 real rvh20(npoints), wk(npoints), rhoave(npoints)
254 real rh20s(npoints), rfrgn(npoints)
255 real tmpexp(npoints),tauwv(npoints)
257 character*1 cchar(6),cchar_realtops(6)
259 REAL tau(npoints,ncol)
260 LOGICAL box_cloudy(npoints,ncol)
261 REAL tb(npoints,ncol)
262 REAL ptop(npoints,ncol)
263 REAL emcld(npoints,ncol)
264 REAL fluxtop(npoints,ncol)
265 REAL trans_layers_above(npoints,ncol)
266 real isccp_taumin,fluxtopinit(npoints),tauir(npoints)
267 REAL albedocld(npoints,ncol)
273 integer rangevec(npoints),rangeerror
275 integer index1(npoints),num1,jj,k1,k2
276 real rec2p13,tauchk,logp,logp1,logp2,atd
277 real output_missing_value
281 DATA isccp_taumin / 0.3 /
282 DATA output_missing_value / -1.e+30 /
283 DATA cchar /
' ',
'-',
'1',
'+',
'I',
'+'/
284 DATA cchar_realtops /
' ',
' ',
'1',
'1',
'I',
'I'/
288 tauchk = -1.*log(0.9999999)
293 if ( debug.ne.0 )
then
295 write(6,
'(a10)')
'j='
297 write(6,
'(a10)')
'debug='
298 write(6,
'(8I10)') debug
299 write(6,
'(a10)')
'debugcol='
300 write(6,
'(8I10)') debugcol
301 write(6,
'(a10)')
'npoints='
302 write(6,
'(8I10)') npoints
303 write(6,
'(a10)')
'nlev='
304 write(6,
'(8I10)') nlev
305 write(6,
'(a10)')
'ncol='
306 write(6,
'(8I10)') ncol
307 write(6,
'(a11)')
'top_height='
308 write(6,
'(8I10)') top_height
309 write(6,
'(a21)')
'top_height_direction='
310 write(6,
'(8I10)') top_height_direction
311 write(6,
'(a10)')
'overlap='
312 write(6,
'(8I10)') overlap
313 write(6,
'(a10)')
'emsfc_lw='
314 write(6,
'(8f10.2)') emsfc_lw
316 write(6,
'(a10)')
'j='
318 write(6,
'(a10)')
'sunlit='
319 write(6,
'(8I10)') sunlit(j)
320 write(6,
'(a10)')
'pfull='
321 write(6,
'(8f10.2)') (pfull(j,i),i=1,nlev)
322 write(6,
'(a10)')
'phalf='
323 write(6,
'(8f10.2)') (phalf(j,i),i=1,nlev+1)
324 write(6,
'(a10)')
'qv='
325 write(6,
'(8f10.3)') (qv(j,i),i=1,nlev)
326 write(6,
'(a10)')
'cc='
327 write(6,
'(8f10.3)') (cc(j,i),i=1,nlev)
328 write(6,
'(a10)')
'conv='
329 write(6,
'(8f10.2)') (conv(j,i),i=1,nlev)
330 write(6,
'(a10)')
'dtau_s='
331 write(6,
'(8g12.5)') (dtau_s(j,i),i=1,nlev)
332 write(6,
'(a10)')
'dtau_c='
333 write(6,
'(8f10.2)') (dtau_c(j,i),i=1,nlev)
334 write(6,
'(a10)')
'skt='
335 write(6,
'(8f10.2)') skt(j)
336 write(6,
'(a10)')
'at='
337 write(6,
'(8f10.2)') (at(j,i),i=1,nlev)
338 write(6,
'(a10)')
'dem_s='
339 write(6,
'(8f10.3)') (dem_s(j,i),i=1,nlev)
340 write(6,
'(a10)')
'dem_c='
341 write(6,
'(8f10.3)') (dem_c(j,i),i=1,nlev)
347 if (ncolprint.ne.0)
then
349 write(6,
'(a10)')
'j='
354 if (top_height .eq. 1 .or. top_height .eq. 3)
then
366 if (pfull(j,ilev) .lt. 40000. .and.
367 & pfull(j,ilev) .gt. 5000. .and.
368 & at(j,ilev) .lt. attropmin(j))
then
369 ptrop(j) = pfull(j,ilev)
370 attropmin(j) = at(j,ilev)
371 attrop(j) = attropmin(j)
379 if (at(j,ilev) .gt. atmax(j) .and.
380 & ilev .ge. itrop(j)) atmax(j)=at(j,ilev)
387 if (top_height .eq. 1 .or. top_height .eq. 3)
then
394 meantb(j) = output_missing_value
395 meantbclr(j) = output_missing_value
408 if (cc(j,ilev) .lt. 0. .or. cc(j,ilev) .gt. 1.)
then
411 rangevec(j)=rangevec(j)+1
414 if (conv(j,ilev) .lt. 0. .or. conv(j,ilev) .gt. 1.)
then
417 rangevec(j)=rangevec(j)+2
420 if (dtau_s(j,ilev) .lt. 0.)
then
422 rangevec(j)=rangevec(j)+4
425 if (dtau_c(j,ilev) .lt. 0.)
then
427 rangevec(j)=rangevec(j)+8
430 if (dem_s(j,ilev) .lt. 0. .or. dem_s(j,ilev) .gt. 1.)
then
433 rangevec(j)=rangevec(j)+16
436 if (dem_c(j,ilev) .lt. 0. .or. dem_c(j,ilev) .gt. 1.)
then
439 rangevec(j)=rangevec(j)+32
445 rangeerror=rangeerror+rangevec(j)
448 if (rangeerror.ne.0)
then
449 write (6,*)
'Input variable out of range'
450 write (6,*)
'rangevec:'
470 boxtau(j,ibox)=output_missing_value
471 boxptop(j,ibox)=output_missing_value
472 box_cloudy(j,ibox)=.
false.
481 if (frac_out(j,ibox,ilev).eq.1)
then
482 tau(j,ibox)=tau(j,ibox)
485 if (frac_out(j,ibox,ilev).eq.2)
then
486 tau(j,ibox)=tau(j,ibox)
492 if (ncolprint.ne.0)
then
495 write(6,
'(a10)')
'j='
497 write(6,
'(i2,1X,8(f7.2,1X))')
499 & (tau(j,ibox),ibox=1,ncolprint)
521 if (top_height .eq. 1 .or. top_height .eq. 3)
then
539 if (ncolprint .ne. 0)
540 &
write(6,*)
'ilev pw (kg/m2) tauwv(j) dem_wv'
544 press(j) = pfull(j,ilev)*10.
545 dpress(j) = (phalf(j,ilev+1)-phalf(j,ilev))*10
547 atmden(j) = dpress(j)/grav
548 rvh20(j) = qv(j,ilev)*wtmair/wtmh20
549 wk(j) = rvh20(j)*navo*atmden(j)/wtmair
550 rhoave(j) = (press(j)/pstd)*(t0/at(j,ilev))
551 rh20s(j) = rvh20(j)*rhoave(j)
552 rfrgn(j) = rhoave(j)-rh20s(j)
553 tmpexp(j) = exp(-0.02*(at(j,ilev)-t0))
554 tauwv(j) = wk(j)*1.e-20*(
555 & (0.0224697*rh20s(j)*tmpexp(j)) +
556 & (3.41817e-7*rfrgn(j)) )*0.98
557 dem_wv(j,ilev) = 1. - exp( -1. * tauwv(j))
559 if (ncolprint .ne. 0)
then
561 write(6,
'(a10)')
'j='
563 write(6,
'(i2,1X,3(f8.3,3X))') ilev,
564 & qv(j,ilev)*(phalf(j,ilev+1)-phalf(j,ilev))/(grav/100.),
565 & tauwv(j),dem_wv(j,ilev)
572 fluxtop_clrsky(j) = 0.
573 trans_layers_above_clrsky(j)=1.
581 bb(j)=1 / ( exp(1307.27/at(j,ilev)) - 1. )
587 fluxtop_clrsky(j) = fluxtop_clrsky(j)
588 & + dem_wv(j,ilev)*bb(j)*trans_layers_above_clrsky(j)
593 trans_layers_above_clrsky(j)=
594 & trans_layers_above_clrsky(j)*(1.-dem_wv(j,ilev))
598 if (ncolprint.ne.0)
then
600 write(6,
'(a10)')
'j='
602 write (6,
'(a)')
'ilev:'
603 write (6,
'(I2)') ilev
606 &
'emiss_layer,100.*bb(j),100.*f,total_trans:'
607 write (6,
'(4(f7.2,1X))') dem_wv(j,ilev),100.*bb(j),
608 & 100.*fluxtop_clrsky(j),trans_layers_above_clrsky(j)
616 bb(j)=1/( exp(1307.27/skt(j)) - 1. )
619 fluxtop_clrsky(j) = fluxtop_clrsky(j) + emsfc_lw * bb(j)
620 & * trans_layers_above_clrsky(j)
623 meantbclr(j) = 1307.27/(log(1.+(1./fluxtop_clrsky(j))))
627 if (ncolprint.ne.0)
then
629 write(6,
'(a10)')
'j='
631 write (6,
'(a)')
'id:'
632 write (6,
'(a)')
'surface'
634 write (6,
'(a)')
'emsfc,100.*bb(j),100.*f,total_trans:'
635 write (6,
'(5(f7.2,1X))') emsfc_lw,100.*bb(j),
636 & 100.*fluxtop_clrsky(j),
637 & trans_layers_above_clrsky(j), meantbclr(j)
649 if (ncolprint.ne.0)
then
652 write(6,
'(a10)')
'j='
654 write (6,
'(a)')
'ts:'
655 write (6,
'(8f7.2)') (skt(j),ibox=1,ncolprint)
657 write (6,
'(a)')
'ta_rev:'
659 & ((at(j,ilev2),ibox=1,ncolprint),ilev2=1,nlev)
667 trans_layers_above(j,ibox)=1.
675 bb(j)=1 / ( exp(1307.27/at(j,ilev)) - 1. )
683 if (frac_out(j,ibox,ilev).eq.1)
then
685 & ( (1. - dem_wv(j,ilev)) * (1. - dem_s(j,ilev)) )
686 else if (frac_out(j,ibox,ilev).eq.2)
then
688 & ( (1. - dem_wv(j,ilev)) * (1. - dem_c(j,ilev)) )
690 dem(j,ibox)= dem_wv(j,ilev)
697 fluxtop(j,ibox) = fluxtop(j,ibox)
698 & + dem(j,ibox) * bb(j)
699 & * trans_layers_above(j,ibox)
704 trans_layers_above(j,ibox)=
705 & trans_layers_above(j,ibox)*(1.-dem(j,ibox))
710 if (ncolprint.ne.0)
then
712 write (6,
'(a)')
'ilev:'
713 write (6,
'(I2)') ilev
715 write(6,
'(a10)')
'j='
717 write (6,
'(a)')
'emiss_layer:'
718 write (6,
'(8f7.2)') (dem(j,ibox),ibox=1,ncolprint)
720 write (6,
'(a)')
'100.*bb(j):'
721 write (6,
'(8f7.2)') (100.*bb(j),ibox=1,ncolprint)
723 write (6,
'(a)')
'100.*f:'
725 & (100.*fluxtop(j,ibox),ibox=1,ncolprint)
727 write (6,
'(a)')
'total_trans:'
729 & (trans_layers_above(j,ibox),ibox=1,ncolprint)
738 bb(j)=1/( exp(1307.27/skt(j)) - 1. )
747 fluxtop(j,ibox) = fluxtop(j,ibox)
749 & * trans_layers_above(j,ibox)
757 meantb(j) = meantb(j)+1307.27/(log(1.+(1./fluxtop(j,ibox))))
761 meantb(j) = meantb(j) /
real(ncol)
764 if (ncolprint.ne.0)
then
767 write(6,
'(a10)')
'j='
769 write (6,
'(a)')
'id:'
770 write (6,
'(a)')
'surface'
772 write (6,
'(a)')
'emiss_layer:'
773 write (6,
'(8f7.2)') (dem(1,ibox),ibox=1,ncolprint)
775 write (6,
'(a)')
'100.*bb(j):'
776 write (6,
'(8f7.2)') (100.*bb(j),ibox=1,ncolprint)
778 write (6,
'(a)')
'100.*f:'
779 write (6,
'(8f7.2)') (100.*fluxtop(j,ibox),ibox=1,ncolprint)
781 write (6,
'(a)')
'meantb(j):'
782 write (6,
'(8f7.2)') (meantb(j),ibox=1,ncolprint)
805 btcmin(j) = 1. / ( exp(1307.27/(attrop(j)-5.)) - 1. )
809 transmax(j) = (fluxtop(j,ibox)-btcmin(j))
810 & /(fluxtop_clrsky(j)-btcmin(j))
814 tauir(j) = tau(j,ibox) * rec2p13
815 taumin(j) = -1. * log(max(min(transmax(j),0.9999999),0.001))
819 if (top_height .eq. 1)
then
821 if (transmax(j) .gt. 0.001 .and.
822 & transmax(j) .le. 0.9999999)
then
823 fluxtopinit(j) = fluxtop(j,ibox)
824 tauir(j) = tau(j,ibox) *rec2p13
829 if (tau(j,ibox) .gt. (tauchk ))
then
830 if (transmax(j) .gt. 0.001 .and.
831 & transmax(j) .le. 0.9999999)
then
832 emcld(j,ibox) = 1. - exp(-1. * tauir(j) )
833 fluxtop(j,ibox) = fluxtopinit(j) -
834 & ((1.-emcld(j,ibox))*fluxtop_clrsky(j))
835 fluxtop(j,ibox)=max(1.e-06,
836 & (fluxtop(j,ibox)/emcld(j,ibox)))
838 & / (log(1. + (1./fluxtop(j,ibox))))
839 if (tb(j,ibox) .gt. 260.)
then
840 tauir(j) = tau(j,ibox) / 2.56
850 if (tau(j,ibox) .gt. (tauchk ))
then
854 tb(j,ibox)= 1307.27/ (log(1. + (1./fluxtop(j,ibox))))
855 if (top_height.eq.1.and.tauir(j).lt.taumin(j))
then
856 tb(j,ibox) = attrop(j) - 5.
857 tau(j,ibox) = 2.13*taumin(j)
861 tb(j,ibox) = meantbclr(j)
866 if (ncolprint.ne.0)
then
869 write(6,
'(a10)')
'j='
872 write (6,
'(a)')
'attrop:'
873 write (6,
'(8f7.2)') (attrop(j))
875 write (6,
'(a)')
'btcmin:'
876 write (6,
'(8f7.2)') (btcmin(j))
878 write (6,
'(a)')
'fluxtop_clrsky*100:'
880 & (100.*fluxtop_clrsky(j))
882 write (6,
'(a)')
'100.*f_adj:'
883 write (6,
'(8f7.2)') (100.*fluxtop(j,ibox),ibox=1,ncolprint)
885 write (6,
'(a)')
'transmax:'
886 write (6,
'(8f7.2)') (transmax(ibox),ibox=1,ncolprint)
888 write (6,
'(a)')
'tau:'
889 write (6,
'(8f7.2)') (tau(j,ibox),ibox=1,ncolprint)
891 write (6,
'(a)')
'emcld:'
892 write (6,
'(8f7.2)') (emcld(j,ibox),ibox=1,ncolprint)
894 write (6,
'(a)')
'total_trans:'
896 & (trans_layers_above(j,ibox),ibox=1,ncolprint)
898 write (6,
'(a)')
'total_emiss:'
900 & (1.0-trans_layers_above(j,ibox),ibox=1,ncolprint)
902 write (6,
'(a)')
'total_trans:'
904 & (trans_layers_above(j,ibox),ibox=1,ncolprint)
906 write (6,
'(a)')
'ppout:'
907 write (6,
'(8f7.2)') (tb(j,ibox),ibox=1,ncolprint)
927 if (top_height .eq. 1 .or. top_height .eq. 3)
then
934 if (top_height_direction .eq. 2)
then
941 if (ilev .ge. itrop(j))
then
942 if ((at(j,ilev) .ge. tb(j,ibox) .and.
943 & at(j,ilev+1) .le. tb(j,ibox)) .or.
944 & (at(j,ilev) .le. tb(j,ibox) .and.
945 & at(j,ilev+1) .ge. tb(j,ibox)))
then
946 nmatch(j)=nmatch(j)+1
947 match(j,nmatch(j))=ilev
954 if (nmatch(j) .ge. 1)
then
955 k1 = match(j,nmatch(j))
957 logp1 = log(pfull(j,k1))
958 logp2 = log(pfull(j,k2))
959 atd = max(tauchk,abs(at(j,k2) - at(j,k1)))
960 logp=logp1+(logp2-logp1)*abs(tb(j,ibox)-at(j,k1))/atd
961 ptop(j,ibox) = exp(logp)
962 if(abs(pfull(j,k1)-ptop(j,ibox)) .lt.
963 & abs(pfull(j,k2)-ptop(j,ibox)))
then
969 if (tb(j,ibox) .le. attrop(j))
then
970 ptop(j,ibox)=ptrop(j)
971 levmatch(j,ibox)=itrop(j)
973 if (tb(j,ibox) .ge. atmax(j))
then
974 ptop(j,ibox)=pfull(j,nlev)
975 levmatch(j,ibox)=nlev
987 if ((ptop(j,ibox) .eq. 0. )
988 & .and.(frac_out(j,ibox,ilev) .ne. 0))
then
989 ptop(j,ibox)=phalf(j,ilev)
990 levmatch(j,ibox)=ilev
997 if (tau(j,ibox) .le. (tauchk ))
then
1035 if (sunlit(j).eq.1 .or. top_height .eq. 3)
then
1036 fq_isccp(j,ilev,ilev2)= 0.
1038 fq_isccp(j,ilev,ilev2)= output_missing_value
1045 if (sunlit(j).eq.1 .or. top_height .eq. 3)
then
1046 totalcldarea(j) = 0.
1047 meanalbedocld(j) = 0.
1051 totalcldarea(j) = output_missing_value
1052 meanalbedocld(j) = output_missing_value
1053 meanptop(j) = output_missing_value
1054 meantaucld(j) = output_missing_value
1058 boxarea = 1./
real(ncol)
1063 if (tau(j,ibox) .gt. (tauchk )
1064 & .and. ptop(j,ibox) .gt. 0.)
then
1065 box_cloudy(j,ibox)=.
true.
1068 if (box_cloudy(j,ibox))
then
1070 if (sunlit(j).eq.1 .or. top_height .eq. 3)
then
1072 boxtau(j,ibox) = tau(j,ibox)
1074 if (tau(j,ibox) .ge. isccp_taumin)
then
1075 totalcldarea(j) = totalcldarea(j) + boxarea
1079 & = (tau(j,ibox)**0.895)/((tau(j,ibox)**0.895)+6.82)
1082 meanalbedocld(j) = meanalbedocld(j)
1083 & +albedocld(j,ibox)*boxarea
1091 if (sunlit(j).eq.1 .or. top_height .eq. 3)
then
1093 if (box_cloudy(j,ibox))
then
1096 ptop(j,ibox)=ptop(j,ibox) / 100.
1099 boxptop(j,ibox) = ptop(j,ibox)
1101 if (tau(j,ibox) .ge. isccp_taumin)
then
1102 meanptop(j) = meanptop(j) + ptop(j,ibox)*boxarea
1110 if (tau(j,ibox) .lt. isccp_taumin)
then
1112 else if (tau(j,ibox) .ge. isccp_taumin
1114 & .and. tau(j,ibox) .lt. 1.3)
then
1116 else if (tau(j,ibox) .ge. 1.3
1117 & .and. tau(j,ibox) .lt. 3.6)
then
1119 else if (tau(j,ibox) .ge. 3.6
1120 & .and. tau(j,ibox) .lt. 9.4)
then
1122 else if (tau(j,ibox) .ge. 9.4
1123 & .and. tau(j,ibox) .lt. 23.)
then
1125 else if (tau(j,ibox) .ge. 23.
1126 & .and. tau(j,ibox) .lt. 60.)
then
1128 else if (tau(j,ibox) .ge. 60.)
then
1133 if ( ptop(j,ibox) .gt. 0.
1134 & .and.ptop(j,ibox) .lt. 180.)
then
1136 else if(ptop(j,ibox) .ge. 180.
1137 & .and.ptop(j,ibox) .lt. 310.)
then
1139 else if(ptop(j,ibox) .ge. 310.
1140 & .and.ptop(j,ibox) .lt. 440.)
then
1142 else if(ptop(j,ibox) .ge. 440.
1143 & .and.ptop(j,ibox) .lt. 560.)
then
1145 else if(ptop(j,ibox) .ge. 560.
1146 & .and.ptop(j,ibox) .lt. 680.)
then
1148 else if(ptop(j,ibox) .ge. 680.
1149 & .and.ptop(j,ibox) .lt. 800.)
then
1151 else if(ptop(j,ibox) .ge. 800.)
then
1156 if(ipres(j) .gt. 0.and.itau(j) .gt. 0)
then
1157 fq_isccp(j,itau(j),ipres(j))=
1158 & fq_isccp(j,itau(j),ipres(j))+ boxarea
1170 if (totalcldarea(j) .gt. 0.)
then
1174 meanptop(j) = meanptop(j) / totalcldarea(j)
1175 meanalbedocld(j) = meanalbedocld(j) / totalcldarea(j)
1176 meantaucld(j) = (6.82/((1./meanalbedocld(j))-1.))**(1./0.895)
1182 meanptop(j) = output_missing_value
1183 meanalbedocld(j) = output_missing_value
1184 meantaucld(j) = output_missing_value
1193 if (debugcol.ne.0)
then
1195 do j=1,npoints,debugcol
1206 acc(ilev,ibox)=frac_out(j,ibox,ilev)*2
1207 if (levmatch(j,ibox) .eq. ilev)
1208 & acc(ilev,ibox)=acc(ilev,ibox)+1
1215 11
format(
'ftn09.',i4.4)
1216 open(9, file=ftn09, form=
'FORMATTED')
1220 & (ilev,ilev=5,nlev,5)
1224 write(9,
'(40(a1),1x,40(a1))')
1225 & (cchar_realtops(acc(ilev,ibox)+1),ilev=1,nlev)
1226 & ,(cchar(acc(ilev,ibox)+1),ilev=1,nlev)
1230 if (ncolprint.ne.0)
then
1232 write(6,
'(a2,1X,5(a7,1X),a50)')
1235 &
'cc*100',
'dem_s',
'dtau_s',
1246 write (6,
'(a)')
'skt(j):'
1247 write (6,
'(8f7.2)') skt(j)
1249 write (6,
'(8I7)') (ibox,ibox=1,ncolprint)
1251 write (6,
'(a)')
'tau:'
1252 write (6,
'(8f7.2)') (tau(j,ibox),ibox=1,ncolprint)
1254 write (6,
'(a)')
'tb:'
1255 write (6,
'(8f7.2)') (tb(j,ibox),ibox=1,ncolprint)
1257 write (6,
'(a)')
'ptop:'
1258 write (6,
'(8f7.2)') (ptop(j,ibox),ibox=1,ncolprint)
!$Id NSTRA real GKLIFT real GVSEC REAL GWD_RANDO_RUWMAX!Maximum Eliassen Palm flux at launch level
!$Id ok_orolf LOGICAL ok_limitvrai LOGICAL ok_all_xml INTEGER iflag_ener_conserv REAL solaire RCFC12 RCFC12_act CFC12_ppt!IM ajout CFMIP2 CMIP5 LOGICAL ok_4xCO2atm RCFC12_per CFC12_ppt_per!OM correction du bilan d eau global!OM Correction sur precip KE REAL cvl_corr!OM Fonte calotte dans bilan eau LOGICAL ok_lic_melt!IM simulateur ISCCP INTEGER top_height
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dttrig real tau
!$Id vert_prof_dissip LOGICAL lstardis INTEGER niterh integer vert_prof_dissip!vertical profile of horizontal dissipation!Allowed function of pressure
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
subroutine icarus(debug, debugcol, npoints, sunlit, nlev, ncol, pfull, phalf, qv, cc, conv, dtau_s, dtau_c, top_height, top_height_direction, overlap, frac_out, skt, emsfc_lw, at, dem_s, dem_c, fq_isccp, totalcldarea, meanptop, meantaucld, meanalbedocld, meantb, meantbclr, boxtau, boxptop)
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
INTERFACE subroutine only