Changeset 5099 for LMDZ6/branches/Amaury_dev/libf/phylmdiso
- Timestamp:
- Jul 22, 2024, 9:29:09 PM (6 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmdiso
- Files:
-
- 1 added
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmdiso/add_phys_tend_mod.F90
r5087 r5099 1 ! 1 2 2 ! $Id$ 3 ! 4 ! 3 4 5 5 MODULE add_phys_tend_mod 6 6 … … 120 120 RETURN 121 121 END SUBROUTINE add_pbl_tend 122 ! 122 123 123 ! $Id$ 124 ! 124 125 125 SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql,zdqi,zdqbs,paprs,text, & 126 126 abortphy,flag_inhib_tend, itap, diag_mode & … … 175 175 INTEGER, INTENT(IN) :: diag_mode ! 0 -> normal effective mode 176 176 ! 1 -> only conservation stats are computed 177 ! 177 178 178 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: zdq 179 179 #ifdef ISO … … 204 204 REAL, DIMENSION(ntraciso,klon,klev) :: sav_xtl_seri, sav_xts_seri, sav_xt_seri 205 205 #endif 206 ! 206 207 207 INTEGER i, k,j, n 208 208 INTEGER jadrs(klon*klev), jbad … … 216 216 logical, save :: first=.true. 217 217 !$OMP THREADPRIVATE(first) 218 ! 218 219 219 !====================================================================== 220 220 ! Variables for energy conservation tests 221 221 !====================================================================== 222 !223 222 224 223 ! zh_col------- total enthalpy of vertical air column … … 234 233 ! zqbs_col------ total mass of blowing snow (kg/m2) 235 234 ! zek_col------ total kinetic energy (kg/m2) 236 ! 235 237 236 REAL zairm(klon, klev) ! layer air mass (kg/m2) 238 237 REAL zqw_col(klon,2) … … 273 272 first=.false. 274 273 endif 275 ! 274 276 275 ! print *,'add_phys_tend: paprs ',paprs 277 276 ! When in diagnostic mode, save initial values of out variables … … 422 421 ENDDO 423 422 ENDIF 424 ! 423 425 424 !===================================================================================== 426 425 ! Impression, warning et correction en cas de probleme moins important … … 531 530 #endif 532 531 #endif 533 !534 532 535 533 !IM ajout memes tests pour reverifier les jbad, jqbad beg … … 572 570 ENDDO 573 571 ENDIF 574 ! 572 575 573 IF (jqbad > 0) THEN 576 574 DO j = 1, jqbad … … 646 644 647 645 end if ! end if (fl_ebil .GT. 0) 648 ! 646 649 647 ! When in diagnostic mode, restore "out" variables to initial values. 650 648 IF (diag_mode == 1) THEN … … 706 704 REAL, DIMENSION(nlon,nlev) :: temp_n, qv_n, ql_n, qs_n, qbs_n 707 705 708 709 !710 706 INTEGER k, n 711 707 … … 713 709 logical, save :: first=.true. 714 710 !$OMP THREADPRIVATE(first) 715 ! 711 716 712 !====================================================================== 717 713 ! Variables for energy conservation tests 718 714 !====================================================================== 719 !720 715 721 716 ! zh_col------- total enthalpy of vertical air column … … 730 725 ! zqbs_col------ total mass of blowing snow (kg/m2) 731 726 ! zek_col------ total kinetic energy (kg/m2) 732 ! 727 733 728 REAL zairm(nlon, nlev) ! layer air mass (kg/m2) 734 729 REAL zqw_col(nlon,2) … … 754 749 first=.false. 755 750 endif 756 ! 751 757 752 ! print *,'add_phys_tend: paprs ',paprs 758 753 !====================================================================== … … 832 827 833 828 end if ! end if (fl_ebil .GT. 0) 834 !835 829 836 830 RETURN … … 978 972 if ( abs(bilq_error) > bilq_seuil) bilq_ok=1 979 973 if ( abs(bilh_error) > bilh_seuil) bilh_ok=1 980 ! 974 981 975 ! Print diagnostics 982 976 ! ================= -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/calwake.F90
r5087 r5099 197 197 d_deltaxtw(:,:,:) = 0. 198 198 #endif 199 !200 199 201 200 DO i = 1, klon … … 214 213 hw(i) = wake_h(i) 215 214 END DO 216 ! 215 217 216 ! Make a copy of state variables 218 217 DO l = 1, klev … … 303 302 #endif 304 303 305 !306 304 DO l = 1, klev 307 305 DO i = 1, klon … … 393 391 END IF 394 392 END DO 395 !396 393 397 394 !jyg< … … 425 422 END DO 426 423 ENDIF ! (iflag_wake_tend .EQ. 0) 427 ! 424 428 425 IF (first) THEN 429 426 DO i = 1,klon -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/change_srf_frac_mod.F90
r5082 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 MODULE change_srf_frac_mod 5 5 … … 7 7 8 8 CONTAINS 9 ! 9 10 10 ! Change Surface Fractions 11 11 ! Author J Ghattas 2008 … … 18 18 #endif 19 19 & ) 20 21 22 23 ! 20 24 21 ! This subroutine is called from physiq.F at each timestep. 25 22 ! 1- For each type of ocean (force, slab, couple) receive new fractions only if … … 28 25 ! 2- Tests and ajustements are done on the fractions 29 26 ! 3- Initialize variables where a new fraction(new or melted ice) has appered, 30 !31 27 32 28 USE dimphy … … 111 107 ! - Put to zero fractions that are too small 112 108 ! - Test total fraction sum is one for each grid point 113 ! 109 114 110 !**************************************************************************************** 115 111 IF (is_modified) THEN … … 182 178 ! i.e. where new sea ice has been formed 183 179 ! or where ice free ocean has appread in a grid cell 184 ! 180 185 181 !**************************************************************************************** 186 182 -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/climb_hq_mod.F90
r5087 r5099 1 1 MODULE climb_hq_mod 2 ! 2 3 3 ! Module to solve the verctical diffusion of "q" and "H"; 4 4 ! specific humidity and potential energi. 5 ! 5 6 6 USE dimphy 7 7 #ifdef ISO … … 42 42 43 43 CONTAINS 44 ! 45 !**************************************************************************************** 46 ! 44 45 !**************************************************************************************** 46 47 47 SUBROUTINE climb_hq_down(knon, coefhq, paprs, pplay, & 48 48 delp, temp, q, dtime, & … … 67 67 ! for the quantity X=[Q,H] in equation X(k) = C(k) + D(k)*X(k-1), where k is 68 68 ! the index of the vertical layer. 69 ! 69 70 70 ! Input arguments 71 71 !**************************************************************************************** … … 147 147 ! 1) 148 148 ! Allocation at first time step only 149 ! 149 150 150 !**************************************************************************************** 151 151 … … 203 203 ! 2) 204 204 ! Definition of the coeficient K 205 ! 205 206 206 !**************************************************************************************** 207 207 Kcoefhq(:,:) = 0.0 … … 217 217 ! 3) 218 218 ! Calculation of gama for "Q" and "H" 219 ! 219 220 220 !**************************************************************************************** 221 221 ! surface pressure is used as reference … … 278 278 ! 4) 279 279 ! Calculte the coefficients C and D for specific humidity, q 280 ! 280 281 281 !**************************************************************************************** 282 282 … … 340 340 ! 5) 341 341 ! Calculte the coefficients C and D for potentiel entalpie, H 342 ! 342 343 343 !**************************************************************************************** 344 344 h_old(:,:) = 0.0 … … 358 358 ! 6) 359 359 ! Return the first layer in output variables 360 ! 360 361 361 !**************************************************************************************** 362 362 Acoef_H_out = Acoef_H … … 372 372 ! 7) 373 373 ! If Pbl is split, return also the other layers in output variables 374 ! 374 375 375 !**************************************************************************************** 376 376 !!! jyg le 07/02/2012 … … 415 415 416 416 END SUBROUTINE climb_hq_down 417 ! 418 !**************************************************************************************** 419 ! 417 418 !**************************************************************************************** 419 420 420 SUBROUTINE calc_coef(knon, Kcoef, gama, delp, X, Ccoef, Dcoef, Acoef, Bcoef) 421 ! 421 422 422 ! Calculate the coefficients C and D in : X(k) = C(k) + D(k)*X(k-1) 423 423 ! where X is H or Q, and k the vertical level k=1,klev 424 ! 424 425 425 INCLUDE "YOMCST.h" 426 426 ! Input arguments … … 443 443 !**************************************************************************************** 444 444 ! Niveau au sommet, k=klev 445 ! 445 446 446 !**************************************************************************************** 447 447 Ccoef(:,:) = 0.0 … … 458 458 !**************************************************************************************** 459 459 ! Niveau (klev-1) <= k <= 2 460 ! 460 461 461 !**************************************************************************************** 462 462 … … 472 472 !**************************************************************************************** 473 473 ! Niveau k=1 474 ! 474 475 475 !**************************************************************************************** 476 476 … … 482 482 483 483 END SUBROUTINE calc_coef 484 ! 485 !**************************************************************************************** 486 ! 484 485 !**************************************************************************************** 486 487 487 SUBROUTINE climb_hq_up(knon, dtime, t_old, q_old, & 488 488 flx_q1, flx_h1, paprs, pplay, & … … 505 505 USE isotopes_verif_mod 506 506 #endif 507 ! 507 508 508 ! This routine calculates the flux and tendency of the specific humidity q and 509 509 ! the potential engergi H. … … 511 511 ! X(k) = C(k) + D(k)*X(k-1) for X=[q,H], where the coefficients 512 512 ! C and D are known from before and k is index of the vertical layer. 513 !514 513 515 514 ! Input arguments … … 564 563 ! Definition of some variables 565 564 REAL, DIMENSION(klon,klev) :: d_h, zairm 566 ! 565 567 566 !**************************************************************************************** 568 567 … … 645 644 ! 2) 646 645 ! Calculation of Q and H 647 ! 646 648 647 !**************************************************************************************** 649 648 … … 715 714 ! 3) 716 715 ! Calculation of the flux for Q and H 717 ! 716 718 717 !**************************************************************************************** 719 718 … … 748 747 ! 4) 749 748 ! Calculation of tendency for Q and H 750 ! 749 751 750 !**************************************************************************************** 752 751 d_h_col_vdf(:) = 0.0 … … 798 797 !**************************************************************************************** 799 798 ! Some deallocations 800 ! 799 801 800 !**************************************************************************************** 802 801 IF (last) THEN … … 822 821 END IF 823 822 END SUBROUTINE climb_hq_up 824 ! 825 !**************************************************************************************** 826 ! 823 824 !**************************************************************************************** 825 827 826 END MODULE climb_hq_mod 828 827 -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/concvl.F90
r5087 r5099 215 215 #endif 216 216 217 218 !219 217 ! Local 220 218 ! ---- … … 234 232 REAL, DIMENSION(klon) :: supmax0, asupmaxmin 235 233 REAL :: zx_t, zdelta, zx_qs, zcor 236 ! 234 237 235 ! INTEGER iflag_mix 238 236 ! SAVE iflag_mix … … 312 310 ALLOCATE (t1(klon,klev)) 313 311 ALLOCATE (q1(klon,klev)) 314 ! 312 315 313 convoccur(:) = 0. 316 ! 314 317 315 itap = 0 318 316 igout = klon/2 + 1/klon -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/cv30_routines.F90
r5087 r5099 5009 5009 ! ajout du terme des ddfts sensi stricto 5010 5010 ! write(*,*) 'tmp cv3_yield 4165: i,il=',i,il 5011 ! 5011 5012 5012 if (option_traceurs.eq.6) then 5013 5013 do iiso = 1, niso -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/cv3_routines.F90
r5087 r5099 57 57 !jyg< 58 58 ! noff is chosen such that nl = k_upper so that upmost loops end at about 22 km 59 ! 59 60 60 noff = min(max(nd-k_upper, 1), (nd+1)/2) 61 61 !! noff = 1 … … 1616 1616 qnk(i)*(lv0-clmcpv*(tnk(i)-273.15)) + gznk(i) 1617 1617 END DO 1618 ! 1618 1619 1619 ! Ice fraction 1620 ! 1620 1621 1621 IF (cvflag_ice) THEN 1622 1622 DO k = minorig, nl … … 1686 1686 END DO 1687 1687 !>jyg 1688 !1689 1688 1690 1689 ! *** Find lifted parcel quantities above cloud base *** 1691 1690 1692 1691 !---------------------------------------------------------------------------- 1693 ! 1692 1694 1693 IF (icvflag_Tpa == 2) THEN 1695 1694 #ifdef ISO 1696 1695 CALL abort_gcm('cv3_routines 1813','isos pas prevus ici',1) 1697 1696 #endif 1698 ! 1697 1699 1698 !---------------------------------------------------------------------------- 1700 ! 1699 1701 1700 DO k = minorig + 1, nl 1702 1701 DO i = 1,ncum … … 1774 1773 Ux* (ah0(i) - ahg - ddelta) /aa 1775 1774 ENDIF ! (tg .gt. Tx) 1776 ! 1775 1777 1776 !! print *,' j, k, Um, U, Ux, aa, bb, discr, dd, ddelta ', j, k, Um, U, Ux, aa, bb, discr, dd, ddelta 1778 1777 !! print *,' j, k, ah0(i), ahg, tg, qg, tp(i,k), ff ', j, k, ah0(i), ahg, tg, qg, tp(i,k), ff … … 1802 1801 END DO ! k = minorig + 1, nl 1803 1802 !---------------------------------------------------------------------------- 1804 ! 1803 1805 1804 ELSE IF (icvflag_Tpa == 1) THEN ! (icvflag_Tpa == 2) 1806 ! 1805 1807 1806 !---------------------------------------------------------------------------- 1808 ! 1807 1809 1808 #ifdef ISO 1810 1809 CALL abort_gcm('cv3_routines 1813','isos pas prevus ici',1) … … 1872 1871 END IF ! (k>=(icbs(i)+1)) 1873 1872 END DO ! i = 1, ncum 1874 ! 1873 1875 1874 IF (cvflag_prec_eject) THEN 1876 1875 #ifdef ISO … … 1898 1897 ! ejection. 1899 1898 ! ===================================================================================== 1900 ! 1899 1901 1900 ! Verif 1902 1901 qpreca(i,k) = ejectliq*qpl(i,k) + ejectice*qps(i,k) !!jygprl … … 1904 1903 frac_s(i,k) = (1.-ejectliq)*frac(i,k) + & !!jygprl 1905 1904 ejectliq*(1. - (qpl(i,k)+(1.-frac(i,k))*qcld(i,k))/max(clw(i,k),smallestreal)) !!jygprl 1906 ! 1905 1907 1906 denomm1 = 1./(1. - qpreca(i,k)) 1908 ! 1907 1909 1908 qta(i,k) = qta(i,k-1) - & 1910 1909 qpreca(i,k)*(1.-qta(i,k-1))*denomm1 … … 1925 1924 END DO ! i = 1, ncum 1926 1925 ENDIF ! (cvflag_prec_eject) 1927 ! 1926 1928 1927 END DO ! k = minorig + 1, nl 1929 ! 1928 1930 1929 !---------------------------------------------------------------------------- 1931 ! 1930 1932 1931 ELSE IF (icvflag_Tpa == 0) THEN! (icvflag_Tpa == 2) ELSE IF(icvflag_Tpa == 1) 1933 ! 1932 1934 1933 !---------------------------------------------------------------------------- 1935 ! 1934 1936 1935 DO k = minorig + 1, nl 1937 1936 DO i = 1, ncum … … 2160 2159 2161 2160 !---------------------------------------------------------------------------- 2162 ! 2161 2163 2162 ENDIF ! (icvflag_Tpa == 2) ELSEIF (icvflag_Tpa == 1) ELSE (icvflag_Tpa == 0) 2164 2163 #ifdef ISOVERIF … … 2170 2169 enddo 2171 2170 #endif 2172 ! 2171 2173 2172 !---------------------------------------------------------------------------- 2174 ! 2173 2175 2174 ! ===================================================================== 2176 2175 ! --- SET THE PRECIPITATION EFFICIENCIES 2177 2176 ! --- THESE MAY BE FUNCTIONS OF TP(I), P(I) AND CLW(I) 2178 2177 ! ===================================================================== 2179 ! 2178 2180 2179 IF (flag_epkeorig/=1) THEN 2181 2180 DO k = 1, nl ! convect3 … … 2213 2212 END DO 2214 2213 END IF 2215 ! 2214 2216 2215 ! ========================================================================= 2217 2216 IF (prt_level >= 10) THEN … … 2219 2218 (k, tp(1,k), tvp(1,k), k = 1,nl) 2220 2219 ENDIF 2221 ! 2220 2222 2221 ! ===================================================================== 2223 2222 ! --- CALCULATE VIRTUAL TEMPERATURE AND LIFTED PARCEL … … 2451 2450 2452 2451 !jyg : cvflag_ice test outside the loops (07042015) 2453 ! 2452 2454 2453 IF (cvflag_ice) THEN 2455 ! 2454 2456 2455 IF (cvflag_prec_eject) THEN 2457 2456 !! DO k = minorig + 1, nl … … 2485 2484 END DO 2486 2485 END DO 2487 ! 2486 2488 2487 ELSE ! (cvflag_ice) 2489 ! 2488 2490 2489 DO k = minorig + 1, nl 2491 2490 DO i = 1, ncum … … 2501 2500 END DO 2502 2501 END DO 2503 ! 2502 2504 2503 END IF ! (cvflag_ice) 2505 2504 … … 2514 2513 ! =================================================================== 2515 2514 ! --- CLOSURE OF CONVECT3 2516 ! 2515 2517 2516 ! vectorization: S. Bony 2518 2517 ! =================================================================== … … 3820 3819 END DO 3821 3820 3822 !3823 3821 ! Get adiabatic ascent mass flux 3824 ! 3822 3825 3823 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3826 3824 IF (adiab_ascent_mass_flux_depends_on_ejectliq) THEN … … 3857 3855 3858 3856 ! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3859 ! 3857 3860 3858 ! *** begin downdraft loop *** 3861 ! 3859 3862 3860 ! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3863 3861 … … 3878 3876 ! *** integrate liquid water equation to find condensed water *** 3879 3877 ! *** and condensed water flux *** 3880 ! 3881 ! 3878 3879 3882 3880 ! *** calculate detrained precipitation *** 3883 3881 … … 4088 4086 bfac = 1./(sigd(il)*wt(il,i)) 4089 4087 4090 !4091 4088 IF (prt_level >= 20) THEN 4092 4089 Print*, 'cv3_unsat after provisional rp estimate: rp, afac, bfac ', & 4093 4090 i, rp(1, i), afac,bfac 4094 4091 ENDIF 4095 ! 4092 4096 4093 !JYG1 4097 4094 ! cc sigt=1.0 … … 4171 4168 evap(il, i) = (wdtrain(il)+sigd(il)*wt(il,i)*(prec(il,i+1)-prec(il,i))) / & 4172 4169 (sigd(il)*(ph(il,i)-ph(il,i+1))*100.) 4173 ! 4170 4174 4171 IF (prt_level >= 20) THEN 4175 4172 Print*, 'cv3_unsat after evap computation: wdtrain, sigd, wt, prec(i+1),prec(i) ', & 4176 4173 i, wdtrain(1), sigd(1), wt(1,i), prec(1,i+1),prec(1,i) 4177 4174 ENDIF 4178 !4179 4175 4180 4176 !jyg< … … 4403 4399 END DO 4404 4400 ! ---------------------------------------------------------------- 4405 ! 4401 4406 4402 IF (prt_level >= 20) THEN 4407 4403 Print*, 'cv3_unsat after mp computation: mp, b(i), b(i-1) ', & 4408 4404 i, mp(1, i), b(1,i), b(1,max(i-1,1)) 4409 4405 ENDIF 4410 !4411 4406 4412 4407 ! *** find mixing ratio of precipitating downdraft *** … … 4766 4761 REAL, DIMENSION (ntraciso,nloc, na), INTENT (IN) :: xtice 4767 4762 #endif 4768 ! 4763 4769 4764 !input/output: 4770 4765 REAL, DIMENSION (nloc, na), INTENT (INOUT) :: m, mp … … 4773 4768 REAL, DIMENSION (nloc, nd), INTENT (INOUT) :: sig 4774 4769 REAL, DIMENSION (nloc), INTENT (INOUT) :: sigd 4775 ! 4770 4776 4771 !outputs: 4777 4772 REAL, DIMENSION (nloc), INTENT (OUT) :: precip … … 4794 4789 real, DIMENSION (ntraciso,nloc, nd+1), INTENT (OUT) :: xtVprecip, xtVprecipi 4795 4790 #endif 4796 ! 4791 4797 4792 !local variables: 4798 4793 INTEGER :: i, k, il, n, j, num1 … … 4863 4858 #endif 4864 4859 #endif 4865 ! 4860 4866 4861 ! ------------------------------------------------------------- 4867 4862 … … 5134 5129 ENDIF ! (adiab_ascent_mass_flux_depends_on_ejectliq) ELSE 5135 5130 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5136 ! 5131 5137 5132 ! print*,'cv3_yield avant ft' 5138 5133 ! am is the part of cbmf taken from the first level … … 5408 5403 IF (ok_optim_yield) THEN !| 5409 5404 !----------------------------------------------------------- 5410 ! 5405 5411 5406 !*** *** 5412 5407 !*** Compute convective mass fluxes upwd and dnwd *** 5413 5408 5414 !5415 5409 ! ================================================= 5416 5410 ! upward fluxes | 5417 5411 ! ------------------------------------------------ 5418 ! 5412 5419 5413 upwd(:,:) = 0. 5420 5414 up_to(:,:) = 0. 5421 5415 up_from(:,:) = 0. 5422 ! 5416 5423 5417 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5424 5418 IF (adiab_ascent_mass_flux_depends_on_ejectliq) THEN … … 5428 5422 !! WARNING : in the present version, taking into account the mass-flux decrease due to 5429 5423 !! precipitation ejection leads to water conservation violation. 5430 ! 5424 5431 5425 ! - Upward mass flux of mixed draughts 5432 5426 !--------------------------------------- … … 5440 5434 ENDDO 5441 5435 ENDDO 5442 ! 5436 5443 5437 DO j = 3, nl 5444 5438 DO i = 2, j-1 … … 5450 5444 ENDDO 5451 5445 ENDDO 5452 ! 5446 5453 5447 ! The difference between upwd(il,i) and upwd(il,i-1) is due to updrafts ending in layer 5454 5448 !(i-1) (theses drafts cross interface (i-1) but not interface(i)) and to updrafts starting 5455 5449 !from layer (i-1) (theses drafts cross interface (i) but not interface(i-1)): 5456 ! 5450 5457 5451 DO i = 2, nlp 5458 5452 DO il = 1, ncum … … 5462 5456 ENDDO 5463 5457 ENDDO 5464 ! 5458 5465 5459 ! - Total upward mass flux 5466 5460 !--------------------------- … … 5477 5471 !! The decrease of the adiabatic ascent mass flux due to ejection of precipitation 5478 5472 !! is not taken into account. 5479 ! 5473 5480 5474 ! - Upward mass flux 5481 5475 !------------------- … … 5494 5488 ENDDO 5495 5489 ENDDO 5496 ! 5490 5497 5491 DO i = 1, nl 5498 5492 DO il = 1, ncum … … 5502 5496 ENDDO 5503 5497 ENDDO 5504 ! 5498 5505 5499 DO j = 3, nl 5506 5500 DO i = 2, j-1 … … 5512 5506 ENDDO 5513 5507 ENDDO 5514 ! 5508 5515 5509 ! The difference between upwd(il,i) and upwd(il,i-1) is due to updrafts ending in layer 5516 5510 !(i-1) (theses drafts cross interface (i-1) but not interface(i)) and to updrafts starting 5517 5511 !from layer (i-1) (theses drafts cross interface (i) but not interface(i-1)): 5518 ! 5512 5519 5513 DO i = 2, nlp 5520 5514 DO il = 1, ncum … … 5529 5523 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5530 5524 5531 !5532 5525 ! ================================================= 5533 5526 ! downward fluxes | … … 5546 5539 ENDDO 5547 5540 ENDDO 5548 ! 5541 5549 5542 DO j = 1, nl 5550 5543 DO i = j+1, nl … … 5557 5550 ENDDO 5558 5551 ENDDO 5559 ! 5552 5560 5553 ! The difference between dnwd(il,i) and dnwd(il,i+1) is due to downdrafts ending in layer 5561 5554 !(i) (theses drafts cross interface (i+1) but not interface(i)) and to downdrafts 5562 5555 !starting from layer (i) (theses drafts cross interface (i) but not interface(i+1)): 5563 ! 5556 5564 5557 DO i = nl-1, 1, -1 5565 5558 DO il = 1, ncum … … 5569 5562 ENDDO 5570 5563 ! ================================================= 5571 ! 5564 5572 5565 !----------------------------------------------------------- 5573 5566 ENDIF !(ok_optim_yield) !| … … 5593 5586 IF (num1<=0) GO TO 500 5594 5587 5595 !5596 5588 !jyg< 5597 5589 !----------------------------------------------------------- … … 5651 5643 END DO 5652 5644 END DO 5653 ! 5645 5654 5646 !----------------------------------------------------------- 5655 5647 ENDIF !(ok_optim_yield) !| 5656 5648 !----------------------------------------------------------- 5657 ! 5649 5658 5650 !! print *,'yield, i, amp1, ad', i, amp1(1), ad(1) 5659 5651 … … 5712 5704 t(il,i)*(cpv-cpd)*(rr(il,i)-qent(il,i,i)))*cpinv 5713 5705 END IF 5714 ! 5706 5715 5707 ! sb: on ne fait pas encore la correction permettant de mieux 5716 5708 ! conserver l'eau: … … 5848 5840 ! ajout du terme des ddfts sensi stricto 5849 5841 ! write(*,*) 'tmp cv3_yield 4165: i,il=',i,il 5850 ! 5842 5851 5843 if (option_traceurs.eq.6) then 5852 5844 do iiso = 1, niso … … 6153 6145 ft(il, i) = ft(il, i) + 0.01*grav*dpinv*ment(il, k, i) * & 6154 6146 (hent(il,k,i)-h(il,i)+t(il,i)*(cpv-cpd)*(rr(il,i)+awat(il)-qent(il,k,i)))*cpinv 6155 ! 6147 6156 6148 #ifdef ISO 6157 6149 ! on change le traitement de cette ligne le 8 mai 2009: … … 6192 6184 ! end cam verif 6193 6185 #endif 6194 ! 6186 6195 6187 END IF ! i 6196 6188 END DO … … 6814 6806 END IF 6815 6807 END DO 6816 ! 6808 6817 6809 IF (prt_level >= 5) THEN 6818 6810 print *,' CV3_YIELD : alpha_qpos ',alpha_qpos(1) 6819 6811 ENDIF 6820 6812 6821 !6822 6813 DO il = 1, ncum 6823 6814 IF (iflag(il)<=1) THEN … … 7303 7294 REAL, DIMENSION (len, na, na), INTENT (OUT) :: phi, phi2, epmlmMm 7304 7295 REAL, DIMENSION (len, na), INTENT (OUT) :: da, d1a, dam, eplaMm 7305 ! 7296 7306 7297 ! variables pour tracer dans precip de l'AA et des mel 7307 7298 !local variables: … … 7600 7591 !AC! 2110 continue 7601 7592 !AC! 2100 continue 7602 ! 7593 7603 7594 RETURN 7604 7595 END SUBROUTINE cv3_uncompress -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/cv3a_compress.F90
r5087 r5099 78 78 REAL, DIMENSION (ntraciso,len,nd), INTENT (IN) :: xt1_wake 79 79 #endif 80 ! 80 81 81 ! in/out 82 82 INTEGER, INTENT (INOUT) :: ncum 83 ! 83 84 84 ! outputs: 85 85 ! en fait, on a nloc=len pour l'instant (cf cv_driver) … … 175 175 END DO 176 176 END DO 177 ! 177 178 178 ! AC! do 121 j=1,ntra 179 179 ! AC!ccccc do 111 k=1,nl+1 … … 230 230 CALL abort_physic(modname, abort_message, 1) 231 231 END IF 232 ! 232 233 233 !jyg< 234 234 ELSE !(compress) 235 ! 235 236 236 ncum = len 237 ! 237 238 238 wghti(:,1:nl+1) = wghti1(:,1:nl+1) 239 239 t(:,1:nl+1) = t1(:,1:nl+1) … … 271 271 xt_wake(:,:,1:nl+1) = xt1_wake(:,:,1:nl+1) 272 272 #endif 273 ! 273 274 274 s_wake(:) = s1_wake(:) 275 275 iflag(:) = iflag1(:) … … 293 293 xtnk(:,:) = xtnk1(:,:) 294 294 #endif 295 ! 295 296 296 ENDIF !(compress) 297 297 !>jyg -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/cv3a_uncompress.F90
r5087 r5099 390 390 ! 2210 enddo 391 391 ! 2220 enddo 392 ! 392 393 393 !jyg< 394 394 ELSE !(compress) 395 ! 395 396 396 sig1(:,nd) = sig(:,nd) 397 397 ptop21(:) = ptop2(:) … … 415 415 xtprecip1(:,:)=xtprecip(:,:) 416 416 #endif 417 ! 417 418 418 sig1(:, 1:nl) = sig(:, 1:nl) 419 419 w01(:, 1:nl) = w0(:, 1:nl) … … 451 451 sigt1(:, 1:nl) = sigt(:, 1:nl) 452 452 detrain1(:, 1:nl) = detrain(:, 1:nl) 453 ! 453 454 454 ma1(:, nlp) = 0. 455 455 vprecip1(:, nlp) = 0. … … 459 459 dnwd01(:, nlp) = 0. 460 460 461 !462 461 phi1 (:, 1:nl, 1:nl) = phi (:, 1:nl, 1:nl) !AC! 463 462 phi21 (:, 1:nl, 1:nl) = phi2 (:, 1:nl, 1:nl) !RomP -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/cv3p_mixing.F90
r5087 r5099 154 154 fmax, gammas, qqa1, qqa2, Qcoef1max, Qcoef2max 155 155 !>jyg 156 ! 156 157 157 END IF 158 158 … … 813 813 ! (1.+lv(il,j)*lv(il,j)*rs(il,j) / & 814 814 ! ((cpd*(1.-Qent(il,i,j))+Qent(il,i,j)*cpv)*rrv*t(il,j)*t(il,j))) 815 ! 815 816 816 ! Computation of condensate amount Elij, taking into account the ice fraction frac 817 817 ! Warning : the same saturation humidity rs is used over both liquid water and ice; this 818 818 ! should be corrected. 819 ! 819 820 820 ! Heat capacity of mixed draught 821 821 cpm = cpd+Qent(il,i,j)*(cpv-cpd) 822 ! 822 823 823 IF (cvflag_ice .and. frac(il,j) > 0.) THEN 824 824 elij(il, i, j) = Qent(il, i, j) - rs(il, j) -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/cv_driver.F90
r5087 r5099 1243 1243 cvflag_grav = .TRUE. 1244 1244 cvflag_ice = iflag_ice_thermo >= 1 1245 ! 1245 1246 1246 ! si icvflag_Tpa=0, alors la fraction de glace dans l'ascendance adiabatique est 1247 1247 ! fonction de la temperature de l'environnement et la temperature de l'ascendance est -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/cva_driver.F90
r5087 r5099 431 431 ! 14 No moist convection; atmosphere is very 432 432 ! stable (=> no computation) 433 !434 433 435 434 ! ft: Array of temperature tendency (K/s) of dimension ND, defined at same … … 1066 1065 ! If the fraction of convective points is larger than comp_threshold, then compression 1067 1066 ! is assumed useless. 1068 ! 1067 1069 1068 compress = ncum < len*comp_threshold 1070 ! 1069 1071 1070 IF (.not. compress) THEN 1072 1071 DO i = 1,len … … 1074 1073 ENDDO 1075 1074 ENDIF 1076 ! 1075 1077 1076 #ifdef ISO 1078 1077 #ifdef ISOVERIF … … 1480 1479 #endif 1481 1480 ) 1482 ! 1481 1483 1482 IF (prt_level >= 10) THEN 1484 1483 Print *, 'cva_driver after cv3_unsat:mp , water, ice, evap, fondue ' … … 1494 1493 ENDDO 1495 1494 ENDIF 1496 ! 1495 1497 1496 END IF !(iflag_con==3) 1498 1497 … … 1594 1593 #endif 1595 1594 ) 1596 ! 1595 1597 1596 ! Test conseravtion de l'eau 1598 !1599 1597 1600 1598 #ifdef ISOVERIF … … 1628 1626 PRINT *, ' cv3_yield -> fqd(1) = ', fqd(igout, 1) 1629 1627 END IF !(debut) THEN 1630 ! 1628 1631 1629 IF (prt_level >= 10) THEN 1632 1630 Print *, 'cva_driver after cv3_yield:ft(1) , ftd(1) ', & … … 1635 1633 fq(igout,1), fqd(igout,1) 1636 1634 ENDIF 1637 ! 1635 1638 1636 END IF 1639 1637 … … 1747 1745 #endif 1748 1746 1749 !1750 1747 IF (prt_level >= 10) THEN 1751 1748 Print *, 'cva_driver after cv3_uncompress:ft1(1) , ftd1(1) ', & … … 1754 1751 fq1(igout,1), fqd1(igout,1) 1755 1752 ENDIF 1756 ! 1753 1757 1754 END IF 1758 1755 … … 1772 1769 1773 1770 END IF ! ncum>0 1774 ! 1775 ! 1771 1772 1776 1773 DO i = 1,len 1777 1774 IF (iflag1(i) == 14) THEN … … 1781 1778 ENDDO 1782 1779 1783 !1784 1780 ! In order take into account the possibility of changing the compression, 1785 1781 ! reset m, sig and w0 to zero for non-convective points. -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/isotopes_routines_mod.F90
r5098 r5099 2163 2163 #endif 2164 2164 ! end verif 2165 ! 2165 2166 2166 else !if (t1lay(i).ge.0.0) then 2167 2167 do ixt=1,niso … … 16617 16617 !#ifdef ISOHTO 16618 16618 !=================================================================== 16619 ! 16619 16620 16620 ! subroutines utilisees par iso_tritium: ecrites par Alexandre Cauquoin 16621 ! 16621 16622 16622 !=================================================================== 16623 16623 … … 17932 17932 17933 17933 !=================================================================== 17934 ! 17934 17935 17935 ! End subroutine iso_tritium 17936 ! 17936 17937 17937 !=================================================================== 17938 17938 … … 17940 17940 17941 17941 !=================================================================== 17942 ! 17942 17943 17943 ! Subroutine chargement des tableaux de donnees pour production 17944 17944 ! nucleaire de tritium --> call dans iso_init.F 17945 ! 17945 17946 17946 !=================================================================== 17947 17947 … … 18047 18047 18048 18048 !=================================================================== 18049 ! 18049 18050 18050 ! Subroutines production nucleaire utilisees par iso_tritium 18051 ! 18051 18052 18052 !=================================================================== 18053 18053 … … 18501 18501 !#endif 18502 18502 !=================================================================== 18503 ! 18503 18504 18504 ! End subroutines utilisees par iso_tritium 18505 ! 18505 18506 18506 !=================================================================== 18507 18507 -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/isotrac_mod.F90
r4493 r5099 11 11 12 12 !=== CONTENT: ALL THE ISOTOPIC TRACERS RELATED VARIABLES === 13 ! 13 14 14 ! option 1: on trace evap ocean et continent separement 15 15 ! option 2: on trace evap ocean, continent et evap precip -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/limit_read_mod.F90
r5088 r5099 1 ! 1 2 2 ! $Id: limit_read_mod.F90 3435 2019-01-22 15:21:59Z fairhead $ 3 ! 3 4 4 MODULE limit_read_mod 5 ! 5 6 6 ! This module reads the fichier "limit.nc" containing fields for surface forcing. 7 ! 7 8 8 ! Module subroutines : 9 9 ! limit_read_frac : call limit_read_tot and return the fractions … … 11 11 ! limit_read_sst : return sea ice temperature 12 12 ! limit_read_tot : read limit.nc and store the fields in local modules variables 13 ! 13 14 14 IMPLICIT NONE 15 15 … … 54 54 55 55 SUBROUTINE limit_read_frac(itime, dtime, jour, pctsrf_new, is_modified) 56 ! 56 57 57 ! This subroutine is called from "change_srf_frac" for case of 58 58 ! ocean=force or from ocean_slab_frac for ocean=slab. … … 89 89 knon, knindex, & 90 90 rugos_out, alb_out) 91 ! 91 92 92 ! This subroutine is called from surf_land_bucket. 93 93 ! The flag "ok_veget" must can not be true. If coupled run, "ocean=couple" 94 94 ! then this routine will call limit_read_tot. 95 ! 95 96 96 USE dimphy 97 97 USE surface_data … … 139 139 #endif 140 140 ) 141 ! 141 142 142 ! This subroutine returns the sea surface temperature already read from limit.nc. 143 ! 143 144 144 USE dimphy, ONLY : klon 145 145 #ifdef ISO … … 260 260 261 261 SUBROUTINE limit_read_tot(itime, dtime, jour, is_modified) 262 ! 262 263 263 ! Read everything needed from limit.nc 264 ! 264 265 265 ! 0) Initialize 266 266 ! 1) Open the file limit.nc, if it is time … … 332 332 !**************************************************************************************** 333 333 ! 0) Initialization 334 ! 334 335 335 !**************************************************************************************** 336 336 IF (first_call) THEN … … 353 353 IF (is_mpi_root) THEN ! Only master processus 354 354 ierr = NF90_OPEN ('limit.nc', NF90_NOWRITE, nid) 355 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,&355 IF (ierr /= nf90_noerr) CALL abort_physic(modname,& 356 356 'Pb d''ouverture du fichier de conditions aux limites',1) 357 357 … … 359 359 ierr=NF90_INQ_VARID(nid, 'TEMPS', nvarid) 360 360 ierr=NF90_GET_ATT(nid, nvarid, 'calendar', calendar) 361 IF(ierr== NF90_NOERR.AND.calendar/=calend.AND.prt_level>=1) THEN361 IF(ierr==nf90_noerr.AND.calendar/=calend.AND.prt_level>=1) THEN 362 362 WRITE(lunout,*)'BEWARE: gcm and limit.nc calendars differ: ' 363 363 WRITE(lunout,*)' '//TRIM(calend)//' for gcm' … … 371 371 ierr=NF90_INQUIRE(nid, UnlimitedDimID=ndimid) 372 372 ENDIF 373 ierr= NF90_INQUIRE_DIMENSION(nid, ndimid, len=nn)373 ierr=nf90_inquire_dimension(nid, ndimid, len=nn) 374 374 WRITE(abort_message,'(a,2(i0,a))')'limit.nc records number (',nn,') does no'//& 375 375 't match year length (',year_len,')' … … 382 382 ierr=nf90_inq_dimid(nid, 'points_physiques', ndimid) 383 383 ENDIF 384 ierr= NF90_INQUIRE_DIMENSION(nid, ndimid, len=nn)384 ierr=nf90_inquire_dimension(nid, ndimid, len=nn) 385 385 WRITE(abort_message,'(a,2(i0,a))')'limit.nc horizontal number of cells (',nn, & 386 386 ') does not match LMDZ klon_glo (',klon_glo,')' … … 388 388 389 389 ierr = NF90_CLOSE(nid) 390 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Pb when closing file', 1)390 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Pb when closing file', 1) 391 391 END IF ! is_mpi_root 392 392 !$OMP END MASTER … … 398 398 ! The file is read only by the master thread of the master mpi process(is_mpi_root) 399 399 ! Check by the way if the number of records is correct. 400 ! 400 401 401 !**************************************************************************************** 402 402 … … 451 451 452 452 ierr = NF90_OPEN ('limit.nc', NF90_NOWRITE, nid) 453 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,&453 IF (ierr /= nf90_noerr) CALL abort_physic(modname,& 454 454 'Pb d''ouverture du fichier de conditions aux limites',1) 455 455 … … 463 463 !**************************************************************************************** 464 464 ! 2) Read fraction if not type_ocean=couple 465 ! 465 466 466 !**************************************************************************************** 467 467 468 468 IF ( type_ocean /= 'couple') THEN 469 ! 469 470 470 ! Ocean fraction 471 471 ierr = NF90_INQ_VARID(nid, 'FOCE', nvarid) 472 IF (ierr /= NF90_NOERR) CALL abort_physic(modname, 'Le champ <FOCE> est absent',1)472 IF (ierr /= nf90_noerr) CALL abort_physic(modname, 'Le champ <FOCE> est absent',1) 473 473 474 ierr = NF90_GET_VAR(nid,nvarid,pct_glo(:,is_oce),start,epais)475 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <FOCE>' ,1)476 ! 474 ierr = nf90_get_var(nid,nvarid,pct_glo(:,is_oce),start,epais) 475 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Lecture echouee pour <FOCE>' ,1) 476 477 477 ! Sea-ice fraction 478 478 ierr = NF90_INQ_VARID(nid, 'FSIC', nvarid) 479 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <FSIC> est absent',1)480 481 ierr = NF90_GET_VAR(nid,nvarid,pct_glo(:,is_sic),start,epais)482 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <FSIC>' ,1)479 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Le champ <FSIC> est absent',1) 480 481 ierr = nf90_get_var(nid,nvarid,pct_glo(:,is_sic),start,epais) 482 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Lecture echouee pour <FSIC>' ,1) 483 483 484 484 485 485 ! Read land and continentals fraction only if asked for 486 486 IF (read_continents .OR. itime == 1) THEN 487 ! 487 488 488 ! Land fraction 489 489 ierr = NF90_INQ_VARID(nid, 'FTER', nvarid) 490 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <FTER> est absent',1)490 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Le champ <FTER> est absent',1) 491 491 492 ierr = NF90_GET_VAR(nid,nvarid,pct_glo(:,is_ter),start,epais)493 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <FTER>',1)494 ! 492 ierr = nf90_get_var(nid,nvarid,pct_glo(:,is_ter),start,epais) 493 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Lecture echouee pour <FTER>',1) 494 495 495 ! Continentale ice fraction 496 496 ierr = NF90_INQ_VARID(nid, 'FLIC', nvarid) 497 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <FLIC> est absent',1)498 499 ierr = NF90_GET_VAR(nid,nvarid,pct_glo(:,is_lic),start,epais)500 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <FLIC>',1)497 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Le champ <FLIC> est absent',1) 498 499 ierr = nf90_get_var(nid,nvarid,pct_glo(:,is_lic),start,epais) 500 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Lecture echouee pour <FLIC>',1) 501 501 END IF 502 502 … … 505 505 !**************************************************************************************** 506 506 ! 3) Read sea-surface temperature, if not coupled ocean 507 ! 507 508 508 !**************************************************************************************** 509 509 IF ( type_ocean /= 'couple') THEN 510 510 511 511 ierr = NF90_INQ_VARID(nid, 'SST', nvarid) 512 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <SST> est absent',1)513 514 ierr = NF90_GET_VAR(nid,nvarid,sst_glo,start,epais)515 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <SST>',1)512 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Le champ <SST> est absent',1) 513 514 ierr = nf90_get_var(nid,nvarid,sst_glo,start,epais) 515 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Lecture echouee pour <SST>',1) 516 516 517 517 #ifdef ISO 518 518 IF ((iso_HTO.gt.0).and.(ok_prod_nucl_tritium)) THEN 519 519 ierr = NF90_INQ_VARID(nid, 'TUOCE', nvarid) 520 IF (ierr /= NF90_NOERR) CALL abort_gcm(modname,'Le champ <TUOCE> est absent',1)521 522 ierr = NF90_GET_VAR(nid,nvarid,tuoce_glo,start,epais)523 IF (ierr /= NF90_NOERR) CALL abort_gcm(modname,'Lecture echouee pour <TUOCE>',1)520 IF (ierr /= nf90_noerr) CALL abort_gcm(modname,'Le champ <TUOCE> est absent',1) 521 522 ierr = nf90_get_var(nid,nvarid,tuoce_glo,start,epais) 523 IF (ierr /= nf90_noerr) CALL abort_gcm(modname,'Lecture echouee pour <TUOCE>',1) 524 524 END IF 525 525 #ifdef ISOVERIF … … 539 539 !**************************************************************************************** 540 540 ! 4) Read albedo and rugosity for land surface, only in case of no vegetation model 541 ! 541 542 542 !**************************************************************************************** 543 543 544 544 IF (.NOT. ok_veget) THEN 545 ! 545 546 546 ! Read albedo 547 547 ierr = NF90_INQ_VARID(nid, 'ALB', nvarid) 548 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <ALB> est absent',1)549 550 ierr = NF90_GET_VAR(nid,nvarid,alb_glo,start,epais)551 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <ALB>',1)552 ! 548 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Le champ <ALB> est absent',1) 549 550 ierr = nf90_get_var(nid,nvarid,alb_glo,start,epais) 551 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Lecture echouee pour <ALB>',1) 552 553 553 ! Read rugosity 554 554 ierr = NF90_INQ_VARID(nid, 'RUG', nvarid) 555 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <RUG> est absent',1)556 557 ierr = NF90_GET_VAR(nid,nvarid,rug_glo,start,epais)558 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <RUG>',1)555 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Le champ <RUG> est absent',1) 556 557 ierr = nf90_get_var(nid,nvarid,rug_glo,start,epais) 558 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Lecture echouee pour <RUG>',1) 559 559 560 560 END IF … … 562 562 !**************************************************************************************** 563 563 ! 5) Close file and distribuate variables to all processus 564 ! 564 565 565 !**************************************************************************************** 566 566 ierr = NF90_CLOSE(nid) 567 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Pb when closing file', 1)567 IF (ierr /= nf90_noerr) CALL abort_physic(modname,'Pb when closing file', 1) 568 568 ENDIF ! is_mpi_root 569 569 -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/lmdz_lscp_old.F90
r5087 r5099 1 ! 1 2 2 ! $Id: fisrtilp.F90 3493 2019-05-07 08:45:07Z idelkadi $ 3 ! 4 ! 3 4 5 5 MODULE lmdz_lscp_old 6 6 CONTAINS … … 18 18 ) 19 19 20 !21 20 USE dimphy 22 21 USE icefrac_lsc_mod ! compute ice fraction (JBM 3/14) … … 95 94 !====================================================================== 96 95 include "YOMCST.h" 97 ! 96 98 97 ! Principaux inputs: 99 ! 98 100 99 REAL, INTENT(IN) :: dtime ! intervalle du temps (s) 101 100 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs ! pression a inter-couche … … 106 105 INTEGER, INTENT(IN) :: iflag_cld_th 107 106 INTEGER, INTENT(IN) :: iflag_ice_thermo 108 ! 107 109 108 ! Inputs lies aux thermiques 110 ! 109 111 110 REAL, DIMENSION(klon,klev), INTENT(IN) :: ztv 112 111 REAL, DIMENSION(klon,klev), INTENT(IN) :: zqta, fraca 113 112 REAL, DIMENSION(klon,klev), INTENT(IN) :: zpspsk, ztla 114 113 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: zthl 115 ! 114 116 115 ! Input/output 117 116 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs ! determine la largeur de distribution de vapeur 118 ! 117 119 118 ! Principaux outputs: 120 ! 119 121 120 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d_t ! incrementation de la temperature (K) 122 121 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d_q ! incrementation de la vapeur d'eau … … 152 151 !AA 153 152 ! Coeffients de fraction lessivee : pour OFF-LINE 154 ! 153 155 154 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: pfrac_nucl 156 155 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: pfrac_1nucl 157 156 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: pfrac_impa 158 ! 157 159 158 ! Fraction d'aerosols lessivee par impaction et par nucleation 160 159 ! POur ON-LINE 161 ! 160 162 161 REAL, DIMENSION(klon,klev), INTENT(OUT) :: frac_impa 163 162 REAL, DIMENSION(klon,klev), INTENT(OUT) :: frac_nucl 164 163 !AA 165 164 ! -------------------------------------------------------------------------------- 166 ! 165 167 166 ! Options du programme: 168 ! 167 169 168 REAL, SAVE :: seuil_neb=0.001 ! un nuage existe vraiment au-dela 170 169 !$OMP THREADPRIVATE(seuil_neb) … … 175 174 INTEGER,SAVE :: iflag_evap_prec=1 ! evaporation de la pluie 176 175 !$OMP THREADPRIVATE(iflag_evap_prec) 177 ! 176 178 177 LOGICAL cpartiel ! condensation partielle 179 178 PARAMETER (cpartiel=.TRUE.) … … 185 184 PARAMETER (ztfondue=278.15) 186 185 ! -------------------------------------------------------------------------------- 187 ! 186 188 187 ! Variables locales: 189 ! 188 190 189 INTEGER i, k, n, kk 191 190 INTEGER,save::itap=0 … … 274 273 #endif 275 274 276 !277 275 LOGICAL appel1er 278 276 SAVE appel1er 279 277 !$OMP THREADPRIVATE(appel1er) 280 ! 278 281 279 ! iflag_oldbug_fisrtilp=0 enleve le BUG par JYG : tglace_min -> tglace_max 282 280 ! iflag_oldbug_fisrtilp=1 ajoute le BUG … … 284 282 !$OMP THREADPRIVATE(iflag_oldbug_fisrtilp) 285 283 !--------------------------------------------------------------- 286 ! 284 287 285 !AA Variables traceurs: 288 286 !AA Provisoire !!! Parametres alpha du lessivage 289 287 !AA A priori on a 4 scavenging # possibles 290 ! 288 291 289 REAL a_tr_sca(4) 292 290 save a_tr_sca 293 291 !$OMP THREADPRIVATE(a_tr_sca) 294 ! 292 295 293 ! Variables intermediaires 296 ! 294 297 295 REAL zalpha_tr 298 296 REAL zfrac_lessi … … 306 304 REAL zlh_solid(klon), zm_solid 307 305 !--------------------------------------------------------------- 308 ! 306 309 307 ! Fonctions en ligne: 310 ! 308 311 309 REAL fallvs,fallvc ! Vitesse de chute pour cristaux de glace 312 310 ! (Heymsfield & Donner, 1990) … … 317 315 fallvc (zzz) = 3.29/2.0 * ((zzz)**0.16) * ffallv_con 318 316 fallvs (zzz) = 3.29/2.0 * ((zzz)**0.16) * ffallv_lsc 319 ! 317 320 318 DATA appel1er /.TRUE./ 321 319 !ym … … 337 335 CALL getin_p('seuil_neb',seuil_neb) 338 336 write(lunout,*)' iflag_oldbug_fisrtilp =',iflag_oldbug_fisrtilp 339 ! 337 340 338 WRITE(lunout,*) 'fisrtilp, ninter:', ninter 341 339 WRITE(lunout,*) 'fisrtilp, iflag_evap_prec:', iflag_evap_prec … … 378 376 #endif 379 377 380 !381 378 !AA initialiation provisoire 382 379 a_tr_sca(1) = -0.5 … … 384 381 a_tr_sca(3) = -0.5 385 382 a_tr_sca(4) = -0.5 386 ! 383 387 384 !AA Initialisation a 1 des coefs des fractions lessivees 388 ! 385 389 386 !cdir collapse 390 387 DO k = 1, klev … … 398 395 399 396 ENDIF ! test sur appel1er 400 ! 397 401 398 !MAf Initialisation a 0 de zoliq 402 399 ! DO i = 1, klon … … 405 402 ! Determiner les nuages froids par leur temperature 406 403 ! nexpo regle la raideur de la transition eau liquide / eau glace. 407 ! 404 408 405 !CR: on est oblige de definir des valeurs fisrt car les valeurs de newmicro ne sont pas les memes par defaut 409 406 IF (iflag_t_glace==0) THEN … … 425 422 !>AJ 426 423 !cc nexpo = 1 427 ! 424 428 425 ! Initialiser les sorties: 429 ! 426 430 427 !cdir collapse 431 428 DO k = 1, klev+1 … … 474 471 #endif 475 472 ! ENDDO 476 ! 473 477 474 ! Initialiser le flux de precipitation a zero 478 ! 475 479 476 ! DO i = 1, klon 480 477 zrfl(i) = 0.0 … … 492 489 zneb(i) = seuil_neb 493 490 ENDDO 494 ! 495 ! 491 492 496 493 !AA Pour plus de securite 497 494 … … 500 497 501 498 !AA================================================================== 502 ! 499 503 500 ncoreczq=0 504 501 ! BOUCLE VERTICALE (DU HAUT VERS LE BAS) 505 ! 502 506 503 DO k = klev, 1, -1 507 ! 508 ! 504 505 509 506 #ifdef ISO 510 507 ! cam debug! … … 543 540 #endif 544 541 !AA=============================================================== 545 ! 542 546 543 ! Initialisation temperature et vapeur 547 544 DO i = 1, klon … … 591 588 592 589 ENDDO 593 ! 590 594 591 ! ---------------------------------------------------------------- 595 592 ! P0> Thermalisation des precipitations venant de la couche du dessus … … 604 601 ! - zt: temperature de la cocuhe 605 602 ! - zmqc: masse de precip qui doit etre thermalisee 606 ! 603 607 604 IF(k<=klevm1) THEN 608 605 DO i = 1, klon … … 632 629 ENDDO 633 630 ENDIF ! end IF(k.LE.klevm1) 634 ! 631 635 632 ! ---------------------------------------------------------------- 636 633 ! P1> Calcul de l'evaporation de la precipitation … … 643 640 ! - zq, zt: humidite et temperature de la cocuhe 644 641 ! - zmqc: masse de precip qui doit etre thermalisee 645 ! 642 646 643 #ifdef ISO 647 644 DO i = 1, klon … … 776 773 #endif 777 774 778 !779 775 ELSE ! (.NOT. ice_thermo) 780 776 … … 938 934 ! ---------------------------------------------------------------- 939 935 ENDIF ! (iflag_evap_prec>=1) 940 ! 936 941 937 ! Calculer Qs et L/Cp*dQs/dT: 942 938 #ifdef ISOVERIF … … 988 984 ! write(*,*) 'ilp tmp 638: k,zoliq,zxtoliq(1,363)=',k,zoliq(363),zxtoliq(1,363) 989 985 #endif 990 ! 986 991 987 IF (thermcep) THEN 992 988 DO i = 1, klon … … 1017 1013 ENDDO 1018 1014 ENDIF 1019 ! 1015 1020 1016 ! Determiner la condensation partielle et calculer la quantite 1021 1017 ! de l'eau condensee: 1022 ! 1018 1023 1019 !verification de la valeur de iflag_fisrtilp_qsat pour iflag_ice_thermo=1 1024 1020 ! if ((iflag_ice_thermo.eq.1).and.(iflag_fisrtilp_qsat.ne.0)) then … … 1037 1033 ! zt : temperature de la maille 1038 1034 ! ---------------------------------------------------------------- 1039 ! 1035 1040 1036 IF (cpartiel) THEN 1041 1037 ! ------------------------- 1042 1038 ! P2.A> Nuage fractionnaire 1043 1039 ! ------------------------- 1044 ! 1040 1045 1041 ! Calcul de l'eau condensee et de la fraction nuageuse et de l'eau 1046 1042 ! nuageuse a partir des PDF de Sandrine Bony. … … 1050 1046 ! on prend en compte le réchauffement qui diminue la partie 1051 1047 ! condensee 1052 ! 1048 1053 1049 ! Version avec les raqts 1054 1050 … … 1206 1202 if ((convergence(i).or.(n_i(i).eq.0)).and.lognormale(i)) then 1207 1203 ! si on n'a pas converge 1208 ! 1204 1209 1205 ! P2.A.2.1> Calcul de la fraction nuageuse et de la quantite d'eau condensee 1210 1206 ! --------------------------------------------------------------- … … 1214 1210 ! zcond: eau condensee en moyenne dans la maille 1215 1211 ! rhcl: humidite relative ciel-clair 1216 ! 1212 1217 1213 Tbef(i)=Tbef(i)+DT(i) ! nouvelle temperature 1218 1214 if (.not.ice_thermo) then … … 1393 1389 ! rhcl: humidite relative ciel-clair 1394 1390 ! ---------------------------------------------------------------- 1395 ! 1391 1396 1392 ! Bornage de l'eau in-cloud (zqn) et de la fraction nuageuse (rneb) 1397 1393 ! Calcule de l'eau condensee moyenne dans la maille (zcond), … … 1602 1598 ! write(*,*) 'ilp tmp 1311: zoliq,zxtoliq(1,363)=',zoliq(363),zxtoliq(1,363) 1603 1599 #endif 1604 ! 1600 1605 1601 ! Mise a jour vapeur d'eau 1606 1602 ! ------------------------- … … 1615 1611 ! Variable calcule: 1616 1612 ! zt : temperature de la maille 1617 ! 1613 1618 1614 IF (.NOT. ice_thermo) THEN 1619 1615 if (iflag_fisrtilp_qsat.lt.1) then … … 1952 1948 ! P3> Formation des precipitations 1953 1949 ! ---------------------------------------------------------------- 1954 ! 1950 1955 1951 ! Partager l'eau condensee en precipitation et eau liquide nuageuse 1956 !1957 1952 1958 1953 ! Initialisation de zoliq (eau condensee moyenne dans la maille) … … 2056 2051 #endif 2057 2052 2058 !2059 2053 DO n = 1, ninter 2060 2054 DO i = 1, klon … … 2121 2115 2122 2116 ! ---------------------------------------------------------------- 2123 ! 2117 2124 2118 #ifdef ISO 2125 2119 do i=1,klon … … 2312 2306 CALL abort_physic('ilp 2347', 'isotopes pas encore prevus ici', 1) 2313 2307 #endif 2314 ! 2308 2315 2309 !CR&JYG< 2316 2310 ! On prend en compte l'effet Bergeron dans les flux de precipitation : … … 2323 2317 ! Le condensat precipitant solide est augmente. 2324 2318 ! La vapeur d'eau est augmentee. 2325 ! 2319 2326 2320 IF ((iflag_bergeron .EQ. 2)) THEN 2327 2321 DO i = 1, klon … … 2508 2502 ! Fin de formation des precipitations 2509 2503 ! ---------------------------------------------------------------- 2510 ! 2504 2511 2505 ! Calculer les tendances de q et de t: 2512 ! 2506 2513 2507 DO i = 1, klon 2514 2508 d_q(i,k) = zq(i) - q(i,k) … … 2548 2542 d_t(i,k) = zt(i) - t(i,k) 2549 2543 ENDDO 2550 ! 2544 2551 2545 !AA--------------- Calcul du lessivage stratiforme ------------- 2552 2546 2553 2547 DO i = 1,klon 2554 ! 2548 2555 2549 if(zcond(i).gt.zoliq(i)+1.e-10) then 2556 2550 beta(i,k) = (zcond(i)-zoliq(i))/zcond(i)/dtime … … 2578 2572 pfrac_nucl(i,k)=pfrac_nucl(i,k)*(1.-zneb(i)*zfrac_lessi) 2579 2573 frac_nucl(i,k)= 1.-zneb(i)*zfrac_lessi 2580 ! 2574 2581 2575 ! nucleation avec un facteur -1 au lieu de -0.5 2582 2576 zfrac_lessi = 1. - EXP(-zprec_cond(i)/zneb(i)) 2583 2577 pfrac_1nucl(i,k)=pfrac_1nucl(i,k)*(1.-zneb(i)*zfrac_lessi) 2584 2578 ENDIF 2585 ! 2579 2586 2580 ENDDO ! boucle sur i 2587 ! 2581 2588 2582 !AA Lessivage par impaction dans les couches en-dessous 2589 2583 DO kk = k-1, 1, -1 … … 2629 2623 ! end verif en fin de boucle 2630 2624 2631 !2632 2625 !AA=============================================================== 2633 2626 ! FIN DE LA BOUCLE VERTICALE 2634 2627 end DO 2635 ! 2628 2636 2629 !AA================================================================== 2637 ! 2630 2638 2631 ! Pluie ou neige au sol selon la temperature de la 1ere couche 2639 ! 2632 2640 2633 !CR: si la thermo de la glace est active, on calcule zifl directement 2641 2634 IF (.NOT.ice_thermo) THEN … … 2703 2696 2704 2697 ENDIF 2705 ! 2698 2706 2699 ! For energy conservation : when snow is present, the solification 2707 2700 ! latent heat is considered. … … 2717 2710 END DO 2718 2711 ENDIF 2719 !2720 2712 2721 2713 if (ncoreczq>0) then -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/lmdz_wake.F90
r5093 r5099 159 159 #endif 160 160 161 !162 161 ! Input/Output 163 162 ! State variables … … 425 424 CALL getin_p('wdens_ref_l',wdens_ref(2)) !wake number per unit area ; land 426 425 !>jyg 427 ! 426 428 427 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 429 428 !!!!!!!!! Population dynamics parameters !!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 441 440 CALL getin_p('rzero_wk', rzero) 442 441 aa0 = 3.14*rzero*rzero 443 ! 442 444 443 tau_cv = 4000. 445 444 CALL getin_p('tau_cv', tau_cv) … … 574 573 END DO 575 574 ENDIF ! (iflag_wk_pop_dyn >=1) 576 ! 575 577 576 DO i = 1, klon 578 577 ! c sigmaw(i) = amax1(sigmaw(i),sigd_con(i)) … … 586 585 END DO 587 586 588 !589 587 IF (iflag_wk_pop_dyn >= 1) THEN 590 588 awdens_in(:) = awdens(:) … … 599 597 d_sigmaw(:) = 0. 600 598 ktopw(:) = 0 601 ! 599 602 600 !<jyg 603 601 dth(:,:) = 0. … … 617 615 cstar(:) = 0. 618 616 ktopw(:) = 0 619 ! 617 620 618 ! Vertical advection local variables 621 619 omgbw(:,:) = 0. … … 629 627 #endif 630 628 !>jyg 631 ! 629 632 630 IF (prt_level>=10) THEN 633 631 PRINT *, 'wake-1, sigmaw(igout) ', sigmaw(igout) … … 1644 1642 ! print*,'dtKE= ',dtKE(i,k),' dqKE= ',dqKE(i,k) 1645 1643 1646 !1647 1648 1644 ! cc nrlmd Prise en compte du taux de mortalité 1649 1645 ! cc Définitions de entr, detr … … 1834 1830 END DO 1835 1831 END DO 1836 ! 1832 1837 1833 DO i = 1, klon 1838 1834 IF (wk_adv(i)) THEN … … 1879 1875 d_wdens2(i) = d_wdens2(i) + wdens_targ - wdens(i) 1880 1876 wdens(i) = wdens_targ 1881 ! 1877 1882 1878 wdens_targ = min( max(awdens(i),0.), wdens(i) ) 1883 1879 d_awdens2(i) = d_awdens2(i) + wdens_targ - awdens(i) … … 2279 2275 sum_dtdwn(i) = sum_dtdwn(i) + dtdwn(i, k)*dz(i) 2280 2276 sum_dqdwn(i) = sum_dqdwn(i) + dqdwn(i, k)*dz(i) 2281 ! 2277 2282 2278 dthmin(i) = min(dthmin(i), dth(i,k)) 2283 2279 END IF -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phyaqua_mod.F90
r5093 r5099 1 ! 1 2 2 ! $Id: phyaqua_mod.F90 3579 2019-10-09 13:11:07Z fairhead $ 3 ! 3 4 4 MODULE phyaqua_mod 5 5 ! Routines complementaires pour la physique planetaire. -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phyetat0_mod.F90
r5088 r5099 466 466 ! TKE 467 467 !================================== 468 ! 468 469 469 IF (iflag_pbl>1) then 470 470 found=phyetat0_srf(pbl_tke,"TKE","Turb. Kinetic. Energ. ",1.e-8) -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phyredem.F90
r5087 r5099 1 ! 1 2 2 ! $Id: phyredem.F90 3506 2019-05-16 14:38:11Z ymeurdesoif $ 3 ! 3 4 4 SUBROUTINE phyredem (fichnom) 5 ! 5 6 6 !------------------------------------------------------------------------------- 7 7 ! Author: Z.X. Li (LMD/CNRS), 1993/08/18 -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phys_local_var_mod.F90
r5098 r5099 1 ! 1 2 2 ! $Id: phys_local_var_mod.F90 3888 2021-05-05 10:50:37Z jyg $ 3 ! 3 4 4 MODULE phys_local_var_mod 5 5 USE lmdz_cppkeys_wrapper, ONLY : CPPKEY_STRATAER 6 6 ! Variables locales pour effectuer les appels en serie 7 7 !====================================================================== 8 ! 9 ! 8 9 10 10 !====================================================================== 11 11 ! Declaration des variables … … 205 205 REAL, SAVE, ALLOCATABLE :: ZFSDN0(:, :), ZFSUP0(:, :) ! diag 206 206 !$OMP THREADPRIVATE(ZFSDN0,ZFSUP0) 207 ! 207 208 208 REAL, SAVE, ALLOCATABLE :: stratomask(:, :) 209 209 !$OMP THREADPRIVATE(stratomask) … … 388 388 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: s_lcl, s_pblh, s_pblt, s_therm 389 389 !$OMP THREADPRIVATE(s_lcl, s_pblh, s_pblt, s_therm) 390 ! 390 391 391 !nrlmd+jyg< 392 392 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: s_pblh_x, s_pblh_w … … 395 395 !$OMP THREADPRIVATE(s_lcl_x, s_lcl_w) 396 396 !>nrlmd+jyg 397 ! 397 398 398 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: slab_wfbils 399 399 !$OMP THREADPRIVATE(slab_wfbils) … … 425 425 !$OMP THREADPRIVATE(xtrain_lsc) 426 426 #endif 427 ! 427 428 428 !jyg+nrlmd< 429 429 !!!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc … … 475 475 !$OMP THREADPRIVATE(ratqsc) 476 476 !>jyg+nrlmd 477 ! 477 478 478 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: wbeff, convoccur, zmax_th, zq2m, zt2m 479 479 !$OMP THREADPRIVATE(wbeff, convoccur, zmax_th, zq2m, zt2m) … … 502 502 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: epmax_diag ! epmax_cape 503 503 !$OMP THREADPRIVATE(epmax_diag) 504 ! 504 505 505 ! Deep convective variables used in phytrac 506 506 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: ep ! epmax_cape … … 576 576 #endif 577 577 #endif 578 ! 578 579 579 ! REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th 580 580 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: lambda_th … … 714 714 !$OMP THREADPRIVATE(dqsfreez) 715 715 716 717 718 719 720 !721 716 ! variables for stratospheric aerosol 722 717 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: d_q_emiss … … 756 751 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: vsed_aer 757 752 !$OMP THREADPRIVATE(vsed_aer) 758 ! 753 759 754 !---3D budget variables 760 755 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_nucl … … 770 765 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: budg_3D_backgr_so2 771 766 !$OMP THREADPRIVATE(budg_3D_backgr_so2) 772 ! 767 773 768 !---2D budget variables 774 769 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_ocs … … 900 895 ZFLDN0 = 0. 901 896 ALLOCATE(ZFLUP0(klon, klev + 1), ZFSDN0(klon, klev + 1), ZFSUP0(klon, klev + 1)) 902 ! 897 903 898 ALLOCATE(topswad_aero(klon), solswad_aero(klon)) 904 899 ALLOCATE(topswai_aero(klon), solswai_aero(klon)) … … 1020 1015 ALLOCATE(s_lcl(klon)) 1021 1016 ALLOCATE(s_pblh(klon), s_pblt(klon), s_therm(klon)) 1022 ! 1017 1023 1018 !nrlmd+jyg< 1024 1019 ALLOCATE(s_pblh_x(klon), s_pblh_w(klon)) 1025 1020 ALLOCATE(s_lcl_x(klon), s_lcl_w(klon)) 1026 1021 !>nrlmd+jyg 1027 ! 1022 1028 1023 ALLOCATE(slab_wfbils(klon), tpot(klon), tpote(klon), ue(klon)) 1029 1024 ALLOCATE(uq(klon), ve(klon), vq(klon), zxffonte(klon)) … … 1037 1032 ALLOCATE(rain_num(klon)) 1038 1033 ALLOCATE(qlth(klon, klev), qith(klon, klev), qsith(klon, klev), wiceth(klon, klev)) 1039 ! 1034 1040 1035 #ifdef ISO 1041 1036 ALLOCATE(xtevap(ntraciso,klon)) … … 1050 1045 runoff_diag(:)=0. ; xtrunoff_diag(:,:)=0. ! because variables are only given values on knon grid points 1051 1046 #endif 1052 ! 1047 1053 1048 ALLOCATE(sens_x(klon), sens_w(klon)) 1054 1049 ALLOCATE(zxfluxlat_x(klon), zxfluxlat_w(klon)) … … 1073 1068 ALLOCATE(xt_therm(ntraciso,klon,klev)) 1074 1069 #endif 1075 ! 1070 1076 1071 ALLOCATE(ptconv(klon, klev)) 1077 1072 ALLOCATE(ratqsc(klon, klev)) 1078 ! 1073 1079 1074 ALLOCATE(wbeff(klon), convoccur(klon), zmax_th(klon)) 1080 1075 ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon)) … … 1111 1106 ! FC 1112 1107 ALLOCATE(zxfluxq(klon, klev), zxfluxt(klon, klev)) 1113 ! 1114 ! 1108 1109 1115 1110 ! Deep convective variables used in phytrac 1116 1111 ALLOCATE(pmflxr(klon, klev + 1), pmflxs(klon, klev + 1)) … … 1407 1402 DEALLOCATE(tal1, pal1, pab1, pab2) 1408 1403 DEALLOCATE(ptstar, pt0, slp) 1409 ! 1404 1410 1405 DEALLOCATE(alp_wake) 1411 1406 DEALLOCATE(wake_h, wake_k) … … 1425 1420 DEALLOCATE(d_deltaxt_vdf) 1426 1421 #endif 1427 ! 1422 1428 1423 DEALLOCATE(bils) 1429 1424 DEALLOCATE(cdragm, cdragh, cldh, cldl) … … 1433 1428 DEALLOCATE(prw, prlw, prsw, prbsw, water_budget, zustar, zu10m, zv10m, rh2m, s_lcl) 1434 1429 DEALLOCATE(s_pblh, s_pblt, s_therm) 1435 ! 1430 1436 1431 !nrlmd+jyg< 1437 1432 DEALLOCATE(s_pblh_x, s_pblh_w) 1438 1433 DEALLOCATE(s_lcl_x, s_lcl_w) 1439 1434 !>nrlmd+jyg 1440 ! 1435 1441 1436 DEALLOCATE(slab_wfbils, tpot, tpote, ue) 1442 1437 DEALLOCATE(uq, ve, vq, zxffonte) … … 1449 1444 DEALLOCATE(rain_num) 1450 1445 DEALLOCATE(qlth, qith, qsith, wiceth) 1451 ! 1446 1452 1447 DEALLOCATE(sens_x, sens_w) 1453 1448 DEALLOCATE(zxfluxlat_x, zxfluxlat_w) … … 1474 1469 DEALLOCATE(h1_diag,runoff_diag,xtrunoff_diag) 1475 1470 #endif 1476 ! 1471 1477 1472 DEALLOCATE(ptconv) 1478 1473 DEALLOCATE(ratqsc) 1479 ! 1474 1480 1475 DEALLOCATE(wbeff, convoccur, zmax_th) 1481 1476 DEALLOCATE(zq2m, zt2m, weak_inversion) -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phys_output_ctrlout_mod.F90
r5098 r5099 1 ! 1 2 2 ! $Id: phys_output_ctrlout_mod.F90 3888 2021-05-05 10:50:37Z jyg $ 3 ! 3 4 4 MODULE phys_output_ctrlout_mod 5 5 … … 9 9 10 10 IMPLICIT NONE 11 12 13 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!14 !! Definition pour chaque variable du niveau d ecriture dans chaque fichier,15 !! de son nom, de sa description, de son unité et du type d'écriture.16 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!/ histmth, histday, histhf, histins /),'!!!!!!!!!!!!17 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!18 ! CHARACTER(len=20), dimension(nfiles) :: TEF = type_ecri_files19 20 !!! saving lon and lat as variables for CMIP6 DataRequest11 INTEGER, PRIVATE :: i 12 13 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 14 !! Definition pour chaque variable du niveau d ecriture dans chaque fichier, 15 !! de son nom, de sa description, de son unité et du type d'écriture. 16 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!/ histmth, histday, histhf, histins /),'!!!!!!!!!!!! 17 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 18 ! CHARACTER(len=20), dimension(nfiles) :: TEF = type_ecri_files 19 20 !!! saving lon and lat as variables for CMIP6 DataRequest 21 21 TYPE(ctrl_out), SAVE :: o_longitude = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 22 'io_lon', '', '', (/ ('once', i=1, 10) /))22 'io_lon', '', '', (/ ('once', i = 1, 10) /)) 23 23 TYPE(ctrl_out), SAVE :: o_latitude = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 24 'io_lat', '', '', (/ ('once', i=1, 10) /))25 26 !!! Composantes de la coordonnee sigma-hybride27 !!! Ap et Bp et interfaces24 'io_lat', '', '', (/ ('once', i = 1, 10) /)) 25 26 !!! Composantes de la coordonnee sigma-hybride 27 !!! Ap et Bp et interfaces 28 28 TYPE(ctrl_out), SAVE :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 29 'Ahyb', 'Ahyb at level interface', '', (/ ('once', i=1, 10) /))29 'Ahyb', 'Ahyb at level interface', '', (/ ('once', i = 1, 10) /)) 30 30 TYPE(ctrl_out), SAVE :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 31 'Bhyb', 'Bhyb at level interface', '', (/ ('once', i=1, 10) /))31 'Bhyb', 'Bhyb at level interface', '', (/ ('once', i = 1, 10) /)) 32 32 TYPE(ctrl_out), SAVE :: o_Ahyb_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 33 'Ahyb_bounds', '', '', (/ ('once', i=1, 10) /))33 'Ahyb_bounds', '', '', (/ ('once', i = 1, 10) /)) 34 34 TYPE(ctrl_out), SAVE :: o_Bhyb_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 35 'Bhyb_bounds', '', '', (/ ('once', i=1, 10) /))36 !!! Composantes de la coordonnee sigma-hybride au milieu des couches37 !!! Aps et Bps et interfaces35 'Bhyb_bounds', '', '', (/ ('once', i = 1, 10) /)) 36 !!! Composantes de la coordonnee sigma-hybride au milieu des couches 37 !!! Aps et Bps et interfaces 38 38 TYPE(ctrl_out), SAVE :: o_Ahyb_mid = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 39 'Ahyb_mid', 'Ahyb at the middle of the level', '', (/ ('once', i=1, 10) /))39 'Ahyb_mid', 'Ahyb at the middle of the level', '', (/ ('once', i = 1, 10) /)) 40 40 TYPE(ctrl_out), SAVE :: o_Bhyb_mid = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 41 'Bhyb_mid', 'Bhyb at the middle of the level', '', (/ ('once', i=1, 10) /))41 'Bhyb_mid', 'Bhyb at the middle of the level', '', (/ ('once', i = 1, 10) /)) 42 42 TYPE(ctrl_out), SAVE :: o_Ahyb_mid_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 43 'Ahyb_mid_bounds', '', '', (/ ('once', i=1, 10) /))43 'Ahyb_mid_bounds', '', '', (/ ('once', i = 1, 10) /)) 44 44 TYPE(ctrl_out), SAVE :: o_Bhyb_mid_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 45 'Bhyb_mid_bounds', '', '', (/ ('once', i=1, 10) /))45 'Bhyb_mid_bounds', '', '', (/ ('once', i = 1, 10) /)) 46 46 47 47 TYPE(ctrl_out), SAVE :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 48 'Alt', '', '', (/ ('', i=1, 10) /))49 50 !!! 1D48 'Alt', '', '', (/ ('', i = 1, 10) /)) 49 50 !!! 1D 51 51 TYPE(ctrl_out), SAVE :: o_phis = ctrl_out((/ 1, 1, 10, 5, 1, 1, 11, 11, 11, 11/), & 52 'phis', 'Surface geop.height', 'm2/s2', (/ ('', i=1, 10) /))53 TYPE(ctrl_out), SAVE :: o_aire = ctrl_out((/ 1, 1, 10, 54 'aire', 'Grid area', '-', (/ 'once', 'once', 'once', 'once', 'once', 'once', &55 56 TYPE(ctrl_out), SAVE :: o_contfracATM = ctrl_out((/ 10, 1, 57 'contfracATM', '% sfce ter+lic', '-', &58 (/ 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once' /))59 TYPE(ctrl_out), SAVE :: o_contfracOR = ctrl_out((/ 10, 1, 60 'contfracOR', '% sfce terre OR', '-', (/ ('', i=1, 10) /))52 'phis', 'Surface geop.height', 'm2/s2', (/ ('', i = 1, 10) /)) 53 TYPE(ctrl_out), SAVE :: o_aire = ctrl_out((/ 1, 1, 10, 10, 1, 1, 11, 11, 11, 11/), & 54 'aire', 'Grid area', '-', (/ 'once', 'once', 'once', 'once', 'once', 'once', & 55 'once', 'once', 'once', 'once' /)) 56 TYPE(ctrl_out), SAVE :: o_contfracATM = ctrl_out((/ 10, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 57 'contfracATM', '% sfce ter+lic', '-', & 58 (/ 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once' /)) 59 TYPE(ctrl_out), SAVE :: o_contfracOR = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 60 'contfracOR', '% sfce terre OR', '-', (/ ('', i = 1, 10) /)) 61 61 TYPE(ctrl_out), SAVE :: o_aireTER = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 62 'aireTER', 'Grid area CONT', '-', (/ ('', i=1, 10) /))63 64 !!! 2D62 'aireTER', 'Grid area CONT', '-', (/ ('', i = 1, 10) /)) 63 64 !!! 2D 65 65 TYPE(ctrl_out), SAVE :: o_sza = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 66 'sza', 'Solar zenithal angle', 'degrees', (/ ('', i=1, 10) /))67 68 ! Marine69 70 TYPE(ctrl_out), SAVE :: o_alt_tropo = ctrl_out((/1, 1,1,1,1,10,10,10,10,10/),&71 'alt_tropo','Tropopause pressure','hPa',&72 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&73 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))74 75 TYPE(ctrl_out), SAVE :: o_map_prop_hc = ctrl_out((/1, 1,1,1,1,10,10,10,10,10/),&76 'map_prop_hc','Proportion of high clouds',' ',&77 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&78 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))66 'sza', 'Solar zenithal angle', 'degrees', (/ ('', i = 1, 10) /)) 67 68 ! Marine 69 70 TYPE(ctrl_out), SAVE :: o_alt_tropo = ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 71 'alt_tropo', 'Tropopause pressure', 'hPa', & 72 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 73 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 74 75 TYPE(ctrl_out), SAVE :: o_map_prop_hc = ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 76 'map_prop_hc', 'Proportion of high clouds', ' ', & 77 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 78 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 79 79 80 80 TYPE(ctrl_out), SAVE :: o_map_prop_hist = & 81 ctrl_out((/1,1,1,1,1,1,10,10,10,10/),&82 'map_prop_hist','Proportion of high ice semi-transp clouds',' ',&83 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&84 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))81 ctrl_out((/1, 1, 1, 1, 1, 1, 10, 10, 10, 10/), & 82 'map_prop_hist', 'Proportion of high ice semi-transp clouds', ' ', & 83 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 84 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 85 85 86 86 TYPE(ctrl_out), SAVE :: o_map_emis_hc = & 87 ctrl_out((/1,1,1,1,1,1,10,10,10,10/),&88 'map_emis_hc','Emissivity of high clouds',' ',&89 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&90 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))87 ctrl_out((/1, 1, 1, 1, 1, 1, 10, 10, 10, 10/), & 88 'map_emis_hc', 'Emissivity of high clouds', ' ', & 89 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 90 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 91 91 92 92 TYPE(ctrl_out), SAVE :: o_map_iwp_hc = & 93 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&94 'map_iwp_hc','Ice water path of high clouds','g/m2',&95 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&96 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))93 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 94 'map_iwp_hc', 'Ice water path of high clouds', 'g/m2', & 95 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 96 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 97 97 98 98 TYPE(ctrl_out), SAVE :: o_map_deltaz_hc = & 99 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&100 'map_deltaz_hc','geom thickness of high clouds','m',&101 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&102 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))99 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 100 'map_deltaz_hc', 'geom thickness of high clouds', 'm', & 101 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 102 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 103 103 104 104 TYPE(ctrl_out), SAVE :: o_map_pcld_hc = & 105 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&106 'map_pcld_hc','cloud pressure of high clouds','hPa',&107 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&108 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))109 110 111 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&112 'map_tcld_hc','cloud temperature of high clouds','K',&113 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&114 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))105 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 106 'map_pcld_hc', 'cloud pressure of high clouds', 'hPa', & 107 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 108 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 109 110 TYPE(ctrl_out), SAVE :: o_map_tcld_hc = & 111 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 112 'map_tcld_hc', 'cloud temperature of high clouds', 'K', & 113 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 114 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 115 115 116 116 TYPE(ctrl_out), SAVE :: o_map_emis_hist = & 117 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&118 'map_emis_hist','Emissivity of high ice st clouds',' ',&119 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&120 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))117 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 118 'map_emis_hist', 'Emissivity of high ice st clouds', ' ', & 119 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 120 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 121 121 122 122 TYPE(ctrl_out), SAVE :: o_map_iwp_hist = & 123 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&124 'map_iwp_hist','Ice water path of high ice st clouds','g/m2',&125 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&126 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))123 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 124 'map_iwp_hist', 'Ice water path of high ice st clouds', 'g/m2', & 125 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 126 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 127 127 128 128 TYPE(ctrl_out), SAVE :: o_map_deltaz_hist = & 129 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&130 'map_deltaz_hist','geom thickness of high ice st clouds','m',&131 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&132 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))129 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 130 'map_deltaz_hist', 'geom thickness of high ice st clouds', 'm', & 131 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 132 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 133 133 134 134 TYPE(ctrl_out), SAVE :: o_map_rad_hist = & 135 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 136 'map_rad_hist','ice crystals radius in high ice st clouds','µm',& 137 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 138 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 139 140 141 TYPE(ctrl_out), SAVE :: o_map_emis_Cb = & 142 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 143 'map_emis_Cb','Emissivity of high Cb clouds',' ',& 144 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 145 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 146 147 TYPE(ctrl_out), SAVE :: o_map_pcld_Cb = & 148 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 149 'map_pcld_Cb','cloud pressure of high Cb clouds','hPa',& 150 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 151 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 152 153 TYPE(ctrl_out), SAVE :: o_map_tcld_Cb = & 154 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 155 'map_tcld_Cb','cloud temperature of high Cb clouds','K',& 156 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 157 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 158 159 160 TYPE(ctrl_out), SAVE :: o_map_emis_Anv = & 161 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 162 'map_emis_Anv','Emissivity of high Anv clouds',' ',& 163 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 164 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 165 166 TYPE(ctrl_out), SAVE :: o_map_pcld_Anv = & 167 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 168 'map_pcld_Anv','cloud pressure of high Anv clouds','hPa',& 169 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 170 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 135 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 136 'map_rad_hist', 'ice crystals radius in high ice st clouds', 'µm', & 137 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 138 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 139 140 TYPE(ctrl_out), SAVE :: o_map_emis_Cb = & 141 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 142 'map_emis_Cb', 'Emissivity of high Cb clouds', ' ', & 143 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 144 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 145 146 TYPE(ctrl_out), SAVE :: o_map_pcld_Cb = & 147 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 148 'map_pcld_Cb', 'cloud pressure of high Cb clouds', 'hPa', & 149 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 150 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 151 152 TYPE(ctrl_out), SAVE :: o_map_tcld_Cb = & 153 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 154 'map_tcld_Cb', 'cloud temperature of high Cb clouds', 'K', & 155 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 156 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 157 158 TYPE(ctrl_out), SAVE :: o_map_emis_Anv = & 159 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 160 'map_emis_Anv', 'Emissivity of high Anv clouds', ' ', & 161 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 162 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 163 164 TYPE(ctrl_out), SAVE :: o_map_pcld_Anv = & 165 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 166 'map_pcld_Anv', 'cloud pressure of high Anv clouds', 'hPa', & 167 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 168 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 171 169 172 170 TYPE(ctrl_out), SAVE :: o_map_tcld_Anv = & 173 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&174 'map_tcld_Anv','cloud temperature of high Anv clouds','K',&175 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&176 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))171 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 172 'map_tcld_Anv', 'cloud temperature of high Anv clouds', 'K', & 173 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 174 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 177 175 178 176 TYPE(ctrl_out), SAVE :: o_map_emis_ThCi = & 179 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&180 'map_emis_ThCi','Emissivity of high ThCi clouds',' ',&181 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&182 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))177 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 178 'map_emis_ThCi', 'Emissivity of high ThCi clouds', ' ', & 179 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 180 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 183 181 184 182 TYPE(ctrl_out), SAVE :: o_map_pcld_ThCi = & 185 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&186 'map_pcld_ThCi','cloud pressure of high ThCi clouds','hPa',&187 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&188 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))183 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 184 'map_pcld_ThCi', 'cloud pressure of high ThCi clouds', 'hPa', & 185 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 186 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 189 187 190 188 TYPE(ctrl_out), SAVE :: o_map_tcld_ThCi = & 191 ctrl_out((/10,10,1,10,10,10,10,10,10,10/),&192 'map_tcld_ThCi','cloud temperature of high ThCi clouds','K',&193 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&194 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))195 196 197 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&198 'map_ntot','total AIRS cloud fraction',' ',&199 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&200 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))189 ctrl_out((/10, 10, 1, 10, 10, 10, 10, 10, 10, 10/), & 190 'map_tcld_ThCi', 'cloud temperature of high ThCi clouds', 'K', & 191 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 192 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 193 194 TYPE(ctrl_out), SAVE :: o_map_ntot = & 195 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 196 'map_ntot', 'total AIRS cloud fraction', ' ', & 197 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 198 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 201 199 202 200 TYPE(ctrl_out), SAVE :: o_map_hc = & 203 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&204 'map_hc','high clouds AIRS cloud fraction',' ',&205 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&206 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))201 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 202 'map_hc', 'high clouds AIRS cloud fraction', ' ', & 203 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 204 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 207 205 208 206 TYPE(ctrl_out), SAVE :: o_map_hist = & 209 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&210 'map_hist','high clouds ice st AIRS cloud fraction',' ',&211 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&212 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))207 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 208 'map_hist', 'high clouds ice st AIRS cloud fraction', ' ', & 209 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 210 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 213 211 214 212 TYPE(ctrl_out), SAVE :: o_map_Cb = & 215 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&216 'map_Cb','high clouds Cb AIRS cloud fraction',' ',&217 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&218 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))219 220 TYPE(ctrl_out), SAVE :: o_map_ThCi = &221 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&222 'map_ThCi','high clouds ThCi AIRS cloud fraction',' ',&223 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&224 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))225 226 TYPE(ctrl_out), SAVE :: o_map_Anv = &227 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),&228 'map_Anv','high clouds Anv AIRS cloud fraction',' ',&229 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",&230 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))231 232 ! Fin Marine213 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 214 'map_Cb', 'high clouds Cb AIRS cloud fraction', ' ', & 215 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 216 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 217 218 TYPE(ctrl_out), SAVE :: o_map_ThCi = & 219 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 220 'map_ThCi', 'high clouds ThCi AIRS cloud fraction', ' ', & 221 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 222 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 223 224 TYPE(ctrl_out), SAVE :: o_map_Anv = & 225 ctrl_out((/1, 1, 1, 1, 1, 10, 10, 10, 10, 10/), & 226 'map_Anv', 'high clouds Anv AIRS cloud fraction', ' ', & 227 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 228 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 229 230 ! Fin Marine 233 231 234 232 TYPE(ctrl_out), SAVE :: o_flat = ctrl_out((/ 5, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 235 'flat', 'Latent heat flux', 'W/m2', (/ ('', i=1, 10) /))233 'flat', 'Latent heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 236 234 TYPE(ctrl_out), SAVE :: o_ptstar = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 237 'ptstar', 'Air Surface Temperature', 'K', (/ ('', i=1, 10) /))235 'ptstar', 'Air Surface Temperature', 'K', (/ ('', i = 1, 10) /)) 238 236 TYPE(ctrl_out), SAVE :: o_pt0 = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 239 'pt0', 'Standard Air Surface Temperature', 'K', (/ ('', i=1, 10) /))237 'pt0', 'Standard Air Surface Temperature', 'K', (/ ('', i = 1, 10) /)) 240 238 TYPE(ctrl_out), SAVE :: o_slp = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 241 'slp', 'Sea Level Pressure', 'Pa', (/ ('', i=1, 10) /))239 'slp', 'Sea Level Pressure', 'Pa', (/ ('', i = 1, 10) /)) 242 240 TYPE(ctrl_out), SAVE :: o_tsol = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 243 'tsol', 'Surface Temperature', 'K', (/ ('', i=1, 10) /))241 'tsol', 'Surface Temperature', 'K', (/ ('', i = 1, 10) /)) 244 242 TYPE(ctrl_out), SAVE :: o_t2m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 245 't2m', 'Temperature 2m', 'K', (/ ('', i=1, 10) /))243 't2m', 'Temperature 2m', 'K', (/ ('', i = 1, 10) /)) 246 244 TYPE(ctrl_out), SAVE :: o_t2m_min = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 247 't2m_min', 'Temp 2m min', 'K', &248 (/ "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", &249 "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)" /))245 't2m_min', 'Temp 2m min', 'K', & 246 (/ "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", & 247 "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)" /)) 250 248 TYPE(ctrl_out), SAVE :: o_t2m_max = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 251 't2m_max', 'Temp 2m max', 'K', &252 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", &253 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /))249 't2m_max', 'Temp 2m max', 'K', & 250 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 251 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 254 252 255 253 TYPE(ctrl_out), SAVE :: o_t2m_min_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20, 20 /), & 256 't2m_min_mon', 'Monthly average min 2m temperature', 'K', &257 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", &258 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))254 't2m_min_mon', 'Monthly average min 2m temperature', 'K', & 255 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 256 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 259 257 TYPE(ctrl_out), SAVE :: o_t2m_max_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20, 20 /), & 260 't2m_max_mon', 'Monthly average max 2m temperature', 'K', &261 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", &262 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))258 't2m_max_mon', 'Monthly average max 2m temperature', 'K', & 259 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 260 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 263 261 264 262 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_t2m_srf = (/ & 265 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), &266 't2m_ter', "Temp 2m "//clnsurf(1), "K", (/ ('', i=1, 10) /)), &267 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), &268 't2m_lic', "Temp 2m "//clnsurf(2), "K", (/ ('', i=1, 10) /)), &269 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), &270 't2m_oce', "Temp 2m "//clnsurf(3), "K", (/ ('', i=1, 10) /)), &271 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), &272 't2m_sic', "Temp 2m "//clnsurf(4), "K", (/ ('', i=1, 10) /)) /)263 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 264 't2m_ter', "Temp 2m " // clnsurf(1), "K", (/ ('', i = 1, 10) /)), & 265 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 266 't2m_lic', "Temp 2m " // clnsurf(2), "K", (/ ('', i = 1, 10) /)), & 267 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 268 't2m_oce', "Temp 2m " // clnsurf(3), "K", (/ ('', i = 1, 10) /)), & 269 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 270 't2m_sic', "Temp 2m " // clnsurf(4), "K", (/ ('', i = 1, 10) /)) /) 273 271 274 272 TYPE(ctrl_out), SAVE :: o_nt2mout = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 275 'nt2mout', 'Nbt2m out of range complete computation', '-', (/ ('', i=1, 10) /))273 'nt2mout', 'Nbt2m out of range complete computation', '-', (/ ('', i = 1, 10) /)) 276 274 TYPE(ctrl_out), SAVE :: o_nq2mout = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 277 'nq2mout', 'Nbq2m out of range complete computation', '-', (/ ('', i=1, 10) /))275 'nq2mout', 'Nbq2m out of range complete computation', '-', (/ ('', i = 1, 10) /)) 278 276 TYPE(ctrl_out), SAVE :: o_nu2mout = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 279 'nu2mout', 'Nbu2m out of range complete computation', '-', (/ ('', i=1, 10) /))277 'nu2mout', 'Nbu2m out of range complete computation', '-', (/ ('', i = 1, 10) /)) 280 278 281 279 TYPE(ctrl_out), SAVE :: o_nt2moutfg = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 282 'nt2moutfg', 'Nbt2m out of range complete/fgRi1 computation', '-', (/ ('', i=1, 10) /))280 'nt2moutfg', 'Nbt2m out of range complete/fgRi1 computation', '-', (/ ('', i = 1, 10) /)) 283 281 TYPE(ctrl_out), SAVE :: o_nq2moutfg = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 284 'nq2moutfg', 'Nbq2m out of range complete/fgRi1 computation', '-', (/ ('', i=1, 10) /))282 'nq2moutfg', 'Nbq2m out of range complete/fgRi1 computation', '-', (/ ('', i = 1, 10) /)) 285 283 TYPE(ctrl_out), SAVE :: o_nu2moutfg = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 286 'nu2moutfg', 'Nbu2m out of range complete/fgRi1 computation', '-', (/ ('', i=1, 10) /))284 'nu2moutfg', 'Nbu2m out of range complete/fgRi1 computation', '-', (/ ('', i = 1, 10) /)) 287 285 288 286 TYPE(ctrl_out), SAVE :: o_gusts = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 289 'gusts', 'surface gustiness', 'm2/s2', (/ ('', i=1, 10) /))287 'gusts', 'surface gustiness', 'm2/s2', (/ ('', i = 1, 10) /)) 290 288 291 289 TYPE(ctrl_out), SAVE :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 292 'wind10m', '10-m wind speed', 'm/s', (/ ('', i=1, 10) /))290 'wind10m', '10-m wind speed', 'm/s', (/ ('', i = 1, 10) /)) 293 291 TYPE(ctrl_out), SAVE :: o_wind100m = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 294 'wind100m', '100-m wind speed', 'm/s', (/ ('', i=1, 10) /))292 'wind100m', '100-m wind speed', 'm/s', (/ ('', i = 1, 10) /)) 295 293 TYPE(ctrl_out), SAVE :: o_loadfactor_wind_onshore = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 296 'woncfr', 'Onshore Wind Capacity factor', 'kW/kW_installed', (/ ('', i=1, 10) /))294 'woncfr', 'Onshore Wind Capacity factor', 'kW/kW_installed', (/ ('', i = 1, 10) /)) 297 295 TYPE(ctrl_out), SAVE :: o_loadfactor_wind_offshore = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 298 'wofcfr', 'Offshore Wind Capacity factor', 'kW/kW_installed', (/ ('', i=1, 10) /))296 'wofcfr', 'Offshore Wind Capacity factor', 'kW/kW_installed', (/ ('', i = 1, 10) /)) 299 297 TYPE(ctrl_out), SAVE :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 300 'wind10max', '10m wind speed max', 'm/s', &301 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", &302 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /))298 'wind10max', '10m wind speed max', 'm/s', & 299 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 300 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 303 301 304 302 TYPE(ctrl_out), SAVE :: o_sicf = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 305 'sicf', 'Sea-ice fraction', '-', (/ ('', i=1, 10) /))303 'sicf', 'Sea-ice fraction', '-', (/ ('', i = 1, 10) /)) 306 304 TYPE(ctrl_out), SAVE :: o_q2m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 307 'q2m', 'Specific humidity 2m', 'kg/kg', (/ ('', i=1, 10) /))305 'q2m', 'Specific humidity 2m', 'kg/kg', (/ ('', i = 1, 10) /)) 308 306 TYPE(ctrl_out), SAVE :: o_ustar = ctrl_out((/ 1, 1, 10, 5, 10, 10, 11, 11, 11, 11/), & 309 'ustar', 'Friction velocity', 'm/s', (/ ('', i=1, 10) /))307 'ustar', 'Friction velocity', 'm/s', (/ ('', i = 1, 10) /)) 310 308 TYPE(ctrl_out), SAVE :: o_u10m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 311 'u10m', 'Vent zonal 10m', 'm/s', (/ ('', i=1, 10) /))309 'u10m', 'Vent zonal 10m', 'm/s', (/ ('', i = 1, 10) /)) 312 310 TYPE(ctrl_out), SAVE :: o_v10m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 313 'v10m', 'Vent meridien 10m', 'm/s', (/ ('', i=1, 10) /))311 'v10m', 'Vent meridien 10m', 'm/s', (/ ('', i = 1, 10) /)) 314 312 TYPE(ctrl_out), SAVE :: o_psol = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 315 'psol', 'Surface Pressure', 'Pa', (/ ('', i=1, 10) /))313 'psol', 'Surface Pressure', 'Pa', (/ ('', i = 1, 10) /)) 316 314 TYPE(ctrl_out), SAVE :: o_qsurf = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 317 'qsurf', 'Surface Air humidity', 'kg/kg', (/ ('', i=1, 10) /))318 319 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_ustar_srf 320 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_ter', &321 "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), &322 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_lic', &323 "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), &324 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_oce', &325 "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), &326 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_sic', &327 "Friction velocity "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /)328 329 TYPE(ctrl_out), SAVE, DIMENSION(5) :: o_wstar 330 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_ter', &331 "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), &332 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_lic', &333 "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), &334 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_oce', &335 "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), &336 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_sic', &337 "Friction velocity "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)), &338 ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar', &339 "w* convective velocity "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /)340 341 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_u10m_srf 342 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_ter', &343 "Vent Zonal 10m "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), &344 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_lic', &345 "Vent Zonal 10m "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), &346 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_oce', &347 "Vent Zonal 10m "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), &348 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_sic', &349 "Vent Zonal 10m "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /)350 351 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_v10m_srf 352 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_ter', &353 "Vent meredien 10m "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), &354 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_lic', &355 "Vent meredien 10m "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), &356 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_oce', &357 "Vent meredien 10m "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), &358 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_sic', &359 "Vent meredien 10m "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /)315 'qsurf', 'Surface Air humidity', 'kg/kg', (/ ('', i = 1, 10) /)) 316 317 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_ustar_srf = (/ & 318 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustar_ter', & 319 "Friction velocity " // clnsurf(1), "m/s", (/ ('', i = 1, 10) /)), & 320 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustar_lic', & 321 "Friction velocity " // clnsurf(2), "m/s", (/ ('', i = 1, 10) /)), & 322 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustar_oce', & 323 "Friction velocity " // clnsurf(3), "m/s", (/ ('', i = 1, 10) /)), & 324 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustar_sic', & 325 "Friction velocity " // clnsurf(4), "m/s", (/ ('', i = 1, 10) /)) /) 326 327 TYPE(ctrl_out), SAVE, DIMENSION(5) :: o_wstar = (/ & 328 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'wstar_ter', & 329 "Friction velocity " // clnsurf(1), "m/s", (/ ('', i = 1, 10) /)), & 330 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'wstar_lic', & 331 "Friction velocity " // clnsurf(2), "m/s", (/ ('', i = 1, 10) /)), & 332 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'wstar_oce', & 333 "Friction velocity " // clnsurf(3), "m/s", (/ ('', i = 1, 10) /)), & 334 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'wstar_sic', & 335 "Friction velocity " // clnsurf(4), "m/s", (/ ('', i = 1, 10) /)), & 336 ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11, 11/), 'wstar', & 337 "w* convective velocity " // clnsurf(4), "m/s", (/ ('', i = 1, 10) /)) /) 338 339 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_u10m_srf = (/ & 340 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10m_ter', & 341 "Vent Zonal 10m " // clnsurf(1), "m/s", (/ ('', i = 1, 10) /)), & 342 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10m_lic', & 343 "Vent Zonal 10m " // clnsurf(2), "m/s", (/ ('', i = 1, 10) /)), & 344 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10m_oce', & 345 "Vent Zonal 10m " // clnsurf(3), "m/s", (/ ('', i = 1, 10) /)), & 346 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10m_sic', & 347 "Vent Zonal 10m " // clnsurf(4), "m/s", (/ ('', i = 1, 10) /)) /) 348 349 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_v10m_srf = (/ & 350 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10m_ter', & 351 "Vent meredien 10m " // clnsurf(1), "m/s", (/ ('', i = 1, 10) /)), & 352 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10m_lic', & 353 "Vent meredien 10m " // clnsurf(2), "m/s", (/ ('', i = 1, 10) /)), & 354 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10m_oce', & 355 "Vent meredien 10m " // clnsurf(3), "m/s", (/ ('', i = 1, 10) /)), & 356 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10m_sic', & 357 "Vent meredien 10m " // clnsurf(4), "m/s", (/ ('', i = 1, 10) /)) /) 360 358 361 359 TYPE(ctrl_out), SAVE :: o_qsol = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 362 'qsol', 'Soil watter content', 'mm', (/ ('', i=1, 10) /))360 'qsol', 'Soil watter content', 'mm', (/ ('', i = 1, 10) /)) 363 361 TYPE(ctrl_out), SAVE :: o_ndayrain = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 364 'ndayrain', 'Number of dayrain(liq+sol)', '-', &365 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))362 'ndayrain', 'Number of dayrain(liq+sol)', '-', & 363 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 366 364 TYPE(ctrl_out), SAVE :: o_rain_fall = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11, 11/), & 367 'rain_fall', 'Precip Totale liq', 'kg/(s*m2)', (/ ('', i=1, 10) /))365 'rain_fall', 'Precip Totale liq', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 368 366 TYPE(ctrl_out), SAVE :: o_rain_con = ctrl_out((/ 7, 7, 7, 10, 7, 10, 11, 11, 11, 11/), & 369 'rain_con', 'Precip liq conv.', 'kg/(s*m2)', (/ ('', i=1, 10) /))367 'rain_con', 'Precip liq conv.', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 370 368 TYPE(ctrl_out), SAVE :: o_precip = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11, 11/), & 371 'precip', 'Precip Totale liq+sol', 'kg/(s*m2)', (/ ('', i=1, 10) /))369 'precip', 'Precip Totale liq+sol', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 372 370 TYPE(ctrl_out), SAVE :: o_plul = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 373 'plul', 'Large-scale Precip.', 'kg/(s*m2)', (/ ('', i=1, 10) /))371 'plul', 'Large-scale Precip.', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 374 372 TYPE(ctrl_out), SAVE :: o_plun = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 375 'plun', 'Numerical Precip.', 'kg/(s*m2)', (/ ('', i=1, 10) /))373 'plun', 'Numerical Precip.', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 376 374 TYPE(ctrl_out), SAVE :: o_pluc = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11, 11/), & 377 'pluc', 'Convective Precip.', 'kg/(s*m2)', (/ ('', i=1, 10) /))375 'pluc', 'Convective Precip.', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 378 376 TYPE(ctrl_out), SAVE :: o_snow = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 379 'snow', 'Snow fall', 'kg/(s*m2)', (/ ('', i=1, 10) /))377 'snow', 'Snow fall', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 380 378 TYPE(ctrl_out), SAVE :: o_bsfall = ctrl_out((/ 10, 10, 10, 10, 5, 10, 11, 11, 11, 11/), & 381 'bsfall', 'Blowing Snow fall', 'kg/(s*m2)', (/ ('', i=1, 10) /))379 'bsfall', 'Blowing Snow fall', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 382 380 TYPE(ctrl_out), SAVE :: o_evap = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 383 'evap', 'Evaporat', 'kg/(s*m2)', (/ ('', i=1, 10) /))381 'evap', 'Evaporat', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 384 382 TYPE(ctrl_out), SAVE :: o_snowerosion = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 385 'snowerosion', 'blowing snow flux', 'kg/(s*m2)', (/ ('', i=1, 10) /))386 TYPE(ctrl_out), SAVE :: o_ustart_lic = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 387 'ustart_lic', 'threshold velocity', 'm/s', (/ ('', i=1, 10) /))383 'snowerosion', 'blowing snow flux', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 384 TYPE(ctrl_out), SAVE :: o_ustart_lic = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 385 'ustart_lic', 'threshold velocity', 'm/s', (/ ('', i = 1, 10) /)) 388 386 TYPE(ctrl_out), SAVE :: o_rhosnow_lic = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 389 'rhosnow_lic', 'snow density lic', 'kg/m3', (/ ('', i=1, 10) /))387 'rhosnow_lic', 'snow density lic', 'kg/m3', (/ ('', i = 1, 10) /)) 390 388 TYPE(ctrl_out), SAVE :: o_qsalt_lic = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 391 'qsalt_lic', 'qb in saltation layer lic', 'kg/kg', (/ ('', i=1, 10) /))389 'qsalt_lic', 'qb in saltation layer lic', 'kg/kg', (/ ('', i = 1, 10) /)) 392 390 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 393 'sens_rain_oce', 'Sensible heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /))391 'sens_rain_oce', 'Sensible heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i = 1, 10) /)) 394 392 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 395 'sens_rain_sic', 'Sensible heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /))393 'sens_rain_sic', 'Sensible heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i = 1, 10) /)) 396 394 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 397 'sens_snow_oce', 'Sensible heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /))395 'sens_snow_oce', 'Sensible heat flux of solid prec. over ocean', 'W/m2', (/ ('', i = 1, 10) /)) 398 396 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 399 'sens_snow_sic', 'Sensible heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /))397 'sens_snow_sic', 'Sensible heat flux of solid prec. over seaice', 'W/m2', (/ ('', i = 1, 10) /)) 400 398 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 401 'lat_rain_oce', 'Latent heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /))399 'lat_rain_oce', 'Latent heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i = 1, 10) /)) 402 400 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 403 'lat_rain_sic', 'Latent heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /))401 'lat_rain_sic', 'Latent heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i = 1, 10) /)) 404 402 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 405 'lat_snow_oce', 'Latent heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /))403 'lat_snow_oce', 'Latent heat flux of solid prec. over ocean', 'W/m2', (/ ('', i = 1, 10) /)) 406 404 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 407 'lat_snow_sic', 'Latent heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /)) 408 409 410 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evap_srf = (/ & 411 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_ter', & 412 "evaporation at surface "//clnsurf(1),"kg/(s*m2)", (/ ('', i=1, 10) /)), & 413 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_lic', & 414 "evaporation at surface "//clnsurf(2),"kg/(s*m2)", (/ ('', i=1, 10) /)), & 415 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_oce', & 416 "evaporation at surface "//clnsurf(3),"kg/(s*m2)", (/ ('', i=1, 10) /)), & 417 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_sic', & 418 "evaporation at surface "//clnsurf(4),"kg/(s*m2)", (/ ('', i=1, 10) /)) /) 405 'lat_snow_sic', 'Latent heat flux of solid prec. over seaice', 'W/m2', (/ ('', i = 1, 10) /)) 406 407 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evap_srf = (/ & 408 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evap_ter', & 409 "evaporation at surface " // clnsurf(1), "kg/(s*m2)", (/ ('', i = 1, 10) /)), & 410 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evap_lic', & 411 "evaporation at surface " // clnsurf(2), "kg/(s*m2)", (/ ('', i = 1, 10) /)), & 412 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evap_oce', & 413 "evaporation at surface " // clnsurf(3), "kg/(s*m2)", (/ ('', i = 1, 10) /)), & 414 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evap_sic', & 415 "evaporation at surface " // clnsurf(4), "kg/(s*m2)", (/ ('', i = 1, 10) /)) /) 419 416 420 417 TYPE(ctrl_out), SAVE :: o_msnow = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 421 'msnow', 'Surface snow amount', 'kg/m2', (/ ('', i=1, 10) /))418 'msnow', 'Surface snow amount', 'kg/m2', (/ ('', i = 1, 10) /)) 422 419 TYPE(ctrl_out), SAVE :: o_fsnow = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 423 'fsnow', 'Surface snow area fraction', '-', (/ ('', i=1, 10) /))420 'fsnow', 'Surface snow area fraction', '-', (/ ('', i = 1, 10) /)) 424 421 TYPE(ctrl_out), SAVE :: o_tops = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 425 'tops', 'Solar rad. at TOA', 'W/m2', (/ ('', i=1, 10) /))422 'tops', 'Solar rad. at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 426 423 TYPE(ctrl_out), SAVE :: o_tops0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 427 'tops0', 'CS Solar rad. at TOA', 'W/m2', (/ ('', i=1, 10) /))424 'tops0', 'CS Solar rad. at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 428 425 TYPE(ctrl_out), SAVE :: o_topl = ctrl_out((/ 1, 1, 10, 5, 10, 10, 11, 11, 11, 11/), & 429 'topl', 'IR rad. at TOA', 'W/m2', (/ ('', i=1, 10) /))426 'topl', 'IR rad. at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 430 427 TYPE(ctrl_out), SAVE :: o_topl0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 431 'topl0', 'IR rad. at TOA', 'W/m2', (/ ('', i=1, 10) /))428 'topl0', 'IR rad. at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 432 429 TYPE(ctrl_out), SAVE :: o_SWupTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 433 'SWupTOA', 'SWup at TOA', 'W/m2', (/ ('', i=1, 10) /))430 'SWupTOA', 'SWup at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 434 431 TYPE(ctrl_out), SAVE :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 435 'SWupTOAclr', 'SWup clear sky at TOA', 'W/m2', (/ ('', i=1, 10) /))432 'SWupTOAclr', 'SWup clear sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 436 433 TYPE(ctrl_out), SAVE :: o_SWupTOAcleanclr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 437 'SWupTOAcleanclr', 'SWup clear sky clean (no aerosol) at TOA', 'W/m2', (/ ('', i=1, 10) /))434 'SWupTOAcleanclr', 'SWup clear sky clean (no aerosol) at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 438 435 TYPE(ctrl_out), SAVE :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 439 'SWdnTOA', 'SWdn at TOA', 'W/m2', (/ ('', i=1, 10) /))436 'SWdnTOA', 'SWdn at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 440 437 TYPE(ctrl_out), SAVE :: o_SWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 441 'SWdnTOAclr', 'SWdn clear sky at TOA', 'W/m2', (/ ('', i=1, 10) /))438 'SWdnTOAclr', 'SWdn clear sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 442 439 TYPE(ctrl_out), SAVE :: o_nettop = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 443 'nettop', 'Net dn radiatif flux at TOA', 'W/m2', (/ ('', i=1, 10) /))440 'nettop', 'Net dn radiatif flux at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 444 441 TYPE(ctrl_out), SAVE :: o_SWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 445 'SWup200', 'SWup at 200mb', 'W/m2', (/ ('', i=1, 10) /))442 'SWup200', 'SWup at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 446 443 TYPE(ctrl_out), SAVE :: o_SWup200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 447 'SWup200clr', 'SWup clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /))444 'SWup200clr', 'SWup clear sky at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 448 445 TYPE(ctrl_out), SAVE :: o_SWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 449 'SWdn200', 'SWdn at 200mb', 'W/m2', (/ ('', i=1, 10) /))446 'SWdn200', 'SWdn at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 450 447 TYPE(ctrl_out), SAVE :: o_SWdn200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 451 'SWdn200clr', 'SWdn clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /))448 'SWdn200clr', 'SWdn clear sky at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 452 449 453 450 ! arajouter … … 461 458 ! (/ ('', i=1, 10) /)) 462 459 TYPE(ctrl_out), SAVE :: o_LWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 463 'LWup200', 'LWup at 200mb', 'W/m2', (/ ('', i=1, 10) /))460 'LWup200', 'LWup at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 464 461 TYPE(ctrl_out), SAVE :: o_LWup200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 465 'LWup200clr', 'LWup clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /))462 'LWup200clr', 'LWup clear sky at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 466 463 TYPE(ctrl_out), SAVE :: o_LWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 467 'LWdn200', 'LWdn at 200mb', 'W/m2', (/ ('', i=1, 10) /))464 'LWdn200', 'LWdn at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 468 465 TYPE(ctrl_out), SAVE :: o_LWdn200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 469 'LWdn200clr', 'LWdn clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /))466 'LWdn200clr', 'LWdn clear sky at 200mb', 'W/m2', (/ ('', i = 1, 10) /)) 470 467 TYPE(ctrl_out), SAVE :: o_sols = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 471 'sols', 'Solar rad. at surf.', 'W/m2', (/ ('', i=1, 10) /))468 'sols', 'Solar rad. at surf.', 'W/m2', (/ ('', i = 1, 10) /)) 472 469 TYPE(ctrl_out), SAVE :: o_sols0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 473 'sols0', 'Solar rad. at surf.', 'W/m2', (/ ('', i=1, 10) /))470 'sols0', 'Solar rad. at surf.', 'W/m2', (/ ('', i = 1, 10) /)) 474 471 TYPE(ctrl_out), SAVE :: o_soll = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 475 'soll', 'IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))472 'soll', 'IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 476 473 TYPE(ctrl_out), SAVE :: o_soll0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 477 'soll0', 'IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))474 'soll0', 'IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 478 475 TYPE(ctrl_out), SAVE :: o_radsol = ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/), & 479 'radsol', 'Rayonnement au sol', 'W/m2', (/ ('', i=1, 10) /))476 'radsol', 'Rayonnement au sol', 'W/m2', (/ ('', i = 1, 10) /)) 480 477 TYPE(ctrl_out), SAVE :: o_SWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 481 'SWupSFC', 'SWup at surface', 'W/m2', (/ ('', i=1, 10) /))478 'SWupSFC', 'SWup at surface', 'W/m2', (/ ('', i = 1, 10) /)) 482 479 TYPE(ctrl_out), SAVE :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 483 'SWupSFCclr', 'SWup clear sky at surface', 'W/m2', (/ ('', i=1, 10) /))480 'SWupSFCclr', 'SWup clear sky at surface', 'W/m2', (/ ('', i = 1, 10) /)) 484 481 TYPE(ctrl_out), SAVE :: o_SWupSFCcleanclr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 485 'SWupSFCcleanclr', 'SWup clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i=1, 10) /))482 'SWupSFCcleanclr', 'SWup clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i = 1, 10) /)) 486 483 TYPE(ctrl_out), SAVE :: o_fdiffSWdnSFC = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 487 'fdiffSWdnSFC', 'Fraction of diffuse SWdn at surface', 'W/m2', (/ ('', i=1, 10) /))484 'fdiffSWdnSFC', 'Fraction of diffuse SWdn at surface', 'W/m2', (/ ('', i = 1, 10) /)) 488 485 TYPE(ctrl_out), SAVE :: o_SWdnSFC = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11, 11/), & 489 'SWdnSFC', 'SWdn at surface', 'W/m2', (/ ('', i=1, 10) /))486 'SWdnSFC', 'SWdn at surface', 'W/m2', (/ ('', i = 1, 10) /)) 490 487 TYPE(ctrl_out), SAVE :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 491 'SWdnSFCclr', 'SWdn clear sky at surface', 'W/m2', (/ ('', i=1, 10) /))488 'SWdnSFCclr', 'SWdn clear sky at surface', 'W/m2', (/ ('', i = 1, 10) /)) 492 489 TYPE(ctrl_out), SAVE :: o_SWdnSFCcleanclr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 493 'SWdnSFCcleanclr', 'SWdn clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i=1, 10) /))490 'SWdnSFCcleanclr', 'SWdn clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i = 1, 10) /)) 494 491 TYPE(ctrl_out), SAVE :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 495 'LWupSFC', 'Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))492 'LWupSFC', 'Upwd. IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 496 493 TYPE(ctrl_out), SAVE :: o_LWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 497 'LWupSFCclr', 'CS Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))494 'LWupSFCclr', 'CS Upwd. IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 498 495 TYPE(ctrl_out), SAVE :: o_LWdnSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 499 'LWdnSFC', 'Down. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))496 'LWdnSFC', 'Down. IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 500 497 TYPE(ctrl_out), SAVE :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 501 'LWdnSFCclr', 'Down. CS IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))498 'LWdnSFCclr', 'Down. CS IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 502 499 TYPE(ctrl_out), SAVE :: o_LWupTOAcleanclr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 503 'LWupTOAcleanclr', 'Upward CS clean (no aerosol) IR rad. at TOA', 'W/m2', (/ ('', i=1, 10) /))500 'LWupTOAcleanclr', 'Upward CS clean (no aerosol) IR rad. at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 504 501 TYPE(ctrl_out), SAVE :: o_LWdnSFCcleanclr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 505 'LWdnSFCcleanclr', 'Downward CS clean (no aerosol) IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))502 'LWdnSFCcleanclr', 'Downward CS clean (no aerosol) IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 506 503 TYPE(ctrl_out), SAVE :: o_bils = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 507 'bils', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /))504 'bils', 'Surf. total heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 508 505 TYPE(ctrl_out), SAVE :: o_bils_tke = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 509 'bils_tke', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /))506 'bils_tke', 'Surf. total heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 510 507 TYPE(ctrl_out), SAVE :: o_bils_diss = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 511 'bils_diss', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /))508 'bils_diss', 'Surf. total heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 512 509 TYPE(ctrl_out), SAVE :: o_bils_ec = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 513 'bils_ec', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 10) /))510 'bils_ec', 'Surf. total heat flux correction', 'W/m2', (/ ('', i = 1, 10) /)) 514 511 TYPE(ctrl_out), SAVE :: o_bils_ech = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 515 'bils_ech', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 10) /))512 'bils_ech', 'Surf. total heat flux correction', 'W/m2', (/ ('', i = 1, 10) /)) 516 513 TYPE(ctrl_out), SAVE :: o_bils_kinetic = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 517 'bils_kinetic', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /))514 'bils_kinetic', 'Surf. total heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 518 515 TYPE(ctrl_out), SAVE :: o_bils_enthalp = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 519 'bils_enthalp', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /))516 'bils_enthalp', 'Surf. total heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 520 517 TYPE(ctrl_out), SAVE :: o_bils_latent = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 521 'bils_latent', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /))518 'bils_latent', 'Surf. total heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 522 519 TYPE(ctrl_out), SAVE :: o_sens = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 523 'sens', 'Sensible heat flux', 'W/m2', (/ ('', i=1, 10) /))520 'sens', 'Sensible heat flux', 'W/m2', (/ ('', i = 1, 10) /)) 524 521 TYPE(ctrl_out), SAVE :: o_fder = ctrl_out((/ 1, 2, 10, 10, 10, 10, 11, 11, 11, 11/), & 525 'fder', 'Heat flux derivation', 'W/m2', (/ ('', i=1, 10) /))522 'fder', 'Heat flux derivation', 'W/m2', (/ ('', i = 1, 10) /)) 526 523 TYPE(ctrl_out), SAVE :: o_ffonte = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 527 'ffonte', 'Thermal flux for snow melting', 'W/m2', (/ ('', i=1, 10) /))524 'ffonte', 'Thermal flux for snow melting', 'W/m2', (/ ('', i = 1, 10) /)) 528 525 TYPE(ctrl_out), SAVE :: o_fqcalving = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 529 'fqcalving', 'Ice Calving', 'kg/m2/s', (/ ('', i=1, 10) /))526 'fqcalving', 'Ice Calving', 'kg/m2/s', (/ ('', i = 1, 10) /)) 530 527 TYPE(ctrl_out), SAVE :: o_fqfonte = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 531 'fqfonte', 'Land ice melt', 'kg/m2/s', (/ ('', i=1, 10) /))528 'fqfonte', 'Land ice melt', 'kg/m2/s', (/ ('', i = 1, 10) /)) 532 529 TYPE(ctrl_out), SAVE :: o_mrroli = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 533 'mrroli', 'Runoff flux over land ice', 'kg/m2/s', (/ ('', i=1, 10) /))530 'mrroli', 'Runoff flux over land ice', 'kg/m2/s', (/ ('', i = 1, 10) /)) 534 531 TYPE(ctrl_out), SAVE :: o_runofflic = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 535 'runofflic', 'Land ice melt to ocean', 'kg/m2/s', (/ ('', i=1, 10) /))532 'runofflic', 'Land ice melt to ocean', 'kg/m2/s', (/ ('', i = 1, 10) /)) 536 533 TYPE(ctrl_out), SAVE :: o_taux = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 537 'taux', 'Zonal wind stress', 'Pa', (/ ('', i=1, 10) /))534 'taux', 'Zonal wind stress', 'Pa', (/ ('', i = 1, 10) /)) 538 535 TYPE(ctrl_out), SAVE :: o_tauy = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 539 'tauy', 'Meridional wind stress', 'Pa', (/ ('', i=1, 10) /))540 541 !AI Ecrad 3Deffect536 'tauy', 'Meridional wind stress', 'Pa', (/ ('', i = 1, 10) /)) 537 538 !AI Ecrad 3Deffect 542 539 #ifdef CPP_ECRAD 543 540 TYPE(ctrl_out), SAVE :: o_cloud_cover_sw = ctrl_out((/ 11, 11, 10, 10, 10, 10, 11, 11, 11, 11/), & … … 619 616 620 617 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_taux_srf = (/ & 621 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_ter',&622 "Zonal wind stress"//clnsurf(1), "Pa", (/ ('', i=1, 10) /)), &623 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_lic',&624 "Zonal wind stress"//clnsurf(2), "Pa", (/ ('', i=1, 10) /)), &625 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_oce',&626 "Zonal wind stress"//clnsurf(3), "Pa", (/ ('', i=1, 10) /)), &627 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_sic',&628 "Zonal wind stress"//clnsurf(4), "Pa", (/ ('', i=1, 10) /)) /)629 630 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tauy_srf 631 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_ter',&632 "Meridional wind stress "//clnsurf(1),"Pa", (/ ('', i=1, 10) /)),&633 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_lic',&634 "Meridional wind stress "//clnsurf(2),"Pa", (/ ('', i=1, 10) /)),&635 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_oce',&636 "Meridional wind stress "//clnsurf(3),"Pa", (/ ('', i=1, 10) /)),&637 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_sic',&638 "Meridional wind stress "//clnsurf(4),"Pa", (/ ('', i=1, 10) /)) /)639 640 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_pourc_srf 641 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_ter',&642 "% "//clnsurf(1),"%", (/ ('', i=1, 10) /)),&643 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_lic',&644 "% "//clnsurf(2),"%", (/ ('', i=1, 10) /)),&645 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_oce',&646 "% "//clnsurf(3),"%", (/ ('', i=1, 10) /)),&647 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_sic',&648 "% "//clnsurf(4),"%", (/ ('', i=1, 10) /)) /)649 650 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fract_srf 651 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_ter',&652 "Fraction "//clnsurf(1),"1", (/ ('', i=1, 10) /)),&653 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_lic',&654 "Fraction "//clnsurf(2),"1", (/ ('', i=1, 10) /)),&655 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_oce',&656 "Fraction "//clnsurf(3),"1", (/ ('', i=1, 10) /)),&657 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_sic',&658 "Fraction "//clnsurf(4),"1", (/ ('', i=1, 10) /)) /)659 660 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tsol_srf 661 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_ter',&662 "Temperature "//clnsurf(1),"K", (/ ('', i=1, 10) /)),&663 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_lic',&664 "Temperature "//clnsurf(2),"K", (/ ('', i=1, 10) /)),&665 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_oce',&666 "Temperature "//clnsurf(3),"K", (/ ('', i=1, 10) /)),&667 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_sic',&668 "Temperature "//clnsurf(4),"K", (/ ('', i=1, 10) /)) /)669 670 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evappot_srf 671 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_ter',&672 "Potential evaporation "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)),&673 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_lic',&674 "Potential evaporation "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)),&675 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_oce',&676 "Potential evaporation "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)),&677 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_sic',&678 "Potential evaporation "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /)679 680 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_sens_srf 681 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_ter',&682 "Sensible heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), &683 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_lic',&684 "Sensible heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), &685 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_oce',&686 "Sensible heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), &687 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_sic',&688 "Sensible heat flux "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /)689 690 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_lat_srf 691 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_ter',&692 "Latent heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), &693 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_lic',&694 "Latent heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), &695 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_oce',&696 "Latent heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), &697 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_sic',&698 "Latent heat flux "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /)699 700 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_flw_srf 701 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_ter',&702 "LW "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)),&703 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_lic',&704 "LW "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)),&705 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_oce',&706 "LW "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)),&707 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_sic',&708 "LW "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /)709 710 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fsw_srf 711 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_ter',&712 "SW "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)),&713 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_lic',&714 "SW "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)),&715 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_oce',&716 "SW "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)),&717 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_sic',&718 "SW "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /)719 720 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbils_srf 721 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_ter',&722 "Bilan sol "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), &723 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_lic',&724 "Bilan sol "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), &725 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_oce',&726 "Bilan sol "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), &727 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_sic',&728 "Bilan sol "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /)729 730 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbilo_srf 731 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_ter',&732 "Bilan eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), &733 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_lic',&734 "Bilan eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), &735 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_oce',&736 "Bilan eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), &737 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_sic',&738 "Bilan eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /)739 740 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wevap_srf 741 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_ter',&742 "Evap eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), &743 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_lic',&744 "Evap eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), &745 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_oce',&746 "Evap eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), &747 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_sic',&748 "Evap eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /)749 750 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wrain_srf 751 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_ter',&752 "Pluie eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), &753 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_lic',&754 "Pluie eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), &755 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_oce',&756 "Pluie eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), &757 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_sic',&758 "Pluie eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /)759 760 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wsnow_srf 761 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_ter',&762 "Neige eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), &763 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_lic',&764 "Neige eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), &765 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_oce',&766 "Neige eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), &767 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_sic',&768 "Neige eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /)618 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'taux_ter', & 619 "Zonal wind stress" // clnsurf(1), "Pa", (/ ('', i = 1, 10) /)), & 620 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'taux_lic', & 621 "Zonal wind stress" // clnsurf(2), "Pa", (/ ('', i = 1, 10) /)), & 622 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'taux_oce', & 623 "Zonal wind stress" // clnsurf(3), "Pa", (/ ('', i = 1, 10) /)), & 624 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'taux_sic', & 625 "Zonal wind stress" // clnsurf(4), "Pa", (/ ('', i = 1, 10) /)) /) 626 627 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tauy_srf = (/ & 628 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tauy_ter', & 629 "Meridional wind stress " // clnsurf(1), "Pa", (/ ('', i = 1, 10) /)), & 630 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tauy_lic', & 631 "Meridional wind stress " // clnsurf(2), "Pa", (/ ('', i = 1, 10) /)), & 632 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tauy_oce', & 633 "Meridional wind stress " // clnsurf(3), "Pa", (/ ('', i = 1, 10) /)), & 634 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tauy_sic', & 635 "Meridional wind stress " // clnsurf(4), "Pa", (/ ('', i = 1, 10) /)) /) 636 637 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_pourc_srf = (/ & 638 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/), 'pourc_ter', & 639 "% " // clnsurf(1), "%", (/ ('', i = 1, 10) /)), & 640 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/), 'pourc_lic', & 641 "% " // clnsurf(2), "%", (/ ('', i = 1, 10) /)), & 642 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/), 'pourc_oce', & 643 "% " // clnsurf(3), "%", (/ ('', i = 1, 10) /)), & 644 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/), 'pourc_sic', & 645 "% " // clnsurf(4), "%", (/ ('', i = 1, 10) /)) /) 646 647 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fract_srf = (/ & 648 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'fract_ter', & 649 "Fraction " // clnsurf(1), "1", (/ ('', i = 1, 10) /)), & 650 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'fract_lic', & 651 "Fraction " // clnsurf(2), "1", (/ ('', i = 1, 10) /)), & 652 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'fract_oce', & 653 "Fraction " // clnsurf(3), "1", (/ ('', i = 1, 10) /)), & 654 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'fract_sic', & 655 "Fraction " // clnsurf(4), "1", (/ ('', i = 1, 10) /)) /) 656 657 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tsol_srf = (/ & 658 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tsol_ter', & 659 "Temperature " // clnsurf(1), "K", (/ ('', i = 1, 10) /)), & 660 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tsol_lic', & 661 "Temperature " // clnsurf(2), "K", (/ ('', i = 1, 10) /)), & 662 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tsol_oce', & 663 "Temperature " // clnsurf(3), "K", (/ ('', i = 1, 10) /)), & 664 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'tsol_sic', & 665 "Temperature " // clnsurf(4), "K", (/ ('', i = 1, 10) /)) /) 666 667 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evappot_srf = (/ & 668 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evappot_ter', & 669 "Potential evaporation " // clnsurf(1), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 670 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evappot_lic', & 671 "Potential evaporation " // clnsurf(2), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 672 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evappot_oce', & 673 "Potential evaporation " // clnsurf(3), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 674 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'evappot_sic', & 675 "Potential evaporation " // clnsurf(4), "kg/(m2*s)", (/ ('', i = 1, 10) /)) /) 676 677 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_sens_srf = (/ & 678 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'sens_ter', & 679 "Sensible heat flux " // clnsurf(1), "W/m2", (/ ('', i = 1, 10) /)), & 680 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'sens_lic', & 681 "Sensible heat flux " // clnsurf(2), "W/m2", (/ ('', i = 1, 10) /)), & 682 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'sens_oce', & 683 "Sensible heat flux " // clnsurf(3), "W/m2", (/ ('', i = 1, 10) /)), & 684 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'sens_sic', & 685 "Sensible heat flux " // clnsurf(4), "W/m2", (/ ('', i = 1, 10) /)) /) 686 687 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_lat_srf = (/ & 688 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'lat_ter', & 689 "Latent heat flux " // clnsurf(1), "W/m2", (/ ('', i = 1, 10) /)), & 690 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'lat_lic', & 691 "Latent heat flux " // clnsurf(2), "W/m2", (/ ('', i = 1, 10) /)), & 692 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'lat_oce', & 693 "Latent heat flux " // clnsurf(3), "W/m2", (/ ('', i = 1, 10) /)), & 694 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/), 'lat_sic', & 695 "Latent heat flux " // clnsurf(4), "W/m2", (/ ('', i = 1, 10) /)) /) 696 697 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_flw_srf = (/ & 698 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'flw_ter', & 699 "LW " // clnsurf(1), "W/m2", (/ ('', i = 1, 10) /)), & 700 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'flw_lic', & 701 "LW " // clnsurf(2), "W/m2", (/ ('', i = 1, 10) /)), & 702 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'flw_oce', & 703 "LW " // clnsurf(3), "W/m2", (/ ('', i = 1, 10) /)), & 704 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'flw_sic', & 705 "LW " // clnsurf(4), "W/m2", (/ ('', i = 1, 10) /)) /) 706 707 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fsw_srf = (/ & 708 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'fsw_ter', & 709 "SW " // clnsurf(1), "W/m2", (/ ('', i = 1, 10) /)), & 710 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'fsw_lic', & 711 "SW " // clnsurf(2), "W/m2", (/ ('', i = 1, 10) /)), & 712 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'fsw_oce', & 713 "SW " // clnsurf(3), "W/m2", (/ ('', i = 1, 10) /)), & 714 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'fsw_sic', & 715 "SW " // clnsurf(4), "W/m2", (/ ('', i = 1, 10) /)) /) 716 717 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbils_srf = (/ & 718 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbils_ter', & 719 "Bilan sol " // clnsurf(1), "W/m2", (/ ('', i = 1, 10) /)), & 720 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbils_lic', & 721 "Bilan sol " // clnsurf(2), "W/m2", (/ ('', i = 1, 10) /)), & 722 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbils_oce', & 723 "Bilan sol " // clnsurf(3), "W/m2", (/ ('', i = 1, 10) /)), & 724 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbils_sic', & 725 "Bilan sol " // clnsurf(4), "W/m2", (/ ('', i = 1, 10) /)) /) 726 727 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbilo_srf = (/ & 728 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbilo_ter', & 729 "Bilan eau " // clnsurf(1), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 730 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbilo_lic', & 731 "Bilan eau " // clnsurf(2), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 732 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbilo_oce', & 733 "Bilan eau " // clnsurf(3), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 734 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wbilo_sic', & 735 "Bilan eau " // clnsurf(4), "kg/(m2*s)", (/ ('', i = 1, 10) /)) /) 736 737 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wevap_srf = (/ & 738 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wevap_ter', & 739 "Evap eau " // clnsurf(1), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 740 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wevap_lic', & 741 "Evap eau " // clnsurf(2), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 742 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wevap_oce', & 743 "Evap eau " // clnsurf(3), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 744 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wevap_sic', & 745 "Evap eau " // clnsurf(4), "kg/(m2*s)", (/ ('', i = 1, 10) /)) /) 746 747 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wrain_srf = (/ & 748 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wrain_ter', & 749 "Pluie eau " // clnsurf(1), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 750 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wrain_lic', & 751 "Pluie eau " // clnsurf(2), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 752 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wrain_oce', & 753 "Pluie eau " // clnsurf(3), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 754 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wrain_sic', & 755 "Pluie eau " // clnsurf(4), "kg/(m2*s)", (/ ('', i = 1, 10) /)) /) 756 757 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wsnow_srf = (/ & 758 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wsnow_ter', & 759 "Neige eau " // clnsurf(1), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 760 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wsnow_lic', & 761 "Neige eau " // clnsurf(2), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 762 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wsnow_oce', & 763 "Neige eau " // clnsurf(3), "kg/(m2*s)", (/ ('', i = 1, 10) /)), & 764 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'wsnow_sic', & 765 "Neige eau " // clnsurf(4), "kg/(m2*s)", (/ ('', i = 1, 10) /)) /) 769 766 770 767 TYPE(ctrl_out), SAVE :: o_cdrm = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 771 'cdrm', 'Momentum drag coef.', '-', (/ ('', i=1, 10) /))768 'cdrm', 'Momentum drag coef.', '-', (/ ('', i = 1, 10) /)) 772 769 TYPE(ctrl_out), SAVE :: o_cdrh = ctrl_out((/ 1, 10, 10, 7, 10, 10, 11, 11, 11, 11/), & 773 'cdrh', 'Heat drag coef.', '-', (/ ('', i=1, 10) /))770 'cdrh', 'Heat drag coef.', '-', (/ ('', i = 1, 10) /)) 774 771 TYPE(ctrl_out), SAVE :: o_cldl = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 775 'cldl', 'Low-level cloudiness', '-', (/ ('', i=1, 10) /))772 'cldl', 'Low-level cloudiness', '-', (/ ('', i = 1, 10) /)) 776 773 TYPE(ctrl_out), SAVE :: o_cldm = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 777 'cldm', 'Mid-level cloudiness', '-', (/ ('', i=1, 10) /))774 'cldm', 'Mid-level cloudiness', '-', (/ ('', i = 1, 10) /)) 778 775 TYPE(ctrl_out), SAVE :: o_cldh = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 779 'cldh', 'High-level cloudiness', '-', (/ ('', i=1, 10) /))776 'cldh', 'High-level cloudiness', '-', (/ ('', i = 1, 10) /)) 780 777 TYPE(ctrl_out), SAVE :: o_cldt = ctrl_out((/ 1, 1, 2, 10, 5, 10, 11, 11, 11, 11/), & 781 'cldt', 'Total cloudiness', '-', (/ ('', i=1, 10) /))778 'cldt', 'Total cloudiness', '-', (/ ('', i = 1, 10) /)) 782 779 TYPE(ctrl_out), SAVE :: o_JrNt = ctrl_out((/ 1, 1, 10, 7, 10, 10, 11, 11, 11, 11/), & 783 'JrNt', '1 if Day 0 if Night', '-', (/ ('', i=1, 10) /))780 'JrNt', '1 if Day 0 if Night', '-', (/ ('', i = 1, 10) /)) 784 781 TYPE(ctrl_out), SAVE :: o_cldhjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 785 'cldhjn', 'High-level cloudiness Day', '-', (/ ('', i=1, 10) /))786 TYPE(ctrl_out), SAVE :: o_cldmjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 787 'cldmjn', 'Mid-level cloudiness day', '-', (/ ('', i=1, 10) /))788 TYPE(ctrl_out), SAVE :: o_cldljn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 789 'cldljn', 'Low-level cloudiness day', '-', (/ ('', i=1, 10) /))790 TYPE(ctrl_out), SAVE :: o_cldtjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 791 'cldtjn', 'Total cloudiness day', '-', (/ ('', i=1, 10) /))792 782 'cldhjn', 'High-level cloudiness Day', '-', (/ ('', i = 1, 10) /)) 783 TYPE(ctrl_out), SAVE :: o_cldmjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 784 'cldmjn', 'Mid-level cloudiness day', '-', (/ ('', i = 1, 10) /)) 785 TYPE(ctrl_out), SAVE :: o_cldljn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 786 'cldljn', 'Low-level cloudiness day', '-', (/ ('', i = 1, 10) /)) 787 TYPE(ctrl_out), SAVE :: o_cldtjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 788 'cldtjn', 'Total cloudiness day', '-', (/ ('', i = 1, 10) /)) 789 793 790 TYPE(ctrl_out), SAVE :: o_cldq = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 794 'cldq', 'Cloud water path', 'kg/m2', (/ ('', i=1, 10) /))791 'cldq', 'Cloud water path', 'kg/m2', (/ ('', i = 1, 10) /)) 795 792 TYPE(ctrl_out), SAVE :: o_lwp = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 796 'lwp', 'Cloud liquid water path', 'kg/m2', (/ ('', i=1, 10) /))793 'lwp', 'Cloud liquid water path', 'kg/m2', (/ ('', i = 1, 10) /)) 797 794 TYPE(ctrl_out), SAVE :: o_iwp = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 798 'iwp', 'Cloud ice water path', 'kg/m2', (/ ('', i=1, 10) /))795 'iwp', 'Cloud ice water path', 'kg/m2', (/ ('', i = 1, 10) /)) 799 796 TYPE(ctrl_out), SAVE :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 800 'ue', 'Zonal dry static energy transport', 'J/m/s', (/ ('', i=1, 10) /))797 'ue', 'Zonal dry static energy transport', 'J/m/s', (/ ('', i = 1, 10) /)) 801 798 TYPE(ctrl_out), SAVE :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 802 've', 'Merid dry static energy transport', 'J/m/s', (/ ('', i=1, 10) /))799 've', 'Merid dry static energy transport', 'J/m/s', (/ ('', i = 1, 10) /)) 803 800 TYPE(ctrl_out), SAVE :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 804 'uq', 'Zonal humidity transport', 'kg/m/s', (/ ('', i=1, 10) /))801 'uq', 'Zonal humidity transport', 'kg/m/s', (/ ('', i = 1, 10) /)) 805 802 TYPE(ctrl_out), SAVE :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 806 'vq', 'Merid humidity transport', 'kg/m/s', (/ ('', i=1, 10) /))803 'vq', 'Merid humidity transport', 'kg/m/s', (/ ('', i = 1, 10) /)) 807 804 TYPE(ctrl_out), SAVE :: o_uwat = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 808 'uwat', 'Zonal total water transport', 'kg/m/s', (/ ('', i=1, 10) /))805 'uwat', 'Zonal total water transport', 'kg/m/s', (/ ('', i = 1, 10) /)) 809 806 TYPE(ctrl_out), SAVE :: o_vwat = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 810 'vwat', 'Merid total water transport', 'kg/m/s', (/ ('', i=1, 10) /))807 'vwat', 'Merid total water transport', 'kg/m/s', (/ ('', i = 1, 10) /)) 811 808 TYPE(ctrl_out), SAVE :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 812 'cape', 'Conv avlbl pot ener', 'J/kg', (/ ('', i=1, 10) /))809 'cape', 'Conv avlbl pot ener', 'J/kg', (/ ('', i = 1, 10) /)) 813 810 TYPE(ctrl_out), SAVE :: o_pbase = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 814 'pbase', 'Cld base pressure', 'Pa', (/ ('', i=1, 10) /))811 'pbase', 'Cld base pressure', 'Pa', (/ ('', i = 1, 10) /)) 815 812 TYPE(ctrl_out), SAVE :: o_ptop = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 816 'ptop', 'Cld top pressure', 'Pa', (/ ('', i=1, 10) /))813 'ptop', 'Cld top pressure', 'Pa', (/ ('', i = 1, 10) /)) 817 814 TYPE(ctrl_out), SAVE :: o_fbase = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 818 'fbase', 'Cld base mass flux', 'kg/m2/s', (/ ('', i=1, 10) /))815 'fbase', 'Cld base mass flux', 'kg/m2/s', (/ ('', i = 1, 10) /)) 819 816 TYPE(ctrl_out), SAVE :: o_plcl = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 820 'plcl', 'Lifting Condensation Level', 'hPa', (/ ('', i=1, 10) /))817 'plcl', 'Lifting Condensation Level', 'hPa', (/ ('', i = 1, 10) /)) 821 818 TYPE(ctrl_out), SAVE :: o_plfc = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 822 'plfc', 'Level of Free Convection', 'hPa', (/ ('', i=1, 10) /))819 'plfc', 'Level of Free Convection', 'hPa', (/ ('', i = 1, 10) /)) 823 820 TYPE(ctrl_out), SAVE :: o_wbeff = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 824 'wbeff', 'Conv. updraft velocity at LFC (<100)', 'm/s', (/ ('', i=1, 10) /))821 'wbeff', 'Conv. updraft velocity at LFC (<100)', 'm/s', (/ ('', i = 1, 10) /)) 825 822 TYPE(ctrl_out), SAVE :: o_convoccur = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 826 'convoccur', 'Convective occurence', '', (/ ('', i=1, 10) /))823 'convoccur', 'Convective occurence', '', (/ ('', i = 1, 10) /)) 827 824 TYPE(ctrl_out), SAVE :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 828 'prw', 'Precipitable water', 'kg/m2', (/ ('', i=1, 10) /))825 'prw', 'Precipitable water', 'kg/m2', (/ ('', i = 1, 10) /)) 829 826 TYPE(ctrl_out), SAVE :: o_prlw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 830 'prlw', 'Precipitable liquid water', 'kg/m2', (/ ('', i=1, 10) /))827 'prlw', 'Precipitable liquid water', 'kg/m2', (/ ('', i = 1, 10) /)) 831 828 TYPE(ctrl_out), SAVE :: o_prsw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 832 'prsw', 'Precipitable solid water', 'kg/m2', (/ ('', i=1, 10) /))829 'prsw', 'Precipitable solid water', 'kg/m2', (/ ('', i = 1, 10) /)) 833 830 TYPE(ctrl_out), SAVE :: o_prbsw = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 834 'prbsw', 'Precipitable blowing snow', 'kg/m2', (/ ('', i=1, 10) /))831 'prbsw', 'Precipitable blowing snow', 'kg/m2', (/ ('', i = 1, 10) /)) 835 832 TYPE(ctrl_out), SAVE :: o_water_budget = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 836 'water_budget', 'Water budget', 'kg/m2', (/ ('', i=1, 10) /))833 'water_budget', 'Water budget', 'kg/m2', (/ ('', i = 1, 10) /)) 837 834 TYPE(ctrl_out), SAVE :: o_s_pblh = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 838 's_pblh', 'Boundary Layer Height', 'm', (/ ('', i=1, 10) /))835 's_pblh', 'Boundary Layer Height', 'm', (/ ('', i = 1, 10) /)) 839 836 TYPE(ctrl_out), SAVE :: o_s_pblt = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 840 's_pblt', 't at Boundary Layer Height', 'K', (/ ('', i=1, 10) /))837 's_pblt', 't at Boundary Layer Height', 'K', (/ ('', i = 1, 10) /)) 841 838 TYPE(ctrl_out), SAVE :: o_s_lcl = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 842 's_lcl', 'Condensation level', 'm', (/ ('', i=1, 10) /))839 's_lcl', 'Condensation level', 'm', (/ ('', i = 1, 10) /)) 843 840 TYPE(ctrl_out), SAVE :: o_s_therm = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 844 's_therm', 'Exces du thermique', 'K', (/ ('', i=1, 10) /))841 's_therm', 'Exces du thermique', 'K', (/ ('', i = 1, 10) /)) 845 842 !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F 846 843 ! type(ctrl_out),save :: o_s_capCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_capCL', & 847 ! (/ ('', i=1, 10) /))844 ! (/ ('', i=1, 10) /)) 848 845 ! type(ctrl_out),save :: o_s_oliqCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_oliqCL', & 849 ! (/ ('', i=1, 10) /))846 ! (/ ('', i=1, 10) /)) 850 847 ! type(ctrl_out),save :: o_s_cteiCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_cteiCL', & 851 ! (/ ('', i=1, 10) /))848 ! (/ ('', i=1, 10) /)) 852 849 ! type(ctrl_out),save :: o_s_trmb1 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_trmb1', & 853 ! (/ ('', i=1, 10) /))850 ! (/ ('', i=1, 10) /)) 854 851 ! type(ctrl_out),save :: o_s_trmb2 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_trmb2', & 855 ! (/ ('', i=1, 10) /))852 ! (/ ('', i=1, 10) /)) 856 853 ! type(ctrl_out),save :: o_s_trmb3 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_trmb3', & 857 854 !(/ ('', i=1, 10) /)) 858 855 TYPE(ctrl_out), SAVE :: o_slab_bils = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 859 'slab_bils', 'flux atmos - slab ponderes foce', 'W/m2', (/ ('', i=1, 10) /))856 'slab_bils', 'flux atmos - slab ponderes foce', 'W/m2', (/ ('', i = 1, 10) /)) 860 857 TYPE(ctrl_out), SAVE :: o_slab_bilg = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 861 'slab_bilg', 'flux glace - slab ponderes fsic', 'W/m2', (/ ('', i=1, 10) /))858 'slab_bilg', 'flux glace - slab ponderes fsic', 'W/m2', (/ ('', i = 1, 10) /)) 862 859 TYPE(ctrl_out), SAVE :: o_slab_qflux = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 863 'slab_qflux', 'Correction flux slab', 'W/m2', (/ ('', i=1, 10) /))860 'slab_qflux', 'Correction flux slab', 'W/m2', (/ ('', i = 1, 10) /)) 864 861 TYPE(ctrl_out), SAVE :: o_tslab = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 865 'tslab', 'Temperature ocean slab', 'K', (/ ('', i=1, 10) /))862 'tslab', 'Temperature ocean slab', 'K', (/ ('', i = 1, 10) /)) 866 863 TYPE(ctrl_out), SAVE :: o_tslab1 = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11 /), & 867 'tslab1', 'Temperature ocean slab', 'K', (/ ('', i=1, 10) /))864 'tslab1', 'Temperature ocean slab', 'K', (/ ('', i = 1, 10) /)) 868 865 TYPE(ctrl_out), SAVE :: o_tslab2 = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11 /), & 869 'tslab2', 'Temperature ocean slab', 'K', (/ ('', i=1, 10) /))866 'tslab2', 'Temperature ocean slab', 'K', (/ ('', i = 1, 10) /)) 870 867 TYPE(ctrl_out), SAVE :: o_slab_tice = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 871 'slab_tice', 'Temperature banquise slab', 'K', (/ ('', i=1, 10) /))868 'slab_tice', 'Temperature banquise slab', 'K', (/ ('', i = 1, 10) /)) 872 869 TYPE(ctrl_out), SAVE :: o_slab_sic = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 873 'seaice', 'Epaisseur banquise slab', 'kg/m2', (/ ('', i=1, 10) /))870 'seaice', 'Epaisseur banquise slab', 'kg/m2', (/ ('', i = 1, 10) /)) 874 871 TYPE(ctrl_out), SAVE :: o_slab_hdiff = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 875 'slab_hdiff', 'Horizontal diffusion', 'W/m2', (/ ('', i=1, 10) /))872 'slab_hdiff', 'Horizontal diffusion', 'W/m2', (/ ('', i = 1, 10) /)) 876 873 TYPE(ctrl_out), SAVE :: o_slab_gm = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11 /), & 877 'slab_gm', 'GM eddy advection', 'W/m2', (/ ('', i=1, 10) /))874 'slab_gm', 'GM eddy advection', 'W/m2', (/ ('', i = 1, 10) /)) 878 875 TYPE(ctrl_out), SAVE :: o_slab_ekman = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 879 'slab_ekman', 'Ekman heat transport', 'W/m2', (/ ('', i=1, 10) /))876 'slab_ekman', 'Ekman heat transport', 'W/m2', (/ ('', i = 1, 10) /)) 880 877 TYPE(ctrl_out), SAVE :: o_ale_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 881 'ale_bl', 'ALE BL', 'm2/s2', (/ ('', i=1, 10) /))878 'ale_bl', 'ALE BL', 'm2/s2', (/ ('', i = 1, 10) /)) 882 879 TYPE(ctrl_out), SAVE :: o_alp_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 883 'alp_bl', 'ALP BL', 'W/m2', (/ ('', i=1, 10) /))880 'alp_bl', 'ALP BL', 'W/m2', (/ ('', i = 1, 10) /)) 884 881 TYPE(ctrl_out), SAVE :: o_ale_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 885 'ale_wk', 'ALE WK', 'm2/s2', (/ ('', i=1, 10) /))882 'ale_wk', 'ALE WK', 'm2/s2', (/ ('', i = 1, 10) /)) 886 883 TYPE(ctrl_out), SAVE :: o_alp_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 887 'alp_wk', 'ALP WK', 'W/m2', (/ ('', i=1, 10) /))888 !!!889 !nrlmd+jyg<890 type(ctrl_out), save :: o_dtvdf_x= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &891 'dtvdf_x', ' dtvdf off_wake','K/s', (/ ('', i=1, 10) /))892 type(ctrl_out), save :: o_dtvdf_w= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &893 'dtvdf_w', ' dtvdf within_wake','K/s', (/ ('', i=1, 10) /))894 type(ctrl_out), save :: o_dqvdf_x= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &895 'dqvdf_x', ' dqvdf off_wake','kg/kg/s', (/ ('', i=1, 10) /))896 type(ctrl_out), save :: o_dqvdf_w= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &897 'dqvdf_w', ' dqvdf within_wake','kg/kg/s', (/ ('', i=1, 10) /))898 !!899 type(ctrl_out), save :: o_sens_x= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &900 'sens_x', 'sens off_wake', 'W/m2', (/ ('', i=1, 10) /))901 type(ctrl_out), save :: o_sens_w= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &902 'sens_w', 'sens within_wake', 'W/m2', (/ ('', i=1, 10) /))903 type(ctrl_out), save :: o_flat_x= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &904 'flat_x', 'flat off_wake', 'W/m2', (/ ('', i=1, 10) /))905 type(ctrl_out), save :: o_flat_w= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &906 'flat_w', 'flat within_wake', 'W/m2', (/ ('', i=1, 10) /))907 !!908 type(ctrl_out), save :: o_cdragh_x= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &909 'cdragh_x', 'cdragh off-wake', '', (/ ('', i=1, 10) /))910 type(ctrl_out), save :: o_cdragh_w= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &911 'cdragh_w', 'cdragh within-wake', '', (/ ('', i=1, 10) /))912 type(ctrl_out), save :: o_cdragm_x= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &913 'cdragm_x', 'cdragm off-wake', '', (/ ('', i=1, 10) /))914 type(ctrl_out), save :: o_cdragm_w= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &915 'cdragm_w', 'cdrgam within-wake', '', (/ ('', i=1, 10) /))916 type(ctrl_out), save :: o_kh= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &917 'kh', 'Kh', 'kg/s/m2', (/ ('', i=1, 10) /))918 type(ctrl_out), save :: o_kh_x= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &919 'kh_x', 'Kh off-wake', 'kg/s/m2', (/ ('', i=1, 10) /))920 type(ctrl_out), save :: o_kh_w= ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &921 'kh_w', 'Kh within-wake', 'kg/s/m2', (/ ('', i=1, 10) /))922 !>nrlmd+jyg923 !!!884 'alp_wk', 'ALP WK', 'W/m2', (/ ('', i = 1, 10) /)) 885 !!! 886 !nrlmd+jyg< 887 type(ctrl_out), save :: o_dtvdf_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 888 'dtvdf_x', ' dtvdf off_wake', 'K/s', (/ ('', i = 1, 10) /)) 889 type(ctrl_out), save :: o_dtvdf_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 890 'dtvdf_w', ' dtvdf within_wake', 'K/s', (/ ('', i = 1, 10) /)) 891 type(ctrl_out), save :: o_dqvdf_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 892 'dqvdf_x', ' dqvdf off_wake', 'kg/kg/s', (/ ('', i = 1, 10) /)) 893 type(ctrl_out), save :: o_dqvdf_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 894 'dqvdf_w', ' dqvdf within_wake', 'kg/kg/s', (/ ('', i = 1, 10) /)) 895 !! 896 type(ctrl_out), save :: o_sens_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 897 'sens_x', 'sens off_wake', 'W/m2', (/ ('', i = 1, 10) /)) 898 type(ctrl_out), save :: o_sens_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 899 'sens_w', 'sens within_wake', 'W/m2', (/ ('', i = 1, 10) /)) 900 type(ctrl_out), save :: o_flat_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 901 'flat_x', 'flat off_wake', 'W/m2', (/ ('', i = 1, 10) /)) 902 type(ctrl_out), save :: o_flat_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 903 'flat_w', 'flat within_wake', 'W/m2', (/ ('', i = 1, 10) /)) 904 !! 905 type(ctrl_out), save :: o_cdragh_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 906 'cdragh_x', 'cdragh off-wake', '', (/ ('', i = 1, 10) /)) 907 type(ctrl_out), save :: o_cdragh_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 908 'cdragh_w', 'cdragh within-wake', '', (/ ('', i = 1, 10) /)) 909 type(ctrl_out), save :: o_cdragm_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 910 'cdragm_x', 'cdragm off-wake', '', (/ ('', i = 1, 10) /)) 911 type(ctrl_out), save :: o_cdragm_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 912 'cdragm_w', 'cdrgam within-wake', '', (/ ('', i = 1, 10) /)) 913 type(ctrl_out), save :: o_kh = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 914 'kh', 'Kh', 'kg/s/m2', (/ ('', i = 1, 10) /)) 915 type(ctrl_out), save :: o_kh_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 916 'kh_x', 'Kh off-wake', 'kg/s/m2', (/ ('', i = 1, 10) /)) 917 type(ctrl_out), save :: o_kh_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 918 'kh_w', 'Kh within-wake', 'kg/s/m2', (/ ('', i = 1, 10) /)) 919 !>nrlmd+jyg 920 !!! 924 921 TYPE(ctrl_out), SAVE :: o_ale = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 925 'ale', 'ALE', 'm2/s2', (/ ('', i=1, 10) /))922 'ale', 'ALE', 'm2/s2', (/ ('', i = 1, 10) /)) 926 923 TYPE(ctrl_out), SAVE :: o_alp = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 927 'alp', 'ALP', 'W/m2', (/ ('', i=1, 10) /))924 'alp', 'ALP', 'W/m2', (/ ('', i = 1, 10) /)) 928 925 TYPE(ctrl_out), SAVE :: o_cin = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 929 'cin', 'Convective INhibition', 'm2/s2', (/ ('', i=1, 10) /))926 'cin', 'Convective INhibition', 'm2/s2', (/ ('', i = 1, 10) /)) 930 927 TYPE(ctrl_out), SAVE :: o_wape = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 931 'wape', '', 'm2/s2', (/ ('', i=1, 10) /))932 933 !!! nrlmd le 10/04/2012934 935 !-------Spectre de thermiques de type 2 au LCL928 'wape', '', 'm2/s2', (/ ('', i = 1, 10) /)) 929 930 !!! nrlmd le 10/04/2012 931 932 !-------Spectre de thermiques de type 2 au LCL 936 933 TYPE(ctrl_out), SAVE :: o_n2 = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 937 'n2', 'Nombre de panaches de type 2', ' ', (/ ('', i=1, 10) /))934 'n2', 'Nombre de panaches de type 2', ' ', (/ ('', i = 1, 10) /)) 938 935 TYPE(ctrl_out), SAVE :: o_s2 = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 939 's2', 'Surface moyenne des panaches de type 2', 'm2', (/ ('', i=1, 10) /))936 's2', 'Surface moyenne des panaches de type 2', 'm2', (/ ('', i = 1, 10) /)) 940 937 TYPE(ctrl_out), SAVE :: o_strig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 941 'strig', 'Surface moyenne pour atteindre niveau de congelation', 'm2', (/ ('', i=1, 10) /))938 'strig', 'Surface moyenne pour atteindre niveau de congelation', 'm2', (/ ('', i = 1, 10) /)) 942 939 TYPE(ctrl_out), SAVE :: o_zcong = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 943 'zcong', 'niveau de congelation', 'm', (/ ('', i=1, 10) /))940 'zcong', 'niveau de congelation', 'm', (/ ('', i = 1, 10) /)) 944 941 TYPE(ctrl_out), SAVE :: o_zlcl_th = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 945 'zlcl_th', 'niveau de condensation', 'm', (/ ('', i=1, 10) /))946 !-------Déclenchement stochastique942 'zlcl_th', 'niveau de condensation', 'm', (/ ('', i = 1, 10) /)) 943 !-------Déclenchement stochastique 947 944 TYPE(ctrl_out), SAVE :: o_proba_notrig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 948 'proba_notrig', 'Probabilite de non-declenchement', ' ', (/ ('', i=1, 10) /))945 'proba_notrig', 'Probabilite de non-declenchement', ' ', (/ ('', i = 1, 10) /)) 949 946 TYPE(ctrl_out), SAVE :: o_random_notrig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 950 'random_notrig', 'Tirage aleatoire de non-declenchement', ' ', (/ ('', i=1, 10) /))947 'random_notrig', 'Tirage aleatoire de non-declenchement', ' ', (/ ('', i = 1, 10) /)) 951 948 TYPE(ctrl_out), SAVE :: o_ale_bl_stat = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 952 'ale_bl_stat', 'ALE_BL_STAT', 'm2/s2', (/ ('', i=1, 10) /))949 'ale_bl_stat', 'ALE_BL_STAT', 'm2/s2', (/ ('', i = 1, 10) /)) 953 950 TYPE(ctrl_out), SAVE :: o_ale_bl_trig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 954 'ale_bl_trig', 'ALE_BL_STAT + Condition S>Sthreshold', 'm2/s2', (/ ('', i=1, 10) /))955 956 !-------Fermeture statistique951 'ale_bl_trig', 'ALE_BL_STAT + Condition S>Sthreshold', 'm2/s2', (/ ('', i = 1, 10) /)) 952 953 !-------Fermeture statistique 957 954 TYPE(ctrl_out), SAVE :: o_alp_bl_det = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 958 'alp_bl_det', 'ALP_BL_DET', 'W/m2', (/ ('', i=1, 10) /))955 'alp_bl_det', 'ALP_BL_DET', 'W/m2', (/ ('', i = 1, 10) /)) 959 956 TYPE(ctrl_out), SAVE :: o_alp_bl_fluct_m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 960 'alp_bl_fluct_m', 'ALP_BL_FLUCT_M', 'W/m2', (/ ('', i=1, 10) /))957 'alp_bl_fluct_m', 'ALP_BL_FLUCT_M', 'W/m2', (/ ('', i = 1, 10) /)) 961 958 TYPE(ctrl_out), SAVE :: o_alp_bl_fluct_tke = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 962 'alp_bl_fluct_tke', 'ALP_BL_FLUCT_TKE', 'W/m2', (/ ('', i=1, 10) /))959 'alp_bl_fluct_tke', 'ALP_BL_FLUCT_TKE', 'W/m2', (/ ('', i = 1, 10) /)) 963 960 TYPE(ctrl_out), SAVE :: o_alp_bl_conv = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 964 'alp_bl_conv', 'ALP_BL_CONV', 'W/m2', (/ ('', i=1, 10) /))961 'alp_bl_conv', 'ALP_BL_CONV', 'W/m2', (/ ('', i = 1, 10) /)) 965 962 TYPE(ctrl_out), SAVE :: o_alp_bl_stat = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 966 'alp_bl_stat', 'ALP_BL_STAT', 'W/m2', (/ ('', i=1, 10) /))967 968 !!! fin nrlmd le 10/04/2012963 'alp_bl_stat', 'ALP_BL_STAT', 'W/m2', (/ ('', i = 1, 10) /)) 964 965 !!! fin nrlmd le 10/04/2012 969 966 970 967 ! Champs interpolles sur des niveaux de pression ??? a faire correctement 971 968 972 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_uSTDlevs 973 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u850', "Zonal wind 850hPa", "m/s",&974 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &975 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u700', "Zonal wind 700hPa", "m/s",&976 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &977 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u500', "Zonal wind 500hPa", "m/s",&978 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &979 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u200', "Zonal wind 200hPa", "m/s",&980 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &981 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u100', "Zonal wind 100hPa", "m/s",&982 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &983 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u50', "Zonal wind 50hPa", "m/s",&984 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &985 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u10', "Zonal wind 10hPa", "m/s",&986 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)987 988 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_vSTDlevs 989 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v850', "Meridional wind 850hPa", "m/s", &990 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)),&991 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v700', "Meridional wind 700hPa", "m/s", &992 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)),&993 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v500', "Meridional wind 500hPa", "m/s", &994 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)),&995 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v200', "Meridional wind 200hPa", "m/s", &996 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)),&997 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v100', "Meridional wind 100hPa", "m/s", &998 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)),&999 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v50', "Meridional wind 50hPa", "m/s",&1000 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)),&1001 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v10', "Meridional wind 10hPa", "m/s",&1002 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)1003 1004 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_wSTDlevs 1005 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w850', "Vertical wind 850hPa", "Pa/s", &1006 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1007 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w700', "Vertical wind 700hPa", "Pa/s", &1008 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1009 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w500', "Vertical wind 500hPa", "Pa/s", &1010 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1011 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w200', "Vertical wind 200hPa", "Pa/s", &1012 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1013 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w100', "Vertical wind 100hPa", "Pa/s", &1014 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1015 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w50', "Vertical wind 50hPa", "Pa/s",&1016 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1017 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w10', "Vertical wind 10hPa", "Pa/s",&1018 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)1019 1020 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_tSTDlevs 1021 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t850', "Temperature 850hPa", "K",&1022 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1023 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t700', "Temperature 700hPa", "K",&1024 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1025 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t500', "Temperature 500hPa", "K",&1026 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1027 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t200', "Temperature 200hPa", "K",&1028 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1029 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t100', "Temperature 100hPa", "K",&1030 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1031 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t50', "Temperature 50hPa", "K",&1032 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1033 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t10', "Temperature 10hPa", "K",&1034 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)1035 1036 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_qSTDlevs 1037 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q850', &1038 "Specific humidity 850hPa", "kg/kg", &1039 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1040 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q700', &1041 "Specific humidity 700hPa", "kg/kg", &1042 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1043 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q500', &1044 "Specific humidity 500hPa", "kg/kg", &1045 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1046 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q200', &1047 "Specific humidity 200hPa", "kg/kg", &1048 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1049 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q100', &1050 "Specific humidity 100hPa", "kg/kg", &1051 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1052 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q50', &1053 "Specific humidity 50hPa", "kg/kg", &1054 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1055 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q10', &1056 "Specific humidity 10hPa", "kg/kg", &1057 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)1058 1059 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_zSTDlevs 1060 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z850', "Geopotential height 850hPa",&1061 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1062 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z700', "Geopotential height 700hPa",&1063 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1064 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z500', "Geopotential height 500hPa",&1065 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1066 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z200', "Geopotential height 200hPa",&1067 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1068 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z100', "Geopotential height 100hPa",&1069 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1070 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z50', "Geopotential height 50hPa",&1071 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &1072 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z10', "Geopotential height 10hPa",&1073 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)969 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_uSTDlevs = (/ & 970 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'u850', "Zonal wind 850hPa", "m/s", & 971 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 972 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'u700', "Zonal wind 700hPa", "m/s", & 973 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 974 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'u500', "Zonal wind 500hPa", "m/s", & 975 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 976 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'u200', "Zonal wind 200hPa", "m/s", & 977 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 978 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'u100', "Zonal wind 100hPa", "m/s", & 979 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 980 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'u50', "Zonal wind 50hPa", "m/s", & 981 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 982 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'u10', "Zonal wind 10hPa", "m/s", & 983 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 984 985 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_vSTDlevs = (/ & 986 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'v850', "Meridional wind 850hPa", "m/s", & 987 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 988 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'v700', "Meridional wind 700hPa", "m/s", & 989 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 990 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'v500', "Meridional wind 500hPa", "m/s", & 991 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 992 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'v200', "Meridional wind 200hPa", "m/s", & 993 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 994 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'v100', "Meridional wind 100hPa", "m/s", & 995 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 996 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'v50', "Meridional wind 50hPa", "m/s", & 997 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 998 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'v10', "Meridional wind 10hPa", "m/s", & 999 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 1000 1001 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_wSTDlevs = (/ & 1002 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'w850', "Vertical wind 850hPa", "Pa/s", & 1003 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1004 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'w700', "Vertical wind 700hPa", "Pa/s", & 1005 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1006 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'w500', "Vertical wind 500hPa", "Pa/s", & 1007 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1008 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'w200', "Vertical wind 200hPa", "Pa/s", & 1009 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1010 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'w100', "Vertical wind 100hPa", "Pa/s", & 1011 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1012 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'w50', "Vertical wind 50hPa", "Pa/s", & 1013 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1014 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'w10', "Vertical wind 10hPa", "Pa/s", & 1015 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 1016 1017 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_tSTDlevs = (/ & 1018 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 't850', "Temperature 850hPa", "K", & 1019 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1020 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 't700', "Temperature 700hPa", "K", & 1021 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1022 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 't500', "Temperature 500hPa", "K", & 1023 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1024 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 't200', "Temperature 200hPa", "K", & 1025 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1026 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 't100', "Temperature 100hPa", "K", & 1027 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1028 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 't50', "Temperature 50hPa", "K", & 1029 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1030 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 't10', "Temperature 10hPa", "K", & 1031 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 1032 1033 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_qSTDlevs = (/ & 1034 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'q850', & 1035 "Specific humidity 850hPa", "kg/kg", & 1036 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1037 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'q700', & 1038 "Specific humidity 700hPa", "kg/kg", & 1039 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1040 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'q500', & 1041 "Specific humidity 500hPa", "kg/kg", & 1042 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1043 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'q200', & 1044 "Specific humidity 200hPa", "kg/kg", & 1045 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1046 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'q100', & 1047 "Specific humidity 100hPa", "kg/kg", & 1048 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1049 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'q50', & 1050 "Specific humidity 50hPa", "kg/kg", & 1051 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1052 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'q10', & 1053 "Specific humidity 10hPa", "kg/kg", & 1054 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 1055 1056 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_zSTDlevs = (/ & 1057 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'z850', "Geopotential height 850hPa", & 1058 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1059 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'z700', "Geopotential height 700hPa", & 1060 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1061 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'z500', "Geopotential height 500hPa", & 1062 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1063 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'z200', "Geopotential height 200hPa", & 1064 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1065 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'z100', "Geopotential height 100hPa", & 1066 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1067 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'z50', "Geopotential height 50hPa", & 1068 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 1069 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/), 'z10', "Geopotential height 10hPa", & 1070 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 1074 1071 1075 1072 TYPE(ctrl_out), SAVE :: o_t_oce_sic = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1076 't_oce_sic', 'Temp mixte oce-sic', 'K', (/ ('', i=1, 10) /))1073 't_oce_sic', 'Temp mixte oce-sic', 'K', (/ ('', i = 1, 10) /)) 1077 1074 TYPE(ctrl_out), SAVE :: o_weakinv = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1078 'weakinv', 'Weak inversion', '-', (/ ('', i=1, 10) /))1075 'weakinv', 'Weak inversion', '-', (/ ('', i = 1, 10) /)) 1079 1076 TYPE(ctrl_out), SAVE :: o_dthmin = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1080 'dthmin', 'dTheta mini', 'K/m', (/ ('', i=1, 10) /))1081 1082 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_u10_srf 1083 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_ter', "", "", (/ ('', i=1, 10) /)), &1084 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_lic', "", "", (/ ('', i=1, 10) /)), &1085 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_oce', "", "", (/ ('', i=1, 10) /)), &1086 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_sic', "", "", (/ ('', i=1, 10) /)) /)1087 1088 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_v10_srf 1089 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_ter', "", "", (/ ('', i=1, 10) /)), &1090 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_lic', "", "", (/ ('', i=1, 10) /)), &1091 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_oce', "", "", (/ ('', i=1, 10) /)), &1092 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_sic', "", "", (/ ('', i=1, 10) /)) /)1077 'dthmin', 'dTheta mini', 'K/m', (/ ('', i = 1, 10) /)) 1078 1079 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_u10_srf = (/ & 1080 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10_ter', "", "", (/ ('', i = 1, 10) /)), & 1081 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10_lic', "", "", (/ ('', i = 1, 10) /)), & 1082 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10_oce', "", "", (/ ('', i = 1, 10) /)), & 1083 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'u10_sic', "", "", (/ ('', i = 1, 10) /)) /) 1084 1085 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_v10_srf = (/ & 1086 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10_ter', "", "", (/ ('', i = 1, 10) /)), & 1087 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10_lic', "", "", (/ ('', i = 1, 10) /)), & 1088 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10_oce', "", "", (/ ('', i = 1, 10) /)), & 1089 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'v10_sic', "", "", (/ ('', i = 1, 10) /)) /) 1093 1090 1094 1091 TYPE(ctrl_out), SAVE :: o_cldtau = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1095 'cldtau', 'Cloud optical thickness', '1', (/ ('', i=1, 10) /))1092 'cldtau', 'Cloud optical thickness', '1', (/ ('', i = 1, 10) /)) 1096 1093 TYPE(ctrl_out), SAVE :: o_cldemi = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1097 'cldemi', 'Cloud optical emissivity', '1', (/ ('', i=1, 10) /))1094 'cldemi', 'Cloud optical emissivity', '1', (/ ('', i = 1, 10) /)) 1098 1095 TYPE(ctrl_out), SAVE :: o_rh2m = ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1099 'rh2m', 'Relative humidity at 2m', '%', (/ ('', i=1, 10) /))1100 ! TYPE(ctrl_out), SAVE :: o_rh2m_min = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), &1101 ! 'rh2m_min', 'Min Relative humidity at 2m', '%', &1102 ! (/ 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', & 1103 ! 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)' /))1104 ! TYPE(ctrl_out), SAVE :: o_rh2m_max = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), &1105 ! 'rh2m_max', 'Max Relative humidity at 2m', '%', &1106 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &1107 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /))1096 'rh2m', 'Relative humidity at 2m', '%', (/ ('', i = 1, 10) /)) 1097 ! TYPE(ctrl_out), SAVE :: o_rh2m_min = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1098 ! 'rh2m_min', 'Min Relative humidity at 2m', '%', & 1099 ! (/ 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', & 1100 ! 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)' /)) 1101 ! TYPE(ctrl_out), SAVE :: o_rh2m_max = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1102 ! 'rh2m_max', 'Max Relative humidity at 2m', '%', & 1103 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 1104 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 1108 1105 TYPE(ctrl_out), SAVE :: o_qsat2m = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1109 'qsat2m', 'Saturant humidity at 2m', '%', (/ ('', i=1, 10) /))1106 'qsat2m', 'Saturant humidity at 2m', '%', (/ ('', i = 1, 10) /)) 1110 1107 TYPE(ctrl_out), SAVE :: o_tpot = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1111 'tpot', 'Surface air potential temperature', 'K', (/ ('', i=1, 10) /))1108 'tpot', 'Surface air potential temperature', 'K', (/ ('', i = 1, 10) /)) 1112 1109 TYPE(ctrl_out), SAVE :: o_tpote = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1113 'tpote', 'Surface air equivalent potential temperature', 'K', (/ ('', i=1, 10) /))1110 'tpote', 'Surface air equivalent potential temperature', 'K', (/ ('', i = 1, 10) /)) 1114 1111 TYPE(ctrl_out), SAVE :: o_tke = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1115 'tke ', 'TKE', 'm2/s2', (/ ('', i=1, 10) /))1112 'tke ', 'TKE', 'm2/s2', (/ ('', i = 1, 10) /)) 1116 1113 TYPE(ctrl_out), SAVE :: o_tke_shear = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1117 'tke_shear ', 'TKE shear term', 'm2/s3', (/ ('', i=1, 10) /))1114 'tke_shear ', 'TKE shear term', 'm2/s3', (/ ('', i = 1, 10) /)) 1118 1115 TYPE(ctrl_out), SAVE :: o_tke_buoy = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1119 'tke_buoy ', 'TKE buoyancy term', 'm2/s3', (/ ('', i=1, 10) /))1116 'tke_buoy ', 'TKE buoyancy term', 'm2/s3', (/ ('', i = 1, 10) /)) 1120 1117 TYPE(ctrl_out), SAVE :: o_tke_trans = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1121 'tke_trans ', 'TKE transport term', 'm2/s3', (/ ('', i=1, 10) /))1118 'tke_trans ', 'TKE transport term', 'm2/s3', (/ ('', i = 1, 10) /)) 1122 1119 TYPE(ctrl_out), SAVE :: o_tke_dissip = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1123 'tke_dissip ', 'TKE dissipation term', 'm2/s3', (/ ('', i=1, 10) /))1120 'tke_dissip ', 'TKE dissipation term', 'm2/s3', (/ ('', i = 1, 10) /)) 1124 1121 1125 1122 TYPE(ctrl_out), SAVE :: o_tke_max = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1126 'tke_max', 'TKE max', 'm2/s2', & 1127 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 1128 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 1129 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_srf = (/ & 1130 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_ter', & 1131 "Max Turb. Kinetic Energy "//clnsurf(1),"m2/s2", (/ ('', i=1, 10) /)), & 1132 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_lic', & 1133 "Max Turb. Kinetic Energy "//clnsurf(2),"m2/s2", (/ ('', i=1, 10) /)), & 1134 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_oce', & 1135 "Max Turb. Kinetic Energy "//clnsurf(3),"m2/s2", (/ ('', i=1, 10) /)), & 1136 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_sic', & 1137 "Max Turb. Kinetic Energy "//clnsurf(4),"m2/s2", (/ ('', i=1, 10) /)) /) 1138 !FC 1139 ! TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_treedrg_srf = (/ & 1140 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_ter', & 1141 ! "Drag from trees "//clnsurf(1),"-", (/ ('', i=1, 10) /)), & 1142 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_lic', & 1143 ! "Drag from trees "//clnsurf(2),"-", (/ ('', i=1, 10) /)), & 1144 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_oce', & 1145 ! "Drag from trees "//clnsurf(3),"-", (/ ('', i=1, 10) /)), & 1146 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_sic', & 1147 ! "Drag from trees "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /) 1148 !FC 1149 1150 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mixmin = (/ & 1151 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_ter', & 1152 "PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 10) /)), & 1153 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_lic', & 1154 "PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 10) /)), & 1155 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_oce', & 1156 "PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 10) /)), & 1157 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_sic', & 1158 "PBL mixing length "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /) 1159 1160 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mix = (/ & 1161 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_ter', & 1162 "min PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 10) /)), & 1163 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_lic', & 1164 "min PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 10) /)), & 1165 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_oce', & 1166 "min PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 10) /)), & 1167 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_sic', & 1168 "min PBL mixing length "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /) 1169 1170 1171 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_max_srf = (/ & 1172 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_ter', & 1173 "Max Turb. Kinetic Energy "//clnsurf(1),"-", & 1174 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1175 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 1176 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_lic', & 1177 "Max Turb. Kinetic Energy "//clnsurf(2),"-", & 1178 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1179 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 1180 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_oce', & 1181 "Max Turb. Kinetic Energy "//clnsurf(3),"-", & 1182 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1183 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 1184 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_sic', & 1185 "Max Turb. Kinetic Energy "//clnsurf(4),"-", & 1186 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1187 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) /) 1188 1189 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_dltpbltke_srf = (/ & 1190 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_ter', & 1191 "TKE difference (w - x) "//clnsurf(1),"-", (/ ('', i=1, 10) /)), & 1192 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_lic', & 1193 "TKE difference (w - x) "//clnsurf(2),"-", (/ ('', i=1, 10) /)), & 1194 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_oce', & 1195 "TKE difference (w - x) "//clnsurf(3),"-", (/ ('', i=1, 10) /)), & 1196 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_sic', & 1197 "TKE difference (w - x) "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /) 1123 'tke_max', 'TKE max', 'm2/s2', & 1124 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 1125 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 1126 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_srf = (/ & 1127 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_ter', & 1128 "Max Turb. Kinetic Energy " // clnsurf(1), "m2/s2", (/ ('', i = 1, 10) /)), & 1129 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_lic', & 1130 "Max Turb. Kinetic Energy " // clnsurf(2), "m2/s2", (/ ('', i = 1, 10) /)), & 1131 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_oce', & 1132 "Max Turb. Kinetic Energy " // clnsurf(3), "m2/s2", (/ ('', i = 1, 10) /)), & 1133 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_sic', & 1134 "Max Turb. Kinetic Energy " // clnsurf(4), "m2/s2", (/ ('', i = 1, 10) /)) /) 1135 !FC 1136 ! TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_treedrg_srf = (/ & 1137 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_ter', & 1138 ! "Drag from trees "//clnsurf(1),"-", (/ ('', i=1, 10) /)), & 1139 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_lic', & 1140 ! "Drag from trees "//clnsurf(2),"-", (/ ('', i=1, 10) /)), & 1141 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_oce', & 1142 ! "Drag from trees "//clnsurf(3),"-", (/ ('', i=1, 10) /)), & 1143 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_sic', & 1144 ! "Drag from trees "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /) 1145 !FC 1146 1147 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mixmin = (/ & 1148 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mixmin_ter', & 1149 "PBL mixing length " // clnsurf(1), "m", (/ ('', i = 1, 10) /)), & 1150 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mixmin_lic', & 1151 "PBL mixing length " // clnsurf(2), "m", (/ ('', i = 1, 10) /)), & 1152 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mixmin_oce', & 1153 "PBL mixing length " // clnsurf(3), "m", (/ ('', i = 1, 10) /)), & 1154 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mixmin_sic', & 1155 "PBL mixing length " // clnsurf(4), "m", (/ ('', i = 1, 10) /)) /) 1156 1157 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mix = (/ & 1158 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mix_ter', & 1159 "min PBL mixing length " // clnsurf(1), "m", (/ ('', i = 1, 10) /)), & 1160 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mix_lic', & 1161 "min PBL mixing length " // clnsurf(2), "m", (/ ('', i = 1, 10) /)), & 1162 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mix_oce', & 1163 "min PBL mixing length " // clnsurf(3), "m", (/ ('', i = 1, 10) /)), & 1164 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'l_mix_sic', & 1165 "min PBL mixing length " // clnsurf(4), "m", (/ ('', i = 1, 10) /)) /) 1166 1167 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_max_srf = (/ & 1168 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_max_ter', & 1169 "Max Turb. Kinetic Energy " // clnsurf(1), "-", & 1170 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1171 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 1172 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_max_lic', & 1173 "Max Turb. Kinetic Energy " // clnsurf(2), "-", & 1174 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1175 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 1176 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_max_oce', & 1177 "Max Turb. Kinetic Energy " // clnsurf(3), "-", & 1178 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1179 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 1180 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'tke_max_sic', & 1181 "Max Turb. Kinetic Energy " // clnsurf(4), "-", & 1182 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1183 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) /) 1184 1185 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_dltpbltke_srf = (/ & 1186 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'dltpbltke_ter', & 1187 "TKE difference (w - x) " // clnsurf(1), "-", (/ ('', i = 1, 10) /)), & 1188 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'dltpbltke_lic', & 1189 "TKE difference (w - x) " // clnsurf(2), "-", (/ ('', i = 1, 10) /)), & 1190 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'dltpbltke_oce', & 1191 "TKE difference (w - x) " // clnsurf(3), "-", (/ ('', i = 1, 10) /)), & 1192 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'dltpbltke_sic', & 1193 "TKE difference (w - x) " // clnsurf(4), "-", (/ ('', i = 1, 10) /)) /) 1198 1194 1199 1195 TYPE(ctrl_out), SAVE :: o_delta_tsurf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1200 'delta_tsurf ', 'T_surf difference (w - x)', 'K', (/ ('', i=1, 10) /))1201 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_delta_tsurf_srf 1202 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'delta_tsurf_ter',&1203 "T_surf difference (w - x) "//clnsurf(1),"-", (/ ('', i=1, 10) /)), &1204 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'delta_tsurf_lic',&1205 "T_surf difference (w - x) "//clnsurf(2),"-", (/ ('', i=1, 10) /)), &1206 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'delta_tsurf_oce',&1207 "T_surf difference (w - x) "//clnsurf(3),"-", (/ ('', i=1, 10) /)), &1208 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'delta_tsurf_sic',&1209 "T_surf difference (w - x) "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /)1196 'delta_tsurf ', 'T_surf difference (w - x)', 'K', (/ ('', i = 1, 10) /)) 1197 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_delta_tsurf_srf = (/ & 1198 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'delta_tsurf_ter', & 1199 "T_surf difference (w - x) " // clnsurf(1), "-", (/ ('', i = 1, 10) /)), & 1200 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'delta_tsurf_lic', & 1201 "T_surf difference (w - x) " // clnsurf(2), "-", (/ ('', i = 1, 10) /)), & 1202 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'delta_tsurf_oce', & 1203 "T_surf difference (w - x) " // clnsurf(3), "-", (/ ('', i = 1, 10) /)), & 1204 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/), 'delta_tsurf_sic', & 1205 "T_surf difference (w - x) " // clnsurf(4), "-", (/ ('', i = 1, 10) /)) /) 1210 1206 1211 1207 TYPE(ctrl_out), SAVE :: o_kz = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1212 'kz', 'Kz melange', 'm2/s', (/ ('', i=1, 10) /))1208 'kz', 'Kz melange', 'm2/s', (/ ('', i = 1, 10) /)) 1213 1209 TYPE(ctrl_out), SAVE :: o_kz_max = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1214 'kz_max', 'Kz melange max', 'm2/s',&1215 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &1216 't_max(X)', "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /))1210 'kz_max', 'Kz melange max', 'm2/s', & 1211 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 1212 't_max(X)', "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 1217 1213 TYPE(ctrl_out), SAVE :: o_SWnetOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1218 'SWnetOR', 'Sfce net SW radiation OR', 'W/m2', (/ ('', i=1, 10) /))1214 'SWnetOR', 'Sfce net SW radiation OR', 'W/m2', (/ ('', i = 1, 10) /)) 1219 1215 TYPE(ctrl_out), SAVE :: o_LWdownOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1220 'LWdownOR', 'Sfce incident LW radiation OR', 'W/m2', (/ ('', i=1, 10) /))1216 'LWdownOR', 'Sfce incident LW radiation OR', 'W/m2', (/ ('', i = 1, 10) /)) 1221 1217 TYPE(ctrl_out), SAVE :: o_snowl = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1222 'snowl', 'Solid Large-scale Precip.', 'kg/(m2*s)', (/ ('', i=1, 10) /))1218 'snowl', 'Solid Large-scale Precip.', 'kg/(m2*s)', (/ ('', i = 1, 10) /)) 1223 1219 TYPE(ctrl_out), SAVE :: o_cape_max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1224 'cape_max', 'CAPE max.', 'J/kg',&1225 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", &1226 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /))1220 'cape_max', 'CAPE max.', 'J/kg', & 1221 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1222 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 1227 1223 TYPE(ctrl_out), SAVE :: o_solldown = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1228 'solldown', 'Down. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))1224 'solldown', 'Down. IR rad. at surface', 'W/m2', (/ ('', i = 1, 10) /)) 1229 1225 TYPE(ctrl_out), SAVE :: o_dtsvdfo = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1230 'dtsvdfo', 'Boundary-layer dTs(o)', 'K/s', (/ ('', i=1, 10) /))1226 'dtsvdfo', 'Boundary-layer dTs(o)', 'K/s', (/ ('', i = 1, 10) /)) 1231 1227 TYPE(ctrl_out), SAVE :: o_dtsvdft = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1232 'dtsvdft', 'Boundary-layer dTs(t)', 'K/s', (/ ('', i=1, 10) /))1228 'dtsvdft', 'Boundary-layer dTs(t)', 'K/s', (/ ('', i = 1, 10) /)) 1233 1229 TYPE(ctrl_out), SAVE :: o_dtsvdfg = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1234 'dtsvdfg', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i=1, 10) /))1230 'dtsvdfg', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i = 1, 10) /)) 1235 1231 TYPE(ctrl_out), SAVE :: o_dtsvdfi = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1236 'dtsvdfi', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i=1, 10) /))1232 'dtsvdfi', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i = 1, 10) /)) 1237 1233 TYPE(ctrl_out), SAVE :: o_z0m = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1238 'z0m', 'roughness length, momentum', '-', (/ ('', i=1, 10) /))1234 'z0m', 'roughness length, momentum', '-', (/ ('', i = 1, 10) /)) 1239 1235 TYPE(ctrl_out), SAVE :: o_z0h = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1240 'z0h', 'roughness length, enthalpy', '-', (/ ('', i=1, 10) /))1236 'z0h', 'roughness length, enthalpy', '-', (/ ('', i = 1, 10) /)) 1241 1237 TYPE(ctrl_out), SAVE :: o_topswad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1242 'topswad', 'ADE at TOA', 'W/m2', (/ ('', i=1, 10) /))1238 'topswad', 'ADE at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1243 1239 TYPE(ctrl_out), SAVE :: o_topswad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1244 'topswad0', 'ADE clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /))1240 'topswad0', 'ADE clear-sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1245 1241 TYPE(ctrl_out), SAVE :: o_topswai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1246 'topswai', 'AIE at TOA', 'W/m2', (/ ('', i=1, 10) /))1242 'topswai', 'AIE at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1247 1243 TYPE(ctrl_out), SAVE :: o_solswad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1248 'solswad', 'ADE at SRF', 'W/m2', (/ ('', i=1, 10) /))1244 'solswad', 'ADE at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1249 1245 TYPE(ctrl_out), SAVE :: o_solswad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1250 'solswad0', 'ADE clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /))1246 'solswad0', 'ADE clear-sky at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1251 1247 TYPE(ctrl_out), SAVE :: o_solswai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1252 'solswai', 'AIE at SFR', 'W/m2', (/ ('', i=1, 10) /))1248 'solswai', 'AIE at SFR', 'W/m2', (/ ('', i = 1, 10) /)) 1253 1249 TYPE(ctrl_out), SAVE :: o_toplwad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1254 'toplwad', 'LW-ADE at TOA', 'W/m2', (/ ('', i=1, 10) /))1250 'toplwad', 'LW-ADE at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1255 1251 TYPE(ctrl_out), SAVE :: o_toplwad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1256 'toplwad0', 'LW-ADE clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /))1252 'toplwad0', 'LW-ADE clear-sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1257 1253 TYPE(ctrl_out), SAVE :: o_toplwai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1258 'toplwai', 'LW-AIE at TOA', 'W/m2', (/ ('', i=1, 10) /))1254 'toplwai', 'LW-AIE at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1259 1255 TYPE(ctrl_out), SAVE :: o_sollwad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1260 'sollwad', 'LW-ADE at SRF', 'W/m2', (/ ('', i=1, 10) /))1256 'sollwad', 'LW-ADE at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1261 1257 TYPE(ctrl_out), SAVE :: o_sollwad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1262 'sollwad0', 'LW-ADE clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /))1258 'sollwad0', 'LW-ADE clear-sky at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1263 1259 TYPE(ctrl_out), SAVE :: o_sollwai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1264 'sollwai', 'LW-AIE at SFR', 'W/m2', (/ ('', i=1, 10) /))1265 1266 TYPE(ctrl_out), SAVE,DIMENSION(naero_tot) :: o_tausumaero =&1267 (/ ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(1),&1268 "Aerosol Optical depth at 550 nm "//name_aero_tau(1),"1", (/ ('', i=1, 10) /)),&1269 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(2),&1270 "Aerosol Optical depth at 550 nm "//name_aero_tau(2),"2", (/ ('', i=1, 10) /)),&1271 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(3),&1272 "Aerosol Optical depth at 550 nm "//name_aero_tau(3),"3", (/ ('', i=1, 10) /)),&1273 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(4),&1274 "Aerosol Optical depth at 550 nm "//name_aero_tau(4),"4", (/ ('', i=1, 10) /)),&1275 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(5),&1276 "Aerosol Optical depth at 550 nm "//name_aero_tau(5),"5", (/ ('', i=1, 10) /)),&1277 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(6),&1278 "Aerosol Optical depth at 550 nm "//name_aero_tau(6),"6", (/ ('', i=1, 10) /)),&1279 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(7),&1280 "Aerosol Optical depth at 550 nm "//name_aero_tau(7),"7", (/ ('', i=1, 10) /)),&1281 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(8),&1282 "Aerosol Optical depth at 550 nm "//name_aero_tau(8),"8", (/ ('', i=1, 10) /)),&1283 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(9),&1284 "Aerosol Optical depth at 550 nm "//name_aero_tau(9),"9", (/ ('', i=1, 10) /)),&1285 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(10),&1286 "Aerosol Optical depth at 550 nm "//name_aero_tau(10),"10", (/ ('', i=1, 10) /)),&1287 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(11),&1288 "Aerosol Optical depth at 550 nm "//name_aero_tau(11),"11", (/ ('', i=1, 10) /)),&1289 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(12),&1290 "Aerosol Optical depth at 550 nm "//name_aero_tau(12),"12", (/ ('', i=1, 10) /)),&1291 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(13),&1292 "Aerosol Optical depth at 550 nm "//name_aero_tau(13),"13", (/ ('', i=1, 10) /)),&1293 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'od550_'//name_aero_tau(14),&1294 "Aerosol Optical depth at 550 nm "//name_aero_tau(14),"14", (/ ('', i=1, 10) /)) /)1295 1296 TYPE(ctrl_out), SAVE,DIMENSION(naero_tot-1) :: o_drytausumaero =&1297 (/ ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(1),&1298 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(1),"1", (/ ('', i=1, 10) /)),&1299 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(2),&1300 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(2),"2", (/ ('', i=1, 10) /)),&1301 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(3),&1302 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(3),"3", (/ ('', i=1, 10) /)),&1303 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(4),&1304 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(4),"4", (/ ('', i=1, 10) /)),&1305 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(5),&1306 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(5),"5", (/ ('', i=1, 10) /)),&1307 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(6),&1308 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(6),"6", (/ ('', i=1, 10) /)),&1309 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(7),&1310 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(7),"7", (/ ('', i=1, 10) /)),&1311 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(8),&1312 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(8),"8", (/ ('', i=1, 10) /)),&1313 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(9),&1314 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(9),"9", (/ ('', i=1, 10) /)),&1315 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(10),&1316 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(10),"10", (/ ('', i=1, 10) /)),&1317 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(11),&1318 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(11),"11", (/ ('', i=1, 10) /)),&1319 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(12),&1320 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(12),"12", (/ ('', i=1, 10) /)),&1321 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'dryod550_'//name_aero_tau(13),&1322 "Dry aerosol Optical depth at 550 nm "//name_aero_tau(13),"13", (/ ('', i=1, 10) /)) /)1323 ! 1260 'sollwai', 'LW-AIE at SFR', 'W/m2', (/ ('', i = 1, 10) /)) 1261 1262 TYPE(ctrl_out), SAVE, DIMENSION(naero_tot) :: o_tausumaero = & 1263 (/ ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(1), & 1264 "Aerosol Optical depth at 550 nm " // name_aero_tau(1), "1", (/ ('', i = 1, 10) /)), & 1265 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(2), & 1266 "Aerosol Optical depth at 550 nm " // name_aero_tau(2), "2", (/ ('', i = 1, 10) /)), & 1267 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(3), & 1268 "Aerosol Optical depth at 550 nm " // name_aero_tau(3), "3", (/ ('', i = 1, 10) /)), & 1269 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(4), & 1270 "Aerosol Optical depth at 550 nm " // name_aero_tau(4), "4", (/ ('', i = 1, 10) /)), & 1271 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(5), & 1272 "Aerosol Optical depth at 550 nm " // name_aero_tau(5), "5", (/ ('', i = 1, 10) /)), & 1273 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(6), & 1274 "Aerosol Optical depth at 550 nm " // name_aero_tau(6), "6", (/ ('', i = 1, 10) /)), & 1275 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(7), & 1276 "Aerosol Optical depth at 550 nm " // name_aero_tau(7), "7", (/ ('', i = 1, 10) /)), & 1277 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(8), & 1278 "Aerosol Optical depth at 550 nm " // name_aero_tau(8), "8", (/ ('', i = 1, 10) /)), & 1279 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(9), & 1280 "Aerosol Optical depth at 550 nm " // name_aero_tau(9), "9", (/ ('', i = 1, 10) /)), & 1281 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(10), & 1282 "Aerosol Optical depth at 550 nm " // name_aero_tau(10), "10", (/ ('', i = 1, 10) /)), & 1283 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(11), & 1284 "Aerosol Optical depth at 550 nm " // name_aero_tau(11), "11", (/ ('', i = 1, 10) /)), & 1285 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(12), & 1286 "Aerosol Optical depth at 550 nm " // name_aero_tau(12), "12", (/ ('', i = 1, 10) /)), & 1287 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(13), & 1288 "Aerosol Optical depth at 550 nm " // name_aero_tau(13), "13", (/ ('', i = 1, 10) /)), & 1289 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'od550_' // name_aero_tau(14), & 1290 "Aerosol Optical depth at 550 nm " // name_aero_tau(14), "14", (/ ('', i = 1, 10) /)) /) 1291 1292 TYPE(ctrl_out), SAVE, DIMENSION(naero_tot - 1) :: o_drytausumaero = & 1293 (/ ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(1), & 1294 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(1), "1", (/ ('', i = 1, 10) /)), & 1295 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(2), & 1296 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(2), "2", (/ ('', i = 1, 10) /)), & 1297 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(3), & 1298 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(3), "3", (/ ('', i = 1, 10) /)), & 1299 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(4), & 1300 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(4), "4", (/ ('', i = 1, 10) /)), & 1301 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(5), & 1302 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(5), "5", (/ ('', i = 1, 10) /)), & 1303 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(6), & 1304 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(6), "6", (/ ('', i = 1, 10) /)), & 1305 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(7), & 1306 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(7), "7", (/ ('', i = 1, 10) /)), & 1307 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(8), & 1308 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(8), "8", (/ ('', i = 1, 10) /)), & 1309 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(9), & 1310 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(9), "9", (/ ('', i = 1, 10) /)), & 1311 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(10), & 1312 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(10), "10", (/ ('', i = 1, 10) /)), & 1313 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(11), & 1314 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(11), "11", (/ ('', i = 1, 10) /)), & 1315 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(12), & 1316 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(12), "12", (/ ('', i = 1, 10) /)), & 1317 ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dryod550_' // name_aero_tau(13), & 1318 "Dry aerosol Optical depth at 550 nm " // name_aero_tau(13), "13", (/ ('', i = 1, 10) /)) /) 1319 1324 1320 TYPE(ctrl_out), SAVE :: o_tausumaero_lw = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1325 'od_10um_STRAT', 'Stratospheric Aerosol Optical depth at 10 um ', '1', (/ ('', i=1, 10) /))1326 ! 1321 'od_10um_STRAT', 'Stratospheric Aerosol Optical depth at 10 um ', '1', (/ ('', i = 1, 10) /)) 1322 1327 1323 TYPE(ctrl_out), SAVE :: o_od443aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1328 'od443aer', 'Total aerosol optical depth at 440nm', '-', (/ ('', i=1, 10) /))1324 'od443aer', 'Total aerosol optical depth at 440nm', '-', (/ ('', i = 1, 10) /)) 1329 1325 TYPE(ctrl_out), SAVE :: o_od550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1330 'od550aer', 'Total aerosol optical depth at 550nm', '-', (/ ('', i=1, 10) /))1326 'od550aer', 'Total aerosol optical depth at 550nm', '-', (/ ('', i = 1, 10) /)) 1331 1327 TYPE(ctrl_out), SAVE :: o_dryod550aer = ctrl_out((/ 11, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1332 'dryod550aer', 'Total dry aerosol optical depth at 550nm', '-', (/ ('', i=1, 10) /))1328 'dryod550aer', 'Total dry aerosol optical depth at 550nm', '-', (/ ('', i = 1, 10) /)) 1333 1329 TYPE(ctrl_out), SAVE :: o_od865aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1334 'od865aer', 'Total aerosol optical depth at 870nm', '-', (/ ('', i=1, 10) /))1330 'od865aer', 'Total aerosol optical depth at 870nm', '-', (/ ('', i = 1, 10) /)) 1335 1331 TYPE(ctrl_out), SAVE :: o_abs550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1336 'abs550aer', 'Absorption aerosol optical depth at 550nm', '-', (/ ('', i=1, 10) /))1332 'abs550aer', 'Absorption aerosol optical depth at 550nm', '-', (/ ('', i = 1, 10) /)) 1337 1333 TYPE(ctrl_out), SAVE :: o_od550lt1aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1338 'od550lt1aer', 'Fine mode optical depth', '-', (/ ('', i=1, 10) /))1334 'od550lt1aer', 'Fine mode optical depth', '-', (/ ('', i = 1, 10) /)) 1339 1335 TYPE(ctrl_out), SAVE :: o_sconcso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1340 'sconcso4', 'Surface Concentration of Sulfate ', 'kg/m3', (/ ('', i=1, 10) /))1336 'sconcso4', 'Surface Concentration of Sulfate ', 'kg/m3', (/ ('', i = 1, 10) /)) 1341 1337 TYPE(ctrl_out), SAVE :: o_sconcno3 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1342 'sconcno3', 'Surface Concentration of Nitrate ', 'kg/m3', (/ ('', i=1, 10) /))1338 'sconcno3', 'Surface Concentration of Nitrate ', 'kg/m3', (/ ('', i = 1, 10) /)) 1343 1339 TYPE(ctrl_out), SAVE :: o_sconcoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1344 'sconcoa', 'Surface Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i=1, 10) /))1340 'sconcoa', 'Surface Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i = 1, 10) /)) 1345 1341 TYPE(ctrl_out), SAVE :: o_sconcbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1346 'sconcbc', 'Surface Concentration of Black Carbon ', 'kg/m3', (/ ('', i=1, 10) /))1342 'sconcbc', 'Surface Concentration of Black Carbon ', 'kg/m3', (/ ('', i = 1, 10) /)) 1347 1343 TYPE(ctrl_out), SAVE :: o_sconcss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1348 'sconcss', 'Surface Concentration of Sea Salt ', 'kg/m3', (/ ('', i=1, 10) /))1344 'sconcss', 'Surface Concentration of Sea Salt ', 'kg/m3', (/ ('', i = 1, 10) /)) 1349 1345 TYPE(ctrl_out), SAVE :: o_sconcdust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1350 'sconcdust', 'Surface Concentration of Dust ', 'kg/m3', (/ ('', i=1, 10) /))1346 'sconcdust', 'Surface Concentration of Dust ', 'kg/m3', (/ ('', i = 1, 10) /)) 1351 1347 TYPE(ctrl_out), SAVE :: o_concso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1352 'concso4', 'Concentration of Sulfate ', 'kg/m3', (/ ('', i=1, 10) /))1348 'concso4', 'Concentration of Sulfate ', 'kg/m3', (/ ('', i = 1, 10) /)) 1353 1349 TYPE(ctrl_out), SAVE :: o_concno3 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1354 'concno3', 'Concentration of Nitrate ', 'kg/m3', (/ ('', i=1, 10) /))1350 'concno3', 'Concentration of Nitrate ', 'kg/m3', (/ ('', i = 1, 10) /)) 1355 1351 TYPE(ctrl_out), SAVE :: o_concoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1356 'concoa', 'Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i=1, 10) /))1352 'concoa', 'Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i = 1, 10) /)) 1357 1353 TYPE(ctrl_out), SAVE :: o_concbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1358 'concbc', 'Concentration of Black Carbon ', 'kg/m3', (/ ('', i=1, 10) /))1354 'concbc', 'Concentration of Black Carbon ', 'kg/m3', (/ ('', i = 1, 10) /)) 1359 1355 TYPE(ctrl_out), SAVE :: o_concss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1360 'concss', 'Concentration of Sea Salt ', 'kg/m3', (/ ('', i=1, 10) /))1356 'concss', 'Concentration of Sea Salt ', 'kg/m3', (/ ('', i = 1, 10) /)) 1361 1357 TYPE(ctrl_out), SAVE :: o_concdust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1362 'concdust', 'Concentration of Dust ', 'kg/m3', (/ ('', i=1, 10) /))1358 'concdust', 'Concentration of Dust ', 'kg/m3', (/ ('', i = 1, 10) /)) 1363 1359 TYPE(ctrl_out), SAVE :: o_loadso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1364 'loadso4', 'Column Load of Sulfate ', 'kg/m2', (/ ('', i=1, 10) /))1360 'loadso4', 'Column Load of Sulfate ', 'kg/m2', (/ ('', i = 1, 10) /)) 1365 1361 TYPE(ctrl_out), SAVE :: o_loadoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1366 'loadoa', 'Column Load of Organic Aerosol ', 'kg/m2', (/ ('', i=1, 10) /))1362 'loadoa', 'Column Load of Organic Aerosol ', 'kg/m2', (/ ('', i = 1, 10) /)) 1367 1363 TYPE(ctrl_out), SAVE :: o_loadbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1368 'loadbc', 'Column Load of Black Carbon ', 'kg/m2', (/ ('', i=1, 10) /))1364 'loadbc', 'Column Load of Black Carbon ', 'kg/m2', (/ ('', i = 1, 10) /)) 1369 1365 TYPE(ctrl_out), SAVE :: o_loadss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1370 'loadss', 'Column Load of Sea Salt ', 'kg/m2', (/ ('', i=1, 10) /))1366 'loadss', 'Column Load of Sea Salt ', 'kg/m2', (/ ('', i = 1, 10) /)) 1371 1367 TYPE(ctrl_out), SAVE :: o_loaddust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1372 'loaddust', 'Column Load of Dust ', 'kg/m2', (/ ('', i=1, 10) /))1368 'loaddust', 'Column Load of Dust ', 'kg/m2', (/ ('', i = 1, 10) /)) 1373 1369 TYPE(ctrl_out), SAVE :: o_loadno3 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1374 'loadno3', 'Column Load of Nitrate ', 'kg/m2', (/ ('', i=1, 10) /))1370 'loadno3', 'Column Load of Nitrate ', 'kg/m2', (/ ('', i = 1, 10) /)) 1375 1371 TYPE(ctrl_out), SAVE :: o_swtoaas_nat = ctrl_out((/ 11, 11, 1, 11, 11, 11, 11, 11, 11, 11/), & 1376 'swtoaas_nat', 'Natural aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i=1, 10) /))1372 'swtoaas_nat', 'Natural aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1377 1373 TYPE(ctrl_out), SAVE :: o_swsrfas_nat = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1378 'swsrfas_nat', 'Natural aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i=1, 10) /))1374 'swsrfas_nat', 'Natural aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1379 1375 TYPE(ctrl_out), SAVE :: o_swtoacs_nat = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1380 'swtoacs_nat', 'Natural aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /))1376 'swtoacs_nat', 'Natural aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1381 1377 TYPE(ctrl_out), SAVE :: o_swsrfcs_nat = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1382 'swsrfcs_nat', 'Natural aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /))1378 'swsrfcs_nat', 'Natural aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1383 1379 TYPE(ctrl_out), SAVE :: o_swtoaas_ant = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1384 'swtoaas_ant', 'Anthropogenic aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i=1, 10) /))1380 'swtoaas_ant', 'Anthropogenic aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1385 1381 TYPE(ctrl_out), SAVE :: o_swsrfas_ant = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1386 'swsrfas_ant', 'Anthropogenic aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i=1, 10) /))1382 'swsrfas_ant', 'Anthropogenic aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1387 1383 TYPE(ctrl_out), SAVE :: o_swtoacs_ant = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1388 'swtoacs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /))1384 'swtoacs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1389 1385 TYPE(ctrl_out), SAVE :: o_swsrfcs_ant = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1390 'swsrfcs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /))1386 'swsrfcs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1391 1387 TYPE(ctrl_out), SAVE :: o_swtoacf_nat = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1392 'swtoacf_nat', 'Natural aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i=1, 10) /))1388 'swtoacf_nat', 'Natural aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1393 1389 TYPE(ctrl_out), SAVE :: o_swsrfcf_nat = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1394 'swsrfcf_nat', 'Natural aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i=1, 10) /))1390 'swsrfcf_nat', 'Natural aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1395 1391 TYPE(ctrl_out), SAVE :: o_swtoacf_ant = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1396 'swtoacf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i=1, 10) /))1392 'swtoacf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1397 1393 TYPE(ctrl_out), SAVE :: o_swsrfcf_ant = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1398 'swsrfcf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i=1, 10) /))1394 'swsrfcf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1399 1395 TYPE(ctrl_out), SAVE :: o_swtoacf_zero = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1400 'swtoacf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at TOA', 'W/m2', (/ ('', i=1, 10) /))1396 'swtoacf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at TOA', 'W/m2', (/ ('', i = 1, 10) /)) 1401 1397 TYPE(ctrl_out), SAVE :: o_swsrfcf_zero = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1402 'swsrfcf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at SRF', 'W/m2', (/ ('', i=1, 10) /))1398 'swsrfcf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at SRF', 'W/m2', (/ ('', i = 1, 10) /)) 1403 1399 TYPE(ctrl_out), SAVE :: o_cldncl = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1404 'cldncl', 'CDNC at top of liquid water cloud', 'm-3', (/ ('', i=1, 10) /))1400 'cldncl', 'CDNC at top of liquid water cloud', 'm-3', (/ ('', i = 1, 10) /)) 1405 1401 TYPE(ctrl_out), SAVE :: o_reffclwtop = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1406 'reffclwtop', 'Droplet effective radius at top of liquid water cloud', 'm', (/ ('', i=1, 10) /))1402 'reffclwtop', 'Droplet effective radius at top of liquid water cloud', 'm', (/ ('', i = 1, 10) /)) 1407 1403 TYPE(ctrl_out), SAVE :: o_cldnvi = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1408 'cldnvi', 'Column Integrated Cloud Droplet Number', 'm-2', (/ ('', i=1, 10) /))1404 'cldnvi', 'Column Integrated Cloud Droplet Number', 'm-2', (/ ('', i = 1, 10) /)) 1409 1405 TYPE(ctrl_out), SAVE :: o_lcc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1410 'lcc', 'Cloud liquid fraction at top of cloud', '1', (/ ('', i=1, 10) /))1411 1412 !--tropopause pressure1406 'lcc', 'Cloud liquid fraction at top of cloud', '1', (/ ('', i = 1, 10) /)) 1407 1408 !--tropopause pressure 1413 1409 TYPE(ctrl_out), SAVE :: o_p_tropopause = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1414 'p_tropopause', 'Tropopause pressure', 'Pa', (/ ('', i=1, 10) /))1415 !--tropopause height1410 'p_tropopause', 'Tropopause pressure', 'Pa', (/ ('', i = 1, 10) /)) 1411 !--tropopause height 1416 1412 TYPE(ctrl_out), SAVE :: o_z_tropopause = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1417 'z_tropopause', 'Tropopause height', 'm', (/ ('', i=1, 10) /))1418 !--tropopause temperature1413 'z_tropopause', 'Tropopause height', 'm', (/ ('', i = 1, 10) /)) 1414 !--tropopause temperature 1419 1415 TYPE(ctrl_out), SAVE :: o_t_tropopause = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1420 't_tropopause', 'Tropopause temperature', 'K', (/ ('', i=1, 10) /))1421 !--Added ThL1416 't_tropopause', 'Tropopause temperature', 'K', (/ ('', i = 1, 10) /)) 1417 !--Added ThL 1422 1418 TYPE(ctrl_out), SAVE :: o_col_O3_strato = ctrl_out((/2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1423 'colO3_strat','Ozone stratospheric column', 'DU', (/('', i=1, 10) /))1419 'colO3_strat', 'Ozone stratospheric column', 'DU', (/('', i = 1, 10) /)) 1424 1420 TYPE(ctrl_out), SAVE :: o_col_O3_tropo = ctrl_out((/2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1425 'colO3_trop','Ozone tropospheric column', 'DU', (/('', i=1, 10) /))1426 !--end add ThL1427 1428 !---CO2 fluxes for interactive CO2 configuration1421 'colO3_trop', 'Ozone tropospheric column', 'DU', (/('', i = 1, 10) /)) 1422 !--end add ThL 1423 1424 !---CO2 fluxes for interactive CO2 configuration 1429 1425 TYPE(ctrl_out), SAVE :: o_flx_co2_ff = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1430 'flx_co2_ff', 'CO2 flux from fossil fuel and cement', '1', (/ ('', i=1, 10) /))1426 'flx_co2_ff', 'CO2 flux from fossil fuel and cement', '1', (/ ('', i = 1, 10) /)) 1431 1427 TYPE(ctrl_out), SAVE :: o_flx_co2_bb = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1432 'flx_co2_bb', 'CO2 flux from biomass burning', '1', (/ ('', i=1, 10) /))1428 'flx_co2_bb', 'CO2 flux from biomass burning', '1', (/ ('', i = 1, 10) /)) 1433 1429 TYPE(ctrl_out), SAVE :: o_flx_co2_ocean = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1434 'flx_co2_ocean', 'CO2 flux from the ocean', '1', (/ ('', i=1, 10) /))1430 'flx_co2_ocean', 'CO2 flux from the ocean', '1', (/ ('', i = 1, 10) /)) 1435 1431 TYPE(ctrl_out), SAVE :: o_flx_co2_land = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1436 'flx_co2_land', 'CO2 flux from the land', '1', (/ ('', i=1, 10) /))1432 'flx_co2_land', 'CO2 flux from the land', '1', (/ ('', i = 1, 10) /)) 1437 1433 TYPE(ctrl_out), SAVE :: o_flx_co2_ocean_cor = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1438 'flx_co2_ocean_cor', 'correction of the CO2 flux from the ocean', 'kg CO2 m-2 s-1', (/ ('', i=1, 10) /))1434 'flx_co2_ocean_cor', 'correction of the CO2 flux from the ocean', 'kg CO2 m-2 s-1', (/ ('', i = 1, 10) /)) 1439 1435 TYPE(ctrl_out), SAVE :: o_flx_co2_land_cor = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1440 'flx_co2_land_cor', 'correction of the CO2 flux from the land', 'kg CO2 m-2 s-1', (/ ('', i=1, 10) /))1441 1442 !--extinction coefficient1436 'flx_co2_land_cor', 'correction of the CO2 flux from the land', 'kg CO2 m-2 s-1', (/ ('', i = 1, 10) /)) 1437 1438 !--extinction coefficient 1443 1439 TYPE(ctrl_out), SAVE :: o_ext_strat_550 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1444 'ext_strat_550', 'Strat. aerosol extinction coefficient at 550 nm', '1/m', (/ ('', i=1, 10) /))1440 'ext_strat_550', 'Strat. aerosol extinction coefficient at 550 nm', '1/m', (/ ('', i = 1, 10) /)) 1445 1441 TYPE(ctrl_out), SAVE :: o_ext_strat_1020 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1446 'ext_strat_1020', 'Strat. aerosol extinction coefficient at 1020 nm', '1/m', (/ ('', i=1, 10) /))1447 !--strat aerosol optical depth1442 'ext_strat_1020', 'Strat. aerosol extinction coefficient at 1020 nm', '1/m', (/ ('', i = 1, 10) /)) 1443 !--strat aerosol optical depth 1448 1444 TYPE(ctrl_out), SAVE :: o_tau_strat_550 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1449 'OD550_strat_only', 'Stratospheric Aerosol Optical depth at 550 nm ', '1', (/ ('', i=1, 10) /))1445 'OD550_strat_only', 'Stratospheric Aerosol Optical depth at 550 nm ', '1', (/ ('', i = 1, 10) /)) 1450 1446 TYPE(ctrl_out), SAVE :: o_tau_strat_1020 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1451 'OD1020_strat_only', 'Stratospheric Aerosol Optical depth at 1020 nm ', '1', (/ ('', i=1, 10) /))1452 !--chemistry1447 'OD1020_strat_only', 'Stratospheric Aerosol Optical depth at 1020 nm ', '1', (/ ('', i = 1, 10) /)) 1448 !--chemistry 1453 1449 TYPE(ctrl_out), SAVE :: o_R2SO4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1454 'R2SO4', 'H2SO4 mass fraction in aerosol', '%', (/ ('', i=1, 10) /))1450 'R2SO4', 'H2SO4 mass fraction in aerosol', '%', (/ ('', i = 1, 10) /)) 1455 1451 TYPE(ctrl_out), SAVE :: o_OCS_lifetime = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1456 'OCS_lifetime', 'OCS lifetime', 's', (/ ('', i=1, 10) /))1452 'OCS_lifetime', 'OCS lifetime', 's', (/ ('', i = 1, 10) /)) 1457 1453 TYPE(ctrl_out), SAVE :: o_SO2_lifetime = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1458 'SO2_lifetime', 'SO2 lifetime', 's', (/ ('', i=1, 10) /))1454 'SO2_lifetime', 'SO2 lifetime', 's', (/ ('', i = 1, 10) /)) 1459 1455 TYPE(ctrl_out), SAVE :: o_f_r_wet = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1460 'f_r_wet', 'Conversion factor dry to wet aerosol radius', '-', (/ ('', i=1, 10) /))1461 !--budget 3D1456 'f_r_wet', 'Conversion factor dry to wet aerosol radius', '-', (/ ('', i = 1, 10) /)) 1457 !--budget 3D 1462 1458 TYPE(ctrl_out), SAVE :: o_budg_3D_nucl = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1463 'budg_3D_nucl', 'H2SO4 nucleation mass flux', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /))1459 'budg_3D_nucl', 'H2SO4 nucleation mass flux', 'kg(S)/m2/layer/s', (/ ('', i = 1, 10) /)) 1464 1460 TYPE(ctrl_out), SAVE :: o_budg_3D_cond_evap = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1465 'budg_3D_cond_evap', 'H2SO4 condensation/evaporation mass flux', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /))1461 'budg_3D_cond_evap', 'H2SO4 condensation/evaporation mass flux', 'kg(S)/m2/layer/s', (/ ('', i = 1, 10) /)) 1466 1462 TYPE(ctrl_out), SAVE :: o_budg_3D_ocs_to_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1467 'budg_3D_ocs_to_so2', 'OCS mass flux converted to SO2', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /))1463 'budg_3D_ocs_to_so2', 'OCS mass flux converted to SO2', 'kg(S)/m2/layer/s', (/ ('', i = 1, 10) /)) 1468 1464 TYPE(ctrl_out), SAVE :: o_budg_3D_so2_to_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1469 'budg_3D_so2_to_h2so4', 'SO2 mass flux converted to H2SO4', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /))1465 'budg_3D_so2_to_h2so4', 'SO2 mass flux converted to H2SO4', 'kg(S)/m2/layer/s', (/ ('', i = 1, 10) /)) 1470 1466 TYPE(ctrl_out), SAVE :: o_budg_3D_backgr_ocs = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1471 'budg_3D_backgr_ocs', 'OCS background tendency', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /))1467 'budg_3D_backgr_ocs', 'OCS background tendency', 'kg(S)/m2/layer/s', (/ ('', i = 1, 10) /)) 1472 1468 TYPE(ctrl_out), SAVE :: o_budg_3D_backgr_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1473 'budg_3D_backgr_so2', 'SO2 background tendency', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /))1469 'budg_3D_backgr_so2', 'SO2 background tendency', 'kg(S)/m2/layer/s', (/ ('', i = 1, 10) /)) 1474 1470 TYPE(ctrl_out), SAVE :: o_vsed_aer = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1475 'vsed_aer', 'Strat. aerosol sedimentation velocity (mass-weighted)', 'm/s', (/ ('', i=1, 10) /))1476 !--budget 2D1471 'vsed_aer', 'Strat. aerosol sedimentation velocity (mass-weighted)', 'm/s', (/ ('', i = 1, 10) /)) 1472 !--budget 2D 1477 1473 TYPE(ctrl_out), SAVE :: o_budg_dep_dry_ocs = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1478 'budg_dep_dry_ocs', 'OCS dry deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1474 'budg_dep_dry_ocs', 'OCS dry deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1479 1475 TYPE(ctrl_out), SAVE :: o_budg_dep_wet_ocs = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1480 'budg_dep_wet_ocs', 'OCS wet deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1476 'budg_dep_wet_ocs', 'OCS wet deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1481 1477 TYPE(ctrl_out), SAVE :: o_budg_dep_dry_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1482 'budg_dep_dry_so2', 'SO2 dry deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1478 'budg_dep_dry_so2', 'SO2 dry deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1483 1479 TYPE(ctrl_out), SAVE :: o_budg_dep_wet_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1484 'budg_dep_wet_so2', 'SO2 wet deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1480 'budg_dep_wet_so2', 'SO2 wet deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1485 1481 TYPE(ctrl_out), SAVE :: o_budg_dep_dry_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1486 'budg_dep_dry_h2so4', 'H2SO4 dry deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1482 'budg_dep_dry_h2so4', 'H2SO4 dry deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1487 1483 TYPE(ctrl_out), SAVE :: o_budg_dep_wet_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1488 'budg_dep_wet_h2so4', 'H2SO4 wet deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1484 'budg_dep_wet_h2so4', 'H2SO4 wet deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1489 1485 TYPE(ctrl_out), SAVE :: o_budg_dep_dry_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1490 'budg_dep_dry_part', 'particle dry deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1486 'budg_dep_dry_part', 'particle dry deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1491 1487 TYPE(ctrl_out), SAVE :: o_budg_dep_wet_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1492 'budg_dep_wet_part', 'particle wet deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1488 'budg_dep_wet_part', 'particle wet deposition flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1493 1489 TYPE(ctrl_out), SAVE :: o_budg_emi_ocs = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1494 'budg_emi_ocs', 'OCS emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1490 'budg_emi_ocs', 'OCS emission flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1495 1491 TYPE(ctrl_out), SAVE :: o_budg_emi_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1496 'budg_emi_so2', 'SO2 emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1492 'budg_emi_so2', 'SO2 emission flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1497 1493 TYPE(ctrl_out), SAVE :: o_budg_emi_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1498 'budg_emi_h2so4', 'H2SO4 emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1494 'budg_emi_h2so4', 'H2SO4 emission flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1499 1495 TYPE(ctrl_out), SAVE :: o_budg_emi_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1500 'budg_emi_part', 'Particle emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1496 'budg_emi_part', 'Particle emission flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1501 1497 TYPE(ctrl_out), SAVE :: o_budg_ocs_to_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1502 'budg_ocs_to_so2', 'OCS to SO2 flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1498 'budg_ocs_to_so2', 'OCS to SO2 flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1503 1499 TYPE(ctrl_out), SAVE :: o_budg_so2_to_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1504 'budg_so2_to_h2so4', 'SO2 to H2SO4 flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1500 'budg_so2_to_h2so4', 'SO2 to H2SO4 flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1505 1501 TYPE(ctrl_out), SAVE :: o_budg_h2so4_to_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1506 'budg_h2so4_to_part', 'H2SO4 to part flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1502 'budg_h2so4_to_part', 'H2SO4 to part flux', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1507 1503 TYPE(ctrl_out), SAVE :: o_budg_sed_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1508 'budg_sed_part', 'Ground sedimentation flux of strat. particles', 'kg(S)/m2/s', (/ ('', i=1, 10) /))1509 !--surface PM25 due to strat aerosol1504 'budg_sed_part', 'Ground sedimentation flux of strat. particles', 'kg(S)/m2/s', (/ ('', i = 1, 10) /)) 1505 !--surface PM25 due to strat aerosol 1510 1506 TYPE(ctrl_out), SAVE :: o_surf_PM25_sulf = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1511 'surf_PM25_sulf', 'Sulfate PM2.5 concentration at the surface', 'ug/m3', (/ ('', i=1, 10) /))1512 1513 !!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1507 'surf_PM25_sulf', 'Sulfate PM2.5 concentration at the surface', 'ug/m3', (/ ('', i = 1, 10) /)) 1508 1509 !!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1514 1510 TYPE(ctrl_out), SAVE :: o_ec550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1515 'ec550aer', 'Extinction at 550nm', 'm^-1', (/ ('', i=1, 10) /))1511 'ec550aer', 'Extinction at 550nm', 'm^-1', (/ ('', i = 1, 10) /)) 1516 1512 TYPE(ctrl_out), SAVE :: o_lwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1517 'lwcon', 'Cloud liquid water content seen by radiation', 'kg/kg', (/ ('', i=1, 10) /))1513 'lwcon', 'Cloud liquid water content seen by radiation', 'kg/kg', (/ ('', i = 1, 10) /)) 1518 1514 TYPE(ctrl_out), SAVE :: o_iwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1519 'iwcon', 'Cloud ice water content seen by radiation', 'kg/kg', (/ ('', i=1, 10) /))1515 'iwcon', 'Cloud ice water content seen by radiation', 'kg/kg', (/ ('', i = 1, 10) /)) 1520 1516 TYPE(ctrl_out), SAVE :: o_temp = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1521 'temp', 'Air temperature', 'K', (/ ('', i=1, 10) /))1517 'temp', 'Air temperature', 'K', (/ ('', i = 1, 10) /)) 1522 1518 TYPE(ctrl_out), SAVE :: o_heat_volc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1523 'heat_volc', 'SW heating rate due to volcano', 'K/s', (/ ('', i=1, 10) /))1519 'heat_volc', 'SW heating rate due to volcano', 'K/s', (/ ('', i = 1, 10) /)) 1524 1520 TYPE(ctrl_out), SAVE :: o_cool_volc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1525 'cool_volc', 'LW cooling rate due to volcano', 'K/s', (/ ('', i=1, 10) /))1521 'cool_volc', 'LW cooling rate due to volcano', 'K/s', (/ ('', i = 1, 10) /)) 1526 1522 TYPE(ctrl_out), SAVE :: o_theta = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1527 'theta', 'Potential air temperature', 'K', (/ ('', i=1, 10) /))1523 'theta', 'Potential air temperature', 'K', (/ ('', i = 1, 10) /)) 1528 1524 TYPE(ctrl_out), SAVE :: o_ovap = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1529 'ovap', 'Specific humidity', 'kg/kg', (/ ('', i=1, 10) /))1525 'ovap', 'Specific humidity', 'kg/kg', (/ ('', i = 1, 10) /)) 1530 1526 TYPE(ctrl_out), SAVE :: o_ovapinit = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1531 'ovapinit', 'Specific humidity (begin of timestep)', 'kg/kg', (/ ('', i=1, 10) /))1527 'ovapinit', 'Specific humidity (begin of timestep)', 'kg/kg', (/ ('', i = 1, 10) /)) 1532 1528 TYPE(ctrl_out), SAVE :: o_oliq = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1533 'oliq', 'Liquid water', 'kg/kg', (/ ('', i=1, 10) /))1529 'oliq', 'Liquid water', 'kg/kg', (/ ('', i = 1, 10) /)) 1534 1530 TYPE(ctrl_out), SAVE :: o_ocond = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1535 'ocond', 'Condensed water', 'kg/kg', (/ ('', i=1, 10) /))1531 'ocond', 'Condensed water', 'kg/kg', (/ ('', i = 1, 10) /)) 1536 1532 TYPE(ctrl_out), SAVE :: o_qbs = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1537 'qbs', 'Specific content of blowing snow', 'kg/kg', (/ ('', i=1, 10) /))1533 'qbs', 'Specific content of blowing snow', 'kg/kg', (/ ('', i = 1, 10) /)) 1538 1534 TYPE(ctrl_out), SAVE :: o_wvapp = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1539 'wvapp', '', '', (/ ('', i=1, 10) /))1535 'wvapp', '', '', (/ ('', i = 1, 10) /)) 1540 1536 TYPE(ctrl_out), SAVE :: o_geop = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1541 'geop', 'Geopotential height', 'm2/s2', (/ ('', i=1, 10) /))1537 'geop', 'Geopotential height', 'm2/s2', (/ ('', i = 1, 10) /)) 1542 1538 TYPE(ctrl_out), SAVE :: o_vitu = ctrl_out((/ 2, 3, 4, 6, 10, 10, 11, 11, 11, 11/), & 1543 'vitu', 'Zonal wind', 'm/s', (/ ('', i=1, 10) /))1539 'vitu', 'Zonal wind', 'm/s', (/ ('', i = 1, 10) /)) 1544 1540 TYPE(ctrl_out), SAVE :: o_vitv = ctrl_out((/ 2, 3, 4, 6, 10, 10, 11, 11, 11, 11/), & 1545 'vitv', 'Meridional wind', 'm/s', (/ ('', i=1, 10) /))1541 'vitv', 'Meridional wind', 'm/s', (/ ('', i = 1, 10) /)) 1546 1542 TYPE(ctrl_out), SAVE :: o_vitw = ctrl_out((/ 2, 3, 10, 6, 10, 10, 11, 11, 11, 11/), & 1547 'vitw', 'Vertical wind', 'Pa/s', (/ ('', i=1, 10) /))1543 'vitw', 'Vertical wind', 'Pa/s', (/ ('', i = 1, 10) /)) 1548 1544 TYPE(ctrl_out), SAVE :: o_pres = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1549 'pres', 'Air pressure', 'Pa', (/ ('', i=1, 10) /))1545 'pres', 'Air pressure', 'Pa', (/ ('', i = 1, 10) /)) 1550 1546 TYPE(ctrl_out), SAVE :: o_paprs = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1551 'paprs', 'Air pressure Inter-Couches', 'Pa', (/ ('', i=1, 10) /))1547 'paprs', 'Air pressure Inter-Couches', 'Pa', (/ ('', i = 1, 10) /)) 1552 1548 TYPE(ctrl_out), SAVE :: o_mass = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1553 'mass', 'Masse Couches', 'kg/m2', (/ ('', i=1, 10) /))1549 'mass', 'Masse Couches', 'kg/m2', (/ ('', i = 1, 10) /)) 1554 1550 TYPE(ctrl_out), SAVE :: o_zfull = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1555 'zfull', 'Altitude of full pressure levels', 'm', (/ ('', i=1, 10) /))1551 'zfull', 'Altitude of full pressure levels', 'm', (/ ('', i = 1, 10) /)) 1556 1552 TYPE(ctrl_out), SAVE :: o_zhalf = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1557 'zhalf', 'Altitude of half pressure levels', 'm', (/ ('', i=1, 10) /))1553 'zhalf', 'Altitude of half pressure levels', 'm', (/ ('', i = 1, 10) /)) 1558 1554 TYPE(ctrl_out), SAVE :: o_rneb = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1559 'rneb', 'Cloud fraction', '-', (/ ('', i=1, 10) /))1555 'rneb', 'Cloud fraction', '-', (/ ('', i = 1, 10) /)) 1560 1556 TYPE(ctrl_out), SAVE :: o_cldfraliq = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1561 'cldfraliq', 'Liquid fraction of the cloud', '-', (/ ('', i=1, 10) /))1557 'cldfraliq', 'Liquid fraction of the cloud', '-', (/ ('', i = 1, 10) /)) 1562 1558 TYPE(ctrl_out), SAVE :: o_sigma2_icefracturb = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1563 'sigma2_icefracturb', 'Variance of the diagnostic supersaturation distribution (icefrac_turb) [-]', '-', (/ ('', i=1, 10) /))1559 'sigma2_icefracturb', 'Variance of the diagnostic supersaturation distribution (icefrac_turb) [-]', '-', (/ ('', i = 1, 10) /)) 1564 1560 TYPE(ctrl_out), SAVE :: o_mean_icefracturb = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1565 'mean_icefracturb', 'Mean of the diagnostic supersaturation distribution (icefrac_turb) [-]', '-', (/ ('', i=1, 10) /))1566 1567 TYPE(ctrl_out), SAVE :: o_rnebjn = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), &1568 'rnebjn', 'Cloud fraction in day', '-', (/ ('', i=1, 10) /))1561 'mean_icefracturb', 'Mean of the diagnostic supersaturation distribution (icefrac_turb) [-]', '-', (/ ('', i = 1, 10) /)) 1562 1563 TYPE(ctrl_out), SAVE :: o_rnebjn = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1564 'rnebjn', 'Cloud fraction in day', '-', (/ ('', i = 1, 10) /)) 1569 1565 TYPE(ctrl_out), SAVE :: o_rnebcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1570 'rnebcon', 'Convective Cloud Fraction', '-', (/ ('', i=1, 10) /))1566 'rnebcon', 'Convective Cloud Fraction', '-', (/ ('', i = 1, 10) /)) 1571 1567 TYPE(ctrl_out), SAVE :: o_rnebls = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1572 'rnebls', 'LS Cloud fraction', '-', (/ ('', i=1, 10) /))1568 'rnebls', 'LS Cloud fraction', '-', (/ ('', i = 1, 10) /)) 1573 1569 TYPE(ctrl_out), SAVE :: o_rneblsvol = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1574 'rneblsvol', 'LS Cloud fraction by volume', '-', (/ ('', i=1, 10) /))1570 'rneblsvol', 'LS Cloud fraction by volume', '-', (/ ('', i = 1, 10) /)) 1575 1571 TYPE(ctrl_out), SAVE :: o_pfraclr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1576 'pfraclr', 'LS precipitation fraction clear-sky part', '-', (/ ('', i=1, 10) /))1572 'pfraclr', 'LS precipitation fraction clear-sky part', '-', (/ ('', i = 1, 10) /)) 1577 1573 TYPE(ctrl_out), SAVE :: o_pfracld = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1578 'pfracld', 'LS precipitation fraction cloudy part', '-', (/ ('', i=1, 10) /))1574 'pfracld', 'LS precipitation fraction cloudy part', '-', (/ ('', i = 1, 10) /)) 1579 1575 TYPE(ctrl_out), SAVE :: o_qrainlsc = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1580 'qrainlsc', 'LS specific rain content', 'kg/kg', (/ ('', i=1, 10) /))1576 'qrainlsc', 'LS specific rain content', 'kg/kg', (/ ('', i = 1, 10) /)) 1581 1577 TYPE(ctrl_out), SAVE :: o_qsnowlsc = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1582 'qsnowlsc', 'LS specific snow content', 'kg/kg', (/ ('', i=1, 10) /))1578 'qsnowlsc', 'LS specific snow content', 'kg/kg', (/ ('', i = 1, 10) /)) 1583 1579 TYPE(ctrl_out), SAVE :: o_dqreva = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1584 'dqreva', 'LS rain tendency due to evaporation', 'kg/kg/s', (/ ('', i=1, 10) /))1585 1586 'dqrauto', 'LS rain tendency due to autoconversion', 'kg/kg/s', (/ ('', i=1, 10) /))1580 'dqreva', 'LS rain tendency due to evaporation', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1581 TYPE(ctrl_out), SAVE :: o_dqrauto = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1582 'dqrauto', 'LS rain tendency due to autoconversion', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1587 1583 TYPE(ctrl_out), SAVE :: o_dqrcol = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1588 'dqrcol', 'LS rain tendency due to collection', 'kg/kg/s', (/ ('', i=1, 10) /))1584 'dqrcol', 'LS rain tendency due to collection', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1589 1585 TYPE(ctrl_out), SAVE :: o_dqrmelt = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1590 'dqrmelt', 'LS rain tendency due to melting', 'kg/kg/s', (/ ('', i=1, 10) /))1586 'dqrmelt', 'LS rain tendency due to melting', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1591 1587 TYPE(ctrl_out), SAVE :: o_dqrfreez = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1592 'dqrfreez', 'LS rain tendency due to freezing', 'kg/kg/s', (/ ('', i=1, 10) /))1588 'dqrfreez', 'LS rain tendency due to freezing', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1593 1589 TYPE(ctrl_out), SAVE :: o_dqssub = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1594 'dqssub', 'LS snow tendency due to sublimation', 'kg/kg/s', (/ ('', i=1, 10) /))1590 'dqssub', 'LS snow tendency due to sublimation', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1595 1591 TYPE(ctrl_out), SAVE :: o_dqsauto = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1596 'dqsauto', 'LS snow tendency due to autoconversion', 'kg/kg/s', (/ ('', i=1, 10) /))1592 'dqsauto', 'LS snow tendency due to autoconversion', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1597 1593 TYPE(ctrl_out), SAVE :: o_dqsagg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1598 'dqsagg', 'LS snow tendency due to aggregation', 'kg/kg/s', (/ ('', i=1, 10) /))1594 'dqsagg', 'LS snow tendency due to aggregation', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1599 1595 TYPE(ctrl_out), SAVE :: o_dqsrim = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1600 'dqsrim', 'LS snow tendency due to riming', 'kg/kg/s', (/ ('', i=1, 10) /))1596 'dqsrim', 'LS snow tendency due to riming', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1601 1597 TYPE(ctrl_out), SAVE :: o_dqsmelt = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1602 'dqsmelt', 'LS snow tendency due to melting', 'kg/kg/s', (/ ('', i=1, 10) /))1598 'dqsmelt', 'LS snow tendency due to melting', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1603 1599 TYPE(ctrl_out), SAVE :: o_dqsfreez = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1604 'dqsfreez', 'LS snow tendency due to freezing', 'kg/kg/s', (/ ('', i=1, 10) /))1600 'dqsfreez', 'LS snow tendency due to freezing', 'kg/kg/s', (/ ('', i = 1, 10) /)) 1605 1601 TYPE(ctrl_out), SAVE :: o_rhum = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1606 'rhum', 'Relative humidity', '-', (/ ('', i=1, 10) /))1602 'rhum', 'Relative humidity', '-', (/ ('', i = 1, 10) /)) 1607 1603 TYPE(ctrl_out), SAVE :: o_rhl = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1608 'rhl', 'Relative humidity wrt liquid', '%', (/ ('', i=1, 10) /))1604 'rhl', 'Relative humidity wrt liquid', '%', (/ ('', i = 1, 10) /)) 1609 1605 TYPE(ctrl_out), SAVE :: o_rhi = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1610 'rhi', 'Relative humidity wrt ice', '%', (/ ('', i=1, 10) /))1606 'rhi', 'Relative humidity wrt ice', '%', (/ ('', i = 1, 10) /)) 1611 1607 TYPE(ctrl_out), SAVE :: o_ozone = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1612 'ozone', 'Ozone mole fraction', '-', (/ ('', i=1, 10) /))1608 'ozone', 'Ozone mole fraction', '-', (/ ('', i = 1, 10) /)) 1613 1609 TYPE(ctrl_out), SAVE :: o_ozone_light = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1614 'ozone_daylight', 'Daylight ozone mole fraction', '-', (/ ('', i=1, 10) /))1610 'ozone_daylight', 'Daylight ozone mole fraction', '-', (/ ('', i = 1, 10) /)) 1615 1611 TYPE(ctrl_out), SAVE :: o_upwd = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1616 'upwd', 'saturated updraft', 'kg/m2/s', (/ ('', i=1, 10) /))1612 'upwd', 'saturated updraft', 'kg/m2/s', (/ ('', i = 1, 10) /)) 1617 1613 TYPE(ctrl_out), SAVE :: o_epmax_diag = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1618 'epmax', 'epmax en fn cape', 'su', (/ ('', i=1, 10) /))1614 'epmax', 'epmax en fn cape', 'su', (/ ('', i = 1, 10) /)) 1619 1615 TYPE(ctrl_out), SAVE :: o_ep = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1620 'ep', 'ep', 'su', (/ ('', i=1, 10) /))1616 'ep', 'ep', 'su', (/ ('', i = 1, 10) /)) 1621 1617 TYPE(ctrl_out), SAVE :: o_duphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1622 'duphy', 'Physics du', 'm/s2', (/ ('', i=1, 10) /))1618 'duphy', 'Physics du', 'm/s2', (/ ('', i = 1, 10) /)) 1623 1619 TYPE(ctrl_out), SAVE :: o_dtphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1624 'dtphy', 'Physics dT', 'K/s', (/ ('', i=1, 10) /))1620 'dtphy', 'Physics dT', 'K/s', (/ ('', i = 1, 10) /)) 1625 1621 TYPE(ctrl_out), SAVE :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1626 'dqphy', 'Physics dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1622 'dqphy', 'Physics dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1627 1623 TYPE(ctrl_out), SAVE :: o_dqphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1628 'dqphy2d', 'Physics dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1624 'dqphy2d', 'Physics dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1629 1625 TYPE(ctrl_out), SAVE :: o_dqlphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1630 'dqlphy', 'Physics dQL', '(kg/kg)/s', (/ ('', i=1, 10) /))1626 'dqlphy', 'Physics dQL', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1631 1627 TYPE(ctrl_out), SAVE :: o_dqlphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1632 'dqlphy2d', 'Physics dQL', '(kg/m2)/s', (/ ('', i=1, 10) /))1628 'dqlphy2d', 'Physics dQL', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1633 1629 TYPE(ctrl_out), SAVE :: o_dqsphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1634 'dqsphy', 'Physics dQS', '(kg/kg)/s', (/ ('', i=1, 10) /))1630 'dqsphy', 'Physics dQS', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1635 1631 TYPE(ctrl_out), SAVE :: o_dqsphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1636 'dqsphy2d', 'Physics dQS', '(kg/m2)/s', (/ ('', i=1, 10) /))1632 'dqsphy2d', 'Physics dQS', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1637 1633 TYPE(ctrl_out), SAVE :: o_dqbsphy = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1638 'dqbsphy', 'Physics dQBS', '(kg/kg)/s', (/ ('', i=1, 10) /))1634 'dqbsphy', 'Physics dQBS', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1639 1635 TYPE(ctrl_out), SAVE :: o_dqbsphy2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1640 'dqbsphy2d', 'Physics dQBS', '(kg/m2)/s', (/ ('', i=1, 10) /))1636 'dqbsphy2d', 'Physics dQBS', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1641 1637 TYPE(ctrl_out), SAVE :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1642 'pr_con_l', 'Convective precipitation lic', ' ', (/ ('', i=1, 10) /))1638 'pr_con_l', 'Convective precipitation lic', ' ', (/ ('', i = 1, 10) /)) 1643 1639 TYPE(ctrl_out), SAVE :: o_pr_con_i = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1644 'pr_con_i', 'Convective precipitation ice', ' ', (/ ('', i=1, 10) /))1640 'pr_con_i', 'Convective precipitation ice', ' ', (/ ('', i = 1, 10) /)) 1645 1641 TYPE(ctrl_out), SAVE :: o_pr_lsc_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1646 'pr_lsc_l', 'Large scale precipitation lic', ' ', (/ ('', i=1, 10) /))1642 'pr_lsc_l', 'Large scale precipitation lic', ' ', (/ ('', i = 1, 10) /)) 1647 1643 TYPE(ctrl_out), SAVE :: o_pr_lsc_i = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1648 'pr_lsc_i', 'Large scale precipitation ice', ' ', (/ ('', i=1, 10) /))1644 'pr_lsc_i', 'Large scale precipitation ice', ' ', (/ ('', i = 1, 10) /)) 1649 1645 TYPE(ctrl_out), SAVE :: o_pr_bs = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1650 'pr_bs', 'profile of blowing snow flux', ' ', (/ ('', i=1, 10) /))1646 'pr_bs', 'profile of blowing snow flux', ' ', (/ ('', i = 1, 10) /)) 1651 1647 TYPE(ctrl_out), SAVE :: o_re = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1652 're', 'Cloud droplet effective radius', 'um', (/ ('', i=1, 10) /))1648 're', 'Cloud droplet effective radius', 'um', (/ ('', i = 1, 10) /)) 1653 1649 TYPE(ctrl_out), SAVE :: o_fl = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1654 'fl', 'Denominator of Cloud droplet effective radius', ' ', (/ ('', i=1, 10) /))1655 TYPE(ctrl_out), SAVE :: o_scdnc = ctrl_out((/ 2, 1656 'scdnc', 'Cloud droplet number concentration', 'm-3', (/ ('', i=1, 10) /))1657 TYPE(ctrl_out), SAVE :: o_reffclws = ctrl_out((/ 2, 1658 'reffclws', 'Stratiform Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i=1, 10) /))1659 TYPE(ctrl_out), SAVE :: o_reffclwc = ctrl_out((/ 2, 1660 'reffclwc', 'Convective Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i=1, 10) /))1661 TYPE(ctrl_out), SAVE :: o_lcc3d = ctrl_out((/ 2, 1662 'lcc3d', 'Cloud liquid fraction', '1', (/ ('', i=1, 10) /))1663 TYPE(ctrl_out), SAVE :: o_lcc3dcon = ctrl_out((/ 2, 1664 'lcc3dcon', 'Convective cloud liquid fraction', '1', (/ ('', i=1, 10) /))1665 TYPE(ctrl_out), SAVE :: o_lcc3dstra = ctrl_out((/ 2, 1666 'lcc3dstra', 'Stratiform cloud liquid fraction', '1', (/ ('', i=1, 10) /))1667 TYPE(ctrl_out), SAVE :: o_icc3dcon = ctrl_out((/ 2, 1668 'icc3dcon', 'Convective cloud ice fraction', '1', (/ ('', i=1, 10) /))1669 TYPE(ctrl_out), SAVE :: o_icc3dstra = ctrl_out((/ 2, 1670 'icc3dstra', 'Stratiform cloud ice fraction', '1', (/ ('', i=1, 10) /))1671 TYPE(ctrl_out), SAVE :: o_cldicemxrat = ctrl_out((/ 2, 1672 'cldicemxrat', 'Cloud Ice Mixing Ratio', '1', (/ ('', i=1, 10) /))1673 TYPE(ctrl_out), SAVE :: o_cldwatmxrat = ctrl_out((/ 2, 1674 'cldwatmxrat', 'Cloud Water Mixing Ratio', '1', (/ ('', i=1, 10) /))1675 TYPE(ctrl_out), SAVE :: o_solbnd = ctrl_out((/ 2, 1676 'solbnd', 'Top-of-Atmosphere Solar Insolation for each band', 'W m-2', (/ ('', i=1, 10) /))1677 TYPE(ctrl_out), SAVE :: o_stratomask = ctrl_out((/ 2, 1678 'stratomask', 'Stratospheric fraction', '1', (/ ('', i=1, 10) /))1679 !FC1680 TYPE(ctrl_out), SAVE :: o_zxfluxt = ctrl_out((/ 2, 1681 'fluxt', 'flux h ', 'W/m2', (/ ('', i=1, 10) /))1682 TYPE(ctrl_out), SAVE :: o_zxfluxq = ctrl_out((/ 2, 1683 'fluxq', 'flux q ', 'kg/(s*m2)', (/ ('', i=1, 10) /))1684 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1685 1686 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_albe_srf 1687 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_ter', "Albedo VIS surf. "//clnsurf(1),"-", (/ ('', i=1, 10) /)), &1688 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_lic', "Albedo VIS surf. "//clnsurf(2),"-", (/ ('', i=1, 10) /)), &1689 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_oce', "Albedo VIS surf. "//clnsurf(3),"-", (/ ('', i=1, 10) /)), &1690 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_sic', "Albedo VIS surf. "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /)1691 1692 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_ages_srf 1693 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_ter', "Snow age", "day", (/ ('', i=1, 10) /)), &1694 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_lic', "Snow age", "day", (/ ('', i=1, 10) /)), &1695 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_oce',"Snow age", "day", (/ ('', i=1, 10) /)), &1696 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_sic',"Snow age", "day", (/ ('', i=1, 10) /)) /)1697 1698 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_snow_srf 1699 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_ter', "Snow", "kg/m2", (/ ('', i=1, 10) /)), &1700 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_lic', "Snow", "kg/m2", (/ ('', i=1, 10) /)), &1701 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_oce',"Snow", "kg/m2", (/ ('', i=1, 10) /)), &1702 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_sic',"Snow", "kg/m2", (/ ('', i=1, 10) /)) /)1703 1704 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_z0m_srf 1705 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_ter', "Surface roughness "//clnsurf(1),"m", (/ ('', i=1, 10) /)), &1706 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_lic', "Surface roughness "//clnsurf(2),"m", (/ ('', i=1, 10) /)), &1707 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_oce', "Surface roughness "//clnsurf(3),"m", (/ ('', i=1, 10) /)), &1708 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_sic', "Surface roughness "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /)1709 1710 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_z0h_srf 1711 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_ter', "Surface roughness "//clnsurf(1),"m", (/ ('', i=1, 10) /)), &1712 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_lic', "Surface roughness "//clnsurf(2),"m", (/ ('', i=1, 10) /)), &1713 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_oce', "Surface roughness "//clnsurf(3),"m", (/ ('', i=1, 10) /)), &1714 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_sic', "Surface roughness "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /)1650 'fl', 'Denominator of Cloud droplet effective radius', ' ', (/ ('', i = 1, 10) /)) 1651 TYPE(ctrl_out), SAVE :: o_scdnc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1652 'scdnc', 'Cloud droplet number concentration', 'm-3', (/ ('', i = 1, 10) /)) 1653 TYPE(ctrl_out), SAVE :: o_reffclws = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1654 'reffclws', 'Stratiform Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i = 1, 10) /)) 1655 TYPE(ctrl_out), SAVE :: o_reffclwc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1656 'reffclwc', 'Convective Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i = 1, 10) /)) 1657 TYPE(ctrl_out), SAVE :: o_lcc3d = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1658 'lcc3d', 'Cloud liquid fraction', '1', (/ ('', i = 1, 10) /)) 1659 TYPE(ctrl_out), SAVE :: o_lcc3dcon = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1660 'lcc3dcon', 'Convective cloud liquid fraction', '1', (/ ('', i = 1, 10) /)) 1661 TYPE(ctrl_out), SAVE :: o_lcc3dstra = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1662 'lcc3dstra', 'Stratiform cloud liquid fraction', '1', (/ ('', i = 1, 10) /)) 1663 TYPE(ctrl_out), SAVE :: o_icc3dcon = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1664 'icc3dcon', 'Convective cloud ice fraction', '1', (/ ('', i = 1, 10) /)) 1665 TYPE(ctrl_out), SAVE :: o_icc3dstra = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1666 'icc3dstra', 'Stratiform cloud ice fraction', '1', (/ ('', i = 1, 10) /)) 1667 TYPE(ctrl_out), SAVE :: o_cldicemxrat = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1668 'cldicemxrat', 'Cloud Ice Mixing Ratio', '1', (/ ('', i = 1, 10) /)) 1669 TYPE(ctrl_out), SAVE :: o_cldwatmxrat = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1670 'cldwatmxrat', 'Cloud Water Mixing Ratio', '1', (/ ('', i = 1, 10) /)) 1671 TYPE(ctrl_out), SAVE :: o_solbnd = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1672 'solbnd', 'Top-of-Atmosphere Solar Insolation for each band', 'W m-2', (/ ('', i = 1, 10) /)) 1673 TYPE(ctrl_out), SAVE :: o_stratomask = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1674 'stratomask', 'Stratospheric fraction', '1', (/ ('', i = 1, 10) /)) 1675 !FC 1676 TYPE(ctrl_out), SAVE :: o_zxfluxt = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1677 'fluxt', 'flux h ', 'W/m2', (/ ('', i = 1, 10) /)) 1678 TYPE(ctrl_out), SAVE :: o_zxfluxq = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1679 'fluxq', 'flux q ', 'kg/(s*m2)', (/ ('', i = 1, 10) /)) 1680 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1681 1682 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_albe_srf = (/ & 1683 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/), 'albe_ter', "Albedo VIS surf. " // clnsurf(1), "-", (/ ('', i = 1, 10) /)), & 1684 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/), 'albe_lic', "Albedo VIS surf. " // clnsurf(2), "-", (/ ('', i = 1, 10) /)), & 1685 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/), 'albe_oce', "Albedo VIS surf. " // clnsurf(3), "-", (/ ('', i = 1, 10) /)), & 1686 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/), 'albe_sic', "Albedo VIS surf. " // clnsurf(4), "-", (/ ('', i = 1, 10) /)) /) 1687 1688 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_ages_srf = (/ & 1689 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ages_ter', "Snow age", "day", (/ ('', i = 1, 10) /)), & 1690 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ages_lic', "Snow age", "day", (/ ('', i = 1, 10) /)), & 1691 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ages_oce', "Snow age", "day", (/ ('', i = 1, 10) /)), & 1692 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ages_sic', "Snow age", "day", (/ ('', i = 1, 10) /)) /) 1693 1694 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_snow_srf = (/ & 1695 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'snow_ter', "Snow", "kg/m2", (/ ('', i = 1, 10) /)), & 1696 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'snow_lic', "Snow", "kg/m2", (/ ('', i = 1, 10) /)), & 1697 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'snow_oce', "Snow", "kg/m2", (/ ('', i = 1, 10) /)), & 1698 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'snow_sic', "Snow", "kg/m2", (/ ('', i = 1, 10) /)) /) 1699 1700 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_z0m_srf = (/ & 1701 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0m_ter', "Surface roughness " // clnsurf(1), "m", (/ ('', i = 1, 10) /)), & 1702 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0m_lic', "Surface roughness " // clnsurf(2), "m", (/ ('', i = 1, 10) /)), & 1703 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0m_oce', "Surface roughness " // clnsurf(3), "m", (/ ('', i = 1, 10) /)), & 1704 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0m_sic', "Surface roughness " // clnsurf(4), "m", (/ ('', i = 1, 10) /)) /) 1705 1706 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_z0h_srf = (/ & 1707 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0h_ter', "Surface roughness " // clnsurf(1), "m", (/ ('', i = 1, 10) /)), & 1708 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0h_lic', "Surface roughness " // clnsurf(2), "m", (/ ('', i = 1, 10) /)), & 1709 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0h_oce', "Surface roughness " // clnsurf(3), "m", (/ ('', i = 1, 10) /)), & 1710 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/), 'z0h_sic', "Surface roughness " // clnsurf(4), "m", (/ ('', i = 1, 10) /)) /) 1715 1711 1716 1712 TYPE(ctrl_out), SAVE :: o_alb1 = ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1717 'alb1', 'Surface VIS albedo', '-', (/ ('', i=1, 10) /))1713 'alb1', 'Surface VIS albedo', '-', (/ ('', i = 1, 10) /)) 1718 1714 TYPE(ctrl_out), SAVE :: o_alb2 = ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1719 'alb2', 'Surface Near IR albedo', '-', (/ ('', i=1, 10) /))1715 'alb2', 'Surface Near IR albedo', '-', (/ ('', i = 1, 10) /)) 1720 1716 TYPE(ctrl_out), SAVE :: o_clwcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1721 'clwcon', 'Convective Cloud Liquid water content', 'kg/kg', (/ ('', i=1, 10) /))1717 'clwcon', 'Convective Cloud Liquid water content', 'kg/kg', (/ ('', i = 1, 10) /)) 1722 1718 TYPE(ctrl_out), SAVE :: o_Mipsh = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1723 'Mipsh', 'mass flux shed from adiab. ascents', 'kg/m2/s', (/ ('', i=1, 10) /))1719 'Mipsh', 'mass flux shed from adiab. ascents', 'kg/m2/s', (/ ('', i = 1, 10) /)) 1724 1720 TYPE(ctrl_out), SAVE :: o_Ma = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1725 'Ma', 'undilute adiab updraft mass flux', 'kg/m2/s', (/ ('', i=1, 10) /))1721 'Ma', 'undilute adiab updraft mass flux', 'kg/m2/s', (/ ('', i = 1, 10) /)) 1726 1722 TYPE(ctrl_out), SAVE :: o_dnwd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1727 'dnwd', 'saturated downdraft', 'kg/m2/s', (/ ('', i=1, 10) /))1723 'dnwd', 'saturated downdraft', 'kg/m2/s', (/ ('', i = 1, 10) /)) 1728 1724 TYPE(ctrl_out), SAVE :: o_dnwd0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1729 'dnwd0', 'unsat. downdraft', 'kg/m2/s', (/ ('', i=1, 10) /))1725 'dnwd0', 'unsat. downdraft', 'kg/m2/s', (/ ('', i = 1, 10) /)) 1730 1726 TYPE(ctrl_out), SAVE :: o_mc = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1731 'mc', 'Convective mass flux', 'kg/m2/s', (/ ('', i=1, 10) /))1727 'mc', 'Convective mass flux', 'kg/m2/s', (/ ('', i = 1, 10) /)) 1732 1728 TYPE(ctrl_out), SAVE :: o_ftime_deepcv = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1733 'ftime_deepcv', 'Fraction of time deep convection Occurs', ' ', (/ ('', i=1, 10) /))1729 'ftime_deepcv', 'Fraction of time deep convection Occurs', ' ', (/ ('', i = 1, 10) /)) 1734 1730 TYPE(ctrl_out), SAVE :: o_ftime_con = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1735 'ftime_con', 'Fraction of time convection Occurs', ' ', (/ ('', i=1, 10) /))1736 !!jyg 'ftime_con', 'Fraction of time convection Occurs', ' ', &1737 !!jyg (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', & 1738 !!jyg 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /))1731 'ftime_con', 'Fraction of time convection Occurs', ' ', (/ ('', i = 1, 10) /)) 1732 !!jyg 'ftime_con', 'Fraction of time convection Occurs', ' ', & 1733 !!jyg (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', & 1734 !!jyg 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) 1739 1735 TYPE(ctrl_out), SAVE :: o_dtdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1740 'dtdyn', 'Dynamics dT', 'K/s', (/ ('', i=1, 10) /))1736 'dtdyn', 'Dynamics dT', 'K/s', (/ ('', i = 1, 10) /)) 1741 1737 TYPE(ctrl_out), SAVE :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1742 'dqdyn', 'Dynamics dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1738 'dqdyn', 'Dynamics dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1743 1739 TYPE(ctrl_out), SAVE :: o_dqdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1744 'dqdyn2d', 'Dynamics dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1740 'dqdyn2d', 'Dynamics dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1745 1741 TYPE(ctrl_out), SAVE :: o_dqldyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1746 'dqldyn', 'Dynamics dQL', '(kg/kg)/s', (/ ('', i=1, 10) /))1742 'dqldyn', 'Dynamics dQL', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1747 1743 TYPE(ctrl_out), SAVE :: o_dqldyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1748 'dqldyn2d', 'Dynamics dQL', '(kg/m2)/s', (/ ('', i=1, 10) /))1744 'dqldyn2d', 'Dynamics dQL', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1749 1745 TYPE(ctrl_out), SAVE :: o_dqsdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1750 'dqsdyn', 'Dynamics dQS', '(kg/kg)/s', (/ ('', i=1, 10) /))1746 'dqsdyn', 'Dynamics dQS', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1751 1747 TYPE(ctrl_out), SAVE :: o_dqsdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1752 'dqsdyn2d', 'Dynamics dQS', '(kg/m2)/s', (/ ('', i=1, 10) /))1748 'dqsdyn2d', 'Dynamics dQS', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1753 1749 TYPE(ctrl_out), SAVE :: o_dqbsdyn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1754 'dqbsdyn', 'Dynamics dQBS', '(kg/kg)/s', (/ ('', i=1, 10) /))1750 'dqbsdyn', 'Dynamics dQBS', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1755 1751 TYPE(ctrl_out), SAVE :: o_dqbsdyn2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1756 'dqbsdyn2d', 'Dynamics dQBS', '(kg/m2)/s', (/ ('', i=1, 10) /))1752 'dqbsdyn2d', 'Dynamics dQBS', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1757 1753 TYPE(ctrl_out), SAVE :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1758 'dudyn', 'Dynamics dU', 'm/s2', (/ ('', i=1, 10) /))1754 'dudyn', 'Dynamics dU', 'm/s2', (/ ('', i = 1, 10) /)) 1759 1755 TYPE(ctrl_out), SAVE :: o_dvdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1760 'dvdyn', 'Dynamics dV', 'm/s2', (/ ('', i=1, 10) /))1756 'dvdyn', 'Dynamics dV', 'm/s2', (/ ('', i = 1, 10) /)) 1761 1757 TYPE(ctrl_out), SAVE :: o_dtcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1762 'dtcon', 'Convection dT', 'K/s', (/ ('', i=1, 10) /))1758 'dtcon', 'Convection dT', 'K/s', (/ ('', i = 1, 10) /)) 1763 1759 TYPE(ctrl_out), SAVE :: o_ducon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1764 'ducon', 'Convection du', 'm/s2', (/ ('', i=1, 10) /))1760 'ducon', 'Convection du', 'm/s2', (/ ('', i = 1, 10) /)) 1765 1761 TYPE(ctrl_out), SAVE :: o_dvcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1766 'dvcon', 'Convection dv', 'm/s2', (/ ('', i=1, 10) /))1762 'dvcon', 'Convection dv', 'm/s2', (/ ('', i = 1, 10) /)) 1767 1763 TYPE(ctrl_out), SAVE :: o_dqcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1768 'dqcon', 'Convection dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1764 'dqcon', 'Convection dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1769 1765 TYPE(ctrl_out), SAVE :: o_dqcon2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1770 'dqcon2d', 'Convection dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1766 'dqcon2d', 'Convection dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1771 1767 TYPE(ctrl_out), SAVE :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1772 'dtwak', 'Wake dT', 'K/s', (/ ('', i=1, 10) /))1768 'dtwak', 'Wake dT', 'K/s', (/ ('', i = 1, 10) /)) 1773 1769 TYPE(ctrl_out), SAVE :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1774 'dqwak', 'Wake dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1770 'dqwak', 'Wake dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1775 1771 TYPE(ctrl_out), SAVE :: o_dqwak2d = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1776 'dqwak2d', 'Wake dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1772 'dqwak2d', 'Wake dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1777 1773 TYPE(ctrl_out), SAVE :: o_cv_gen = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1778 'cv_gen', 'Cumulonimbus genesis', '1/(m2 s)', (/ ('', i=1, 10) /))1774 'cv_gen', 'Cumulonimbus genesis', '1/(m2 s)', (/ ('', i = 1, 10) /)) 1779 1775 TYPE(ctrl_out), SAVE :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1780 'wake_h', 'wake_h', '-', (/ ('', i=1, 10) /))1776 'wake_h', 'wake_h', '-', (/ ('', i = 1, 10) /)) 1781 1777 TYPE(ctrl_out), SAVE :: o_wake_dens = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1782 'wake_dens', 'number of wakes per m2', '1/m2', (/ ('', i=1, 10) /))1778 'wake_dens', 'number of wakes per m2', '1/m2', (/ ('', i = 1, 10) /)) 1783 1779 TYPE(ctrl_out), SAVE :: o_wake_s = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1784 'wake_s', 'wake_s', '-', (/ ('', i=1, 10) /))1780 'wake_s', 'wake_s', '-', (/ ('', i = 1, 10) /)) 1785 1781 TYPE(ctrl_out), SAVE :: o_wake_deltat = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1786 'wake_deltat', 'wake_deltat', ' ', (/ ('', i=1, 10) /))1782 'wake_deltat', 'wake_deltat', ' ', (/ ('', i = 1, 10) /)) 1787 1783 TYPE(ctrl_out), SAVE :: o_wake_deltaq = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1788 'wake_deltaq', 'wake_deltaq', ' ', (/ ('', i=1, 10) /))1784 'wake_deltaq', 'wake_deltaq', ' ', (/ ('', i = 1, 10) /)) 1789 1785 TYPE(ctrl_out), SAVE :: o_wake_omg = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1790 'wake_omg', 'wake_omg', 'Pa/s', (/ ('', i=1, 10) /))1791 TYPE(ctrl_out), SAVE :: o_wdtrainA = ctrl_out((/ 4, 5, 10, 1792 'wdtrainA', 'precipitation from AA', '-', (/ ('', i=1, 10) /))1793 TYPE(ctrl_out), SAVE :: o_wdtrainS = ctrl_out((/ 4, 5, 10, 1794 'wdtrainS', 'precipitation from shedding of AA', '-', (/ ('', i=1, 10) /))1795 TYPE(ctrl_out), SAVE :: o_wdtrainM = ctrl_out((/ 4, 5, 10, 1796 'wdtrainM', 'precipitation from mixture', '-', (/ ('', i=1, 10) /))1786 'wake_omg', 'wake_omg', 'Pa/s', (/ ('', i = 1, 10) /)) 1787 TYPE(ctrl_out), SAVE :: o_wdtrainA = ctrl_out((/ 4, 5, 10, 4, 10, 10, 11, 11, 11, 11 /), & 1788 'wdtrainA', 'precipitation from AA', '-', (/ ('', i = 1, 10) /)) 1789 TYPE(ctrl_out), SAVE :: o_wdtrainS = ctrl_out((/ 4, 5, 10, 4, 10, 10, 11, 11, 11, 11 /), & 1790 'wdtrainS', 'precipitation from shedding of AA', '-', (/ ('', i = 1, 10) /)) 1791 TYPE(ctrl_out), SAVE :: o_wdtrainM = ctrl_out((/ 4, 5, 10, 4, 10, 10, 11, 11, 11, 11 /), & 1792 'wdtrainM', 'precipitation from mixture', '-', (/ ('', i = 1, 10) /)) 1797 1793 TYPE(ctrl_out), SAVE :: o_Vprecip = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1798 'Vprecip', 'precipitation vertical profile', '-', (/ ('', i=1, 10) /))1794 'Vprecip', 'precipitation vertical profile', '-', (/ ('', i = 1, 10) /)) 1799 1795 TYPE(ctrl_out), SAVE :: o_qtaa = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1800 'qtaa', 'specific total water in adiabatic ascents', 'kg/kg', (/ ('', i=1, 10) /))1796 'qtaa', 'specific total water in adiabatic ascents', 'kg/kg', (/ ('', i = 1, 10) /)) 1801 1797 TYPE(ctrl_out), SAVE :: o_clwaa = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1802 'Clwaa', 'specific condensed water in adiabatic ascents', 'kg/kg', (/ ('', i=1, 10) /))1798 'Clwaa', 'specific condensed water in adiabatic ascents', 'kg/kg', (/ ('', i = 1, 10) /)) 1803 1799 TYPE(ctrl_out), SAVE :: o_ftd = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1804 'ftd', 'tend temp due aux descentes precip', '-', (/ ('', i=1, 10) /))1800 'ftd', 'tend temp due aux descentes precip', '-', (/ ('', i = 1, 10) /)) 1805 1801 TYPE(ctrl_out), SAVE :: o_fqd = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1806 'fqd', 'tend vap eau due aux descentes precip', '-', (/ ('', i=1, 10) /))1802 'fqd', 'tend vap eau due aux descentes precip', '-', (/ ('', i = 1, 10) /)) 1807 1803 TYPE(ctrl_out), SAVE :: o_dtlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1808 'dtlsc', 'Condensation dT', 'K/s', (/ ('', i=1, 10) /))1804 'dtlsc', 'Condensation dT', 'K/s', (/ ('', i = 1, 10) /)) 1809 1805 TYPE(ctrl_out), SAVE :: o_dtlschr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1810 'dtlschr', 'Large-scale condensational heating rate', 'K/s', (/ ('', i=1, 10) /))1806 'dtlschr', 'Large-scale condensational heating rate', 'K/s', (/ ('', i = 1, 10) /)) 1811 1807 TYPE(ctrl_out), SAVE :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1812 'dqlsc', 'Condensation dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1808 'dqlsc', 'Condensation dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1813 1809 TYPE(ctrl_out), SAVE :: o_dqlsc2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1814 'dqlsc2d', 'Condensation dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1810 'dqlsc2d', 'Condensation dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1815 1811 TYPE(ctrl_out), SAVE :: o_beta_prec = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1816 'beta_prec', 'LS Conversion rate to prec', '(kg/kg)/s', (/ ('', i=1, 10) /))1812 'beta_prec', 'LS Conversion rate to prec', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1817 1813 TYPE(ctrl_out), SAVE :: o_dtvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1818 'dtvdf', 'Boundary-layer dT', 'K/s', (/ ('', i=1, 10) /))1814 'dtvdf', 'Boundary-layer dT', 'K/s', (/ ('', i = 1, 10) /)) 1819 1815 TYPE(ctrl_out), SAVE :: o_dtdis = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1820 'dtdis', 'TKE dissipation dT', 'K/s', (/ ('', i=1, 10) /))1816 'dtdis', 'TKE dissipation dT', 'K/s', (/ ('', i = 1, 10) /)) 1821 1817 TYPE(ctrl_out), SAVE :: o_dqvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1822 'dqvdf', 'Boundary-layer dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1818 'dqvdf', 'Boundary-layer dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1823 1819 TYPE(ctrl_out), SAVE :: o_dqvdf2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1824 'dqvdf2d', 'Boundary-layer dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1820 'dqvdf2d', 'Boundary-layer dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1825 1821 TYPE(ctrl_out), SAVE :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1826 'dteva', 'Reevaporation dT', 'K/s', (/ ('', i=1, 10) /))1822 'dteva', 'Reevaporation dT', 'K/s', (/ ('', i = 1, 10) /)) 1827 1823 TYPE(ctrl_out), SAVE :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1828 'dqeva', 'Reevaporation dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1824 'dqeva', 'Reevaporation dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1829 1825 TYPE(ctrl_out), SAVE :: o_dqeva2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1830 'dqeva2d', 'Reevaporation dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1826 'dqeva2d', 'Reevaporation dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1831 1827 TYPE(ctrl_out), SAVE :: o_dqbsvdf = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1832 'dqbsvdf', 'Boundary-layer dQBS', '(kg/kg)/s', (/ ('', i=1, 10) /))1828 'dqbsvdf', 'Boundary-layer dQBS', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1833 1829 TYPE(ctrl_out), SAVE :: o_dqbsbs = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1834 'dqbsbs', 'Blowing snow dQBS', '(kg/kg)/s', (/ ('', i=1, 10) /))1830 'dqbsbs', 'Blowing snow dQBS', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1835 1831 TYPE(ctrl_out), SAVE :: o_dtbs = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1836 'dtbs', 'Blowing snow dT', '(K)/s', (/ ('', i=1, 10) /))1832 'dtbs', 'Blowing snow dT', '(K)/s', (/ ('', i = 1, 10) /)) 1837 1833 TYPE(ctrl_out), SAVE :: o_dqbs = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1838 'dqbs', 'Blowing snow dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1839 1840 !!!!!!!!!!!!!!!! Specifique thermiques1834 'dqbs', 'Blowing snow dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1835 1836 !!!!!!!!!!!!!!!! Specifique thermiques 1841 1837 TYPE(ctrl_out), SAVE :: o_dqlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1842 'dqlscth', 'dQ therm.', '(kg/kg)/s', (/ ('', i=1, 10) /))1838 'dqlscth', 'dQ therm.', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1843 1839 TYPE(ctrl_out), SAVE :: o_dqlscth2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1844 'dqlscth2d', 'dQ therm.', '(kg/m2)/s', (/ ('', i=1, 10) /))1840 'dqlscth2d', 'dQ therm.', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1845 1841 TYPE(ctrl_out), SAVE :: o_dqlscst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1846 'dqlscst', 'dQ strat.', '(kg/kg)/s', (/ ('', i=1, 10) /))1842 'dqlscst', 'dQ strat.', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1847 1843 TYPE(ctrl_out), SAVE :: o_dqlscst2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1848 'dqlscst2d', 'dQ strat.', '(kg/m2)/s', (/ ('', i=1, 10) /))1844 'dqlscst2d', 'dQ strat.', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1849 1845 TYPE(ctrl_out), SAVE :: o_dtlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1850 'dtlscth', 'dQ therm.', 'K/s', (/ ('', i=1, 10) /))1846 'dtlscth', 'dQ therm.', 'K/s', (/ ('', i = 1, 10) /)) 1851 1847 TYPE(ctrl_out), SAVE :: o_dtlscst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1852 'dtlscst', 'dQ strat.', 'K/s', (/ ('', i=1, 10) /))1848 'dtlscst', 'dQ strat.', 'K/s', (/ ('', i = 1, 10) /)) 1853 1849 TYPE(ctrl_out), SAVE :: o_plulth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1854 'plulth', 'Rainfall therm.', 'K/s', (/ ('', i=1, 10) /))1850 'plulth', 'Rainfall therm.', 'K/s', (/ ('', i = 1, 10) /)) 1855 1851 TYPE(ctrl_out), SAVE :: o_plulst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1856 'plulst', 'Rainfall strat.', 'K/s', (/ ('', i=1, 10) /))1852 'plulst', 'Rainfall strat.', 'K/s', (/ ('', i = 1, 10) /)) 1857 1853 TYPE(ctrl_out), SAVE :: o_lmaxth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1858 'lmaxth', "Upper level thermals", "", (/ ('', i=1, 10) /))1854 'lmaxth', "Upper level thermals", "", (/ ('', i = 1, 10) /)) 1859 1855 TYPE(ctrl_out), SAVE :: o_ptconvth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1860 'ptconvth', 'POINTS CONVECTIFS therm.', ' ', (/ ('', i=1, 10) /))1861 !!!!!!!!!!!!!!!!!!!!!!!!1856 'ptconvth', 'POINTS CONVECTIFS therm.', ' ', (/ ('', i = 1, 10) /)) 1857 !!!!!!!!!!!!!!!!!!!!!!!! 1862 1858 TYPE(ctrl_out), SAVE :: o_ptconv = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1863 'ptconv', 'POINTS CONVECTIFS', ' ', (/ ('', i=1, 10) /))1859 'ptconv', 'POINTS CONVECTIFS', ' ', (/ ('', i = 1, 10) /)) 1864 1860 TYPE(ctrl_out), SAVE :: o_ratqs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1865 'ratqs', 'RATQS', ' ', (/ ('', i=1, 10) /))1861 'ratqs', 'RATQS', ' ', (/ ('', i = 1, 10) /)) 1866 1862 TYPE(ctrl_out), SAVE :: o_dtthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1867 'dtthe', 'Thermal dT', 'K/s', (/ ('', i=1, 10) /))1863 'dtthe', 'Thermal dT', 'K/s', (/ ('', i = 1, 10) /)) 1868 1864 TYPE(ctrl_out), SAVE :: o_duthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1869 'duthe', 'Thermal du', 'm/s2', (/ ('', i=1, 10) /))1865 'duthe', 'Thermal du', 'm/s2', (/ ('', i = 1, 10) /)) 1870 1866 TYPE(ctrl_out), SAVE :: o_dvthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1871 'dvthe', 'Thermal dv', 'm/s2', (/ ('', i=1, 10) /))1867 'dvthe', 'Thermal dv', 'm/s2', (/ ('', i = 1, 10) /)) 1872 1868 TYPE(ctrl_out), SAVE :: o_f_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1873 'f_th', 'Thermal plume mass flux', 'kg/(m2*s)', (/ ('', i=1, 10) /))1869 'f_th', 'Thermal plume mass flux', 'kg/(m2*s)', (/ ('', i = 1, 10) /)) 1874 1870 TYPE(ctrl_out), SAVE :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1875 'e_th', 'Thermal plume entrainment', 'K/s', (/ ('', i=1, 10) /))1871 'e_th', 'Thermal plume entrainment', 'K/s', (/ ('', i = 1, 10) /)) 1876 1872 TYPE(ctrl_out), SAVE :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1877 'w_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i=1, 10) /))1873 'w_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i = 1, 10) /)) 1878 1874 TYPE(ctrl_out), SAVE :: o_lambda_th = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1879 'lambda_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i=1, 10) /))1875 'lambda_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i = 1, 10) /)) 1880 1876 TYPE(ctrl_out), SAVE :: o_ftime_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1881 'ftime_th', 'Fraction of time Shallow convection occurs', ' ', (/ ('', i=1, 10) /))1877 'ftime_th', 'Fraction of time Shallow convection occurs', ' ', (/ ('', i = 1, 10) /)) 1882 1878 TYPE(ctrl_out), SAVE :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1883 'q_th', 'Thermal plume total humidity', 'kg/kg', (/ ('', i=1, 10) /))1879 'q_th', 'Thermal plume total humidity', 'kg/kg', (/ ('', i = 1, 10) /)) 1884 1880 TYPE(ctrl_out), SAVE :: o_a_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1885 'a_th', "Thermal plume fraction", "", (/ ('', i=1, 10) /))1881 'a_th', "Thermal plume fraction", "", (/ ('', i = 1, 10) /)) 1886 1882 1887 1883 TYPE(ctrl_out), SAVE :: o_cloudth_sth = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1888 's_th', "Thermal plume saturation deficit", "kg/kg", (/ ('', i=1, 10) /))1884 's_th', "Thermal plume saturation deficit", "kg/kg", (/ ('', i = 1, 10) /)) 1889 1885 TYPE(ctrl_out), SAVE :: o_cloudth_senv = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1890 's_env', "Environment saturation deficit", "kg/kg", (/ ('', i=1, 10) /))1886 's_env', "Environment saturation deficit", "kg/kg", (/ ('', i = 1, 10) /)) 1891 1887 TYPE(ctrl_out), SAVE :: o_cloudth_sigmath = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1892 'sigma_th', "Thermal plume gauss variance", "kg/kg", (/ ('', i=1, 10) /))1888 'sigma_th', "Thermal plume gauss variance", "kg/kg", (/ ('', i = 1, 10) /)) 1893 1889 TYPE(ctrl_out), SAVE :: o_cloudth_sigmaenv = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1894 'sigma_env', "Environment gauss variance", "kg/kg", (/ ('', i=1, 10) /))1890 'sigma_env', "Environment gauss variance", "kg/kg", (/ ('', i = 1, 10) /)) 1895 1891 1896 1892 TYPE(ctrl_out), SAVE :: o_d_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1897 'd_th', 'Thermal plume detrainment', 'K/s', (/ ('', i=1, 10) /))1893 'd_th', 'Thermal plume detrainment', 'K/s', (/ ('', i = 1, 10) /)) 1898 1894 TYPE(ctrl_out), SAVE :: o_f0_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1899 'f0_th', 'Thermal closure mass flux', 'K/s', (/ ('', i=1, 10) /))1900 TYPE(ctrl_out), SAVE :: o_zmax_th = ctrl_out((/ 4, 4, 4,5, 10, 10, 11, 11, 11, 11/), &1901 'zmax_th', 'Thermal plume height', 'K/s', (/ ('', i=1, 10) /))1895 'f0_th', 'Thermal closure mass flux', 'K/s', (/ ('', i = 1, 10) /)) 1896 TYPE(ctrl_out), SAVE :: o_zmax_th = ctrl_out((/ 4, 4, 4, 5, 10, 10, 11, 11, 11, 11/), & 1897 'zmax_th', 'Thermal plume height', 'K/s', (/ ('', i = 1, 10) /)) 1902 1898 TYPE(ctrl_out), SAVE :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1903 'dqthe', 'Thermal dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1899 'dqthe', 'Thermal dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1904 1900 TYPE(ctrl_out), SAVE :: o_dqthe2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1905 'dqthe2d', 'Thermal dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1901 'dqthe2d', 'Thermal dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1906 1902 TYPE(ctrl_out), SAVE :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1907 'dtajs', 'Dry adjust. dT', 'K/s', (/ ('', i=1, 10) /))1903 'dtajs', 'Dry adjust. dT', 'K/s', (/ ('', i = 1, 10) /)) 1908 1904 TYPE(ctrl_out), SAVE :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1909 'dqajs', 'Dry adjust. dQ', '(kg/kg)/s', (/ ('', i=1, 10) /))1905 'dqajs', 'Dry adjust. dQ', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1910 1906 TYPE(ctrl_out), SAVE :: o_dqajs2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1911 'dqajs2d', 'Dry adjust. dQ', '(kg/m2)/s', (/ ('', i=1, 10) /))1907 'dqajs2d', 'Dry adjust. dQ', '(kg/m2)/s', (/ ('', i = 1, 10) /)) 1912 1908 TYPE(ctrl_out), SAVE :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1913 'dtswr', 'SW radiation dT', 'K/s', (/ ('', i=1, 10) /))1909 'dtswr', 'SW radiation dT', 'K/s', (/ ('', i = 1, 10) /)) 1914 1910 TYPE(ctrl_out), SAVE :: o_dtsw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1915 'dtsw0', 'CS SW radiation dT', 'K/s', (/ ('', i=1, 10) /))1911 'dtsw0', 'CS SW radiation dT', 'K/s', (/ ('', i = 1, 10) /)) 1916 1912 TYPE(ctrl_out), SAVE :: o_dtlwr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1917 'dtlwr', 'LW radiation dT', 'K/s', (/ ('', i=1, 10) /))1913 'dtlwr', 'LW radiation dT', 'K/s', (/ ('', i = 1, 10) /)) 1918 1914 TYPE(ctrl_out), SAVE :: o_dtlw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1919 'dtlw0', 'CS LW radiation dT', 'K/s', (/ ('', i=1, 10) /))1915 'dtlw0', 'CS LW radiation dT', 'K/s', (/ ('', i = 1, 10) /)) 1920 1916 TYPE(ctrl_out), SAVE :: o_dtec = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1921 'dtec', 'Cinetic dissip dT', 'K/s', (/ ('', i=1, 10) /))1917 'dtec', 'Cinetic dissip dT', 'K/s', (/ ('', i = 1, 10) /)) 1922 1918 TYPE(ctrl_out), SAVE :: o_duvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1923 'duvdf', 'Boundary-layer dU', 'm/s2', (/ ('', i=1, 10) /))1919 'duvdf', 'Boundary-layer dU', 'm/s2', (/ ('', i = 1, 10) /)) 1924 1920 TYPE(ctrl_out), SAVE :: o_dvvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1925 'dvvdf', 'Boundary-layer dV', 'm/s2', (/ ('', i=1, 10) /))1921 'dvvdf', 'Boundary-layer dV', 'm/s2', (/ ('', i = 1, 10) /)) 1926 1922 TYPE(ctrl_out), SAVE :: o_duoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1927 'duoro', 'Orography dU', 'm/s2', (/ ('', i=1, 10) /))1923 'duoro', 'Orography dU', 'm/s2', (/ ('', i = 1, 10) /)) 1928 1924 TYPE(ctrl_out), SAVE :: o_dvoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1929 'dvoro', 'Orography dV', 'm/s2', (/ ('', i=1, 10) /))1925 'dvoro', 'Orography dV', 'm/s2', (/ ('', i = 1, 10) /)) 1930 1926 TYPE(ctrl_out), SAVE :: o_dulif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1931 'dulif', 'Orography dU', 'm/s2', (/ ('', i=1, 10) /))1927 'dulif', 'Orography dU', 'm/s2', (/ ('', i = 1, 10) /)) 1932 1928 TYPE(ctrl_out), SAVE :: o_dvlif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1933 'dvlif', 'Orography dV', 'm/s2', (/ ('', i=1, 10) /))1929 'dvlif', 'Orography dV', 'm/s2', (/ ('', i = 1, 10) /)) 1934 1930 TYPE(ctrl_out), SAVE :: o_du_gwd_hines = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1935 'du_gwd_hines', 'Hines GWD dU', 'm/s2', (/ ('', i=1, 10) /))1931 'du_gwd_hines', 'Hines GWD dU', 'm/s2', (/ ('', i = 1, 10) /)) 1936 1932 TYPE(ctrl_out), SAVE :: o_dv_gwd_hines = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1937 'dv_gwd_hines', 'Hines GWD dV', 'm/s2', (/ ('', i=1, 10) /))1933 'dv_gwd_hines', 'Hines GWD dV', 'm/s2', (/ ('', i = 1, 10) /)) 1938 1934 TYPE(ctrl_out), SAVE :: o_du_gwd_front = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1939 'du_gwd_front', 'Fronts GWD dU', 'm/s2', (/ ('', i=1, 10) /))1935 'du_gwd_front', 'Fronts GWD dU', 'm/s2', (/ ('', i = 1, 10) /)) 1940 1936 TYPE(ctrl_out), SAVE :: o_dv_gwd_front = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1941 'dv_gwd_front', 'Fronts GWD dV', 'm/s2', (/ ('', i=1, 10) /))1937 'dv_gwd_front', 'Fronts GWD dV', 'm/s2', (/ ('', i = 1, 10) /)) 1942 1938 TYPE(ctrl_out), SAVE :: o_east_gwstress = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1943 'east_gwstress', 'Eastward GW Stress', 'Pa', (/ ('', i=1, 10) /))1939 'east_gwstress', 'Eastward GW Stress', 'Pa', (/ ('', i = 1, 10) /)) 1944 1940 TYPE(ctrl_out), SAVE :: o_west_gwstress = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1945 'west_gwstress', 'Westward GW Stress', 'Pa', (/ ('', i=1, 10) /))1941 'west_gwstress', 'Westward GW Stress', 'Pa', (/ ('', i = 1, 10) /)) 1946 1942 TYPE(ctrl_out), SAVE :: o_dtoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1947 'dtoro', 'Orography dT', 'K/s', (/ ('', i=1, 10) /))1943 'dtoro', 'Orography dT', 'K/s', (/ ('', i = 1, 10) /)) 1948 1944 TYPE(ctrl_out), SAVE :: o_dtlif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1949 'dtlif', 'Orography dT', 'K/s', (/ ('', i=1, 10) /))1945 'dtlif', 'Orography dT', 'K/s', (/ ('', i = 1, 10) /)) 1950 1946 TYPE(ctrl_out), SAVE :: o_dthin = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1951 'dthin', 'Hines GWD dT', 'K/s', (/ ('', i=1, 10) /))1947 'dthin', 'Hines GWD dT', 'K/s', (/ ('', i = 1, 10) /)) 1952 1948 TYPE(ctrl_out), SAVE :: o_dqch4 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1953 'dqch4', 'H2O due to CH4 oxidation & photolysis', '(kg/kg)/s', (/ ('', i=1, 10) /))1954 1955 type(ctrl_out), save :: o_du_gwd_rando &1956 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'du_gwd_rando', &1957 "Random gravity waves dU/dt", "m/s2", (/ ('', i=1, 10) /))1958 type(ctrl_out), save :: o_dv_gwd_rando &1959 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dv_gwd_rando', &1960 "Random gravity waves dV/dt", "m/s2", (/ ('', i=1, 10) /))1961 type(ctrl_out), save :: o_ustr_gwd_hines &1962 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_hines', &1963 "zonal wind stress Hines gravity waves", "Pa", (/ ('', i=1, 10) /))1964 type(ctrl_out), save :: o_vstr_gwd_hines &1965 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_hines', &1966 "meridional wind stress Hines gravity waves", "Pa", (/ ('', i=1, 10) /))1967 type(ctrl_out), save :: o_ustr_gwd_front &1968 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_front', &1969 "zonal wind stress fronts gravity waves", "Pa", (/ ('', i=1, 10) /))1970 type(ctrl_out), save :: o_vstr_gwd_front &1971 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_front', &1972 "meridional wind stress fronts gravity waves", "Pa", (/ ('', i=1, 10) /))1973 type(ctrl_out), save :: o_ustr_gwd_rando &1974 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_rando', &1975 "zonal wind stress random gravity waves", "Pa", (/ ('', i=1, 10) /))1976 type(ctrl_out), save :: o_vstr_gwd_rando &1977 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_rando', &1978 "meridional wind stress random gravity waves", "Pa", (/ ('', i=1, 10) /))1949 'dqch4', 'H2O due to CH4 oxidation & photolysis', '(kg/kg)/s', (/ ('', i = 1, 10) /)) 1950 1951 type(ctrl_out), save :: o_du_gwd_rando & 1952 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'du_gwd_rando', & 1953 "Random gravity waves dU/dt", "m/s2", (/ ('', i = 1, 10) /)) 1954 type(ctrl_out), save :: o_dv_gwd_rando & 1955 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dv_gwd_rando', & 1956 "Random gravity waves dV/dt", "m/s2", (/ ('', i = 1, 10) /)) 1957 type(ctrl_out), save :: o_ustr_gwd_hines & 1958 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_hines', & 1959 "zonal wind stress Hines gravity waves", "Pa", (/ ('', i = 1, 10) /)) 1960 type(ctrl_out), save :: o_vstr_gwd_hines & 1961 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_hines', & 1962 "meridional wind stress Hines gravity waves", "Pa", (/ ('', i = 1, 10) /)) 1963 type(ctrl_out), save :: o_ustr_gwd_front & 1964 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_front', & 1965 "zonal wind stress fronts gravity waves", "Pa", (/ ('', i = 1, 10) /)) 1966 type(ctrl_out), save :: o_vstr_gwd_front & 1967 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_front', & 1968 "meridional wind stress fronts gravity waves", "Pa", (/ ('', i = 1, 10) /)) 1969 type(ctrl_out), save :: o_ustr_gwd_rando & 1970 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_rando', & 1971 "zonal wind stress random gravity waves", "Pa", (/ ('', i = 1, 10) /)) 1972 type(ctrl_out), save :: o_vstr_gwd_rando & 1973 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_rando', & 1974 "meridional wind stress random gravity waves", "Pa", (/ ('', i = 1, 10) /)) 1979 1975 1980 1976 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_trac(:) … … 2021 2017 2022 2018 TYPE(ctrl_out), SAVE :: o_rsu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2023 'rsu', 'SW upward radiation', 'W m-2', (/ ('', i=1, 10) /))2019 'rsu', 'SW upward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2024 2020 TYPE(ctrl_out), SAVE :: o_rsd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2025 'rsd', 'SW downward radiation', 'W m-2', (/ ('', i=1, 10) /))2021 'rsd', 'SW downward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2026 2022 TYPE(ctrl_out), SAVE :: o_rlu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2027 'rlu', 'LW upward radiation', 'W m-2', (/ ('', i=1, 10) /))2023 'rlu', 'LW upward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2028 2024 TYPE(ctrl_out), SAVE :: o_rld = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2029 'rld', 'LW downward radiation', 'W m-2', (/ ('', i=1, 10) /))2025 'rld', 'LW downward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2030 2026 TYPE(ctrl_out), SAVE :: o_rsucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2031 'rsucs', 'SW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /))2027 'rsucs', 'SW CS upward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2032 2028 TYPE(ctrl_out), SAVE :: o_rsucsaf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2033 'rsucsaf', 'SW CS clean (no aerosol) upward radiation', 'W m-2', (/ ('', i=1, 10) /))2029 'rsucsaf', 'SW CS clean (no aerosol) upward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2034 2030 TYPE(ctrl_out), SAVE :: o_rsdcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2035 'rsdcs', 'SW CS downward radiation', 'W m-2', (/ ('', i=1, 10) /))2031 'rsdcs', 'SW CS downward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2036 2032 TYPE(ctrl_out), SAVE :: o_rsdcsaf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2037 'rsdcsaf', 'SW CS clean (no aerosol) downward radiation', 'W m-2', (/ ('', i=1, 10) /))2033 'rsdcsaf', 'SW CS clean (no aerosol) downward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2038 2034 TYPE(ctrl_out), SAVE :: o_rlucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2039 'rlucs', 'LW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /))2035 'rlucs', 'LW CS upward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2040 2036 TYPE(ctrl_out), SAVE :: o_rldcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2041 'rldcs', 'LW CS downward radiation', 'W m-2', (/ ('', i=1, 10) /))2037 'rldcs', 'LW CS downward radiation', 'W m-2', (/ ('', i = 1, 10) /)) 2042 2038 TYPE(ctrl_out), SAVE :: o_tnt = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2043 'tnt', 'Tendency of air temperature', 'K s-1', (/ ('', i=1, 10) /))2039 'tnt', 'Tendency of air temperature', 'K s-1', (/ ('', i = 1, 10) /)) 2044 2040 TYPE(ctrl_out), SAVE :: o_tntc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2045 'tntc', 'Tendency of air temperature due to Moist Convection', 'K s-1', (/ ('', i=1, 10) /))2041 'tntc', 'Tendency of air temperature due to Moist Convection', 'K s-1', (/ ('', i = 1, 10) /)) 2046 2042 TYPE(ctrl_out), SAVE :: o_tntr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2047 'tntr', 'Air temperature tendency due to Radiative heating', 'K s-1', (/ ('', i=1, 10) /))2048 TYPE(ctrl_out), SAVE :: o_tntscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 2049 'tntscpbl', 'Air temperature tendency due to St cloud and precipitation and BL mixing', &2050 'K s-1', (/ ('', i=1, 10) /))2043 'tntr', 'Air temperature tendency due to Radiative heating', 'K s-1', (/ ('', i = 1, 10) /)) 2044 TYPE(ctrl_out), SAVE :: o_tntscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2045 'tntscpbl', 'Air temperature tendency due to St cloud and precipitation and BL mixing', & 2046 'K s-1', (/ ('', i = 1, 10) /)) 2051 2047 TYPE(ctrl_out), SAVE :: o_tnhus = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2052 'tnhus', 'Tendency of specific humidity', 's-1', (/ ('', i=1, 10) /))2048 'tnhus', 'Tendency of specific humidity', 's-1', (/ ('', i = 1, 10) /)) 2053 2049 TYPE(ctrl_out), SAVE :: o_tnhusc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2054 'tnhusc', 'Tendency of specific humidity due to convection', 's-1', (/ ('', i=1, 10) /))2050 'tnhusc', 'Tendency of specific humidity due to convection', 's-1', (/ ('', i = 1, 10) /)) 2055 2051 TYPE(ctrl_out), SAVE :: o_tnhusscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2056 'tnhusscpbl', 'Tendency of Specific humidity due to ST cl, precip and BL mixing', 's-1', (/ ('', i=1, 10) /))2052 'tnhusscpbl', 'Tendency of Specific humidity due to ST cl, precip and BL mixing', 's-1', (/ ('', i = 1, 10) /)) 2057 2053 TYPE(ctrl_out), SAVE :: o_evu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2058 'evu', 'Eddy viscosity coefficient for Momentum Variables', 'm2 s-1', (/ ('', i=1, 10) /))2054 'evu', 'Eddy viscosity coefficient for Momentum Variables', 'm2 s-1', (/ ('', i = 1, 10) /)) 2059 2055 TYPE(ctrl_out), SAVE :: o_h2o = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2060 'h2o', 'Mass Fraction of Water', '1', (/ ('', i=1, 10) /))2056 'h2o', 'Mass Fraction of Water', '1', (/ ('', i = 1, 10) /)) 2061 2057 TYPE(ctrl_out), SAVE :: o_mcd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2062 'mcd', 'Downdraft COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i=1, 10) /))2058 'mcd', 'Downdraft COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i = 1, 10) /)) 2063 2059 TYPE(ctrl_out), SAVE :: o_dmc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2064 'dmc', 'Deep COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i=1, 10) /))2060 'dmc', 'Deep COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i = 1, 10) /)) 2065 2061 TYPE(ctrl_out), SAVE :: o_ref_liq = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2066 'ref_liq', 'Effective radius of convective cloud liquid water particle', 'm', (/ ('', i=1, 10) /))2062 'ref_liq', 'Effective radius of convective cloud liquid water particle', 'm', (/ ('', i = 1, 10) /)) 2067 2063 TYPE(ctrl_out), SAVE :: o_ref_ice = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2068 'ref_ice', 'Effective radius of startiform cloud ice particle', 'm', (/ ('', i=1, 10) /))2064 'ref_ice', 'Effective radius of startiform cloud ice particle', 'm', (/ ('', i = 1, 10) /)) 2069 2065 TYPE(ctrl_out), SAVE :: o_rsut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2070 'rsut4co2', 'TOA Out SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2066 'rsut4co2', 'TOA Out SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2071 2067 TYPE(ctrl_out), SAVE :: o_rlut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2072 'rlut4co2', 'TOA Out LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2068 'rlut4co2', 'TOA Out LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2073 2069 TYPE(ctrl_out), SAVE :: o_rsutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2074 'rsutcs4co2', 'TOA Out CS SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2070 'rsutcs4co2', 'TOA Out CS SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2075 2071 TYPE(ctrl_out), SAVE :: o_rlutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2076 'rlutcs4co2', 'TOA Out CS LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2072 'rlutcs4co2', 'TOA Out CS LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2077 2073 TYPE(ctrl_out), SAVE :: o_rsu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2078 'rsu4co2', 'Upwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2074 'rsu4co2', 'Upwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2079 2075 TYPE(ctrl_out), SAVE :: o_rlu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2080 'rlu4co2', 'Upwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2076 'rlu4co2', 'Upwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2081 2077 TYPE(ctrl_out), SAVE :: o_rsucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2082 'rsucs4co2', 'Upwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2078 'rsucs4co2', 'Upwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2083 2079 TYPE(ctrl_out), SAVE :: o_rlucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2084 'rlucs4co2', 'Upwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2080 'rlucs4co2', 'Upwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2085 2081 TYPE(ctrl_out), SAVE :: o_rsd4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2086 'rsd4co2', 'Downwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2082 'rsd4co2', 'Downwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2087 2083 TYPE(ctrl_out), SAVE :: o_rld4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2088 'rld4co2', 'Downwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2084 'rld4co2', 'Downwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2089 2085 TYPE(ctrl_out), SAVE :: o_rsdcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2090 'rsdcs4co2', 'Downwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2086 'rsdcs4co2', 'Downwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2091 2087 TYPE(ctrl_out), SAVE :: o_rldcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 2092 'rldcs4co2', 'Downwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /))2088 'rldcs4co2', 'Downwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i = 1, 10) /)) 2093 2089 TYPE(ctrl_out), SAVE :: o_snowsrf = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2094 'snowsrf', 'Snow mass at surface', 'kg/m2', (/ ('', i=1, 10) /))2090 'snowsrf', 'Snow mass at surface', 'kg/m2', (/ ('', i = 1, 10) /)) 2095 2091 TYPE(ctrl_out), SAVE :: o_qsnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2096 'qsnow', 'Water contained in snow', 'kg/m2', (/ ('', i=1, 10) /))2092 'qsnow', 'Water contained in snow', 'kg/m2', (/ ('', i = 1, 10) /)) 2097 2093 TYPE(ctrl_out), SAVE :: o_snowhgt = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2098 'snowhgt', 'Snow height at surface', 'm', (/ ('', i=1, 10) /))2094 'snowhgt', 'Snow height at surface', 'm', (/ ('', i = 1, 10) /)) 2099 2095 TYPE(ctrl_out), SAVE :: o_toice = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2100 'to_ice', 'Snow passed to ice model', 'kg/m2', (/ ('', i=1, 10) /))2096 'to_ice', 'Snow passed to ice model', 'kg/m2', (/ ('', i = 1, 10) /)) 2101 2097 TYPE(ctrl_out), SAVE :: o_sissnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2102 'sissnow', 'Snow in snow model', 'kg/m2', (/ ('', i=1, 10) /))2098 'sissnow', 'Snow in snow model', 'kg/m2', (/ ('', i = 1, 10) /)) 2103 2099 TYPE(ctrl_out), SAVE :: o_runoff = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 2104 'runoff', 'Run-off rate land ice', 'kg/m2/s', (/ ('', i=1, 10) /))2100 'runoff', 'Run-off rate land ice', 'kg/m2/s', (/ ('', i = 1, 10) /)) 2105 2101 #ifdef ISO 2106 2102 TYPE(ctrl_out), SAVE :: o_runoff_diag = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & … … 2108 2104 #endif 2109 2105 TYPE(ctrl_out), SAVE :: o_albslw3 = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2110 'albslw3', 'Surface albedo LW3', '-', (/ ('', i=1, 10) /))2111 2112 !--aviation & supersaturation2106 'albslw3', 'Surface albedo LW3', '-', (/ ('', i = 1, 10) /)) 2107 2108 !--aviation & supersaturation 2113 2109 TYPE(ctrl_out), SAVE :: o_oclr = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2114 'oclr', 'Clear sky total water', 'kg/kg', (/ ('', i=1, 10) /))2110 'oclr', 'Clear sky total water', 'kg/kg', (/ ('', i = 1, 10) /)) 2115 2111 TYPE(ctrl_out), SAVE :: o_ocld = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2116 'ocld', 'Cloudy sky total water', 'kg/kg', (/ ('', i=1, 10) /))2112 'ocld', 'Cloudy sky total water', 'kg/kg', (/ ('', i = 1, 10) /)) 2117 2113 TYPE(ctrl_out), SAVE :: o_oss = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2118 'oss', 'ISSR total water', 'kg/kg', (/ ('', i=1, 10) /))2114 'oss', 'ISSR total water', 'kg/kg', (/ ('', i = 1, 10) /)) 2119 2115 TYPE(ctrl_out), SAVE :: o_ovc = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2120 'ovc', 'In-cloup vapor', 'kg/kg', (/ ('', i=1, 10) /))2116 'ovc', 'In-cloup vapor', 'kg/kg', (/ ('', i = 1, 10) /)) 2121 2117 TYPE(ctrl_out), SAVE :: o_rnebclr = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2122 'rnebclr', 'Clear sky fraction', '-', (/ ('', i=1, 10) /))2118 'rnebclr', 'Clear sky fraction', '-', (/ ('', i = 1, 10) /)) 2123 2119 TYPE(ctrl_out), SAVE :: o_rnebss = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2124 'rnebss', 'ISSR fraction', '-', (/ ('', i=1, 10) /))2120 'rnebss', 'ISSR fraction', '-', (/ ('', i = 1, 10) /)) 2125 2121 TYPE(ctrl_out), SAVE :: o_rnebseri = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2126 'rnebseri', 'Cloud fraction', '-', (/ ('', i=1, 10) /))2122 'rnebseri', 'Cloud fraction', '-', (/ ('', i = 1, 10) /)) 2127 2123 TYPE(ctrl_out), SAVE :: o_gammass = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2128 'gammass', 'Gamma supersaturation', '', (/ ('', i=1, 10) /))2124 'gammass', 'Gamma supersaturation', '', (/ ('', i = 1, 10) /)) 2129 2125 TYPE(ctrl_out), SAVE :: o_N1_ss = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2130 'N1ss', 'N1', '', (/ ('', i=1, 10) /))2126 'N1ss', 'N1', '', (/ ('', i = 1, 10) /)) 2131 2127 TYPE(ctrl_out), SAVE :: o_N2_ss = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2132 'N2ss', 'N2', '', (/ ('', i=1, 10) /))2128 'N2ss', 'N2', '', (/ ('', i = 1, 10) /)) 2133 2129 TYPE(ctrl_out), SAVE :: o_drnebsub = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2134 'drnebsub', 'Cloud fraction change because of sublimation', 's-1', (/ ('', i=1, 10) /))2130 'drnebsub', 'Cloud fraction change because of sublimation', 's-1', (/ ('', i = 1, 10) /)) 2135 2131 TYPE(ctrl_out), SAVE :: o_drnebcon = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2136 'drnebcon', 'Cloud fraction change because of condensation', 's-1', (/ ('', i=1, 10) /))2132 'drnebcon', 'Cloud fraction change because of condensation', 's-1', (/ ('', i = 1, 10) /)) 2137 2133 TYPE(ctrl_out), SAVE :: o_drnebtur = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2138 'drnebtur', 'Cloud fraction change because of turbulence', 's-1', (/ ('', i=1, 10) /))2134 'drnebtur', 'Cloud fraction change because of turbulence', 's-1', (/ ('', i = 1, 10) /)) 2139 2135 TYPE(ctrl_out), SAVE :: o_drnebavi = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2140 'drnebavi', 'Cloud fraction change because of aviation', 's-1', (/ ('', i=1, 10) /))2136 'drnebavi', 'Cloud fraction change because of aviation', 's-1', (/ ('', i = 1, 10) /)) 2141 2137 TYPE(ctrl_out), SAVE :: o_qsatl = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2142 'qsatl', 'Saturation with respect to liquid water', '', (/ ('', i=1, 10) /))2138 'qsatl', 'Saturation with respect to liquid water', '', (/ ('', i = 1, 10) /)) 2143 2139 TYPE(ctrl_out), SAVE :: o_qsats = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2144 'qsats', 'Saturation with respect to solid water', '', (/ ('', i=1, 10) /))2140 'qsats', 'Saturation with respect to solid water', '', (/ ('', i = 1, 10) /)) 2145 2141 TYPE(ctrl_out), SAVE :: o_flight_m = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2146 'flightm', 'Flown meters', 'm/s/mesh', (/ ('', i=1, 10) /))2142 'flightm', 'Flown meters', 'm/s/mesh', (/ ('', i = 1, 10) /)) 2147 2143 TYPE(ctrl_out), SAVE :: o_flight_h2o = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 2148 'flighth2o', 'H2O flight emission', 'kg H2O/s/mesh', (/ ('', i=1, 10) /))2149 TYPE(ctrl_out), SAVE :: o_Tcontr = ctrl_out((/ 1, 1, 1, 1, 11, 11, 11, 11, 11, 11/), &2150 'Tcontr', 'Temperature threshold for contrail formation', 'K', (/ ('',i=1,10) /))2151 TYPE(ctrl_out), SAVE :: o_qcontr = ctrl_out((/ 1, 1, 1, 1, 11, 11, 11, 11, 11, 11/), &2152 'qcontr', 'Specific humidity threshold for contrail formation','Pa', (/ ('', i=1, 10) /))2153 TYPE(ctrl_out), SAVE :: o_qcontr2 = ctrl_out((/ 1, 1, 1, 1, 11, 11, 11, 11, 11, 11/), &2154 'qcontr2', 'Specific humidity threshold for contrail formation','kg/kg', (/ ('', i=1, 10) /))2155 TYPE(ctrl_out), SAVE :: o_fcontrN = ctrl_out((/ 2, 2, 2, 2, 2, 2, 11, 11, 11, 11/), &2156 'fcontrN', 'Fraction with non-persistent contrail in clear-sky', '-', (/ ('', i=1,10)/))2157 TYPE(ctrl_out), SAVE :: o_fcontrP = ctrl_out((/ 2, 2, 2, 2, 2, 2, 11, 11, 11, 11/), &2158 'fcontrP', 'Fraction with persistent contrail in ISSR', '-', (/ ('', i=1,10)/))2159 2160 !!!!!!!!!!!!! Sorties niveaux standards de pression NMC 2144 'flighth2o', 'H2O flight emission', 'kg H2O/s/mesh', (/ ('', i = 1, 10) /)) 2145 TYPE(ctrl_out), SAVE :: o_Tcontr = ctrl_out((/ 1, 1, 1, 1, 11, 11, 11, 11, 11, 11/), & 2146 'Tcontr', 'Temperature threshold for contrail formation', 'K', (/ ('', i = 1, 10) /)) 2147 TYPE(ctrl_out), SAVE :: o_qcontr = ctrl_out((/ 1, 1, 1, 1, 11, 11, 11, 11, 11, 11/), & 2148 'qcontr', 'Specific humidity threshold for contrail formation', 'Pa', (/ ('', i = 1, 10) /)) 2149 TYPE(ctrl_out), SAVE :: o_qcontr2 = ctrl_out((/ 1, 1, 1, 1, 11, 11, 11, 11, 11, 11/), & 2150 'qcontr2', 'Specific humidity threshold for contrail formation', 'kg/kg', (/ ('', i = 1, 10) /)) 2151 TYPE(ctrl_out), SAVE :: o_fcontrN = ctrl_out((/ 2, 2, 2, 2, 2, 2, 11, 11, 11, 11/), & 2152 'fcontrN', 'Fraction with non-persistent contrail in clear-sky', '-', (/ ('', i = 1, 10)/)) 2153 TYPE(ctrl_out), SAVE :: o_fcontrP = ctrl_out((/ 2, 2, 2, 2, 2, 2, 11, 11, 11, 11/), & 2154 'fcontrP', 'Fraction with persistent contrail in ISSR', '-', (/ ('', i = 1, 10)/)) 2155 2156 !!!!!!!!!!!!! Sorties niveaux standards de pression NMC 2161 2157 TYPE(ctrl_out), SAVE :: o_tnondef = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2162 'tnondef', 'Undefined value of T', 'K', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", &2163 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2158 'tnondef', 'Undefined value of T', 'K', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 2159 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2164 2160 TYPE(ctrl_out), SAVE :: o_ta = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2165 'ta', 'Air temperature', 'K', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", &2166 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2167 TYPE(ctrl_out), SAVE :: o_zg 2168 'zg', 'Geopotential height', 'm', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", &2169 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2161 'ta', 'Air temperature', 'K', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 2162 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2163 TYPE(ctrl_out), SAVE :: o_zg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2164 'zg', 'Geopotential height', 'm', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 2165 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2170 2166 TYPE(ctrl_out), SAVE :: o_hus = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2171 'hus', 'Specific humidity', '1', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", &2172 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2167 'hus', 'Specific humidity', '1', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 2168 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2173 2169 TYPE(ctrl_out), SAVE :: o_hur = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2174 'hur', 'Relative humidity', '%', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", &2175 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2170 'hur', 'Relative humidity', '%', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 2171 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2176 2172 TYPE(ctrl_out), SAVE :: o_ua = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2177 'ua', 'Eastward wind', 'm s-1', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", &2178 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2173 'ua', 'Eastward wind', 'm s-1', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 2174 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2179 2175 TYPE(ctrl_out), SAVE :: o_va = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2180 'va', 'Northward wind', 'm s-1', (/ ('', i=1, 10)/))2176 'va', 'Northward wind', 'm s-1', (/ ('', i = 1, 10)/)) 2181 2177 TYPE(ctrl_out), SAVE :: o_wap = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2182 'wap', 'Lagrangian tendency of air pressure', 'Pa s-1', (/ "inst(X)", "inst(X)", "inst(X)", &2183 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2178 'wap', 'Lagrangian tendency of air pressure', 'Pa s-1', (/ "inst(X)", "inst(X)", "inst(X)", & 2179 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2184 2180 TYPE(ctrl_out), SAVE :: o_psbg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2185 'psbg', 'Pressure sfce below ground', '%', (/ "inst(X)", "inst(X)", "inst(X)", &2186 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2181 'psbg', 'Pressure sfce below ground', '%', (/ "inst(X)", "inst(X)", "inst(X)", & 2182 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2187 2183 TYPE(ctrl_out), SAVE :: o_tro3 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2188 'tro3', 'Ozone mole fraction', '1e-9', (/ "inst(X)", "inst(X)", "inst(X)", &2189 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2184 'tro3', 'Ozone mole fraction', '1e-9', (/ "inst(X)", "inst(X)", "inst(X)", & 2185 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2190 2186 TYPE(ctrl_out), SAVE :: o_tro3_daylight = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 2191 'tro3_daylight', 'Daylight ozone mole fraction', '1e-9', (/ "inst(X)", "inst(X)", "inst(X)", &2192 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2187 'tro3_daylight', 'Daylight ozone mole fraction', '1e-9', (/ "inst(X)", "inst(X)", "inst(X)", & 2188 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2193 2189 TYPE(ctrl_out), SAVE :: o_uxv = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2194 'uv', 'uv', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", &2195 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2190 'uv', 'uv', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", & 2191 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2196 2192 TYPE(ctrl_out), SAVE :: o_vxq = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2197 'vxq', 'vxq', 'm/s * (kg/kg)', (/ "inst(X)", "inst(X)", "inst(X)", &2198 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2193 'vxq', 'vxq', 'm/s * (kg/kg)', (/ "inst(X)", "inst(X)", "inst(X)", & 2194 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2199 2195 TYPE(ctrl_out), SAVE :: o_vxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2200 'vT', 'vT', 'mK/s', (/ "inst(X)", "inst(X)", "inst(X)", &2201 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2196 'vT', 'vT', 'mK/s', (/ "inst(X)", "inst(X)", "inst(X)", & 2197 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2202 2198 TYPE(ctrl_out), SAVE :: o_wxq = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2203 'wq', 'wq', '(Pa/s)*(kg/kg)', (/ "inst(X)", "inst(X)", "inst(X)", &2204 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2199 'wq', 'wq', '(Pa/s)*(kg/kg)', (/ "inst(X)", "inst(X)", "inst(X)", & 2200 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2205 2201 TYPE(ctrl_out), SAVE :: o_vxphi = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2206 'vphi', 'vphi', 'm2/s', (/ "inst(X)", "inst(X)", "inst(X)", &2207 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2202 'vphi', 'vphi', 'm2/s', (/ "inst(X)", "inst(X)", "inst(X)", & 2203 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2208 2204 TYPE(ctrl_out), SAVE :: o_wxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2209 'wT', 'wT', '"K*Pa/s', (/ "inst(X)", "inst(X)", "inst(X)", &2210 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2205 'wT', 'wT', '"K*Pa/s', (/ "inst(X)", "inst(X)", "inst(X)", & 2206 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2211 2207 TYPE(ctrl_out), SAVE :: o_uxu = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2212 'u2', 'u2', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", &2213 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))2208 'u2', 'u2', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", & 2209 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2214 2210 TYPE(ctrl_out), SAVE :: o_vxv = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2215 'v2', 'v2', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", & 2216 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2217 TYPE(ctrl_out), SAVE :: o_TxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2218 'T2', 'T2', 'K2', (/ "inst(X)", "inst(X)", "inst(X)", & 2219 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2220 2221 #ifdef CPP_Dust 2222 INCLUDE 'spla_output_dat.h' 2223 #endif 2224 2225 type(ctrl_out), save:: o_delta_sst & 2226 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'delta_SST', & 2227 "ocean-air interface temperature minus bulk SST", "K", '') 2228 2229 type(ctrl_out), save:: o_delta_sal & 2230 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'delta_sal', & 2231 "ocean-air interface salinity minus bulk salinity", "ppt", '') 2232 2233 type(ctrl_out), save:: o_ds_ns & 2234 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dS_ns', & 2235 "subskin salinity minus foundation salinity", "ppt", '') 2236 2237 type(ctrl_out), save:: o_dt_ns & 2238 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dT_ns', & 2239 "subskin temperature minus foundation temperature", "K", '') 2240 2241 type(ctrl_out), save:: o_dter & 2242 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dTer', & 2243 "ocean-air interface temperature minus sub-skin temperature", "K", '') 2244 2245 type(ctrl_out), save:: o_dser & 2246 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dSer', & 2247 "ocean-air interface salinity minus sub-skin salinity", "ppt", '') 2248 2249 type(ctrl_out), save:: o_tkt & 2250 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'tkt', & 2251 "thickness of thermal microlayer", "m", '') 2252 2253 type(ctrl_out), save:: o_tks & 2254 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'tks', & 2255 "thickness of salinity microlayer", "m", '') 2256 2257 type(ctrl_out), save:: o_taur & 2258 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'taur', & 2259 "momentum flux due to rain", "Pa", '') 2260 2261 type(ctrl_out), save:: o_sss & 2262 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'SSS', & 2263 "bulk sea-surface salinity", "ppt", '') 2211 'v2', 'v2', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", & 2212 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2213 TYPE(ctrl_out), SAVE :: o_TxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 2214 'T2', 'T2', 'K2', (/ "inst(X)", "inst(X)", "inst(X)", & 2215 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 2216 2217 INCLUDE 'spla_output_dat.h' 2218 2219 type(ctrl_out), save :: o_delta_sst & 2220 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'delta_SST', & 2221 "ocean-air interface temperature minus bulk SST", "K", '') 2222 2223 type(ctrl_out), save :: o_delta_sal & 2224 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'delta_sal', & 2225 "ocean-air interface salinity minus bulk salinity", "ppt", '') 2226 2227 type(ctrl_out), save :: o_ds_ns & 2228 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dS_ns', & 2229 "subskin salinity minus foundation salinity", "ppt", '') 2230 2231 type(ctrl_out), save :: o_dt_ns & 2232 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dT_ns', & 2233 "subskin temperature minus foundation temperature", "K", '') 2234 2235 type(ctrl_out), save :: o_dter & 2236 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dTer', & 2237 "ocean-air interface temperature minus sub-skin temperature", "K", '') 2238 2239 type(ctrl_out), save :: o_dser & 2240 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'dSer', & 2241 "ocean-air interface salinity minus sub-skin salinity", "ppt", '') 2242 2243 type(ctrl_out), save :: o_tkt & 2244 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'tkt', & 2245 "thickness of thermal microlayer", "m", '') 2246 2247 type(ctrl_out), save :: o_tks & 2248 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'tks', & 2249 "thickness of salinity microlayer", "m", '') 2250 2251 type(ctrl_out), save :: o_taur & 2252 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'taur', & 2253 "momentum flux due to rain", "Pa", '') 2254 2255 type(ctrl_out), save :: o_sss & 2256 = ctrl_out([1, 10, 10, 1, 10, 10, 11, 11, 11, 11], 'SSS', & 2257 "bulk sea-surface salinity", "ppt", '') 2264 2258 2265 2259 END MODULE phys_output_ctrlout_mod -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phys_output_mod.F90
r5098 r5099 1 1 ! $Id: phys_output_mod.F90 3792 2021-01-04 17:01:25Z evignon $ 2 !3 2 4 3 MODULE phys_output_mod … … 307 306 ! afin d avoir une seule sortie mensuelle par mois lorsque l on tourne 308 307 ! par annee (IM). 309 ! 308 310 309 idayref = day_ref 311 310 IF (klon_glo==1) THEN … … 411 410 spectband(ISW)=(wn1_sun(ISW)+wn2_sun(ISW))/2 412 411 ENDDO 413 ! 412 414 413 !!! ajout axe vertical spectband : solar band number 415 414 CALL wxios_add_vaxis("spectband", NSW, spectband, positif='down') … … 630 629 631 630 ipos=scan(str,'0123456789.',.TRUE.) 632 ! 631 633 632 il=len_trim(str) 634 633 WRITE(lunout,*) "ipos = ", ipos -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phys_output_var_mod.F90
r5087 r5099 1 ! 1 2 2 ! phys_local_var_mod.F90 1327 2010-03-17 15:33:56Z idelkadi $ 3 3 … … 7 7 ! Variables outputs pour les ecritures des sorties 8 8 !====================================================================== 9 ! 10 ! 9 10 11 11 !====================================================================== 12 12 ! Declaration des variables -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/physiq_mod.F90
r5098 r5099 1 ! 1 2 2 ! $Id: physiq_mod.F90 3908 2021-05-20 07:11:13Z idelkadi $ 3 ! 3 4 4 !#define IO_DEBUG 5 5 MODULE physiq_mod … … 107 107 USE paramLMDZ_phy_mod 108 108 109 110 !USE cmp_seri_mod 111 ! USE add_phys_tend_mod, only : add_pbl_tend, add_phys_tend, diag_phys_tend, prt_enerbil, & 112 ! & fl_ebil, fl_cor_ebil 113 114 !!!!!!!!!!!!!!!!!! "USE" section for CPP keys !!!!!!!!!!!!!!!!!!!!!!!! 115 ! 116 ! 117 #ifdef CPP_Dust 118 USE phytracr_spl_mod, ONLY: phytracr_spl, phytracr_spl_out_init 109 USE phytracr_spl_mod, ONLY: phytracr_spl, phytracr_spl_out_init 119 110 USE phys_output_write_spl_mod 120 #else121 111 USE phytrac_mod, ONLY : phytrac_init, phytrac 122 112 USE phys_output_write_mod 123 #endif 113 114 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_DUST 115 116 !!!!!!!!!!!!!!!!!! "USE" section for CPP keys !!!!!!!!!!!!!!!!!!!!!!!! 117 124 118 125 119 #ifdef REPROBUS … … 178 172 #endif 179 173 180 ! 181 ! 174 182 175 !!!!!!!!!!!!!!!!!! END "USE" for CPP keys !!!!!!!!!!!!!!!!!!!!!! 183 176 … … 201 194 ! d_t_ajs_w,d_q_ajs_w, & 202 195 ! d_t_ajs_x,d_q_ajs_x, & 203 ! 196 204 197 d_t_eva,d_q_eva,d_ql_eva,d_qi_eva, & 205 198 d_qx_eva, & … … 208 201 d_t_lscth,d_q_lscth, & 209 202 plul_st,plul_th, & 210 ! 203 211 204 d_t_vdf,d_q_vdf, d_qbs_vdf, d_u_vdf,d_v_vdf,d_t_diss, & 212 205 d_t_vdf_x, d_t_vdf_w, & 213 206 d_q_vdf_x, d_q_vdf_w, & 214 207 d_ts, & 215 ! 208 216 209 d_t_bsss,d_q_bsss,d_qbs_bsss, & 217 ! 210 218 211 ! d_t_oli,d_u_oli,d_v_oli, & 219 212 d_t_oro,d_u_oro,d_v_oro, & … … 221 214 d_t_lif,d_u_lif,d_v_lif, & 222 215 d_t_ec, & 223 ! 216 224 217 du_gwd_hines,dv_gwd_hines,d_t_hin, & 225 218 dv_gwd_rando,dv_gwd_front, & … … 234 227 ZLWFT0_i,ZSWFT0_i,ZFLDN0, & 235 228 ZFLUP0,ZFSDN0,ZFSUP0, & 236 ! 229 237 230 topswad_aero,solswad_aero, & 238 231 topswai_aero,solswai_aero, & … … 253 246 toplwai_aero_s2, sollwai_aero_s2, & 254 247 toplwad0_aero_s2, sollwad0_aero_s2, & 255 ! 248 256 249 topsw_aero,solsw_aero, & 257 250 topsw0_aero,solsw0_aero, & … … 259 252 tausum_aero,tau3d_aero, & 260 253 drytausum_aero, & 261 ! 254 262 255 !variables CFMIP2/CMIP5 263 256 topswad_aerop, solswad_aerop, & … … 282 275 toplwai_aero_s2, sollwai_aero_s2, & 283 276 toplwad0_aero_s2, sollwad0_aero_s2, & 284 ! 277 285 278 ptstar, pt0, slp, & 286 ! 279 287 280 bils, & 288 ! 281 289 282 cldh, cldl,cldm, cldq, cldt, & 290 283 JrNt, & … … 297 290 zt2m_min_mon, zt2m_max_mon, & ! pour calcul_divers.h 298 291 t2m_min_mon, t2m_max_mon, & ! pour calcul_divers.h 299 ! 292 300 293 s_pblh_x, s_pblh_w, & 301 294 s_lcl_x, s_lcl_w, & 302 ! 295 303 296 slab_wfbils, tpot, tpote, & 304 297 ue, uq, ve, vq, zxffonte, & … … 309 302 delta_qsurf, & 310 303 rain_lsc, rain_num, & 311 ! 304 312 305 sens_x, sens_w, & 313 306 zxfluxlat_x, zxfluxlat_w, & 314 ! 307 315 308 pbl_tke_input, pbl_eps, l_mix, wprime,& 316 309 t_therm, q_therm, u_therm, v_therm, & … … 318 311 cdragm_x, cdragm_w, & 319 312 kh, kh_x, kh_w, & 320 ! 313 321 314 wake_k, & 322 315 alp_wake, & … … 332 325 !!! d_s_vdf, d_dens_a_vdf, d_dens_vdf, & ! due to vertical diffusion 333 326 !!! d_s_the, d_dens_a_the, d_dens_the, & ! due to thermals 334 ! 327 335 328 ptconv, ratqsc, & 336 329 wbeff, convoccur, zmax_th, & … … 341 334 proba_notrig, random_notrig, & 342 335 !! cv_gen, & !moved to phys_state_var_mod 343 ! 336 344 337 dnwd0, & 345 338 omega, & … … 361 354 epmlmMm, eplaMm, & 362 355 sij, & 363 ! 356 364 357 rneblsvol, & 365 358 pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb, & … … 375 368 zphi, zx_rh, zx_rhl, zx_rhi, & 376 369 pmfd, pmfu, & 377 ! 370 378 371 t2m, fluxlat, & 379 372 fsollw, evap_pot, & … … 381 374 prfl, psfl,bsfl, fraca, Vprecip, & 382 375 zw2, & 383 ! 376 384 377 fluxu, fluxv, & 385 378 fluxt, & 386 ! 379 387 380 uwriteSTD, vwriteSTD, & !pour calcul_STDlev.h 388 381 wwriteSTD, phiwriteSTD, & !pour calcul_STDlev.h 389 382 qwriteSTD, twriteSTD, rhwriteSTD, & !pour calcul_STDlev.h 390 ! 383 391 384 beta_prec, & 392 385 rneb, & … … 420 413 #endif 421 414 #endif 422 ! 415 423 416 USE phys_local_var_mod, ONLY: zfice, dNovrN, ptconv 424 417 USE phys_output_var_mod, ONLY: scdnc, cldncl, reffclwtop, lcc, reffclws, & … … 529 522 SAVE ok_journe 530 523 !$OMP THREADPRIVATE(ok_journe) 531 ! 524 532 525 LOGICAL ok_mensuel ! sortir le fichier mensuel 533 526 SAVE ok_mensuel 534 527 !$OMP THREADPRIVATE(ok_mensuel) 535 ! 528 536 529 LOGICAL ok_instan ! sortir le fichier instantane 537 530 SAVE ok_instan 538 531 !$OMP THREADPRIVATE(ok_instan) 539 ! 532 540 533 LOGICAL ok_LES ! sortir le fichier LES 541 534 SAVE ok_LES 542 535 !$OMP THREADPRIVATE(ok_LES) 543 ! 536 544 537 LOGICAL callstats ! sortir le fichier stats 545 538 SAVE callstats 546 539 !$OMP THREADPRIVATE(callstats) 547 ! 540 548 541 LOGICAL ok_region ! sortir le fichier regional 549 542 PARAMETER (ok_region=.FALSE.) … … 567 560 568 561 !====================================================================== 569 ! 562 570 563 ! indices de traceurs eau vapeur, liquide, glace, fraction nuageuse LS (optional), blowing snow (optional) 571 564 ! INTEGER,SAVE :: ivap, iliq, isol, irneb, ibs … … 577 570 INTEGER,SAVE :: irneb, ibs 578 571 !$OMP THREADPRIVATE(irneb, ibs) 579 ! 580 ! 572 573 581 574 ! Variables argument: 582 ! 575 583 576 INTEGER nlon 584 577 INTEGER nlev … … 634 627 635 628 ! variables a une pression donnee 636 ! 629 637 630 include "declare_STDlev.h" 638 ! 639 ! 631 632 640 633 include "radepsi.h" 641 634 include "radopt.h" 642 ! 643 ! 635 636 644 637 INTEGER n 645 638 !ym INTEGER npoints 646 639 !ym PARAMETER(npoints=klon) 647 ! 640 648 641 INTEGER nregISCtot 649 642 PARAMETER(nregISCtot=1) 650 ! 643 651 644 ! imin_debut, nbpti, jmin_debut, nbptj : parametres pour sorties 652 645 ! sur 1 region rectangulaire y compris pour 1 point … … 661 654 PARAMETER(region='3d') 662 655 LOGICAL ok_hf 663 ! 656 664 657 SAVE ok_hf 665 658 !$OMP THREADPRIVATE(ok_hf) … … 668 661 REAL, SAVE :: clesphy0(longcles) 669 662 !$OMP THREADPRIVATE(clesphy0) 670 ! 663 671 664 ! Variables propres a la physique 672 665 INTEGER, SAVE :: itap ! compteur pour la physique … … 675 668 INTEGER, SAVE :: abortphy=0 ! Reprere si on doit arreter en fin de phys 676 669 !$OMP THREADPRIVATE(abortphy) 677 ! 670 678 671 REAL,SAVE :: solarlong0 679 672 !$OMP THREADPRIVATE(solarlong0) 680 673 681 !682 674 ! Parametres de l'Orographie a l'Echelle Sous-Maille (OESM): 683 ! 675 684 676 !IM 141004 REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon) 685 677 REAL zulow(klon),zvlow(klon) 686 ! 678 687 679 INTEGER igwd,idx(klon),itest(klon) 688 ! 680 689 681 ! REAL,allocatable,save :: run_off_lic_0(:) 690 682 ! !$OMP THREADPRIVATE(run_off_lic_0) … … 692 684 !KE43 693 685 ! Variables liees a la convection de K. Emanuel (sb): 694 ! 686 695 687 REAL, SAVE :: bas, top ! cloud base and top levels 696 688 !$OMP THREADPRIVATE(bas, top) 697 689 !------------------------------------------------------------------ 698 690 ! Upmost level reached by deep convection and related variable (jyg) 699 ! 691 700 692 ! INTEGER izero 701 693 INTEGER k_upper_cv … … 705 697 SAVE Ncvpaseq1 706 698 !$OMP THREADPRIVATE(Ncvpaseq1) 707 ! 699 708 700 !========================================================================== 709 701 !CR04.12.07: on ajoute les nouvelles variables du nouveau schema … … 713 705 !! REAL mipsh(klon,klev) ! mass flux shed by the adiab ascent at each level 714 706 !! Moved to phys_state_var_mod 715 ! 707 716 708 REAL wape_prescr, fip_prescr 717 709 INTEGER it_wape_prescr 718 710 SAVE wape_prescr, fip_prescr, it_wape_prescr 719 711 !$OMP THREADPRIVATE(wape_prescr, fip_prescr, it_wape_prescr) 720 ! 712 721 713 ! variables supplementaires de concvl 722 714 REAL Tconv(klon,klev) … … 764 756 REAL wake_dp_deltomg(klon,klev) ! Wake : gradient vertical de wake_omg 765 757 REAL wake_spread(klon,klev) ! spreading term in wake_delt 766 ! 758 767 759 !pourquoi y'a pas de save?? 768 ! 760 769 761 !!! INTEGER, SAVE, DIMENSION(klon) :: wake_k 770 762 !!! !$OMP THREADPRIVATE(wake_k) … … 773 765 REAL xt_w(ntraciso,klon,klev) 774 766 #endif 775 ! 767 776 768 !jyg< 777 769 !cc REAL wake_pe(klon) ! Wake potential energy - WAPE … … 781 773 REAL wake_gfl(klon) ! Gust Front Length 782 774 !!! REAL wake_dens(klon) ! moved to phys_state_var_mod 783 ! 784 ! 775 776 785 777 REAL dt_dwn(klon,klev) 786 778 REAL dq_dwn(klon,klev) … … 808 800 REAL d_xt_adjwk(ntraciso,klon,klev) 809 801 #endif 810 811 ! 802 812 803 !RR:fin declarations poches froides 813 804 !========================================================================== … … 858 849 859 850 ! Variables locales pour la couche limite (al1): 860 ! 851 861 852 !Al1 REAL pblh(klon) ! Hauteur de couche limite 862 853 !Al1 SAVE pblh 863 854 !34EK 864 ! 855 865 856 ! Variables locales: 866 ! 857 867 858 !AA 868 859 !AA Pour phytrac … … 881 872 !IM cf FH pour Tiedtke 080604 882 873 REAL rain_tiedtke(klon),snow_tiedtke(klon) 883 ! 874 884 875 !IM 050204 END 885 876 REAL devap(klon) ! evaporation et sa derivee … … 888 879 REAL dxtevap(ntraciso,klon) 889 880 #endif 890 ! 881 891 882 ! Conditions aux limites 892 ! 893 ! 883 884 894 885 REAL :: day_since_equinox 895 886 ! Date de l'equinoxe de printemps … … 899 890 LOGICAL, parameter :: new_orbit = .TRUE. 900 891 901 !902 892 INTEGER lmt_pas 903 893 SAVE lmt_pas ! frequence de mise a jour … … 914 904 !$OMP THREADPRIVATE(itapm1) 915 905 !====================================================================== 916 ! 906 917 907 ! Declaration des procedures appelees 918 ! 908 919 909 EXTERNAL angle ! calculer angle zenithal du soleil 920 910 EXTERNAL alboc ! calculer l'albedo sur ocean … … 937 927 ! moyenne globale d'1 var ponderee par l'aire de la maille (moyglo_pondaire) 938 928 ! par la masse/airetot (moyglo_pondaima) et la vraie masse (moyglo_pondmass) 939 ! 940 ! 929 930 941 931 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 942 932 ! Local variables 943 933 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 944 ! 934 945 935 ! REAL rhcl(klon,klev) ! humiditi relative ciel clair 946 936 REAL dialiq(klon,klev) ! eau liquide nuageuse 947 937 REAL diafra(klon,klev) ! fraction nuageuse 948 938 REAL radocond(klon,klev) ! eau condensee nuageuse 949 ! 939 950 940 !XXX PB 951 941 REAL fluxq(klon,klev, nbsrf) ! flux turbulent d'humidite 952 942 REAL fluxqbs(klon,klev, nbsrf) ! flux turbulent de neige soufflee 953 ! 943 954 944 !FC REAL zxfluxt(klon, klev) 955 945 !FC REAL zxfluxq(klon, klev) … … 967 957 !ym SAVE sollwdownclr, toplwdown, toplwdownclr 968 958 !ym SAVE topsw0,toplw0,solsw0,sollw0, heat0, cool0 969 ! 959 970 960 INTEGER itaprad 971 961 SAVE itaprad 972 962 !$OMP THREADPRIVATE(itaprad) 973 ! 963 974 964 REAL conv_q(klon,klev) ! convergence de l'humidite (kg/kg/s) 975 965 REAL conv_t(klon,klev) ! convergence de la temperature(K/s) 976 ! 966 977 967 REAL zsav_tsol(klon) 978 ! 968 979 969 REAL dist, rmu0(klon), fract(klon) 980 970 REAL zrmu0(klon), zfract(klon) 981 971 REAL zdtime, zdtime1, zdtime2, zlongi 982 ! 972 983 973 REAL qcheck 984 974 REAL z_avant(klon), z_apres(klon), z_factor(klon) 985 975 LOGICAL zx_ajustq 986 ! 976 987 977 REAL za 988 978 REAL zx_t, zx_qs, zdelta, zcor 989 979 real zqsat(klon,klev) 990 ! 980 991 981 INTEGER i, k, iq, nsrf, l, itr 992 982 #ifdef ISO … … 997 987 real wake_deltaq_prec(klon,klev) 998 988 #endif 999 ! 989 1000 990 REAL t_coup 1001 991 PARAMETER (t_coup=234.0) … … 1004 994 !ym REAL zx_relief(iim,jjmp1) 1005 995 !ym REAL zx_aire(iim,jjmp1) 1006 ! 996 1007 997 ! Grandeurs de sorties 1008 998 REAL s_capCL(klon) … … 1016 1006 !ym SAVE 1017 1007 !ym SAVE 1018 ! 1008 1019 1009 INTEGER itapcv, itapwk 1020 1010 SAVE itapcv, itapwk … … 1039 1029 ! -- 1040 1030 !34EK 1041 ! 1031 1042 1032 ! Variables du changement 1043 ! 1033 1044 1034 ! con: convection 1045 1035 ! lsc: condensation a grande echelle (Large-Scale-Condensation) … … 1047 1037 ! eva: evaporation de l'eau liquide nuageuse 1048 1038 ! vdf: couche limite (Vertical DiFfusion) 1049 ! 1039 1050 1040 ! tendance nulles 1051 1041 REAL, dimension(klon,klev):: du0, dv0, dt0, dq0, dql0, dqi0, dqbs0 … … 1060 1050 REAL, DIMENSION(ntraciso,klon,klev) :: d_xt_ch4_dtime 1061 1051 #endif 1062 ! 1052 1063 1053 ! Flag pour pouvoir ne pas ajouter les tendances. 1064 1054 ! Par defaut, les tendances doivente etre ajoutees et … … 1069 1059 INTEGER :: flag_inhib_tend = 0 ! 0 is the default value 1070 1060 !! INTEGER :: flag_inhib_tend = 2 1071 ! 1061 1072 1062 ! Logical switch to a bug : reseting to 0 convective variables at the 1073 1063 ! begining of physiq. 1074 1064 LOGICAL, SAVE :: ok_bug_cv_trac = .TRUE. 1075 1065 !$OMP THREADPRIVATE(ok_bug_cv_trac) 1076 ! 1066 1077 1067 ! Logical switch to a bug : changing wake_deltat when thermals are active 1078 1068 ! even when there are no wakes. … … 1084 1074 LOGICAL, SAVE :: ok_bug_ajs_cv = .TRUE. 1085 1075 !$OMP THREADPRIVATE(ok_bug_ajs_cv) 1086 ! 1076 1087 1077 !******************************************************** 1088 1078 ! declarations … … 1090 1080 !******************************************************** 1091 1081 !IM 081204 END 1092 ! 1082 1093 1083 REAL pen_u(klon,klev), pen_d(klon,klev) 1094 1084 REAL pde_u(klon,klev), pde_d(klon,klev) 1095 1085 INTEGER kcbot(klon), kctop(klon), kdtop(klon) 1096 ! 1086 1097 1087 REAL ratqsbas,ratqshaut,tau_ratqs 1098 1088 SAVE ratqsbas,ratqshaut,tau_ratqs … … 1117 1107 REAL zrel_oro(klon) 1118 1108 !IM cf. AM 081204 END 1119 ! 1109 1120 1110 ! Variables liees a l'ecriture de la bande histoire physique 1121 ! 1111 1122 1112 !====================================================================== 1123 ! 1124 ! 1113 1114 1125 1115 !JLD integer itau_w ! pas de temps ecriture = itap + itau_phy 1126 ! 1127 ! 1116 1117 1128 1118 ! Variables locales pour effectuer les appels en serie 1129 ! 1119 1130 1120 !IM RH a 2m (la surface) 1131 1121 REAL Lheat … … 1134 1124 PARAMETER ( length = 100 ) 1135 1125 REAL tabcntr0( length ) 1136 ! 1126 1137 1127 !JLD INTEGER ndex2d(nbp_lon*nbp_lat) 1138 1128 !IM 1139 ! 1129 1140 1130 !IM AMIP2 BEG 1141 1131 !JLD REAL moyglo, mountor … … 1158 1148 !ym REAL zm_wo(jjmp1, klev) 1159 1149 !IM AMIP2 END 1160 ! 1150 1161 1151 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique 1162 1152 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D … … 1164 1154 !JLD REAL zx_lon(nbp_lon,nbp_lat) 1165 1155 !JLD REAL zx_lat(nbp_lon,nbp_lat) 1166 ! 1156 1167 1157 INTEGER nid_ctesGCM 1168 1158 SAVE nid_ctesGCM 1169 1159 !$OMP THREADPRIVATE(nid_ctesGCM) 1170 ! 1160 1171 1161 !IM 280405 BEG 1172 1162 ! INTEGER nid_bilKPins, nid_bilKPave 1173 1163 ! SAVE nid_bilKPins, nid_bilKPave 1174 1164 ! !$OMP THREADPRIVATE(nid_bilKPins, nid_bilKPave) 1175 ! 1165 1176 1166 REAL ve_lay(klon,klev) ! transport meri. de l'energie a chaque niveau vert. 1177 1167 REAL vq_lay(klon,klev) ! transport meri. de l'eau a chaque niveau vert. 1178 1168 REAL ue_lay(klon,klev) ! transport zonal de l'energie a chaque niveau vert. 1179 1169 REAL uq_lay(klon,klev) ! transport zonal de l'eau a chaque niveau vert. 1180 ! 1170 1181 1171 !JLD REAL zjulian 1182 1172 !JLD SAVE zjulian … … 1240 1230 LOGICAL, SAVE :: flag_bc_internal_mixture 1241 1231 !$OMP THREADPRIVATE(flag_bc_internal_mixture) 1242 ! 1232 1243 1233 !--STRAT AEROSOL 1244 1234 INTEGER, SAVE :: flag_aerosol_strat 1245 1235 !$OMP THREADPRIVATE(flag_aerosol_strat) 1246 ! 1236 1247 1237 !--INTERACTIVE AEROSOL FEEDBACK ON RADIATION 1248 1238 LOGICAL, SAVE :: flag_aer_feedback … … 1250 1240 1251 1241 !c-fin STRAT AEROSOL 1252 ! 1242 1253 1243 ! Declaration des constantes et des fonctions thermodynamiques 1254 ! 1244 1255 1245 LOGICAL,SAVE :: first=.TRUE. 1256 1246 !$OMP THREADPRIVATE(first) … … 1284 1274 include "compbl.h" 1285 1275 !IM 100106 END : pouvoir sortir les ctes de la physique 1286 ! 1276 1287 1277 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1288 1278 ! Declarations pour Simulateur COSP … … 1344 1334 REAL, SAVE :: betalwoff 1345 1335 !$OMP THREADPRIVATE(betalwoff) 1346 ! 1336 1347 1337 INTEGER :: nbtr_tmp ! Number of tracer inside concvl 1348 1338 REAL, dimension(klon,klev) :: sh_in ! Specific humidity entering in phytrac … … 1417 1407 !====================================================================== 1418 1408 ! Gestion calendrier : mise a jour du module phys_cal_mod 1419 ! 1409 1420 1410 pdtphys=pdtphys_ 1421 1411 CALL update_time(pdtphys) … … 1475 1465 WRITE(lunout,*) '=================================================' 1476 1466 CALL phys_local_var_init 1477 ! 1467 1478 1468 ! appel a la lecture du run.def physique 1479 1469 CALL conf_phys(ok_journe, ok_mensuel, & … … 1510 1500 1511 1501 print*, '=================================================' 1512 ! 1502 1513 1503 !CR: check sur le nb de traceurs de l eau 1514 1504 IF ((iflag_ice_thermo>0).and.(nqo==2)) THEN … … 1629 1619 iflag_phytrac = 1 ! by default we do want to call phytrac 1630 1620 CALL getin_p('iflag_phytrac',iflag_phytrac) 1631 #ifdef CPP_Dust 1621 IF (CPPKEY_DUST) THEN 1632 1622 IF (iflag_phytrac.EQ.0) THEN 1633 1623 WRITE(lunout,*) 'In order to run with SPLA, iflag_phytrac will be forced to 1' 1634 1624 iflag_phytrac = 1 1635 1625 ENDIF 1636 #endif 1626 END IF 1637 1627 nvm_lmdz = 13 1638 1628 CALL getin_p('NVM',nvm_lmdz) … … 1672 1662 !====================================================================== 1673 1663 ! Gestion calendrier : mise a jour du module phys_cal_mod 1674 ! 1664 1675 1665 ! CALL phys_cal_update(jD_cur,jH_cur) 1676 1666 1677 !1678 1667 ! Si c'est le debut, il faut initialiser plusieurs choses 1679 1668 ! ******** 1680 ! 1669 1681 1670 IF (debut) THEN 1682 1671 !rv CRinitialisation de wght_th et lalim_conv pour la … … 1732 1721 clwcon(:,:) = 0.0 1733 1722 1734 !1735 1723 print*,'iflag_coupl,iflag_clos,iflag_wake', & 1736 1724 iflag_coupl,iflag_clos,iflag_wake 1737 1725 print*,'iflag_cycle_diurne', iflag_cycle_diurne 1738 ! 1726 1739 1727 IF (iflag_con==2.AND.iflag_cld_th>-1) THEN 1740 1728 abort_message = 'Tiedtke needs iflag_cld_th=-2 or -1' 1741 1729 CALL abort_physic (modname,abort_message,1) 1742 1730 ENDIF 1743 ! 1744 ! 1731 1732 1745 1733 ! Initialiser les compteurs: 1746 ! 1734 1747 1735 itap = 0 1748 1736 itaprad = 0 … … 1864 1852 ENDIF 1865 1853 1866 !1867 1854 ALLOCATE(tabCFMIP(nCFMIP)) 1868 1855 ALLOCATE(lonCFMIP(nCFMIP), latCFMIP(nCFMIP)) … … 1870 1857 ALLOCATE(lonGCM(nCFMIP), latGCM(nCFMIP)) 1871 1858 ALLOCATE(iGCM(nCFMIP), jGCM(nCFMIP)) 1872 ! 1859 1873 1860 ! lecture des nCFMIP stations CFMIP, de leur numero 1874 1861 ! et des coordonnees geographiques lonCFMIP, latCFMIP 1875 ! 1862 1876 1863 CALL read_CFMIP_point_locations(nCFMIP, tabCFMIP, & 1877 1864 lonCFMIP, latCFMIP) 1878 ! 1865 1879 1866 ! identification des 1880 1867 ! 1) coordonnees lonGCM, latGCM des points CFMIP dans la … … 1883 1870 ! klon points 1884 1871 ! 3) indices iGCM, jGCM de la grille physique 2d 1885 ! 1872 1886 1873 CALL LMDZ_CFMIP_point_locations(nCFMIP, lonCFMIP, latCFMIP, & 1887 1874 tabijGCM, lonGCM, latGCM, iGCM, jGCM) 1888 ! 1875 1889 1876 ELSE 1890 1877 ALLOCATE(tabijGCM(0)) … … 1932 1919 date0 = jD_ref 1933 1920 WRITE(*,*) 'physiq date0 : ',date0 1934 !1935 1921 1936 1922 ! CALL create_climoz(read_climoz) … … 1996 1982 ENDIF 1997 1983 1998 ! 1999 ! 1984 2000 1985 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2001 1986 ! Nouvelle initialisation pour le rayonnement RRTM … … 2038 2023 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2039 2024 2040 !2041 2025 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2042 2026 ! Initialisation des champs dans phytrac* qui sont utilises par phys_output_write* 2043 ! 2027 2044 2028 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2045 2029 2046 #ifdef CPP_Dust 2030 IF (CPPKEY_DUST) THEN 2047 2031 ! Quand on utilise SPLA, on force iflag_phytrac=1 2048 2032 CALL phytracr_spl_out_init() … … 2053 2037 ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse, & 2054 2038 flag_aerosol, flag_aerosol_strat, ok_cdnc) 2055 #else 2039 ELSE 2056 2040 ! phys_output_write écrit des variables traceurs seulement si iflag_phytrac == 1 2057 2041 ! donc seulement dans ce cas on doit appeler phytrac_init() … … 2065 2049 ptconvth, d_u, d_t, qx, d_qx, zmasse, & 2066 2050 flag_aerosol, flag_aerosol_strat, ok_cdnc, t, u1, v1) 2067 #endif 2051 END IF 2068 2052 2069 2053 … … 2106 2090 2107 2091 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2108 ! 2092 2109 2093 ! on remet le calendrier a zero 2110 ! 2094 2111 2095 IF (raz_date == 1) THEN 2112 2096 itau_phy = 0 … … 2132 2116 CALL abort_physic(modname,abort_message,1) 2133 2117 ENDIF 2134 ! 2118 2135 2119 IF (phys_tstep*REAL(radpas)>21600..AND.iflag_cycle_diurne>=1) THEN 2136 2120 WRITE(lunout,*)'Nbre d appels au rayonnement insuffisant' … … 2142 2126 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2143 2127 ! Initialisation pour la convection de K.E. et pour les poches froides 2144 ! 2128 2145 2129 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2146 2130 2147 2131 WRITE(lunout,*)"Clef pour la convection, iflag_con=", iflag_con 2148 2132 WRITE(lunout,*)"Clef pour le driver de la convection, ok_cvl=", ok_cvl 2149 ! 2133 2150 2134 !KE43 2151 2135 ! Initialisation pour la convection de K.E. (sb): … … 2178 2162 ! 11/09/06 rajout initialisation ALE et ALP du wake et PBL(YU) 2179 2163 ! print*,'apres ini_wake iflag_cld_th=', iflag_cld_th 2180 ! 2164 2181 2165 ! Initialize tendencies of wake state variables (for some flag values 2182 2166 ! they are not computed). … … 2211 2195 ! ALLOCATE(iGCM(0), jGCM(0)) 2212 2196 ENDIF ! (iflag_con.GE.3) 2213 ! 2197 2214 2198 DO i=1,klon 2215 2199 rugoro(i) = f_rugoro * MAX(1.0e-05, zstd(i)*zsig(i)/2.0) … … 2243 2227 ENDDO 2244 2228 ENDIF 2245 ! 2246 ! 2229 2230 2247 2231 lmt_pas = NINT(86400./phys_tstep * 1.0) ! tous les jours 2248 2232 WRITE(lunout,*)'La frequence de lecture surface est de ', & 2249 2233 lmt_pas 2250 ! 2234 2251 2235 capemaxcels = 't_max(X)' 2252 2236 t2mincels = 't_min(X)' … … 2257 2241 write(lunout,*)'AVANT HIST IFLAG_CON=',iflag_con 2258 2242 !IM cf. AM 081204 END 2259 ! 2243 2260 2244 !============================================================= 2261 2245 ! Initialisation des sorties … … 2274 2258 IF (is_omp_master) CALL xios_get_field_attr("temp",default_value=missing_val) 2275 2259 CALL bcast_omp(missing_val) 2276 ! 2260 2277 2261 ! Now we activate some double radiation call flags only if some 2278 2262 ! diagnostics are requested, otherwise there is no point in doing this … … 2299 2283 IF (xios_field_is_active("dryod550_"//name_aero_tau(naero))) dryaod_diag=.TRUE. 2300 2284 ENDDO 2301 ! 2285 2302 2286 !--setting up ok_4xCO2atm to TRUE in XIOS case 2303 2287 IF (xios_field_is_active("rsut4co2").OR.xios_field_is_active("rlut4co2").OR. & … … 2315 2299 CALL bcast(ok_4xCO2atm) 2316 2300 ENDIF !using_xios 2317 ! 2301 2318 2302 CALL printflag( tabcntr0,radpas,ok_journe, & 2319 2303 ok_instan, ok_region ) 2320 ! 2321 ! 2304 2305 2322 2306 ! Prescrire l'ozone dans l'atmosphere 2323 ! 2307 2324 2308 !c DO i = 1, klon 2325 2309 !c DO k = 1, klev … … 2327 2311 !c ENDDO 2328 2312 !c ENDDO 2329 ! 2313 2330 2314 IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL 2331 2315 IF (CPPKEY_INCA) THEN … … 2402 2386 piz_aero(:,:,:,:) = init_pizinca 2403 2387 cg_aero(:,:,:,:) = init_cginca 2404 !2405 2406 2388 2407 2389 CALL VTe(VTinca) … … 2409 2391 END IF 2410 2392 ENDIF 2411 ! 2393 2412 2394 IF (type_trac == 'repr') THEN 2413 2395 #ifdef REPROBUS … … 2429 2411 press_edg_climoz, time_climoz, ok_daily_climoz, adjust_tropopause) 2430 2412 !$omp end single 2431 ! 2413 2432 2414 !IM betaCRF 2433 2415 pfree=70000. !Pa … … 2489 2471 ENDIF 2490 2472 WRITE(*,*)'ok_lwoff=',ok_lwoff 2491 ! 2473 2492 2474 !lwoff=y to begin only sollw and sollwdown are set up to CS values 2493 2475 sollw = sollw + betalwoff * (sollw0 - sollw) … … 2498 2480 2499 2481 ENDIF 2500 ! 2482 2501 2483 ! **************** Fin de IF ( debut ) *************** 2502 ! 2503 ! 2484 2485 2504 2486 ! Incrementer le compteur de la physique 2505 ! 2487 2506 2488 itap = itap + 1 2507 2489 IF (is_master .OR. prt_level > 9) THEN … … 2512 2494 ENDIF 2513 2495 ENDIF 2514 ! 2515 ! 2496 2497 2516 2498 ! Update fraction of the sub-surfaces (pctsrf) and 2517 2499 ! initialize, where a new fraction has appeared, all variables depending 2518 2500 ! on the surface fraction. 2519 ! 2501 2520 2502 CALL change_srf_frac(itap, phys_tstep, days_elapsed+1, & 2521 2503 pctsrf, fevap, z0m, z0h, agesno, & … … 2552 2534 ddens0(:) = 0. 2553 2535 wkoccur1(:)=1 2554 ! 2536 2555 2537 ! Mettre a zero des variables de sortie (pour securite) 2556 ! 2538 2557 2539 DO i = 1, klon 2558 2540 d_ps(i) = 0.0 … … 2574 2556 beta_prec_fisrt(:,:)=0. 2575 2557 beta_prec(:,:)=0. 2576 ! 2558 2577 2559 ! Output variables from the convective scheme should not be set to 0 2578 2560 ! since convection is not always called at every time step. … … 2591 2573 ! RomP <<< 2592 2574 ENDIF 2593 ! 2575 2594 2576 ! Ne pas affecter les valeurs entrees de u, v, h, et q 2595 ! 2577 2596 2578 DO k = 1, klev 2597 2579 DO i = 1, klon … … 2655 2637 #endif 2656 2638 ! #ifdef ISO 2657 ! 2639 2658 2640 !--OB mass fixer 2659 2641 IF (mass_fixer) THEN … … 2703 2685 tr_seri(:,:,strIdx(tracers(:)%name,addPhase('H2O','g'))) = 0.0 2704 2686 ENDIF 2705 ! 2687 2706 2688 ! Temporary solutions adressing ticket #104 and the non initialisation of tr_ancien 2707 2689 ! LF … … 2715 2697 enddo 2716 2698 ENDIF 2717 ! 2699 2718 2700 DO i = 1, klon 2719 2701 ztsol(i) = 0. … … 2773 2755 #endif 2774 2756 #endif 2775 ! 2757 2776 2758 IF (ancien_ok) THEN 2777 ! 2759 2778 2760 d_u_dyn(:,:) = (u_seri(:,:)-u_ancien(:,:))/phys_tstep 2779 2761 d_v_dyn(:,:) = (v_seri(:,:)-v_ancien(:,:))/phys_tstep … … 2910 2892 #endif 2911 2893 ENDIF 2912 ! 2894 2913 2895 ! Ajouter le geopotentiel du sol: 2914 ! 2896 2915 2897 DO k = 1, klev 2916 2898 DO i = 1, klon … … 2918 2900 ENDDO 2919 2901 ENDDO 2920 ! 2902 2921 2903 ! Verifier les temperatures 2922 ! 2904 2923 2905 !IM BEG 2924 2906 IF (check) THEN … … 2929 2911 amx=MAX(ftsol(i,is_ter),amx) 2930 2912 ENDDO 2931 ! 2913 2932 2914 PRINT*,' debut avant hgardfou min max ftsol',itap,amn,amx 2933 2915 ENDIF !(check) THEN 2934 2916 !IM END 2935 ! 2917 2936 2918 CALL hgardfou(t_seri,ftsol,'debutphy',abortphy) 2937 2919 IF (abortphy==1) Print*,'ERROR ABORT hgardfou debutphy' 2938 2920 2939 !2940 2921 !IM BEG 2941 2922 IF (check) THEN … … 2946 2927 amx=MAX(ftsol(i,is_ter),amx) 2947 2928 ENDDO 2948 ! 2929 2949 2930 PRINT*,' debut apres hgardfou min max ftsol',itap,amn,amx 2950 2931 ENDIF !(check) THEN 2951 2932 !IM END 2952 ! 2933 2953 2934 ! Mettre en action les conditions aux limites (albedo, sst, etc.). 2954 2935 ! Prescrire l'ozone et calculer l'albedo sur l'ocean. 2955 ! 2936 2956 2937 ! Update ozone if day change 2957 2938 IF (MOD(itap-1,lmt_pas) == 0) THEN … … 2983 2964 B=Z2-fac*alog(pplay(i,itroprep(i))) 2984 2965 ttrop(i)= fac*alog(ptrop(i))+B 2985 ! 2966 2986 2967 Z1= 1.e-3 * ( pphi(i,itroprep(i)+1)+pphis(i) ) / gravit 2987 2968 Z2= 1.e-3 * ( pphi(i,itroprep(i)) +pphis(i) ) / gravit … … 3029 3010 #endif 3030 3011 #endif 3031 ! 3012 3032 3013 ! Re-evaporer l'eau liquide nuageuse 3033 ! 3014 3034 3015 CALL reevap (klon,klev,iflag_ice_thermo,t_seri,qx_seri, & 3035 3016 d_t_eva,d_qx_eva) … … 3099 3080 CALL ymds2ju(year_cur, mth_eq, day_eq,0., jD_eq) 3100 3081 day_since_equinox = (jD_cur + jH_cur) - jD_eq 3101 ! 3082 3102 3083 ! choix entre calcul de la longitude solaire vraie ou valeur fixee a 3103 3084 ! solarlong0 … … 3165 3146 CALL zenang(zlongi,jH_cur,zdtime1,zdtime2, & 3166 3147 latitude_deg,longitude_deg,rmu0,fract) 3167 ! 3148 3168 3149 ! Calcul des poids 3169 ! 3150 3170 3151 zdtime1=-phys_tstep !--on corrige le rayonnement pour representer le 3171 3152 zdtime2=0.0 !--pas de temps de la physique qui se termine … … 3193 3174 ! Cela implique tous les interactions des sous-surfaces et la 3194 3175 ! partie diffusion turbulent du couche limit. 3195 ! 3176 3196 3177 ! Certains varibales de sorties de pbl_surface sont utiliser que pour 3197 3178 ! ecriture des fihiers hist_XXXX.nc, ces sont : … … 3205 3186 ! d_ts, fevap, fluxlat, t2m, 3206 3187 ! wfbils, fluxt, fluxu, fluxv, 3207 ! 3188 3208 3189 ! Certains ne sont pas utiliser du tout : 3209 3190 ! dsens, devap, zxsnow, zxfluxt, zxfluxq, q2m, fluxq 3210 !3211 3191 3212 3192 ! Calcul de l'humidite de saturation au niveau du sol … … 3248 3228 ! !! 3249 3229 !>jyg+nrlmd 3250 ! 3230 3251 3231 !-------gustiness calculation-------! 3252 3232 !ym : Warning gustiness non inialized for iflag_gusts=2 & iflag_gusts=3 … … 3415 3395 #endif 3416 3396 !#ifdef ISO 3417 ! 3397 3418 3398 ! Add turbulent diffusion tendency to the wake difference variables 3419 3399 !!jyg IF (mod(iflag_pbl_split,2) .NE. 0) THEN … … 3560 3540 write(lunout,'(i4,f15.4)') (k,1000.*zqsat(igout,k),k=1,klev) 3561 3541 ENDIF 3562 ! 3542 3563 3543 ! Appeler la convection (au choix) 3564 ! 3544 3565 3545 DO k = 1, klev 3566 3546 DO i = 1, klon … … 3598 3578 IF (prt_level>=1) write(lunout,*) 'omega(igout, :) = ', & 3599 3579 omega(igout, :) 3600 ! 3580 3601 3581 ! Appel de la convection tous les "cvpas" 3602 ! 3582 3603 3583 !!jyg IF (MOD(itapcv,cvpas).EQ.0) THEN 3604 3584 !! print *,' physiq : itapcv, cvpas, itap-1, cvpas_0 ', & … … 3606 3586 IF (MOD(itapcv,cvpas)==0 .OR. MOD(itap-1,cvpas_0)==0) THEN 3607 3587 3608 !3609 3588 ! Mettre a zero des variables de sortie (pour securite) 3610 ! 3589 3611 3590 pmflxr(:,:) = 0. 3612 3591 pmflxs(:,:) = 0. … … 3636 3615 xtwdtrainA(:,:,:) = 0. 3637 3616 #endif 3638 ! 3617 3639 3618 IF (iflag_con==1) THEN 3640 3619 abort_message ='reactiver le call conlmd dans physiq.F' … … 3783 3762 endif ! if (iso_eau.gt.0) then 3784 3763 #endif 3785 ! 3764 3786 3765 !jyg< 3787 3766 ! Perform dry adiabatic adjustment on wake profile … … 3797 3776 #endif 3798 3777 ) 3799 ! 3778 3800 3779 DO k=1,klev 3801 3780 DO i=1,klon … … 3833 3812 ENDIF ! (iflag_wake>=1) 3834 3813 !>jyg 3835 ! 3836 3814 3837 3815 !! print *,'physiq. q_w(1,k), q_x(1,k) ', & 3838 3816 !! (k, q_w(1,k), q_x(1,k),k=1,25) … … 3846 3824 Ale, Alp , Ale_wake, Alp_wake) 3847 3825 !>jyg 3848 ! 3826 3849 3827 ! sb, oct02: 3850 3828 ! Schema de convection modularise et vectorise: 3851 3829 ! (driver commun aux versions 3 et 4) 3852 ! 3830 3853 3831 IF (ok_cvl) THEN ! new driver for convectL 3854 ! 3855 3832 3856 3833 #ifdef ISO 3857 3834 #ifdef ISOVERIF … … 3955 3932 k_upper_cv 3956 3933 ENDIF 3957 ! 3934 3958 3935 !>jyg 3959 3936 IF (type_trac == 'repr') THEN … … 4034 4011 pmfu(:,:)=upwd(:,:)+dnwd(:,:) 4035 4012 fm_cv(:,:)=upwd(:,:)+dnwd(:,:)+dnwd0(:,:) 4036 ! 4013 4037 4014 !jyg< 4038 4015 ! If convective tendencies are too large, then call convection … … 4048 4025 ENDDO 4049 4026 ENDDO 4050 ! 4027 4051 4028 DO k=1,k_upper_cv 4052 4029 DO i=1,klon … … 4065 4042 !!! ------------------------------------------------------------ 4066 4043 !>jyg 4067 ! 4044 4068 4045 DO i = 1, klon 4069 4046 IF (iflagctrl(i)<=1) itau_con(i)=itau_con(i)+cvpas 4070 4047 ENDDO 4071 ! 4048 4072 4049 !jyg< 4073 4050 ! Add the tendency due to the dry adjustment of the wake profile … … 4091 4068 ENDIF ! (iflag_wake>=1) 4092 4069 !>jyg 4093 ! 4070 4094 4071 ELSE ! ok_cvl 4095 4072 … … 4109 4086 ENDIF ! ok_cvl 4110 4087 4111 !4112 4088 ! Correction precip 4113 4089 rain_con = rain_con * cvl_corr … … 4117 4093 xtsnow_con = xtsnow_con * cvl_corr 4118 4094 #endif 4119 !4120 4095 4121 4096 IF (.NOT. ok_gust) THEN … … 4127 4102 ! =================================================================== c 4128 4103 ! Calcul des proprietes des nuages convectifs 4129 !4130 4104 4131 4105 ! calcul des proprietes des nuages convectifs … … 4203 4177 itapcv = 0 4204 4178 ENDIF ! (MOD(itapcv,cvpas).EQ.0 .OR. MOD(itapcv,cvpas_0).EQ.0) 4205 ! 4179 4206 4180 itapcv = itapcv+1 4207 ! 4181 4208 4182 ! Compter les steps ou cvpas=1 4209 4183 IF (cvpas == 1) THEN … … 4335 4309 #endif 4336 4310 4337 !4338 4311 !========================================================================== 4339 4312 !RR:Evolution de la poche froide: on ne fait pas de separation wake/env 4340 4313 !pour la couche limite diffuse pour l instant 4341 ! 4342 ! 4314 4315 4343 4316 ! nrlmd le 22/03/2011---Si on met les poches hors des thermiques 4344 4317 ! il faut rajouter cette tendance calcul\'ee hors des poches 4345 4318 ! froides 4346 ! 4319 4347 4320 IF (iflag_wake>=1) THEN 4348 ! 4349 ! 4321 4322 4350 4323 ! Call wakes every "wkpas" step 4351 ! 4324 4352 4325 IF (MOD(itapwk,wkpas)==0) THEN 4353 ! 4326 4354 4327 DO k=1,klev 4355 4328 DO i=1,klon … … 4419 4392 enddo 4420 4393 #endif 4421 ! 4394 4422 4395 !calcul caracteristiques de la poche froide 4423 4396 CALL calWAKE (iflag_wake_tend, paprs, pplay, phys_tstep, & … … 4442 4415 #endif 4443 4416 ) 4444 ! 4417 4445 4418 !jyg Reinitialize itapwk when wakes have been called 4446 4419 itapwk = 0 4447 4420 ENDIF ! (MOD(itapwk,wkpas).EQ.0) 4448 ! 4421 4449 4422 itapwk = itapwk+1 4450 4423 #ifdef ISOVERIF … … 4460 4433 enddo 4461 4434 #endif 4462 ! 4435 4463 4436 !----------------------------------------------------------------------- 4464 4437 ! ajout des tendances des poches froides … … 4484 4457 CALL prt_enerbil('wake',itap) 4485 4458 ENDIF ! (iflag_wake_tend .GT. 0.) 4486 ! 4459 4487 4460 IF (prt_level >= 10) THEN 4488 4461 print *,' physiq, after calwake, wake_s: ',wake_s(:) … … 4500 4473 4501 4474 ENDIF ! (iflag_wake>=1) 4502 ! 4475 4503 4476 !=================================================================== 4504 4477 ! Convection seche (thermiques ou ajustement) 4505 4478 !=================================================================== 4506 ! 4479 4507 4480 CALL stratocu_if(klon,klev,pctsrf,paprs, pplay,t_seri & 4508 4481 ,seuil_inversion,weak_inversion,dthmin) … … 4521 4494 d_xt_ajsb(:,:,:)=0.0 4522 4495 #endif 4523 ! 4496 4524 4497 ! fm_therm(:,:)=0. 4525 4498 ! entr_therm(:,:)=0. 4526 4499 ! detr_therm(:,:)=0. 4527 ! 4500 4528 4501 IF (prt_level>9) WRITE(lunout,*) & 4529 4502 'AVANT LA CONVECTION SECHE , iflag_thermals=' & … … 4757 4730 #endif 4758 4731 ) 4759 ! 4732 4760 4733 !jyg< 4761 4734 !!jyg IF (mod(iflag_pbl_split/2,2) .EQ. 1) THEN … … 4766 4739 DO k=1,klev 4767 4740 DO i=1,klon 4768 ! 4741 4769 4742 d_deltat_the(i,k) = - d_t_ajs(i,k) 4770 4743 d_deltaq_the(i,k) = - d_q_ajs(i,k) 4771 ! 4744 4772 4745 d_u_ajs(i,k) = d_u_ajs(i,k)*(1.-wake_s(i)) 4773 4746 d_v_ajs(i,k) = d_v_ajs(i,k)*(1.-wake_s(i)) … … 4780 4753 enddo 4781 4754 #endif 4782 ! 4755 4783 4756 ENDDO 4784 4757 ENDDO 4785 ! 4758 4786 4759 IF (ok_bug_split_th) THEN 4787 4760 CALL add_wake_tend & … … 4800 4773 ENDIF 4801 4774 CALL prt_enerbil('the',itap) 4802 ! 4775 4803 4776 ENDIF ! (mod(iflag_pbl_split/10,10) .GE. 1) 4804 ! 4777 4805 4778 CALL add_phys_tend(d_u_ajs,d_v_ajs,d_t_ajs,d_q_ajs, & 4806 4779 dql0,dqi0,dqbs0,paprs,'thermals', abortphy,flag_inhib_tend,itap,0 & … … 4810 4783 ) 4811 4784 CALL prt_enerbil('thermals',itap) 4812 ! 4813 ! 4785 4786 4814 4787 CALL alpale_th( phys_tstep, lmax_th, t_seri, cell_area, & 4815 4788 cin, s2, n2, strig, & … … 4937 4910 4938 4911 ENDIF 4939 ! 4912 4940 4913 !=================================================================== 4941 4914 ! Computation of ratqs, the width (normalized) of the subrid scale … … 4964 4937 ratqs,ratqsc,ratqs_inter_) 4965 4938 4966 !4967 4939 ! Appeler le processus de condensation a grande echelle 4968 4940 ! et le processus de precipitation … … 4971 4943 print *,'itap, ->fisrtilp ',itap 4972 4944 ENDIF 4973 ! 4945 4974 4946 #ifdef ISO 4975 4947 #ifdef ISOVERIF … … 5096 5068 ) 5097 5069 ENDIF 5098 ! 5070 5099 5071 WHERE (rain_lsc < 0) rain_lsc = 0. 5100 5072 WHERE (snow_lsc < 0) snow_lsc = 0. … … 5325 5297 ENDIF 5326 5298 5327 !5328 5299 !------------------------------------------------------------------- 5329 5300 ! PRESCRIPTION DES NUAGES POUR LE RAYONNEMENT … … 5331 5302 5332 5303 ! 1. NUAGES CONVECTIFS 5333 ! 5304 5334 5305 !IM cf FH 5335 5306 ! IF (iflag_cld_th.eq.-1) THEN ! seulement pour Tiedtke … … 5353 5324 ENDDO 5354 5325 ENDIF 5355 ! 5326 5356 5327 ! call dump2d(iim,jjm,rain_tiedtke(2:klon-1),'PSEUDO PRECIP ') 5357 !5358 5328 5359 5329 ! Nuages diagnostiques pour Tiedtke … … 5456 5426 ! enddo prfl, psfl, 5457 5427 ! enddo 5458 ! 5428 5459 5429 ! 2. NUAGES STARTIFORMES 5460 ! 5430 5461 5431 IF (ok_stratus) THEN 5462 5432 CALL diagcld2(paprs,pplay,t_seri,q_seri, diafra,dialiq) … … 5470 5440 ENDDO 5471 5441 ENDIF 5472 ! 5442 5473 5443 ! Precipitation totale 5474 ! 5444 5475 5445 DO i = 1, klon 5476 5446 rain_fall(i) = rain_con(i) + rain_lsc(i) … … 5543 5513 endif 5544 5514 #endif 5545 ! 5515 5546 5516 ! Calculer l'humidite relative pour diagnostique 5547 ! 5517 5548 5518 DO k = 1, klev 5549 5519 DO i = 1, klon … … 5578 5548 !IM Calcul temp.potentielle a 2m (tpot) et temp. potentielle 5579 5549 ! equivalente a 2m (tpote) pour diagnostique 5580 ! 5550 5581 5551 DO i = 1, klon 5582 5552 tpot(i)=zt2m(i)*(100000./paprs(i,1))**RKAPPA … … 5661 5631 ENDIF 5662 5632 5663 !5664 5633 ! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol. 5665 ! 5634 5666 5635 IF (MOD(itaprad,radpas)==0) THEN 5667 5636 5668 !5669 5637 !jq - introduce the aerosol direct and first indirect radiative forcings 5670 5638 !jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) … … 5672 5640 IF (iflag_rrtm == 0) THEN !--old radiation 5673 5641 IF (.NOT. aerosol_couple) THEN 5674 ! 5642 5675 5643 CALL readaerosol_optic( & 5676 5644 debut, flag_aerosol, itap, jD_cur-jD_ref, & … … 5685 5653 CALL abort_physic(modname,abort_message,1) 5686 5654 ELSE 5687 ! 5655 5688 5656 #ifdef CPP_RRTM 5689 5657 IF (NSW.EQ.6) THEN 5690 5658 !--new aerosol properties SW and LW 5691 ! 5692 #ifdef CPP_Dust 5659 5660 IF (CPPKEY_DUST) THEN 5693 5661 !--SPL aerosol model 5694 5662 CALL splaerosol_optic_rrtm( ok_alw, pplay, paprs, t_seri, rhcl, & … … 5696 5664 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & 5697 5665 tausum_aero, tau3d_aero) 5698 #else 5666 ELSE 5699 5667 !--climatologies or INCA aerosols 5700 5668 CALL readaerosol_optic_rrtm( debut, aerosol_couple, ok_alw, ok_volcan, & … … 5704 5672 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & 5705 5673 tausum_aero, drytausum_aero, tau3d_aero) 5706 #endif 5674 END IF 5707 5675 5708 5676 IF (flag_aerosol .EQ. 7) THEN … … 5711 5679 ENDIF 5712 5680 5713 !5714 5681 ELSE IF (NSW.EQ.2) THEN 5715 5682 !--for now we use the old aerosol properties 5716 ! 5683 5717 5684 CALL readaerosol_optic( & 5718 5685 debut, flag_aerosol, itap, jD_cur-jD_ref, & … … 5721 5688 tau_aero, piz_aero, cg_aero, & 5722 5689 tausum_aero, tau3d_aero) 5723 ! 5690 5724 5691 !--natural aerosols 5725 5692 tau_aero_sw_rrtm(:,:,1,:)=tau_aero(:,:,3,:) … … 5730 5697 piz_aero_sw_rrtm(:,:,2,:)=piz_aero(:,:,2,:) 5731 5698 cg_aero_sw_rrtm (:,:,2,:)=cg_aero (:,:,2,:) 5732 ! 5699 5733 5700 !--no LW optics 5734 5701 tau_aero_lw_rrtm(:,:,:,:) = 1.e-15 5735 ! 5702 5736 5703 ELSE 5737 5704 abort_message='Only NSW=2 or 6 are possible with ' & … … 5744 5711 CALL abort_physic(modname,abort_message,1) 5745 5712 #endif 5746 ! 5713 5747 5714 ENDIF 5748 5715 ELSE IF (iflag_rrtm ==2) THEN ! ecrad RADIATION … … 5774 5741 ENDIF 5775 5742 ENDIF 5776 ! 5743 5777 5744 !--WMO criterion to determine tropopause 5778 5745 CALL stratosphere_mask(missing_val, pphis, t_seri, pplay, latitude_deg) 5779 ! 5746 5780 5747 !--STRAT AEROSOL 5781 5748 !--updates tausum_aero,tau_aero,piz_aero,cg_aero … … 5814 5781 tausum_aero(:,:,id_STRAT_phy) = 0. 5815 5782 ENDIF 5816 ! 5783 5817 5784 #ifdef CPP_RRTM 5818 5785 IF (CPPKEY_STRATER) THEN … … 5824 5791 #endif 5825 5792 !--fin STRAT AEROSOL 5826 !5827 5793 5828 5794 ! Calculer les parametres optiques des nuages et quelques 5829 5795 ! parametres pour diagnostiques: 5830 ! 5796 5831 5797 IF (aerosol_couple.AND.config_inca=='aero') THEN 5832 5798 mass_solu_aero(:,:) = ccm(:,:,1) … … 5845 5811 zfice, dNovrN, ptconv, rnebcon, clwcon) 5846 5812 5847 !5848 5813 !IM betaCRF 5849 ! 5814 5850 5815 cldtaurad = cldtau 5851 5816 cldtaupirad = cldtaupi … … 5853 5818 cldfrarad = cldfra 5854 5819 5855 !5856 5820 IF (lon1_beta==-180..AND.lon2_beta==180..AND. & 5857 5821 lat1_beta==90..AND.lat2_beta==-90.) THEN 5858 ! 5822 5859 5823 ! global 5860 ! 5824 5861 5825 !IM 251017 begin 5862 5826 ! print*,'physiq betaCRF global zdtime=',zdtime … … 5878 5842 ENDDO 5879 5843 ENDDO 5880 ! 5844 5881 5845 ELSE 5882 ! 5846 5883 5847 ! regional 5884 ! 5848 5885 5849 DO k=1, klev 5886 5850 DO i=1,klon 5887 ! 5851 5888 5852 IF (longitude_deg(i)>=lon1_beta.AND. & 5889 5853 longitude_deg(i)<=lon2_beta.AND. & … … 5903 5867 cldfrarad(i,k) = cldfra(i,k) * beta(i,k) 5904 5868 ENDIF 5905 ! 5869 5906 5870 ENDDO 5907 5871 ENDDO 5908 ! 5872 5909 5873 ENDIF 5910 5874 … … 5932 5896 ENDIF 5933 5897 5934 !5935 5898 !sonia : If Iflag_radia >=2, pertubation of some variables 5936 5899 !input to radiation (DICE) 5937 ! 5900 5938 5901 IF (iflag_radia >= 2) THEN 5939 5902 zsav_tsol (:) = zxtsol(:) … … 5964 5927 END IF 5965 5928 ELSE 5966 ! 5929 5967 5930 !IM calcul radiatif pour le cas actuel 5968 ! 5931 5969 5932 RCO2 = RCO2_act 5970 5933 RCH4 = RCH4_act … … 5972 5935 RCFC11 = RCFC11_act 5973 5936 RCFC12 = RCFC12_act 5974 ! 5937 5975 5938 !--interactive CO2 in ppm from carbon cycle 5976 5939 IF (carbon_cycle_rad) RCO2=RCO2_glo 5977 ! 5940 5978 5941 IF (prt_level >=10) THEN 5979 5942 print *,' ->radlwsw, number 1 ' 5980 5943 ENDIF 5981 ! 5944 5982 5945 ! AI namelist utilise pour l appel principal de radlwsw (ecrad) 5983 5946 namelist_ecrad_file='namelist_ecrad' 5984 ! 5947 5985 5948 CALL radlwsw & 5986 5949 (debut, dist, rmu0, fract, & … … 6035 5998 6036 5999 IF (.NOT. using_xios) THEN 6037 ! 6000 6038 6001 !IM 2eme calcul radiatif pour le cas perturbe ou au moins un 6039 6002 !IM des taux doit etre different du taux actuel 6040 6003 !IM Par defaut on a les taux perturbes egaux aux taux actuels 6041 ! 6004 6042 6005 IF (RCO2_per/=RCO2_act.OR. & 6043 6006 RCH4_per/=RCH4_act.OR. & … … 6046 6009 RCFC12_per/=RCFC12_act) ok_4xCO2atm =.TRUE. 6047 6010 ENDIF 6048 ! 6011 6049 6012 IF (ok_4xCO2atm) THEN 6050 ! 6013 6051 6014 RCO2 = RCO2_per 6052 6015 RCH4 = RCH4_per … … 6054 6017 RCFC11 = RCFC11_per 6055 6018 RCFC12 = RCFC12_per 6056 ! 6019 6057 6020 IF (prt_level >=10) THEN 6058 6021 print *,' ->radlwsw, number 2 ' 6059 6022 ENDIF 6060 ! 6023 6061 6024 ! AI namelist utilise pour l appel principal de radlwsw (ecrad) 6062 6025 namelist_ecrad_file='namelist_ecrad' 6063 ! 6026 6064 6027 CALL radlwsw & 6065 6028 (debut, dist, rmu0, fract, & … … 6153 6116 ENDIF ! aerosol_couple 6154 6117 itaprad = 0 6155 ! 6118 6156 6119 ! If Iflag_radia >=2, reset pertubed variables 6157 ! 6120 6158 6121 IF (iflag_radia >= 2) THEN 6159 6122 zxtsol(:) = zsav_tsol (:) … … 6182 6145 ENDIF 6183 6146 6184 !6185 6147 ! Calculer radsol a l'exterieur de radlwsw 6186 6148 ! pour prendre en compte le cycle diurne 6187 6149 ! recode par Olivier Boucher en sept 2015 6188 ! 6150 6189 6151 radsol=solsw*swradcorr+sollw 6190 6152 … … 6193 6155 ENDIF 6194 6156 6195 !6196 6157 ! Ajouter la tendance des rayonnements (tous les pas) 6197 6158 ! avec une correction pour le cycle diurne dans le SW 6198 !6199 6159 6200 6160 DO k=1, klev … … 6218 6178 CALL prt_enerbil('LW',itap) 6219 6179 6220 !6221 6180 IF (mydebug) THEN 6222 6181 CALL writefield_phy('u_seri',u_seri,nbp_lev) … … 6227 6186 6228 6187 ! Calculer l'hydrologie de la surface 6229 ! 6188 6230 6189 ! CALL hydrol(dtime,pctsrf,rain_fall, snow_fall, zxevap, 6231 6190 ! . agesno, ftsol,fqsurf,fsnow, ruis) 6232 ! 6233 6234 ! 6191 6235 6192 ! Calculer le bilan du sol et la derive de temperature (couplage) 6236 ! 6193 6237 6194 DO i = 1, klon 6238 6195 ! bils(i) = radsol(i) - sens(i) - evap(i)*RLVTT … … 6240 6197 bils(i) = radsol(i) - sens(i) + zxfluxlat(i) 6241 6198 ENDDO 6242 ! 6199 6243 6200 !moddeblott(jan95) 6244 6201 ! Appeler le programme de parametrisation de l'orographie 6245 6202 ! a l'echelle sous-maille: 6246 ! 6203 6247 6204 IF (prt_level >=10) THEN 6248 6205 print *,' call orography ? ', ok_orodr 6249 6206 ENDIF 6250 ! 6207 6251 6208 IF (ok_orodr) THEN 6252 ! 6209 6253 6210 ! selection des points pour lesquels le shema est actif: 6254 6211 igwd=0 … … 6268 6225 ENDDO 6269 6226 ! igwdim=MAX(1,igwd) 6270 ! 6227 6271 6228 IF (ok_strato) THEN 6272 6229 … … 6286 6243 d_t_oro, d_u_oro, d_v_oro) 6287 6244 ENDIF 6288 ! 6245 6289 6246 ! ajout des tendances 6290 6247 !----------------------------------------------------------------------- … … 6298 6255 CALL prt_enerbil('oro',itap) 6299 6256 !---------------------------------------------------------------------- 6300 ! 6257 6301 6258 ENDIF ! fin de test sur ok_orodr 6302 ! 6259 6303 6260 IF (mydebug) THEN 6304 6261 CALL writefield_phy('u_seri',u_seri,nbp_lev) … … 6309 6266 6310 6267 IF (ok_orolf) THEN 6311 ! 6268 6312 6269 ! selection des points pour lesquels le shema est actif: 6313 6270 igwd=0 … … 6325 6282 ENDDO 6326 6283 ! igwdim=MAX(1,igwd) 6327 ! 6284 6328 6285 IF (ok_strato) THEN 6329 6286 … … 6447 6404 ENDDO 6448 6405 ENDDO 6449 ! 6406 6450 6407 !IM calcul composantes axiales du moment angulaire et couple des montagnes 6451 ! 6408 6452 6409 IF (is_sequential .and. ok_orodr) THEN 6453 6410 CALL aaam_bud (27,klon,klev,jD_cur-jD_ref,jH_cur, & … … 6485 6442 #endif 6486 6443 ENDIF 6487 ! 6488 ! 6444 6445 6489 6446 IF (CPPKEY_STRATER) THEN 6490 6447 IF (ok_qemiss) THEN … … 6510 6467 m_H2O_emiss_vol_daily = m_H2O_emiss_vol(ieru)/(REAL(injdur)& 6511 6468 *REAL(ponde_lonlat_vol(ieru))) 6512 ! 6469 6513 6470 CALL STRATEMIT(pdtphys,pdtphys,latitude_deg,longitude_deg,t_seri,& 6514 6471 pplay,paprs,tr_seri,& … … 6535 6492 ! Additional tendency of TKE due to orography 6536 6493 !=============================================================== 6537 ! 6494 6538 6495 ! Inititialization 6539 6496 !------------------ … … 6561 6518 ! ** 1 we include a fraction alphatkeoro of the whole tendency duoro 6562 6519 ! ** 2 we include a fraction alphatkeoro of the gravity wave part of duoro 6563 !6564 6520 6565 6521 IF (addtkeoro > 0 .AND. ok_orodr ) THEN … … 6628 6584 6629 6585 CALL tend_to_tke(pdtphys,paprs,exner,t_seri,u_seri,v_seri,dtadd,duadd,dvadd,pctsrf,pbl_tke) 6630 ! 6586 6631 6587 ! Prevent pbl_tke_w from becoming negative 6632 6588 wake_delta_pbl_tke(:,:,:) = max(wake_delta_pbl_tke(:,:,:), -pbl_tke(:,:,:)) 6633 !6634 6589 6635 6590 ENDIF … … 6842 6797 ! Calcul des tendances traceurs 6843 6798 !==================================================================== 6844 !6845 6799 6846 6800 IF (type_trac == 'repr') THEN … … 6862 6816 ENDIF 6863 6817 6864 #ifdef CPP_Dust 6818 IF (CPPKEY_DUST) THEN 6865 6819 ! Avec SPLA, iflag_phytrac est forcé =1 6866 6820 CALL phytracr_spl ( debut,lafin , jD_cur,jH_cur,iflag_con, & ! I … … 6879 6833 d_tr_dyn,tr_seri) 6880 6834 6881 #else 6835 ELSE 6882 6836 IF (iflag_phytrac == 1 ) THEN 6883 6837 CALL phytrac ( & … … 6920 6874 ENDIF ! (iflag_phytrac=1) 6921 6875 6922 #endif 6876 END IF 6923 6877 !ENDIF ! (iflag_phytrac=1) 6924 6878 … … 6939 6893 ENDIF 6940 6894 6941 !6942 6895 ! Calculer le transport de l'eau et de l'energie (diagnostique) 6943 ! 6896 6944 6897 CALL transp (paprs,zxtsol, t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, & 6945 6898 ue, ve, uq, vq, uwat, vwat) 6946 ! 6899 6947 6900 !IM global posePB BEG 6948 6901 IF(1==0) THEN 6949 ! 6902 6950 6903 CALL transp_lay (paprs,zxtsol, t_seri, q_seri, u_seri, v_seri, zphi, & 6951 6904 ve_lay, vq_lay, ue_lay, uq_lay) 6952 ! 6905 6953 6906 ENDIF !(1.EQ.0) THEN 6954 6907 !IM global posePB END 6955 ! 6908 6956 6909 ! Accumuler les variables a stocker dans les fichiers histoire: 6957 !6958 6910 6959 6911 !================================================================ … … 7058 7010 ! SORTIES 7059 7011 !======================================================================= 7060 ! 7012 7061 7013 !IM initialisation + calculs divers diag AMIP2 7062 ! 7014 7063 7015 include "calcul_divers.h" 7064 ! 7016 7065 7017 !IM Interpolation sur les niveaux de pression du NMC 7066 7018 ! ------------------------------------------------- 7067 ! 7019 7068 7020 include "calcul_STDlev.h" 7069 ! 7021 7070 7022 ! slp sea level pressure derived from Arpege-IFS : CALL ctstar + CALL pppmer 7071 7023 CALL diag_slp(klon,t_seri,paprs,pplay,pphis,ptstar,pt0,slp) 7072 ! 7073 ! 7024 7025 7074 7026 IF (ANY(type_trac == ['inca','inco'])) THEN 7075 7027 IF (CPPKEY_INCA) THEN … … 7102 7054 ENDIF 7103 7055 7104 !7105 7056 ! Convertir les incrementations en tendances 7106 ! 7057 7107 7058 IF (prt_level >=10) THEN 7108 7059 print *,'Convertir les incrementations en tendances ' 7109 7060 ENDIF 7110 ! 7061 7111 7062 IF (mydebug) THEN 7112 7063 CALL writefield_phy('u_seri',u_seri,nbp_lev) … … 7168 7119 ENDDO 7169 7120 ENDDO 7170 ! 7121 7171 7122 !IM rajout diagnostiques bilan KP pour analyse MJO par Jun-Ichi Yano 7172 7123 !IM global posePB include "write_bilKP_ins.h" 7173 7124 !IM global posePB include "write_bilKP_ave.h" 7174 ! 7125 7175 7126 ! Sauvegarder les valeurs de t et q a la fin de la physique: 7176 ! 7127 7177 7128 u_ancien(:,:) = u_seri(:,:) 7178 7129 v_ancien(:,:) = v_seri(:,:) … … 7261 7212 ENDDO 7262 7213 ENDDO 7263 !7264 7214 7265 7215 ! 22.03.04 BEG … … 7311 7261 !On effectue les sorties: 7312 7262 7313 #ifdef CPP_Dust 7263 IF (CPPKEY_DUST) THEN 7314 7264 CALL phys_output_write_spl(itap, pdtphys, paprs, pphis, & 7315 7265 pplay, lmax_th, aerosol_couple, & … … 7318 7268 ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse, & 7319 7269 flag_aerosol, flag_aerosol_strat, ok_cdnc) 7320 #else 7270 ELSE 7321 7271 CALL phys_output_write(itap, pdtphys, paprs, pphis, & 7322 7272 pplay, lmax_th, aerosol_couple, & … … 7325 7275 ptconvth, d_u, d_t, qx, d_qx, zmasse, & 7326 7276 flag_aerosol, flag_aerosol_strat, ok_cdnc,t, u1, v1) 7327 #endif 7277 END IF 7328 7278 7329 7279 IF (.NOT. using_xios) THEN … … 7348 7298 7349 7299 ! 22.03.04 END 7350 ! 7300 7351 7301 !==================================================================== 7352 7302 ! Si c'est la fin, il faut conserver l'etat de redemarrage 7353 7303 !==================================================================== 7354 ! 7304 7355 7305 #ifdef ISO 7356 7306 #ifdef ISOVERIF -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/reevap.F90
r5088 r5099 34 34 include "FCTTRE.h" 35 35 !IM 100106 BEG : pouvoir sortir les ctes de la physique 36 ! 36 37 37 do ixt=1,1+ntiso 38 38 ! Re-evaporer l'eau liquide nuageuse 39 ! 39 40 40 iliqcur= iqWIsoPha(ixt,iliq) 41 41 ivapcur= iqWIsoPha(ixt,ivap)
Note: See TracChangeset
for help on using the changeset viewer.