Changeset 2787
- Timestamp:
- Jan 30, 2017, 5:54:45 PM (8 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 1 deleted
- 61 edited
- 7 copied
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2728,2730-2775,2777-2785
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/DefLists/context_lmdz.xml
r2720 r2787 21 21 <!-- <file_definition src="./file_def_histdayCOSP_lmdz.xml"/> --> 22 22 <!-- <file_definition src="./file_def_histhfCOSP_lmdz.xml"/> --> 23 <file_definition src="./file_def_histstrataer_lmdz.xml"/> 23 24 24 25 <!-- Define domains and groups of domains --> -
LMDZ5/branches/testing/DefLists/field_def_lmdz.xml
r2729 r2787 315 315 <field id="toplwad" long_name="LW-ADE at TOA" unit="W/m2" /> 316 316 <field id="toplwad0" long_name="LW-ADE clear-sky at TOA" unit="W/m2" /> 317 <field id="toplwai" long_name="LW-AIE clear-sky at TOA" unit="W/m2" /> 317 318 <field id="sollwad" long_name="LW-ADE at SRF" unit="W/m2" /> 318 319 <field id="sollwad0" long_name="LW-ADE clear-sky at SRF" unit="W/m2" /> 320 <field id="sollwai" long_name="LW-AIE at SRF" unit="W/m2" /> 319 321 <field id="OD550_ASBCM" long_name="Aerosol Optical depth at 550 nm " unit="1" /> 320 322 <field id="OD550_ASPOMM" long_name="Aerosol Optical depth at 550 nm " unit="1" /> … … 618 620 619 621 <field_group id="fields_strataer_3D" domain_ref="dom_glo" axis_ref="presnivs"> 620 <field id="ext_strat_550" long_name="Strat. aerosol extinction coefficient at 550 nm" unit="1/m" />621 <field id="ext_strat_1020" long_name="Strat. aerosol extinction coefficient at 1020 nm" unit="1/m" />622 <field id=" sulf_convert" long_name="SO2 mass flux converted to H2SO4"unit="kg(S)/m2/layer/s" />623 <field id=" sulf_nucl" long_name="H2SO4 nucleation mass flux"unit="kg(S)/m2/layer/s" />624 <field id=" sulf_cond_evap" long_name="H2SO4 condensation/evaporation mass flux"unit="kg(S)/m2/layer/s" />625 <field id=" ocs_convert" long_name="OCS mass flux converted to SO2"unit="kg(S)/m2/layer/s" />626 <field id=" R2SO4" long_name="H2SO4 mass fraction in aerosol" unit="%" />627 <field id=" OCS_lifetime" long_name="OCS lifetime" unit="s" />628 <field id=" SO2_lifetime" long_name="SO2 lifetime" unit="s" />629 <field id=" SO2_backgr_tend" long_name="SO2 background tendency" unit="kg(S)/m2/layer/s" />630 <field id=" OCS_backgr_tend" long_name="OCS background tendency" unit="kg(S)/m2/layer/s" />631 <field id="vsed_aer" long_name="Strat. aerosol sedimentation velocity (mass-weighted)" unit="m/s" />632 <field id="f_r_wet" long_name="Conversion factor dry to wet aerosol radius" unit="-" />622 <field id="ext_strat_550" long_name="Strat. aerosol extinction coefficient at 550 nm" unit="1/m" /> 623 <field id="ext_strat_1020" long_name="Strat. aerosol extinction coefficient at 1020 nm" unit="1/m" /> 624 <field id="budg_3D_nucl" long_name="H2SO4 nucleation mass flux" unit="kg(S)/m2/layer/s" /> 625 <field id="budg_3D_cond_evap" long_name="H2SO4 net condensation/evaporation mass flux" unit="kg(S)/m2/layer/s" /> 626 <field id="budg_3D_ocs_to_so2" long_name="OCS mass flux converted to SO2" unit="kg(S)/m2/layer/s" /> 627 <field id="budg_3D_so2_to_h2so4" long_name="SO2 mass flux converted to H2SO4" unit="kg(S)/m2/layer/s" /> 628 <field id="budg_3D_backgr_ocs" long_name="OCS background tendency" unit="kg(S)/m2/layer/s" /> 629 <field id="budg_3D_backgr_so2" long_name="SO2 background tendency" unit="kg(S)/m2/layer/s" /> 630 <field id="R2SO4" long_name="H2SO4 mass fraction in aerosol" unit="%" /> 631 <field id="OCS_lifetime" long_name="OCS lifetime" unit="s" /> 632 <field id="SO2_lifetime" long_name="SO2 lifetime" unit="s" /> 633 <field id="vsed_aer" long_name="Strat. aerosol sedimentation velocity (mass-weighted)" unit="m/s" /> 634 <field id="f_r_wet" long_name="Conversion factor dry to wet aerosol radius" unit="-" /> 633 635 </field_group> 634 636 … … 636 638 <field id="OD550_strat_only" long_name="Stratospheric Aerosol Optical depth at 550 nm " unit="1" /> 637 639 <field id="OD1020_strat_only" long_name="Stratospheric Aerosol Optical depth at 1020 nm " unit="1" /> 638 <field id="sulf_dep_dry" long_name="Sulfur dry deposition flux" unit="kg(S)/m2/s" />639 <field id="sulf_dep_wet" long_name="Sulfur wet deposition flux" unit="kg(S)/m2/s" />640 640 <field id="surf_PM25_sulf" long_name="Sulfate PM2.5 concentration at the surface" unit="ug/m3" /> 641 641 <field id="p_tropopause" long_name="Tropopause pressure" unit="Pa" /> 642 <field id="sflux" long_name="Ground sedimentation flux of strat. particles" unit="kg(S)/m2/s" /> 642 <field id="budg_dep_dry_h2so4" long_name="H2SO4 dry deposition flux" unit="kg(S)/m2/s" /> 643 <field id="budg_dep_wet_h2so4" long_name="H2SO4 wet deposition flux" unit="kg(S)/m2/s" /> 644 <field id="budg_dep_dry_part" long_name="Particle S dry deposition flux" unit="kg(S)/m2/s" /> 645 <field id="budg_dep_wet_part" long_name="Particle S wet deposition flux" unit="kg(S)/m2/s" /> 646 <field id="budg_emi_ocs" long_name="OCS emission flux" unit="kg(S)/m2/s" /> 647 <field id="budg_emi_so2" long_name="SO2 emission flux" unit="kg(S)/m2/s" /> 648 <field id="budg_emi_h2so4" long_name="H2SO4 emission flux" unit="kg(S)/m2/s" /> 649 <field id="budg_emi_part" long_name="Particle S emission flux" unit="kg(S)/m2/s" /> 650 <field id="budg_ocs_to_so2" long_name="OCS to SO2 conversion flux" unit="kg(S)/m2/s" /> 651 <field id="budg_so2_to_h2so4" long_name="SO2 to H2SO4 conversion flux" unit="kg(S)/m2/s" /> 652 <field id="budg_h2so4_to_part" long_name="H2SO4 to particle conversion flux" unit="kg(S)/m2/s" /> 653 <field id="budg_sed_part" long_name="Ground sedimentation flux of strat. particles" unit="kg(S)/m2/s" /> 643 654 </field_group> 644 655 … … 926 937 </field_group> 927 938 928 <field_group id="field_scalar" operation="instant" freq_op="30d"grid_ref="grid_scalar">939 <field_group id="field_scalar" operation="instant" grid_ref="grid_scalar"> 929 940 <field id="R_ecc" long_name="R_ecc" unit="-" /> 930 941 <field id="R_peri" long_name="R_peri" unit="-" /> -
LMDZ5/branches/testing/DefLists/file_def_histday_lmdz.xml
r2720 r2787 321 321 <field field_ref="solswad0" level="10" /> 322 322 <field field_ref="solswai" level="10" /> 323 <field field_ref="toplwad" level="10" /> 324 <field field_ref="toplwad0" level="10" /> 325 <field field_ref="toplwai" level="10" /> 326 <field field_ref="sollwad" level="10" /> 327 <field field_ref="sollwad0" level="10" /> 328 <field field_ref="sollwai" level="10" /> 323 329 <field field_ref="OD550_ASBCM" level="6" /> 324 330 <field field_ref="OD550_ASPOMM" level="6" /> -
LMDZ5/branches/testing/DefLists/file_def_histmthCOSP_lmdz.xml
r2720 r2787 1 1 <file_definition> 2 2 <file_group id="defile"> 3 <file id="histmthCOSP" name="histmthCOSP" output_freq=" 30d" output_level="1" enabled="_AUTO_">3 <file id="histmthCOSP" name="histmthCOSP" output_freq="1mo" output_level="1" enabled="_AUTO_"> 4 4 5 5 <!-- VARS Calipso and PARASOL --> -
LMDZ5/branches/testing/DefLists/file_def_histmth_lmdz.xml
r2720 r2787 10 10 <!-- </field_group> --> 11 11 12 <field_group operation="instant" freq_op="30d">12 <field_group operation="instant"> 13 13 <field field_ref="R_ecc" level="1" name="R_ecc" /> 14 14 <field field_ref="R_peri" level="1" name="R_peri" /> … … 43 43 <field field_ref="tsol" level="1" /> 44 44 <field field_ref="t2m" level="1" /> 45 <field field_ref="t2m_min" level="1" operation="minimum" />46 <field field_ref="t2m_max" level="1" operation="maximum" />45 <field id="ave_t2m_daily_min" field_ref="t2m_min" name="ave_t2m_daily_min" level="1" operation="average" freq_op="1d"> @t2m_min </field> 46 <field id="ave_t2m_daily_max" field_ref="t2m_max" name="ave_t2m_daily_max" level="1" operation="average" freq_op="1d"> @t2m_max </field> 47 47 <field field_ref="t2m_ter" level="10" /> 48 48 <field field_ref="t2m_lic" level="10" /> … … 341 341 <field field_ref="solswad0" level="5" /> 342 342 <field field_ref="solswai" level="5" /> 343 <field field_ref="toplwad" level="5" /> 344 <field field_ref="toplwad0" level="5" /> 345 <field field_ref="toplwai" level="5" /> 346 <field field_ref="sollwad" level="5" /> 347 <field field_ref="sollwad0" level="5" /> 348 <field field_ref="sollwai" level="5" /> 343 349 <field field_ref="OD550_ASBCM" level="2" /> 344 350 <field field_ref="OD550_ASPOMM" level="2" /> … … 600 606 </field_group> 601 607 602 <field_group group_ref="fields_strataer_3D" operation="average" freq_op="1ts" level="1" />603 <field_group group_ref="fields_strataer_2D" operation="average" freq_op="1ts" level="1" />604 <field_group group_ref="fields_strataer_trac_3D" operation="average" freq_op="1ts" level="1" />605 <field_group group_ref="fields_strataer_trac_2D" operation="average" freq_op="1ts" level="1" />606 607 608 </file> 608 609 -
LMDZ5/branches/testing/arch/arch-X64_ADA.fcm
r2471 r2787 8 8 %PROD_FFLAGS -O2 -ip -fp-model strict -axAVX,SSE4.2 9 9 %DEV_FFLAGS -p -g -O0 -fpe0 -traceback 10 %DEBUG_FFLAGS -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -check bounds,format,output_conversion,pointers,uninit -debug 10 %DEBUG_FFLAGS -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -check bounds,format,output_conversion,pointers,uninit -debug -ftz 11 11 #%DEBUG_FFLAGS -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -debug 12 12 %MPI_FFLAGS -
LMDZ5/branches/testing/bld.cfg
r2720 r2787 108 108 bld::outfile_ext::mod .mod 109 109 bld::tool::SHELL /bin/bash 110 bld::tool::SHELL /bin/ksh111 bld::tool::SHELL /bin/ksh -
LMDZ5/branches/testing/libf/dyn3d/guide_mod.F90
r2641 r2787 38 38 39 39 REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE :: alpha_u,alpha_v 40 REAL, ALLOCATABLE, DIMENSION(: ), PRIVATE, SAVE :: alpha_T,alpha_Q40 REAL, ALLOCATABLE, DIMENSION(:, :), PRIVATE, SAVE :: alpha_T,alpha_Q 41 41 REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE :: alpha_P,alpha_pcor 42 42 … … 222 222 ALLOCATE(alpha_v(ip1jm), stat = error) 223 223 IF (error /= 0) CALL abort_gcm(modname,abort_message,1) 224 ALLOCATE(alpha_T(i p1jmp1), stat = error)224 ALLOCATE(alpha_T(iip1, jjp1), stat = error) 225 225 IF (error /= 0) CALL abort_gcm(modname,abort_message,1) 226 ALLOCATE(alpha_Q(i p1jmp1), stat = error)226 ALLOCATE(alpha_Q(iip1, jjp1), stat = error) 227 227 IF (error /= 0) CALL abort_gcm(modname,abort_message,1) 228 228 ALLOCATE(alpha_P(ip1jmp1), stat = error) … … 1518 1518 USE comconst_mod, ONLY: pi 1519 1519 USE comvert_mod, ONLY: presnivs 1520 use netcdf95, only: nf95_def_var, nf95_put_var 1521 use netcdf, only: nf90_float 1520 1522 1521 1523 IMPLICIT NONE … … 1536 1538 INTEGER :: nid, id_lonu, id_lonv, id_latu, id_latv, id_tim, id_lev 1537 1539 INTEGER :: vid_lonu,vid_lonv,vid_latu,vid_latv,vid_cu,vid_cv,vid_lev 1538 INTEGER :: vid_au,vid_av 1540 INTEGER :: vid_au,vid_av, varid_alpha_t, varid_alpha_q 1539 1541 INTEGER, DIMENSION (3) :: dim3 1540 1542 INTEGER, DIMENSION (4) :: dim4,count,start … … 1567 1569 ierr=NF_DEF_VAR(nid,"cv",NF_FLOAT,2,(/id_lonv,id_latv/),vid_cv) 1568 1570 ierr=NF_DEF_VAR(nid,"av",NF_FLOAT,2,(/id_lonv,id_latv/),vid_av) 1571 call nf95_def_var(nid, "alpha_T", nf90_float, (/id_lonv, id_latu/), & 1572 varid_alpha_t) 1573 call nf95_def_var(nid, "alpha_q", nf90_float, (/id_lonv, id_latu/), & 1574 varid_alpha_q) 1569 1575 1570 1576 ierr=NF_ENDDEF(nid) … … 1592 1598 ierr = NF_PUT_VAR_REAL(nid,vid_av,alpha_v) 1593 1599 #endif 1600 call nf95_put_var(nid, varid_alpha_t, alpha_t) 1601 call nf95_put_var(nid, varid_alpha_q, alpha_q) 1594 1602 ! -------------------------------------------------------------------- 1595 1603 ! Cr�ation des variables sauvegard�es -
LMDZ5/branches/testing/libf/dyn3dmem/bands.F90
r2408 r2787 219 219 minvalue=value(i) 220 220 min_proc=index(i) 221 if (jj_nb_caldyn(max_proc)> 3) then221 if (jj_nb_caldyn(max_proc)>2) then 222 222 if (timer_iteration(jj_nb_caldyn(min_proc)+1,timer_caldyn,min_proc)<=1 ) then 223 223 jj_nb_caldyn(min_proc)=jj_nb_caldyn(min_proc)+1 … … 287 287 min_proc=index(i) 288 288 289 if (jj_nb_vanleer(max_proc)> 3) then289 if (jj_nb_vanleer(max_proc)>2) then 290 290 if (timer_average(jj_nb_vanleer(min_proc)+1,timer_vanleer,min_proc)==0. .or. & 291 291 timer_average(jj_nb_vanleer(max_proc)-1,timer_vanleer,max_proc)==0.) then -
LMDZ5/branches/testing/libf/dyn3dmem/guide_loc_mod.F90
r2641 r2787 2130 2130 USE comconst_mod, ONLY: pi 2131 2131 USE comvert_mod, ONLY: presnivs 2132 use netcdf95, only: nf95_def_var, nf95_put_var 2133 use netcdf, only: nf90_float 2134 2132 2135 IMPLICIT NONE 2133 2136 … … 2149 2152 INTEGER :: nid, id_lonu, id_lonv, id_latu, id_latv, id_tim, id_lev 2150 2153 INTEGER :: vid_lonu,vid_lonv,vid_latu,vid_latv,vid_cu,vid_cv,vid_lev 2151 INTEGER :: vid_au,vid_av 2154 INTEGER :: vid_au,vid_av, varid_alpha_t, varid_alpha_q 2152 2155 INTEGER, DIMENSION (3) :: dim3 2153 2156 INTEGER, DIMENSION (4) :: dim4,count,start 2154 2157 INTEGER :: ierr, varid,l 2155 REAL zu(ip1jmp1),zv(ip1jm) 2158 REAL zu(ip1jmp1),zv(ip1jm), zt(iip1, jjp1), zq(iip1, jjp1) 2156 2159 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: field_glo 2157 2160 … … 2171 2174 print*,'guide_out apres gather ' 2172 2175 CALL Gather_field_u(alpha_u,zu,1) 2176 CALL Gather_field_u(alpha_t,zt,1) 2177 CALL Gather_field_u(alpha_q,zq,1) 2173 2178 CALL Gather_field_v(alpha_v,zv,1) 2174 2179 … … 2207 2212 ierr=NF_DEF_VAR(nid,"au",NF_FLOAT,2,(/id_lonu,id_latu/),vid_au) 2208 2213 ierr=NF_DEF_VAR(nid,"av",NF_FLOAT,2,(/id_lonv,id_latv/),vid_av) 2209 2214 call nf95_def_var(nid, "alpha_T", nf90_float, (/id_lonv, id_latu/), & 2215 varid_alpha_t) 2216 call nf95_def_var(nid, "alpha_q", nf90_float, (/id_lonv, id_latu/), & 2217 varid_alpha_q) 2218 2210 2219 ierr=NF_ENDDEF(nid) 2211 2220 … … 2232 2241 ierr = NF_PUT_VAR_REAL(nid,vid_av,alpha_v) 2233 2242 #endif 2243 call nf95_put_var(nid, varid_alpha_t, zt) 2244 call nf95_put_var(nid, varid_alpha_q, zq) 2234 2245 ! -------------------------------------------------------------------- 2235 2246 ! Cr�ation des variables sauvegard�es -
LMDZ5/branches/testing/libf/dyn3dmem/parallel_lmdz.F90
r2641 r2787 154 154 if ( i < MOD((jjm+1),mpi_size) ) jj_nb_para(i)=jj_nb_para(i)+1 155 155 156 if (jj_nb_para(i) <= 2) then156 if (jj_nb_para(i) <= 1 ) then 157 157 158 158 write(lunout,*)"Arret : le nombre de bande de lattitude par process est trop faible (<2)." -
LMDZ5/branches/testing/libf/dyn3dmem/vlsplt_loc.F
r2641 r2787 885 885 c 886 886 INTEGER i,ij,l,j,ii 887 888 REAL,DIMENSION(ijb_u:ije_u,llm+1) :: wresi,morig,qorig,dzqorig 889 INTEGER,DIMENSION(ijb_u:ije_u,llm+1) :: lorig 890 INTEGER,SAVE :: countcfl 891 !$OMP THREADPRIVATE(countcfl) 887 892 c 888 893 REAL newmasse … … 911 916 ! vlz_loc si on veut qu'elles soient vues par tous les threads. 912 917 INTEGER ifils,iq2 ! CRisi 918 913 919 914 920 IF (first) THEN … … 968 974 ENDIF 969 975 #endif 976 977 !-------------------------------------------------------- 978 ! On repere les points qui violent le CFL (|w| > masse) 979 !-------------------------------------------------------- 980 981 countcfl=0 982 ! print*,'vlz nouveau' 983 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 984 DO l = 2,llm 985 DO ij = ijb,ije 986 IF( (w(ij,l,iq)>0.AND.w(ij,l,iq)>masse(ij,l,iq)) 987 s .OR. (w(ij,l,iq)<=0.AND.ABS(w(ij,l,iq))>masse(ij,l-1,iq)) ) 988 s countcfl=countcfl+1 989 ENDDO 990 ENDDO 991 c$OMP END DO NOWAIT 992 993 c --------------------------------------------------------------- 994 c Identification des mailles ou on viole le CFL : w > masse 995 c --------------------------------------------------------------- 996 997 IF (countcfl==0) THEN 998 970 999 c --------------------------------------------------------------- 971 1000 c .... calcul des termes d'advection verticale ....... 1001 c Dans le cas où le |w| < masse partout. 1002 c Version d'origine 1003 c Pourrait etre enleve si on voit que le code plus general 1004 c est aussi rapide 972 1005 c --------------------------------------------------------------- 973 1006 … … 991 1024 c$OMP END DO NOWAIT 992 1025 !write(*,*) 'vlz 1001' 1026 1027 ELSE ! countcfl>=1 1028 1029 PRINT*,'vlz passage dans le non local' 1030 c --------------------------------------------------------------- 1031 c Debut du traitement du cas ou on viole le CFL : w > masse 1032 c --------------------------------------------------------------- 1033 1034 c Initialisation 1035 1036 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1037 DO l = 2,llm 1038 DO ij = ijb,ije 1039 wresi(ij,l)=w(ij,l,iq) 1040 wq(ij,l,iq)=0. 1041 IF(w(ij,l,iq).gt.0.) THEN 1042 lorig(ij,l)=l 1043 morig(ij,l)=masse(ij,l,iq) 1044 qorig(ij,l)=q(ij,l,iq) 1045 dzqorig(ij,l)=dzq(ij,l) 1046 ELSE 1047 lorig(ij,l)=l-1 1048 morig(ij,l)=masse(ij,l-1,iq) 1049 qorig(ij,l)=q(ij,l-1,iq) 1050 dzqorig(ij,l)=dzq(ij,l-1) 1051 ENDIF 1052 ENDDO 1053 ENDDO 1054 c$OMP END DO NO WAIT 1055 1056 c Reindicage vertical en accumulant les flux sur 1057 c les mailles qui viollent le CFL 1058 c on itère jusqu'à ce que tous les poins satisfassent 1059 c le critère 1060 DO WHILE (countcfl>=1) 1061 print*,'On viole le CFL Vertical sur ',countcfl,' pts' 1062 countcfl=0 1063 1064 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1065 DO l = 2,llm 1066 DO ij = ijb,ije 1067 IF (ABS(wresi(ij,l))>morig(ij,l)) THEN 1068 countcfl=countcfl+1 1069 ! rm : les 8 lignes ci dessous pourraient sans doute s'ecrire 1070 ! avec la fonction sign 1071 IF(w(ij,l,iq)>0.) THEN 1072 wresi(ij,l)=wresi(ij,l)-morig(ij,l) 1073 wq(ij,l,iq)=wq(ij,l,iq)+morig(ij,l)*qorig(ij,l) 1074 lorig(ij,l)=lorig(ij,l)+1 1075 ELSE 1076 wresi(ij,l)=wresi(ij,l)+morig(ij,l) 1077 wq(ij,l,iq)=wq(ij,l,iq)-morig(ij,l)*qorig(ij,l) 1078 lorig(ij,l)=lorig(ij,l)-1 1079 ENDIF 1080 morig(ij,l)=masse(ij,lorig(ij,l),iq) 1081 qorig(ij,l)=q(ij,lorig(ij,l),iq) 1082 dzqorig(ij,l)=dzq(ij,lorig(ij,l)) 1083 ENDIF 1084 ENDDO 1085 ENDDO 1086 c$OMP END DO NO WAIT 1087 1088 ENDDO ! WHILE (countcfl>=1) 1089 1090 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1091 DO l = 2,llm 1092 do ij = ijb,ije 1093 sigw=wresi(ij,l)/morig(ij,l) 1094 IF(w(ij,l,iq).gt.0.) THEN 1095 wq(ij,l,iq)=wq(ij,l,iq)+wresi(ij,l)*(qorig(ij,l) 1096 : +0.5*(1.-sigw)*dzqorig(ij,l)) 1097 ELSE 1098 wq(ij,l,iq)=wq(ij,l,iq)+wresi(ij,l)*(qorig(ij,l) 1099 : -0.5*(1.+sigw)*dzqorig(ij,l)) 1100 ENDIF 1101 ENDDO 1102 ENDDO 1103 c$OMP END DO NOWAIT 1104 1105 1106 ENDIF ! councfl=0 1107 1108 993 1109 994 1110 c$OMP MASTER -
LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90
r2720 r2787 109 109 INTEGER :: iflag_radia, iflag_cldcon, iflag_ratqs 110 110 REAL :: ratqsbas, ratqshaut, tau_ratqs 111 LOGICAL :: ok_ade, ok_aie, ok_ cdnc, aerosol_couple111 LOGICAL :: ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple 112 112 INTEGER :: flag_aerosol 113 113 INTEGER :: flag_aerosol_strat … … 131 131 iflag_cldcon, & 132 132 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 133 ok_ade, ok_aie, ok_ cdnc, aerosol_couple,&133 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, & 134 134 flag_aerosol, flag_aerosol_strat, new_aod, & 135 135 flag_bc_internal_mixture, bl95_b0, bl95_b1, & -
LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/limit_netcdf.F90
r2720 r2787 17 17 !------------------------------------------------------------------------------- 18 18 19 USE ioipsl, ONLY: flininfo, flinopen, flinget, flinclo, & 20 ioconf_calendar, ioget_calendar, lock_calendar, ioget_mon_len, ioget_year_len 19 USE ioipsl, ONLY: flininfo, flinopen, flinget, flinclo 21 20 USE assert_eq_m, ONLY: assert_eq 21 USE cal_tools_m, ONLY: year_len, mid_month 22 22 USE conf_dat_m, ONLY: conf_dat2d, conf_dat3d 23 23 USE dimphy, ONLY: klon, zmasq 24 USE geometry_mod, ONLY: longitude_deg, latitude_deg24 USE geometry_mod, ONLY: longitude_deg, latitude_deg 25 25 USE phys_state_var_mod, ONLY: pctsrf 26 USE control_mod, ONLY: anneeref26 USE control_mod, ONLY: anneeref 27 27 USE init_ssrf_m, ONLY: start_init_subsurf 28 28 … … 123 123 124 124 !--- Beware: anneeref (from gcm.def) is used to determine output time sampling 125 ndays= ioget_year_len(anneeref)125 ndays=year_len(anneeref) 126 126 127 127 !--- RUGOSITY TREATMENT -------------------------------------------------------- … … 375 375 !--- Read unit for sea-ice variable only 376 376 IF (mode=='SIC') THEN 377 IF(NF90_GET_ATT(ncid, varid, 'units', unit_sic)/=NF90_NOERR) THEN 377 ierr=NF90_GET_ATT(ncid, varid, 'units', unit_sic); CALL strclean(unit_sic) 378 IF(ierr/=NF90_NOERR) THEN 378 379 CALL msg(5,'No unit in sea-ice file. Take percentage as default value') 379 380 unit_sic='X' 381 ELSE IF(ANY(["% ","1.0","1 "]==unit_sic)) THEN 382 CALL msg(5,'Sea-ice cover has unit='//TRIM(unit_sic)) 380 383 ELSE 381 CALL msg(5,'Sea-ice cover has unit='//TRIM(unit_sic)) 384 CALL abort_physic('SIC','Unrecognized unit for sea-ice file: '& 385 //TRIM(unit_sic),1) 382 386 END IF 383 387 END IF … … 418 422 !--- Rebuilding input time vector (field from input file might be unreliable) 419 423 IF(lmdep==12) THEN 420 timeyear=mid_month(anneeref, cal_in , ndays_in)424 timeyear=mid_month(anneeref, cal_in) 421 425 CALL msg(0,'Monthly input file(s) for '//TRIM(title)//'.') 422 426 ELSE IF(lmdep==ndays_in) THEN … … 426 430 WRITE(mess,'(a,i3,a,i3,a)')'Mismatching input file: found',lmdep, & 427 431 ' records, 12/',ndays_in,' (monthly/daily needed).' 428 CALL abort_physic('mid_month s',TRIM(mess),1)432 CALL abort_physic('mid_month',TRIM(mess),1) 429 433 END IF 430 434 … … 433 437 IF(extrp) ALLOCATE(work(imdep, jmdep)) 434 438 CALL msg(5,'') 435 CALL msg(5,' LECTURE ET INTERPOLATION HORIZ. DE ', lmdep, ' CHAMPS.')439 CALL msg(5,'READ AND INTERPOLATE HORIZONTALLY ', lmdep, ' FIELDS.') 436 440 CALL ncerr(NF90_INQ_VARID(ncid, varname, varid), fnam) 437 441 DO l=1, lmdep 438 442 CALL ncerr(NF90_GET_VAR(ncid,varid,champ,[1,1,l],[imdep,jmdep,1]),fnam) 443 !--- Check whether values are acceptable for SIC, depending on unit. 444 IF(mode=='SIC') THEN 445 IF(TRIM(unit_sic)=="1".OR.TRIM(unit_sic)=="1.0") THEN 446 IF(ANY(champ>1.0+EPSFRA)) & 447 CALL abort_physic('SIC','Found sea-ice fractions greater than 1.') 448 ELSE IF(TRIM(unit_sic)=="X".OR.TRIM(unit_sic)=="%") THEN 449 ! IF(ANY(champ>100.0+EPSFRA)) & 450 ! CALL abort_physic('SIC','Found sea-ice percentages greater than 100.') 451 IF(MAXVAL(champ)< 1.01) & 452 CALL abort_physic('SIC','All sea-ice percentages lower than 1.') 453 END IF 454 END IF 439 455 CALL conf_dat2d(title, dlon_ini, dlat_ini, dlon, dlat, champ, .TRUE.) 440 456 IF(extrp) CALL extrapol(champ,imdep,jmdep,999999.,.TRUE.,.TRUE.,2,work) 441 457 IF(l==1) THEN 442 458 CALL msg(5,"----------------------------------------------------------") 443 CALL msg(5,"$$$ Interpolation barycentrique pour "//TRIM(title)//" $$$")459 CALL msg(5,"$$$ Barycentrique interpolation for "//TRIM(title)//" $$$") 444 460 CALL msg(5,"----------------------------------------------------------") 445 461 END IF … … 504 520 IF(ndays/=ndays_in) THEN 505 521 WRITE(lunout, *) 506 WRITE(lunout,*)'DIFFERENT ES LONGEURS D ANNEES:'507 WRITE(lunout,*)' Dans le fichier d entree: ',ndays_in508 WRITE(lunout,*)' Dans le fichier de sortie: ',ndays522 WRITE(lunout,*)'DIFFERENT YEAR LENGTHS:' 523 WRITE(lunout,*)' In the input file: ',ndays_in 524 WRITE(lunout,*)' In the output file: ',ndays 509 525 END IF 510 526 IF(lmdep==ndays_in) THEN 511 527 WRITE(lunout, *) 512 WRITE(lunout, *)' PAS D INTERPOLATION TEMPORELLE.'513 WRITE(lunout, *)' Fichier journalier en entree.'528 WRITE(lunout, *)'NO TIME INTERPOLATION.' 529 WRITE(lunout, *)' Daily input file.' 514 530 ELSE 515 WRITE(lunout, *)' INTERPOLATION TEMPORELLE.'516 WRITE(lunout, *)' Vecteur temps en entree: ', timeyear517 WRITE(lunout, *)' Vecteur temps en sortie de 0 a', ndays-1531 WRITE(lunout, *)'TIME INTERPOLATION.' 532 WRITE(lunout, *)' Input time vector: ', timeyear 533 WRITE(lunout, *)' Output time vector from 0 to ', ndays-1 518 534 END IF 519 535 END IF … … 542 558 DO j=1, jjp1 543 559 CALL minmax(iip1, champan(1, j, 10), chmin, chmax) 544 IF (prt_level>5) WRITE(lunout, *)' ',TRIM(title),' a u temps10 ', chmin, chmax, j560 IF (prt_level>5) WRITE(lunout, *)' ',TRIM(title),' at time 10 ', chmin, chmax, j 545 561 END DO 546 562 547 563 !--- SPECIAL FILTER FOR SST: SST>271.38 -------------------------------------- 548 564 IF(mode=='SST') THEN 549 CALL msg( 5,'Filtrage de laSST: SST >= 271.38')565 CALL msg(0,'Filtering SST: SST >= 271.38') 550 566 WHERE(champan<271.38) champan=271.38 551 567 END IF … … 553 569 !--- SPECIAL FILTER FOR SIC: 0.0<SIC<1.0 ------------------------------------- 554 570 IF(mode=='SIC') THEN 555 CALL msg(5,'Filtrage de la SIC: 0.0 < Sea-ice < 1.0') 556 557 IF (unit_sic=='1') THEN 571 CALL msg(0,'Filtering SIC: 0.0 < Sea-ice < 1.0') 572 IF(TRIM(unit_sic)=="1".OR.TRIM(unit_sic)=="1.0") THEN 558 573 ! Nothing to be done for sea-ice field is already in fraction of 1 559 574 ! This is the case for sea-ice in file cpl_atm_sic.nc 560 CALL msg( 5,'Sea-ice field already in fraction of 1')575 CALL msg(0,'Sea-ice field already in fraction of 1') 561 576 ELSE 562 577 ! Convert sea ice from percentage to fraction of 1 563 CALL msg( 5,'Transformt sea-ice field from percentage to fraction of 1.')578 CALL msg(0,'Sea-ice field converted from percentage to fraction of 1.') 564 579 champan(:, :, :)=champan(:, :, :)/100. 565 580 END IF 566 567 581 champan(iip1, :, :)=champan(1, :, :) 568 582 WHERE(champan>1.0) champan=1.0 … … 647 661 !------------------------------------------------------------------------------- 648 662 ! 649 FUNCTION year_len(y,cal_in)650 !651 !-------------------------------------------------------------------------------652 IMPLICIT NONE653 !-------------------------------------------------------------------------------654 ! Arguments:655 INTEGER :: year_len656 INTEGER, INTENT(IN) :: y657 CHARACTER(LEN=*), INTENT(IN) :: cal_in658 !-------------------------------------------------------------------------------659 ! Local variables:660 CHARACTER(LEN=20) :: cal_out ! calendar (for outputs)661 !-------------------------------------------------------------------------------662 !--- Getting the input calendar to reset at the end of the function663 CALL ioget_calendar(cal_out)664 665 !--- Unlocking calendar and setting it to wanted one666 CALL lock_calendar(.FALSE.); CALL ioconf_calendar(TRIM(cal_in))667 668 !--- Getting the number of days in this year669 year_len=ioget_year_len(y)670 671 !--- Back to original calendar672 CALL lock_calendar(.FALSE.); CALL ioconf_calendar(TRIM(cal_out))673 674 END FUNCTION year_len675 !676 !-------------------------------------------------------------------------------677 678 679 !-------------------------------------------------------------------------------680 !681 FUNCTION mid_month(y,cal_in,ndays_out)682 !683 !-------------------------------------------------------------------------------684 IMPLICIT NONE685 !-------------------------------------------------------------------------------686 ! Arguments:687 INTEGER, INTENT(IN) :: y ! year688 CHARACTER(LEN=*), INTENT(IN) :: cal_in ! calendar689 INTEGER, INTENT(IN) :: ndays_out ! days number690 REAL, DIMENSION(14) :: mid_month ! mid-bins times691 !-------------------------------------------------------------------------------692 ! Local variables:693 CHARACTER(LEN=99) :: mess ! error message694 CHARACTER(LEN=20) :: cal_out ! output calendar695 INTEGER, DIMENSION(14) :: tlen ! months lengths (days)696 INTEGER :: m ! months counter697 INTEGER :: nd ! number of days698 !-------------------------------------------------------------------------------699 !--- Save the input calendar to reset it at the end of the function700 CALL ioget_calendar(cal_out)701 702 !--- Unlock calendar and set it to "cal_in"703 CALL lock_calendar(.FALSE.); CALL ioconf_calendar(TRIM(cal_in))704 705 !--- Get the length of each month706 tlen(1 )=ioget_mon_len(y-1,12)707 DO m=1,12; tlen(m+1)=ioget_mon_len(y,m); END DO708 tlen(14)=ioget_mon_len(y+1, 1)709 710 !--- Mid-bins times711 mid_month(1)=-0.5*REAL(tlen(1))712 DO m=2,14; mid_month(m)=mid_month(m-1)+0.5*REAL(tlen(m-1)+tlen(m)); END DO713 714 !--- Back to original calendar715 CALL lock_calendar(.FALSE.); CALL ioconf_calendar(TRIM(cal_out))716 717 END FUNCTION mid_month718 !719 !-------------------------------------------------------------------------------720 721 722 723 !-------------------------------------------------------------------------------724 !725 663 SUBROUTINE msg(lev,str1,i,str2) 726 664 ! -
LMDZ5/branches/testing/libf/misc/wxios.F90
r2542 r2787 25 25 !$OMP THREADPRIVATE(missing_val) 26 26 27 #ifdef XIOS1 28 #error "XIOS v1 no longer supported, use XIOS v2." 29 #endif 30 27 31 CONTAINS 28 32 … … 33 37 SUBROUTINE reformadate(odate, ndate) 34 38 CHARACTER(len=*), INTENT(IN) :: odate 35 #ifdef XIOS136 CHARACTER(len=100), INTENT(OUT) :: ndate37 #else38 39 TYPE(xios_duration) :: ndate 39 #endif40 40 41 41 INTEGER :: i = 0 … … 52 52 i = INDEX(odate, "day") 53 53 IF (i > 0) THEN 54 #ifdef XIOS155 ndate = odate(1:i-1)//"d"56 #else57 54 read(odate(1:i-1),*) ndate%day 58 #endif59 55 END IF 60 56 61 57 i = INDEX(odate, "hr") 62 58 IF (i > 0) THEN 63 #ifdef XIOS164 ndate = odate(1:i-1)//"h"65 #else66 59 read(odate(1:i-1),*) ndate%hour 67 #endif68 60 END IF 69 61 70 62 i = INDEX(odate, "mth") 71 63 IF (i > 0) THEN 72 #ifdef XIOS173 ndate = odate(1:i-1)//"mo"74 #else75 64 read(odate(1:i-1),*) ndate%month 76 #endif77 65 END IF 78 66 … … 197 185 198 186 !Variables pour xios: 199 #ifdef XIOS1200 TYPE(xios_time) :: mdtime201 #else202 187 TYPE(xios_duration) :: mdtime 203 #endif204 188 !REAL(kind = 8) :: year=0, month=0, day=0, hour=0, minute=0, second=0 205 189 206 #ifdef XIOS1207 mdtime = xios_time(0, 0, 0, 0, 0, pasdetemps)208 #else209 190 mdtime%second=pasdetemps 210 #endif211 191 212 192 !Réglage du calendrier: 213 #ifdef XIOS1214 SELECT CASE (calendrier)215 CASE('earth_360d')216 CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "D360")217 IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier terrestre a 360 jours/an'218 CASE('earth_365d')219 CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "NoLeap")220 IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier terrestre a 365 jours/an'221 CASE('gregorian')222 CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "Gregorian")223 IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier gregorien'224 CASE DEFAULT225 abort_message = 'wxios_set_cal: Mauvais choix de calendrier'226 CALL abort_gcm('Gcm:Xios',abort_message,1)227 END SELECT228 #else229 193 SELECT CASE (calendrier) 230 194 CASE('earth_360d') … … 241 205 CALL abort_gcm('Gcm:Xios',abort_message,1) 242 206 END SELECT 243 #endif244 207 245 208 !Formatage de la date d'origine: … … 247 210 248 211 IF (prt_level >= 10) WRITE(lunout,*) "wxios_set_cal: Time origin: ", date 249 #ifdef XIOS1250 CALL xios_set_context_attr_hdl(g_ctx, time_origin = date)251 #else252 212 CALL xios_set_time_origin(xios_date(annee,mois,jour,int(heure),0,0)) 253 #endif254 213 255 214 !Formatage de la date de debut: … … 259 218 IF (prt_level >= 10) WRITE(lunout,*) "wxios_set_cal: Start date: ", date 260 219 261 #ifdef XIOS1262 CALL xios_set_context_attr_hdl(g_ctx, start_date = date)263 #else264 220 CALL xios_set_start_date(xios_date(ini_an,ini_mois,ini_jour,int(ini_heure),0,0)) 265 #endif266 221 267 222 !Et enfin,le pas de temps: … … 272 227 SUBROUTINE wxios_set_timestep(ts) 273 228 REAL, INTENT(IN) :: ts 274 #ifdef XIOS1275 TYPE(xios_time) :: mdtime276 277 mdtime = xios_time(0, 0, 0, 0, 0, ts)278 #else279 229 TYPE(xios_duration) :: mdtime 280 230 281 231 mdtime%timestep = ts 282 #endif283 232 284 233 CALL xios_set_timestep(mdtime) … … 334 283 335 284 !On parametrise le domaine: 336 #ifdef XIOS1337 CALL xios_set_domain_attr_hdl(dom, ni_glo=ni_glo, ibegin=ibegin, ni=ni)338 CALL xios_set_domain_attr_hdl(dom, nj_glo=nj_glo, jbegin=jbegin, nj=nj, data_dim=2)339 CALL xios_set_domain_attr_hdl(dom, lonvalue=io_lon(ibegin:iend), latvalue=io_lat(jbegin:jend))340 #else341 285 CALL xios_set_domain_attr_hdl(dom, ni_glo=ni_glo, ibegin=ibegin-1, ni=ni, type="rectilinear") 342 286 CALL xios_set_domain_attr_hdl(dom, nj_glo=nj_glo, jbegin=jbegin-1, nj=nj, data_dim=2) 343 287 CALL xios_set_domain_attr_hdl(dom, lonvalue_1d=io_lon(ibegin:iend), latvalue_1d=io_lat(jbegin:jend)) 344 #endif345 288 IF (.NOT.is_sequential) THEN 346 289 mask(:,:)=.TRUE. … … 353 296 WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," mask(:,nj)=",mask(:,nj) 354 297 ENDIF 355 #ifdef XIOS1356 CALL xios_set_domain_attr_hdl(dom, mask=mask)357 #else358 298 CALL xios_set_domain_attr_hdl(dom, mask_2d=mask) 359 #endif360 299 END IF 361 300 … … 401 340 402 341 ! Ehouarn: New way to declare axis, without axis_group: 403 #ifdef XIOS1404 CALL xios_set_axis_attr(trim(axis_id),size=axis_size,value=axis_value)405 #else406 342 CALL xios_set_axis_attr(trim(axis_id),n_glo=axis_size,value=axis_value) 407 #endif 343 408 344 !Vérification: 409 345 IF (xios_is_valid_axis(TRIM(ADJUSTL(axis_id)))) THEN … … 429 365 TYPE(xios_file) :: x_file 430 366 TYPE(xios_filegroup) :: x_fg 431 #ifdef XIOS1432 CHARACTER(len=100) :: nffreq433 #else434 367 TYPE(xios_duration) :: nffreq 435 #endif436 368 437 369 !On regarde si le fichier n'est pas défini par XML: … … 445 377 446 378 !On configure: 447 #ifdef XIOS1448 CALL xios_set_file_attr_hdl(x_file, name="X"//fname,&449 output_freq=TRIM(ADJUSTL(nffreq)), output_level=flvl, enabled=.TRUE.)450 #else451 379 CALL xios_set_file_attr_hdl(x_file, name="X"//fname,& 452 380 output_freq=nffreq, output_level=flvl, enabled=.TRUE.) 453 #endif454 381 455 382 IF (xios_is_valid_file("X"//fname)) THEN 456 383 IF (prt_level >= 10) THEN 457 384 WRITE(lunout,*) "wxios_add_file: New file: ", "X"//fname 458 #ifdef XIOS1459 WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl460 #else461 385 WRITE(lunout,*) "wxios_add_file: output_freq=",nffreq,"; output_lvl=",flvl 462 #endif463 386 ENDIF 464 387 ELSE 465 388 WRITE(lunout,*) "wxios_add_file: Error, invalid file: ", "X"//trim(fname) 466 #ifdef XIOS1467 WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl468 #else469 389 WRITE(lunout,*) "wxios_add_file: output_freq=",nffreq,"; output_lvl=",flvl 470 #endif471 390 END IF 472 391 ELSE … … 538 457 TYPE(xios_field) :: field 539 458 TYPE(xios_fieldgroup) :: fieldgroup 540 #ifndef XIOS1541 459 TYPE(xios_duration) :: freq_op 542 #endif 460 543 461 LOGICAL :: bool=.FALSE. 544 462 INTEGER :: lvl =0 … … 599 517 600 518 !L'operation, sa frequence: 601 #ifdef XIOS1602 CALL xios_set_field_attr_hdl(field, field_ref=fieldname, operation=TRIM(ADJUSTL(operation)), freq_op="1ts", prec=4)603 #else604 519 freq_op%timestep=1 605 520 CALL xios_set_field_attr_hdl(field, field_ref=fieldname, operation=TRIM(ADJUSTL(operation)), freq_op=freq_op, prec=4) 606 #endif607 521 608 522 -
LMDZ5/branches/testing/libf/phylmd/Dust/phys_output_write_spl_mod.F90
r2641 r2787 6 6 !JE20150620<< 7 7 !JE20150620>> 8 9 8 !JE20150620<< 10 9 11 USE time_phylmdz_mod, only: day_step_phy, start_time, itau_phy10 USE time_phylmdz_mod, ONLY: day_step_phy, start_time, itau_phy 12 11 13 12 USE phytracr_spl_mod, ONLY : ok_chimeredust, id_prec, id_fine, id_coss, & … … 93 92 ! defined and initialised in phys_output_mod.F90 94 93 95 USE dimphy, only: klon, klev, klevp1, nslay 96 USE control_mod, only: day_step, iphysiq 97 USE phys_output_ctrlout_mod, only: o_phis, o_aire, is_ter, is_lic, is_oce, & 94 USE dimphy, ONLY: klon, klev, klevp1 95 USE ocean_slab_mod, ONLY: nslay 96 USE control_mod, ONLY: day_step, iphysiq 97 USE phys_output_ctrlout_mod, ONLY: o_phis, o_aire, is_ter, is_lic, is_oce, & 98 98 is_ave, is_sic, o_contfracATM, o_contfracOR, & 99 99 o_aireTER, o_flat, o_slp, o_tsol, & … … 287 287 !JE20150620>> 288 288 289 USE phys_state_var_mod, only: pctsrf, paire_ter, rain_fall, snow_fall, &289 USE phys_state_var_mod, ONLY: pctsrf, paire_ter, rain_fall, snow_fall, & 290 290 qsol, z0m, z0h, fevap, agesno, & 291 291 nday_rain, rain_con, snow_con, & … … 314 314 vphiSTD, wTSTD, u2STD, v2STD, T2STD, missing_val_nf90 315 315 316 USE phys_local_var_mod, only: zxfluxlat, slp, zxtsol, zt2m, &316 USE phys_local_var_mod, ONLY: zxfluxlat, slp, zxtsol, zt2m, & 317 317 t2m_min_mon, t2m_max_mon, evap, & 318 318 zu10m, zv10m, zq2m, zustar, zxqsurf, & … … 369 369 d_q_ch4, pmfd, pmfu, ref_liq, ref_ice, rhwriteSTD 370 370 371 USE phys_output_var_mod, only: vars_defined, snow_o, zfra_o, bils_diss, &371 USE phys_output_var_mod, ONLY: vars_defined, snow_o, zfra_o, bils_diss, & 372 372 bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, & 373 373 itau_con, nfiles, clef_files, nid_files, zvstr_gwd_rando 374 USE ocean_slab_mod, only: tslab, slab_bils, slab_bilg, tice, seaice375 USE pbl_surface_mod, only: snow376 USE indice_sol_mod, only: nbsrf377 USE infotrac, only: nqtot, nqo, nbtr, type_trac378 USE geometry_mod, only: cell_area379 USE surface_data, only: type_ocean, version_ocean, ok_veget, ok_snow380 ! USE aero_mod, only: naero_spc381 USE aero_mod, only: naero_tot, id_STRAT_phy382 USE ioipsl, only: histend, histsync383 USE iophy, only: set_itau_iophy, histwrite_phy384 USE netcdf, only: nf90_fill_real374 USE ocean_slab_mod, ONLY: tslab, slab_bils, slab_bilg, tice, seaice 375 USE pbl_surface_mod, ONLY: snow 376 USE indice_sol_mod, ONLY: nbsrf 377 USE infotrac, ONLY: nqtot, nqo, nbtr, type_trac 378 USE geometry_mod, ONLY: cell_area 379 USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, ok_snow 380 ! USE aero_mod, ONLY: naero_spc 381 USE aero_mod, ONLY: naero_tot, id_STRAT_phy 382 USE ioipsl, ONLY: histend, histsync 383 USE iophy, ONLY: set_itau_iophy, histwrite_phy 384 USE netcdf, ONLY: nf90_fill_real 385 385 386 386 #ifdef CPP_XIOS 387 387 ! ug Pour les sorties XIOS 388 388 USE xios, ONLY: xios_update_calendar 389 USE wxios, only: wxios_closedef, missing_val389 USE wxios, ONLY: wxios_closedef, missing_val 390 390 #endif 391 USE phys_cal_mod, only : mth_len 392 391 USE phys_cal_mod, ONLY : mth_len 393 392 394 393 IMPLICIT NONE 395 396 394 397 395 ! INCLUDE "temps.h" … … 445 443 CALL set_itau_iophy(itau_w) 446 444 447 IF (.NOT.vars_defined) THEN445 IF (.NOT.vars_defined) THEN 448 446 iinitend = 2 449 447 ELSE … … 456 454 !$OMP MASTER 457 455 IF (vars_defined) THEN 458 if (prt_level >= 10) then456 IF (prt_level >= 10) THEN 459 457 write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w 460 endif458 ENDIF 461 459 ! CALL xios_update_calendar(itau_w) 462 460 CALL xios_update_calendar(itap) 463 END 461 ENDIF 464 462 !$OMP END MASTER 465 463 !$OMP BARRIER … … 751 749 CALL histwrite_phy(o_uq, uq) 752 750 CALL histwrite_phy(o_vq, vq) 753 IF (iflag_con.GE.3) THEN ! sb751 IF (iflag_con.GE.3) THEN ! sb 754 752 CALL histwrite_phy(o_cape, cape) 755 753 CALL histwrite_phy(o_pbase, ema_pcb) 756 754 CALL histwrite_phy(o_ptop, ema_pct) 757 755 CALL histwrite_phy(o_fbase, ema_cbmf) 758 if (iflag_con /= 30) then756 IF (iflag_con /= 30) THEN 759 757 CALL histwrite_phy(o_plcl, plcl) 760 758 CALL histwrite_phy(o_plfc, plfc) 761 759 CALL histwrite_phy(o_wbeff, wbeff) 762 end if760 ENDIF 763 761 764 762 CALL histwrite_phy(o_cape_max, cape) … … 771 769 CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d) 772 770 IF (vars_defined) THEN 773 IF (iflag_thermals>=1)THEN771 IF (iflag_thermals>=1)THEN 774 772 zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev) 775 773 ELSE … … 820 818 DO k=1, nlevSTD 821 819 bb2=clevSTD(k) 822 IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &820 IF (bb2.EQ."850".OR.bb2.EQ."700".OR. & 823 821 bb2.EQ."500".OR.bb2.EQ."200".OR. & 824 822 bb2.EQ."100".OR. & … … 840 838 #endif 841 839 #endif 840 842 841 #ifdef CPP_XIOS 843 IF (ok_all_xml) THEN842 IF (ok_all_xml) THEN 844 843 !XIOS CALL xios_get_field_attr("u850",default_value=missing_val) 845 844 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 847 846 DO k=1, nlevSTD 848 847 bb2=clevSTD(k) 849 IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &848 IF (bb2.EQ."850".OR.bb2.EQ."700".OR. & 850 849 bb2.EQ."500".OR.bb2.EQ."200".OR. & 851 850 bb2.EQ."100".OR. & … … 940 939 ELSE 941 940 CALL histwrite_phy(o_tslab, tslab) 942 END 941 ENDIF 943 942 IF (version_ocean=='sicINT') THEN 944 943 CALL histwrite_phy(o_slab_bilg, slab_bilg) 945 944 CALL histwrite_phy(o_slab_tice, tice) 946 945 CALL histwrite_phy(o_slab_sic, seaice) 947 END 946 ENDIF 948 947 ENDIF !type_ocean == force/slab 949 948 CALL histwrite_phy(o_weakinv, weak_inversion) … … 1029 1028 CALL histwrite_phy(o_tausumaero(naero), & 1030 1029 tausum_aero(:,2,naero) ) 1031 END 1030 ENDDO 1032 1031 ENDIF 1033 1032 IF (flag_aerosol_strat>=1) THEN … … 1046 1045 CALL histwrite_phy(o_sollwad0, sollwad0_aero) 1047 1046 !====MS forcing diagnostics 1048 if (new_aod) then1047 IF (new_aod) THEN 1049 1048 CALL histwrite_phy(o_swtoaas_nat, topsw_aero(:,1)) 1050 1049 CALL histwrite_phy(o_swsrfas_nat, solsw_aero(:,1)) … … 1057 1056 CALL histwrite_phy(o_swsrfcs_ant, solsw0_aero(:,2)) 1058 1057 !cf 1059 if (.not. aerosol_couple) then1058 IF (.not. aerosol_couple) THEN 1060 1059 CALL histwrite_phy(o_swtoacf_nat, topswcf_aero(:,1)) 1061 1060 CALL histwrite_phy(o_swsrfcf_nat, solswcf_aero(:,1)) … … 1064 1063 CALL histwrite_phy(o_swtoacf_zero,topswcf_aero(:,3)) 1065 1064 CALL histwrite_phy(o_swsrfcf_zero,solswcf_aero(:,3)) 1066 endif1067 endif! new_aod1065 ENDIF 1066 ENDIF ! new_aod 1068 1067 !====MS forcing diagnostics 1069 1068 ENDIF … … 1085 1084 ENDIF 1086 1085 ! Champs 3D: 1087 IF (ok_ade .OR. ok_aie) then1086 IF (ok_ade .OR. ok_aie) THEN 1088 1087 CALL histwrite_phy(o_ec550aer, ec550aer) 1089 1088 ENDIF … … 1170 1169 CALL histwrite_phy(o_alb2, albsol2) 1171 1170 !FH Sorties pour la couche limite 1172 if (iflag_pbl>1) then1171 IF (iflag_pbl>1) THEN 1173 1172 zx_tmp_fi3d=0. 1174 1173 IF (vars_defined) THEN 1175 donsrf=1,nbsrf1176 dok=1,klev1174 DO nsrf=1,nbsrf 1175 DO k=1,klev 1177 1176 zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) & 1178 1177 +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf) … … 1199 1198 ENDIF 1200 1199 CALL histwrite_phy(o_dtcon, zx_tmp_fi3d) 1201 if(iflag_thermals.eq.0)then1200 IF (iflag_thermals.eq.0)THEN 1202 1201 IF (vars_defined) THEN 1203 1202 zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + & … … 1205 1204 ENDIF 1206 1205 CALL histwrite_phy(o_tntc, zx_tmp_fi3d) 1207 else if(iflag_thermals.ge.1.and.iflag_wake.EQ.1)then1206 ELSEIF (iflag_thermals.ge.1.and.iflag_wake.EQ.1)THEN 1208 1207 IF (vars_defined) THEN 1209 1208 zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + & … … 1212 1211 ENDIF 1213 1212 CALL histwrite_phy(o_tntc, zx_tmp_fi3d) 1214 endif1213 ENDIF 1215 1214 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys 1216 1215 CALL histwrite_phy(o_ducon, zx_tmp_fi3d) … … 1220 1219 CALL histwrite_phy(o_dqcon, zx_tmp_fi3d) 1221 1220 1222 IF (iflag_thermals.EQ.0) THEN1221 IF (iflag_thermals.EQ.0) THEN 1223 1222 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 1224 1223 CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d) 1225 ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN1224 ELSEIF (iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN 1226 1225 IF (vars_defined) THEN 1227 1226 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + & … … 1243 1242 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1244 1243 ! Sorties specifiques a la separation thermiques/non thermiques 1245 if (iflag_thermals>=1) then1246 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys1244 IF (iflag_thermals>=1) THEN 1245 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys 1247 1246 CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d) 1248 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys1247 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys 1249 1248 CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d) 1250 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys1249 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys 1251 1250 CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d) 1252 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys1251 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys 1253 1252 CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d) 1254 1253 CALL histwrite_phy(o_plulth, plul_th) 1255 1254 CALL histwrite_phy(o_plulst, plul_st) 1256 1255 IF (vars_defined) THEN 1257 dok=1,klev1258 doi=1,klon1259 if (ptconvth(i,k)) then1256 DO k=1,klev 1257 DO i=1,klon 1258 IF (ptconvth(i,k)) THEN 1260 1259 zx_tmp_fi3d(i,k)=1. 1261 else1260 ELSE 1262 1261 zx_tmp_fi3d(i,k)=0. 1263 endif1262 ENDIF 1264 1263 enddo 1265 1264 enddo … … 1267 1266 CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d) 1268 1267 IF (vars_defined) THEN 1269 doi=1,klon1268 DO i=1,klon 1270 1269 zx_tmp_fi2d(1:klon)=lmax_th(:) 1271 1270 enddo 1272 1271 ENDIF 1273 1272 CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d) 1274 endif! iflag_thermals>=11273 ENDIF ! iflag_thermals>=1 1275 1274 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1276 1275 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys 1277 1276 CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d) 1278 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys1277 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys 1279 1278 CALL histwrite_phy(o_dtdis, zx_tmp_fi3d) 1280 1279 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys … … 1320 1319 CALL histwrite_phy(o_dqthe, zx_tmp_fi3d) 1321 1320 ENDIF !iflag_thermals 1322 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys1321 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys 1323 1322 CALL histwrite_phy(o_dtajs, zx_tmp_fi3d) 1324 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys1323 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys 1325 1324 CALL histwrite_phy(o_dqajs, zx_tmp_fi3d) 1326 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys1325 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys 1327 1326 CALL histwrite_phy(o_dtswr, zx_tmp_fi3d) 1328 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys1327 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys 1329 1328 CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d) 1330 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys1329 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys 1331 1330 CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d) 1332 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys1331 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys 1333 1332 CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d) 1334 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys1333 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys 1335 1334 CALL histwrite_phy(o_dtec, zx_tmp_fi3d) 1336 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys1335 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys 1337 1336 CALL histwrite_phy(o_duvdf, zx_tmp_fi3d) 1338 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys1337 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys 1339 1338 CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d) 1340 1339 IF (ok_orodr) THEN 1341 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys1340 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys 1342 1341 CALL histwrite_phy(o_duoro, zx_tmp_fi3d) 1343 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys1342 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys 1344 1343 CALL histwrite_phy(o_dvoro, zx_tmp_fi3d) 1345 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys1344 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys 1346 1345 CALL histwrite_phy(o_dtoro, zx_tmp_fi3d) 1347 1346 ENDIF 1348 1347 IF (ok_orolf) THEN 1349 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys1348 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lIF (1:klon,1:klev)/pdtphys 1350 1349 CALL histwrite_phy(o_dulif, zx_tmp_fi3d) 1351 1350 1352 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys1351 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lIF (1:klon,1:klev)/pdtphys 1353 1352 CALL histwrite_phy(o_dvlif, zx_tmp_fi3d) 1354 1353 1355 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys1354 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lIF (1:klon,1:klev)/pdtphys 1356 1355 CALL histwrite_phy(o_dtlif, zx_tmp_fi3d) 1357 1356 ENDIF 1358 1357 1359 1358 ! IF (ok_hines) THEN 1360 ! IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys1359 ! IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys 1361 1360 ! CALL histwrite_phy(o_duhin, zx_tmp_fi3d) 1362 ! IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_hin(1:klon,1:klev)/pdtphys1361 ! IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_hin(1:klon,1:klev)/pdtphys 1363 1362 ! CALL histwrite_phy(o_dvhin, zx_tmp_fi3d) 1364 ! IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys1363 ! IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys 1365 1364 ! CALL histwrite_phy(o_dthin, zx_tmp_fi3d) 1366 1365 ! ENDIF 1367 1366 1368 ! IF (ok_gwd_rando) then1369 ! CALL histwrite_phy(o_du_gwd_rando, du_gwd_ran do/ pdtphys)1370 ! CALL histwrite_phy(o_dv_gwd_rando, dv_gwd_ran do/ pdtphys)1367 ! IF (ok_gwd_rando) THEN 1368 ! CALL histwrite_phy(o_du_gwd_rando, du_gwd_ranDO / pdtphys) 1369 ! CALL histwrite_phy(o_dv_gwd_rando, dv_gwd_ranDO / pdtphys) 1371 1370 ! CALL histwrite_phy(o_vstr_gwd_rando, zvstr_gwd_rando) 1372 ! endIF1373 1374 IF (ok_qch4) then1371 ! ENDIF 1372 1373 IF (ok_qch4) THEN 1375 1374 CALL histwrite_phy(o_dqch4, d_q_ch4 / pdtphys) 1376 1375 ENDIF … … 1384 1383 CALL histwrite_phy(o_rlucs, lwup0) 1385 1384 CALL histwrite_phy(o_rldcs, lwdn0) 1386 IF (vars_defined) THEN1385 IF (vars_defined) THEN 1387 1386 zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ & 1388 1387 d_t_dyn(1:klon,1:klev) 1389 1388 ENDIF 1390 1389 CALL histwrite_phy(o_tnt, zx_tmp_fi3d) 1391 IF (vars_defined) THEN1390 IF (vars_defined) THEN 1392 1391 zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + & 1393 1392 d_t_lwr(1:klon,1:klev)/pdtphys 1394 1393 ENDIF 1395 1394 CALL histwrite_phy(o_tntr, zx_tmp_fi3d) 1396 IF (vars_defined) THEN1395 IF (vars_defined) THEN 1397 1396 zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ & 1398 1397 d_t_eva(1:klon,1:klev)+ & … … 1400 1399 ENDIF 1401 1400 CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d) 1402 IF (vars_defined) THEN1401 IF (vars_defined) THEN 1403 1402 zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ & 1404 1403 d_q_dyn(1:klon,1:klev) 1405 1404 ENDIF 1406 1405 CALL histwrite_phy(o_tnhus, zx_tmp_fi3d) 1407 IF (vars_defined) THEN1406 IF (vars_defined) THEN 1408 1407 zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ & 1409 1408 d_q_eva(1:klon,1:klev)/pdtphys … … 1411 1410 CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d) 1412 1411 CALL histwrite_phy(o_evu, coefm(:,:,is_ave)) 1413 IF (vars_defined) THEN1412 IF (vars_defined) THEN 1414 1413 zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ & 1415 1414 ql_seri(1:klon,1:klev) 1416 1415 ENDIF 1417 1416 CALL histwrite_phy(o_h2o, zx_tmp_fi3d) 1418 if (iflag_con >= 3) then1419 IF (vars_defined) THEN1417 IF (iflag_con >= 3) THEN 1418 IF (vars_defined) THEN 1420 1419 zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ & 1421 1420 dnwd0(1:klon,1:klev)) 1422 1421 ENDIF 1423 1422 CALL histwrite_phy(o_mcd, zx_tmp_fi3d) 1424 IF (vars_defined) THEN1423 IF (vars_defined) THEN 1425 1424 zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + & 1426 1425 dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev) 1427 1426 ENDIF 1428 1427 CALL histwrite_phy(o_dmc, zx_tmp_fi3d) 1429 else if (iflag_con == 2) then1428 ELSEIF (iflag_con == 2) THEN 1430 1429 CALL histwrite_phy(o_mcd, pmfd) 1431 1430 CALL histwrite_phy(o_dmc, pmfu + pmfd) 1432 end if1431 ENDIF 1433 1432 CALL histwrite_phy(o_ref_liq, ref_liq) 1434 1433 CALL histwrite_phy(o_ref_ice, ref_ice) 1435 if(RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. &1434 IF (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. & 1436 1435 RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. & 1437 1436 RCFC12_per.NE.RCFC12_act) THEN 1438 IF (vars_defined) zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 )1437 IF (vars_defined) zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 ) 1439 1438 CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d) 1440 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 )1439 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 ) 1441 1440 CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d) 1442 IF (vars_defined) zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 )1441 IF (vars_defined) zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 ) 1443 1442 CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d) 1444 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 )1443 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 ) 1445 1444 CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d) 1446 1445 CALL histwrite_phy(o_rsu4co2, swupp) … … 1460 1459 ! Champs interpolles sur des niveaux de pression 1461 1460 missing_val=missing_val_nf90 1462 DO iff=7, nfiles 1461 DO iff=7, nfiles-1 !--here we deal with files 7,8 and 9 1463 1462 1464 1463 CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff) … … 1470 1469 CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff) 1471 1470 CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff) 1472 IF (vars_defined) THEN1471 IF (vars_defined) THEN 1473 1472 DO k=1, nlevSTD 1474 1473 DO i=1, klon 1475 IF (tnondef(i,k,iff-6).NE.missing_val) THEN1476 IF (freq_outNMC(iff-6).LT.0) THEN1474 IF (tnondef(i,k,iff-6).NE.missing_val) THEN 1475 IF (freq_outNMC(iff-6).LT.0) THEN 1477 1476 freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6) 1478 1477 ELSE … … 1487 1486 ENDIF 1488 1487 CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD,iff) 1489 IF (vars_defined) THEN1488 IF (vars_defined) THEN 1490 1489 DO k=1, nlevSTD 1491 1490 DO i=1, klon 1492 IF (O3sumSTD(i,k,iff-6).NE.missing_val) THEN1491 IF (O3sumSTD(i,k,iff-6).NE.missing_val) THEN 1493 1492 zx_tmp_fi3d_STD(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9 1494 1493 ELSE … … 1499 1498 ENDIF 1500 1499 CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD,iff) 1501 if(read_climoz == 2) THEN1502 IF (vars_defined) THEN1500 IF (read_climoz == 2) THEN 1501 IF (vars_defined) THEN 1503 1502 DO k=1, nlevSTD 1504 1503 DO i=1, klon 1505 IF (O3daysumSTD(i,k,iff-6).NE.missing_val) THEN1504 IF (O3daysumSTD(i,k,iff-6).NE.missing_val) THEN 1506 1505 zx_tmp_fi3d_STD(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9 1507 1506 ELSE … … 1512 1511 ENDIF 1513 1512 CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD,iff) 1514 endif1513 ENDIF 1515 1514 CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff) 1516 1515 CALL histwrite_phy(o_vxq,vqsumSTD(:,:,iff-6),iff) … … 1527 1526 #endif 1528 1527 #ifdef CPP_XIOS 1529 IF (ok_all_xml) THEN1528 IF (ok_all_xml) THEN 1530 1529 ! DO iff=7, nfiles 1531 1530 … … 1538 1537 CALL histwrite_phy(o_va,vlevSTD(:,:)) 1539 1538 CALL histwrite_phy(o_wap,wlevSTD(:,:)) 1540 ! IF (vars_defined) THEN1539 ! IF (vars_defined) THEN 1541 1540 ! DO k=1, nlevSTD 1542 1541 ! DO i=1, klon 1543 ! IF (tnondef(i,k,3).NE.missing_val) THEN1544 ! IF (freq_outNMC(iff-6).LT.0) THEN1542 ! IF (tnondef(i,k,3).NE.missing_val) THEN 1543 ! IF (freq_outNMC(iff-6).LT.0) THEN 1545 1544 ! freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6) 1546 1545 ! ELSE … … 1555 1554 ! ENDIF 1556 1555 ! CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD) 1557 IF (vars_defined) THEN1556 IF (vars_defined) THEN 1558 1557 DO k=1, nlevSTD 1559 1558 DO i=1, klon 1560 IF (O3STD(i,k).NE.missing_val) THEN1559 IF (O3STD(i,k).NE.missing_val) THEN 1561 1560 zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9 1562 1561 ELSE … … 1567 1566 ENDIF 1568 1567 CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD) 1569 if(read_climoz == 2) THEN1570 IF (vars_defined) THEN1568 IF (read_climoz == 2) THEN 1569 IF (vars_defined) THEN 1571 1570 DO k=1, nlevSTD 1572 1571 DO i=1, klon 1573 IF (O3daySTD(i,k).NE.missing_val) THEN1572 IF (O3daySTD(i,k).NE.missing_val) THEN 1574 1573 zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9 1575 1574 ELSE … … 1580 1579 ENDIF 1581 1580 CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD) 1582 endif1581 ENDIF 1583 1582 CALL histwrite_phy(o_uxv,uvSTD(:,:)) 1584 1583 CALL histwrite_phy(o_vxq,vqSTD(:,:)) … … 1598 1597 IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN 1599 1598 1600 !jyg<1601 !! CALL histwrite_phy(o_trac(iq-nqo), qx(:,:,iq))1602 1599 CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo)) 1603 !>jyg1604 1600 CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo)) 1605 1601 CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo)) … … 1612 1608 CALL histwrite_phy(o_dtr_ls(iq-nqo),d_tr_ls(:,:,iq-nqo)) 1613 1609 ! CALL histwrite_phy(o_dtr_dyn(iq-nqo),d_tr_dyn(:,:,iq-nqo)) 1614 !!CALL histwrite_phy(o_dtr_cl(iq-nqo),d_tr_cl(:,:,iq-nqo))1610 ! CALL histwrite_phy(o_dtr_cl(iq-nqo),d_tr_cl(:,:,iq-nqo)) 1615 1611 CALL histwrite_phy(o_dtr_trsp(iq-nqo),d_tr_trsp(:,:,iq-nqo)) 1616 1612 CALL histwrite_phy(o_dtr_sscav(iq-nqo),d_tr_sscav(:,:,iq-nqo)) … … 1618 1614 CALL histwrite_phy(o_dtr_uscav(iq-nqo),d_tr_uscav(:,:,iq-nqo)) 1619 1615 zx_tmp_fi2d=0. 1620 IF (vars_defined) THEN1616 IF (vars_defined) THEN 1621 1617 DO k=1,klev 1622 !jyg<1623 !! zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)1624 1618 zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo) 1625 !>jyg1626 1619 ENDDO 1627 1620 ENDIF 1628 1621 CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d) 1629 endif1630 ENDDO 1631 ENDIF 1632 1633 IF (.NOT.vars_defined) THEN1622 ENDIF 1623 ENDDO 1624 ENDIF 1625 1626 IF (.NOT.vars_defined) THEN 1634 1627 !$OMP MASTER 1635 1628 #ifndef CPP_IOIPSL_NO_OUTPUT … … 1652 1645 vars_defined = .TRUE. 1653 1646 1654 END 1655 1656 END 1657 1658 IF (vars_defined) THEN1647 ENDIF 1648 1649 ENDDO 1650 1651 IF (vars_defined) THEN 1659 1652 ! On synchronise les fichiers pour IOIPSL 1660 1653 #ifndef CPP_IOIPSL_NO_OUTPUT … … 1664 1657 CALL histsync(nid_files(iff)) 1665 1658 ENDIF 1666 END 1659 ENDDO 1667 1660 !$OMP END MASTER 1668 1661 #endif -
LMDZ5/branches/testing/libf/phylmd/Dust/spla_output_dat.h
r2641 r2787 3 3 4 4 !Dust emission module 5 type(ctrl_out),save :: o_m1dflux = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &6 'm1dflux','m1dflux','', (/ ('', i=1, 9) /))7 type(ctrl_out),save :: o_m2dflux = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &8 'm2dflux','m2dflux','', (/ ('', i=1, 9) /))9 type(ctrl_out),save :: o_m3dflux = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &10 'm3dflux','m3dflux','', (/ ('', i=1, 9) /))5 type(ctrl_out),save :: o_m1dflux = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 6 'm1dflux','m1dflux','', (/ ('', i=1, 10) /)) 7 type(ctrl_out),save :: o_m2dflux = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 8 'm2dflux','m2dflux','', (/ ('', i=1, 10) /)) 9 type(ctrl_out),save :: o_m3dflux = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 10 'm3dflux','m3dflux','', (/ ('', i=1, 10) /)) 11 11 12 12 ! traceur_spl 13 type(ctrl_out),save :: o_taue550 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 14 'taue550','Tau ext 550','', (/ ('', i=1, 9) /)) 15 type(ctrl_out),save :: o_taue670 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 16 'taue670','Tau ext 670','', (/ ('', i=1, 9) /)) 17 type(ctrl_out),save :: o_taue865 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 18 'taue865','Tau ext 865','', (/ ('', i=1, 9) /)) 19 type(ctrl_out),save :: o_taue550_tr2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 20 'taue550_tr2','Tau ext 550tr2','', (/ ('', i=1, 9) /)) 21 type(ctrl_out),save :: o_taue670_tr2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 22 'taue670_tr2','Tau ext 670tr2','', (/ ('', i=1, 9) /)) 23 type(ctrl_out),save :: o_taue865_tr2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 24 'taue865_tr2','Tau ext 865tr2','', (/ ('', i=1, 9) /)) 25 type(ctrl_out),save :: o_taue550_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 26 'taue550_ss','Tau ext 550ss','', (/ ('', i=1, 9) /)) 27 type(ctrl_out),save :: o_taue670_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 28 'taue670_ss','Tau ext 670ss','', (/ ('', i=1, 9) /)) 29 type(ctrl_out),save :: o_taue865_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 30 'taue865_ss','Tau ext 865ss','', (/ ('', i=1, 9) /)) 31 type(ctrl_out),save :: o_taue550_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 32 'taue550_dust','Tau ext 550dust','', (/ ('', i=1, 9) /)) 33 type(ctrl_out),save :: o_taue670_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 34 'taue670_dust','Tau ext 670dust','', (/ ('', i=1, 9) /)) 35 type(ctrl_out),save :: o_taue865_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 36 'taue865_dust','Tau ext 865dust','', (/ ('', i=1, 9) /)) 37 type(ctrl_out),save :: o_taue550_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 38 'taue550_dustsco','Tau ext 550dustsco','', (/ ('', i=1, 9) /)) 39 type(ctrl_out),save :: o_taue670_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 40 'taue670_dustsco','Tau ext 670dustsco','', (/ ('', i=1, 9) /)) 41 type(ctrl_out),save :: o_taue865_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 42 'taue865_dustsco','Tau ext 865dustsco','', (/ ('', i=1, 9) /)) 43 44 45 type(ctrl_out),save :: o_taue550_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 13 type(ctrl_out),save :: o_taue550 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 14 'taue550','Tau ext 550','', (/ ('', i=1, 10) /)) 15 type(ctrl_out),save :: o_taue670 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 16 'taue670','Tau ext 670','', (/ ('', i=1, 10) /)) 17 type(ctrl_out),save :: o_taue865 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 18 'taue865','Tau ext 865','', (/ ('', i=1, 10) /)) 19 type(ctrl_out),save :: o_taue550_tr2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 20 'taue550_tr2','Tau ext 550tr2','', (/ ('', i=1, 10) /)) 21 type(ctrl_out),save :: o_taue670_tr2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 22 'taue670_tr2','Tau ext 670tr2','', (/ ('', i=1, 10) /)) 23 type(ctrl_out),save :: o_taue865_tr2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 24 'taue865_tr2','Tau ext 865tr2','', (/ ('', i=1, 10) /)) 25 type(ctrl_out),save :: o_taue550_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 26 'taue550_ss','Tau ext 550ss','', (/ ('', i=1, 10) /)) 27 type(ctrl_out),save :: o_taue670_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 28 'taue670_ss','Tau ext 670ss','', (/ ('', i=1, 10) /)) 29 type(ctrl_out),save :: o_taue865_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 30 'taue865_ss','Tau ext 865ss','', (/ ('', i=1, 10) /)) 31 type(ctrl_out),save :: o_taue550_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 32 'taue550_dust','Tau ext 550dust','', (/ ('', i=1, 10) /)) 33 type(ctrl_out),save :: o_taue670_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 34 'taue670_dust','Tau ext 670dust','', (/ ('', i=1, 10) /)) 35 type(ctrl_out),save :: o_taue865_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 36 'taue865_dust','Tau ext 865dust','', (/ ('', i=1, 10) /)) 37 type(ctrl_out),save :: o_taue550_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 38 'taue550_dustsco','Tau ext 550dustsco','', (/ ('', i=1, 10) /)) 39 type(ctrl_out),save :: o_taue670_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 40 'taue670_dustsco','Tau ext 670dustsco','', (/ ('', i=1, 10) /)) 41 type(ctrl_out),save :: o_taue865_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 42 'taue865_dustsco','Tau ext 865dustsco','', (/ ('', i=1, 10) /)) 43 44 type(ctrl_out),save :: o_taue550_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 46 45 'taue550_terra','Tau ext 550 terra','', & 47 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &48 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 49 type(ctrl_out),save :: o_taue550_fine_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &46 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 47 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 48 type(ctrl_out),save :: o_taue550_fine_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 50 49 'taue550_fine_terra','Tau ext fine 550 terra','', & 51 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &52 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 53 type(ctrl_out),save :: o_taue550_coss_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &50 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 51 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 52 type(ctrl_out),save :: o_taue550_coss_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 54 53 'taue550_coss_terra','Tau ext coss 550 terra','', & 55 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &56 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 57 type(ctrl_out),save :: o_taue550_codu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &54 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 55 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 56 type(ctrl_out),save :: o_taue550_codu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 58 57 'taue550_codu_terra','Tau ext codu 550 terra','', & 59 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &60 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 61 type(ctrl_out),save :: o_taue550_scdu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &58 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 59 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 60 type(ctrl_out),save :: o_taue550_scdu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 62 61 'taue550_scdu_terra','Tau ext scdu 550 terra','', & 63 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &64 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 65 66 type(ctrl_out),save :: o_taue670_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &62 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 63 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 64 65 type(ctrl_out),save :: o_taue670_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 67 66 'taue670_terra','Tau ext 670 terra','', & 68 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &69 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 70 type(ctrl_out),save :: o_taue670_fine_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &67 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 68 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 69 type(ctrl_out),save :: o_taue670_fine_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 71 70 'taue670_fine_terra','Tau ext fine 670 terra','', & 72 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &73 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 74 type(ctrl_out),save :: o_taue670_coss_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &71 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 72 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 73 type(ctrl_out),save :: o_taue670_coss_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 75 74 'taue670_coss_terra','Tau ext coss 670 terra','', & 76 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &77 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 78 type(ctrl_out),save :: o_taue670_codu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &75 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 76 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 77 type(ctrl_out),save :: o_taue670_codu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 79 78 'taue670_codu_terra','Tau ext codu 670 terra','', & 80 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &81 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 82 type(ctrl_out),save :: o_taue670_scdu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &79 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 80 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 81 type(ctrl_out),save :: o_taue670_scdu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 83 82 'taue670_scdu_terra','Tau ext scdu 670 terra','', & 84 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &85 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 86 87 type(ctrl_out),save :: o_taue865_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &83 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 84 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 85 86 type(ctrl_out),save :: o_taue865_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 88 87 'taue865_terra','Tau ext 865 terra','', & 89 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &90 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 91 type(ctrl_out),save :: o_taue865_fine_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &88 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 89 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 90 type(ctrl_out),save :: o_taue865_fine_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 92 91 'taue865_fine_terra','Tau ext fine 865 terra','', & 93 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &94 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 95 type(ctrl_out),save :: o_taue865_coss_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &92 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 93 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 94 type(ctrl_out),save :: o_taue865_coss_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 96 95 'taue865_coss_terra','Tau ext coss 865 terra','', & 97 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &98 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 99 type(ctrl_out),save :: o_taue865_codu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &96 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 97 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 98 type(ctrl_out),save :: o_taue865_codu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 100 99 'taue865_codu_terra','Tau ext codu 865 terra','', & 101 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &102 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 103 type(ctrl_out),save :: o_taue865_scdu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &100 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 101 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 102 type(ctrl_out),save :: o_taue865_scdu_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 104 103 'taue865_scdu_terra','Tau ext scdu 865 terra','', & 105 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &106 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 107 108 type(ctrl_out),save :: o_taue550_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &104 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 105 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 106 107 type(ctrl_out),save :: o_taue550_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 109 108 'taue550_aqua','Tau ext 550 aqua','', & 110 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &111 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 112 type(ctrl_out),save :: o_taue550_fine_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &109 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 110 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 111 type(ctrl_out),save :: o_taue550_fine_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 113 112 'taue550_fine_aqua','Tau ext fine 550 aqua','', & 114 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &115 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 116 type(ctrl_out),save :: o_taue550_coss_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &113 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 114 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 115 type(ctrl_out),save :: o_taue550_coss_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 117 116 'taue550_coss_aqua','Tau ext coss 550 aqua','', & 118 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &119 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 120 type(ctrl_out),save :: o_taue550_codu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &117 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 118 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 119 type(ctrl_out),save :: o_taue550_codu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 121 120 'taue550_codu_aqua','Tau ext codu 550 aqua','', & 122 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &123 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 124 type(ctrl_out),save :: o_taue550_scdu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &121 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 122 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 123 type(ctrl_out),save :: o_taue550_scdu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 125 124 'taue550_scdu_aqua','Tau ext scdu 550 aqua','', & 126 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &127 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 128 129 type(ctrl_out),save :: o_taue670_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &125 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 126 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 127 128 type(ctrl_out),save :: o_taue670_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 130 129 'taue670_aqua','Tau ext 670 aqua','', & 131 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &132 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 133 type(ctrl_out),save :: o_taue670_fine_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &130 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 131 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 132 type(ctrl_out),save :: o_taue670_fine_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 134 133 'taue670_fine_aqua','Tau ext fine 670 aqua','', & 135 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &136 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 137 type(ctrl_out),save :: o_taue670_coss_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &134 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 135 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 136 type(ctrl_out),save :: o_taue670_coss_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 138 137 'taue670_coss_aqua','Tau ext coss 670 aqua','', & 139 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &140 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 141 type(ctrl_out),save :: o_taue670_codu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &138 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 139 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 140 type(ctrl_out),save :: o_taue670_codu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 142 141 'taue670_codu_aqua','Tau ext codu 670 aqua','', & 143 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &144 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 145 type(ctrl_out),save :: o_taue670_scdu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &142 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 143 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 144 type(ctrl_out),save :: o_taue670_scdu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 146 145 'taue670_scdu_aqua','Tau ext scdu 670 aqua','', & 147 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &148 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 149 150 type(ctrl_out),save :: o_taue865_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &146 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 147 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 148 149 type(ctrl_out),save :: o_taue865_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 151 150 'taue865_aqua','Tau ext 865 aqua','', & 152 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &153 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 154 type(ctrl_out),save :: o_taue865_fine_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &151 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 152 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 153 type(ctrl_out),save :: o_taue865_fine_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 155 154 'taue865_fine_aqua','Tau ext fine 865 aqua','', & 156 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &157 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 158 type(ctrl_out),save :: o_taue865_coss_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &155 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 156 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 157 type(ctrl_out),save :: o_taue865_coss_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 159 158 'taue865_coss_aqua','Tau ext coss 865 aqua','', & 160 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &161 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 162 type(ctrl_out),save :: o_taue865_codu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &159 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 160 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 161 type(ctrl_out),save :: o_taue865_codu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 163 162 'taue865_codu_aqua','Tau ext codu 865 aqua','', & 164 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &165 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 166 type(ctrl_out),save :: o_taue865_scdu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &163 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 164 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 165 type(ctrl_out),save :: o_taue865_scdu_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 167 166 'taue865_scdu_aqua','Tau ext scdu 865 aqua','', & 168 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 169 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 170 171 172 173 ! type(ctrl_out),save :: o_taue550_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 167 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 168 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 169 170 ! type(ctrl_out),save :: o_taue550_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 174 171 ! 'taue550_terra','Tau ext 550 terra','', & 175 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &172 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 176 173 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 177 174 ! 178 ! type(ctrl_out),save :: o_taue670_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &175 ! type(ctrl_out),save :: o_taue670_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 179 176 ! 'taue670_aqua','Tau ext 670 aqua','', & 180 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &177 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 181 178 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 182 179 ! 183 ! type(ctrl_out),save :: o_taue670_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &180 ! type(ctrl_out),save :: o_taue670_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 184 181 ! 'taue670_terra','Tau ext 670 terra','', & 185 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &182 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 186 183 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 187 184 ! 188 ! type(ctrl_out),save :: o_taue865_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &185 ! type(ctrl_out),save :: o_taue865_aqua = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 189 186 ! 'taue865_aqua','Tau ext 865 aqua','', & 190 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &187 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 191 188 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 192 189 ! 193 ! type(ctrl_out),save :: o_taue865_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &190 ! type(ctrl_out),save :: o_taue865_terra = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 194 191 ! 'taue865_terra','Tau ext 865 terra','', & 195 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', &192 ! (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 196 193 ! 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 197 198 194 199 type(ctrl_out),save :: o_trm01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 200 'trm01','Burden PREC','', (/ ('', i=1, 9) /)) 201 type(ctrl_out),save :: o_trm02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 202 'trm02','Burden FINE','', (/ ('', i=1, 9) /)) 203 type(ctrl_out),save :: o_trm03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 204 'trm03','Burden COSS','', (/ ('', i=1, 9) /)) 205 type(ctrl_out),save :: o_trm04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 206 'trm04','Burden CODU','', (/ ('', i=1, 9) /)) 207 type(ctrl_out),save :: o_trm05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 208 'trm05','Burden SCDU','', (/ ('', i=1, 9) /)) 209 210 type(ctrl_out),save :: o_sconc01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 211 'sconc01','Surf. Conc. PREC','', (/ ('', i=1, 9) /)) 212 type(ctrl_out),save :: o_sconc02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 213 'sconc02','Surf. Conc. FINE','', (/ ('', i=1, 9) /)) 214 type(ctrl_out),save :: o_sconc03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 215 'sconc03','Surf. Conc. COSS','', (/ ('', i=1, 9) /)) 216 type(ctrl_out),save :: o_sconc04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 217 'sconc04','Surf. Conc. CODU','', (/ ('', i=1, 9) /)) 218 type(ctrl_out),save :: o_sconc05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 219 'sconc05','Surf. Conc. SCDU','', (/ ('', i=1, 9) /)) 220 221 222 195 type(ctrl_out),save :: o_trm01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 196 'trm01','Burden PREC','', (/ ('', i=1, 10) /)) 197 type(ctrl_out),save :: o_trm02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 198 'trm02','Burden FINE','', (/ ('', i=1, 10) /)) 199 type(ctrl_out),save :: o_trm03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 200 'trm03','Burden COSS','', (/ ('', i=1, 10) /)) 201 type(ctrl_out),save :: o_trm04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 202 'trm04','Burden CODU','', (/ ('', i=1, 10) /)) 203 type(ctrl_out),save :: o_trm05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 204 'trm05','Burden SCDU','', (/ ('', i=1, 10) /)) 205 206 type(ctrl_out),save :: o_sconc01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 207 'sconc01','Surf. Conc. PREC','', (/ ('', i=1, 10) /)) 208 type(ctrl_out),save :: o_sconc02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 209 'sconc02','Surf. Conc. FINE','', (/ ('', i=1, 10) /)) 210 type(ctrl_out),save :: o_sconc03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 211 'sconc03','Surf. Conc. COSS','', (/ ('', i=1, 10) /)) 212 type(ctrl_out),save :: o_sconc04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 213 'sconc04','Surf. Conc. CODU','', (/ ('', i=1, 10) /)) 214 type(ctrl_out),save :: o_sconc05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 215 'sconc05','Surf. Conc. SCDU','', (/ ('', i=1, 10) /)) 223 216 224 217 !lessivage 225 218 226 type(ctrl_out),save :: o_flux01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 227 'flux01','emission PREC','', (/ ('', i=1, 9) /)) 228 type(ctrl_out),save :: o_flux02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 229 'flux02','emission FINE','', (/ ('', i=1, 9) /)) 230 type(ctrl_out),save :: o_flux03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 231 'flux03','emission COSS','', (/ ('', i=1, 9) /)) 232 type(ctrl_out),save :: o_flux04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 233 'flux04','emission CODU','', (/ ('', i=1, 9) /)) 234 type(ctrl_out),save :: o_flux05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 235 'flux05','emission SCDU','', (/ ('', i=1, 9) /)) 236 237 238 type(ctrl_out),save :: o_ds01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 239 'ds01','Depot sec PREC','', (/ ('', i=1, 9) /)) 240 type(ctrl_out),save :: o_ds02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 241 'ds02','Depot sec FINE','', (/ ('', i=1, 9) /)) 242 type(ctrl_out),save :: o_ds03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 243 'ds03','Depot sec COSS','', (/ ('', i=1, 9) /)) 244 type(ctrl_out),save :: o_ds04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 245 'ds04','Depot sec CODU','', (/ ('', i=1, 9) /)) 246 type(ctrl_out),save :: o_ds05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 247 'ds05','Depot sec SCDU','', (/ ('', i=1, 9) /)) 248 249 type(ctrl_out),save :: o_dh01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 250 'dh01','Depot hum PREC','', (/ ('', i=1, 9) /)) 251 type(ctrl_out),save :: o_dh02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 252 'dh02','Depot hum FINE','', (/ ('', i=1, 9) /)) 253 type(ctrl_out),save :: o_dh03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 254 'dh03','Depot hum COSS','', (/ ('', i=1, 9) /)) 255 type(ctrl_out),save :: o_dh04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 256 'dh04','Depot hum CODU','', (/ ('', i=1, 9) /)) 257 type(ctrl_out),save :: o_dh05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 258 'dh05','Depot hum SCDU','', (/ ('', i=1, 9) /)) 259 260 type(ctrl_out),save :: o_dtrconv01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 261 'dtrconv01','Tiedke convective PREC','', (/ ('', i=1, 9) /)) 262 type(ctrl_out),save :: o_dtrconv02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 263 'dtrconv02','Tiedke convective FINE','', (/ ('', i=1, 9) /)) 264 type(ctrl_out),save :: o_dtrconv03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 265 'dtrconv03','Tiedke convective COSS','', (/ ('', i=1, 9) /)) 266 type(ctrl_out),save :: o_dtrconv04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 267 'dtrconv04','Tiedke convective CODU','', (/ ('', i=1, 9) /)) 268 type(ctrl_out),save :: o_dtrconv05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 269 'dtrconv05','Tiedke convective SCDU','', (/ ('', i=1, 9) /)) 270 271 type(ctrl_out),save :: o_dtherm01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 272 'dtherm01','Thermals dtracer PREC','', (/ ('', i=1, 9) /)) 273 type(ctrl_out),save :: o_dtherm02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 274 'dtherm02','Thermals dtracer FINE','', (/ ('', i=1, 9) /)) 275 type(ctrl_out),save :: o_dtherm03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 276 'dtherm03','Thermals dtracer COSS','', (/ ('', i=1, 9) /)) 277 type(ctrl_out),save :: o_dtherm04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 278 'dtherm04','Thermals dtracer CODU','', (/ ('', i=1, 9) /)) 279 type(ctrl_out),save :: o_dtherm05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 280 'dtherm05','Thermals dtracer SCDU','', (/ ('', i=1, 9) /)) 281 282 type(ctrl_out),save :: o_dhkecv01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 283 'dhkecv01','KE dep hum convective PREC','', (/ ('', i=1, 9) /)) 284 type(ctrl_out),save :: o_dhkecv02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 285 'dhkecv02','KE dep hum convective FINE','', (/ ('', i=1, 9) /)) 286 type(ctrl_out),save :: o_dhkecv03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 287 'dhkecv03','KE dep hum convective COSS','', (/ ('', i=1, 9) /)) 288 type(ctrl_out),save :: o_dhkecv04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 289 'dhkecv04','KE dep hum convective CODU','', (/ ('', i=1, 9) /)) 290 type(ctrl_out),save :: o_dhkecv05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 291 'dhkecv05','KE dep hum convective SCDU','', (/ ('', i=1, 9) /)) 219 type(ctrl_out),save :: o_flux01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 220 'flux01','emission PREC','', (/ ('', i=1, 10) /)) 221 type(ctrl_out),save :: o_flux02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 222 'flux02','emission FINE','', (/ ('', i=1, 10) /)) 223 type(ctrl_out),save :: o_flux03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 224 'flux03','emission COSS','', (/ ('', i=1, 10) /)) 225 type(ctrl_out),save :: o_flux04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 226 'flux04','emission CODU','', (/ ('', i=1, 10) /)) 227 type(ctrl_out),save :: o_flux05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 228 'flux05','emission SCDU','', (/ ('', i=1, 10) /)) 229 230 type(ctrl_out),save :: o_ds01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 231 'ds01','Depot sec PREC','', (/ ('', i=1, 10) /)) 232 type(ctrl_out),save :: o_ds02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 233 'ds02','Depot sec FINE','', (/ ('', i=1, 10) /)) 234 type(ctrl_out),save :: o_ds03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 235 'ds03','Depot sec COSS','', (/ ('', i=1, 10) /)) 236 type(ctrl_out),save :: o_ds04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 237 'ds04','Depot sec CODU','', (/ ('', i=1, 10) /)) 238 type(ctrl_out),save :: o_ds05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 239 'ds05','Depot sec SCDU','', (/ ('', i=1, 10) /)) 240 241 type(ctrl_out),save :: o_dh01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 242 'dh01','Depot hum PREC','', (/ ('', i=1, 10) /)) 243 type(ctrl_out),save :: o_dh02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 244 'dh02','Depot hum FINE','', (/ ('', i=1, 10) /)) 245 type(ctrl_out),save :: o_dh03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 246 'dh03','Depot hum COSS','', (/ ('', i=1, 10) /)) 247 type(ctrl_out),save :: o_dh04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 248 'dh04','Depot hum CODU','', (/ ('', i=1, 10) /)) 249 type(ctrl_out),save :: o_dh05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 250 'dh05','Depot hum SCDU','', (/ ('', i=1, 10) /)) 251 252 type(ctrl_out),save :: o_dtrconv01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 253 'dtrconv01','Tiedke convective PREC','', (/ ('', i=1, 10) /)) 254 type(ctrl_out),save :: o_dtrconv02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 255 'dtrconv02','Tiedke convective FINE','', (/ ('', i=1, 10) /)) 256 type(ctrl_out),save :: o_dtrconv03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 257 'dtrconv03','Tiedke convective COSS','', (/ ('', i=1, 10) /)) 258 type(ctrl_out),save :: o_dtrconv04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 259 'dtrconv04','Tiedke convective CODU','', (/ ('', i=1, 10) /)) 260 type(ctrl_out),save :: o_dtrconv05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 261 'dtrconv05','Tiedke convective SCDU','', (/ ('', i=1, 10) /)) 262 263 type(ctrl_out),save :: o_dtherm01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 264 'dtherm01','Thermals dtracer PREC','', (/ ('', i=1, 10) /)) 265 type(ctrl_out),save :: o_dtherm02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 266 'dtherm02','Thermals dtracer FINE','', (/ ('', i=1, 10) /)) 267 type(ctrl_out),save :: o_dtherm03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 268 'dtherm03','Thermals dtracer COSS','', (/ ('', i=1, 10) /)) 269 type(ctrl_out),save :: o_dtherm04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 270 'dtherm04','Thermals dtracer CODU','', (/ ('', i=1, 10) /)) 271 type(ctrl_out),save :: o_dtherm05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 272 'dtherm05','Thermals dtracer SCDU','', (/ ('', i=1, 10) /)) 273 274 type(ctrl_out),save :: o_dhkecv01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 275 'dhkecv01','KE dep hum convective PREC','', (/ ('', i=1, 10) /)) 276 type(ctrl_out),save :: o_dhkecv02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 277 'dhkecv02','KE dep hum convective FINE','', (/ ('', i=1, 10) /)) 278 type(ctrl_out),save :: o_dhkecv03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 279 'dhkecv03','KE dep hum convective COSS','', (/ ('', i=1, 10) /)) 280 type(ctrl_out),save :: o_dhkecv04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 281 'dhkecv04','KE dep hum convective CODU','', (/ ('', i=1, 10) /)) 282 type(ctrl_out),save :: o_dhkecv05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 283 'dhkecv05','KE dep hum convective SCDU','', (/ ('', i=1, 10) /)) 292 284 293 285 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 294 type(ctrl_out),save :: o_d_tr_ds01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &295 'd_tr_ds01','Tendance dep sec PREC','', (/ ('', i=1, 9) /))296 type(ctrl_out),save :: o_d_tr_ds02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &297 'd_tr_ds02','Tendance dep sec FINE','', (/ ('', i=1, 9) /))298 type(ctrl_out),save :: o_d_tr_ds03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &299 'd_tr_ds03','Tendance dep sec COSS','', (/ ('', i=1, 9) /))300 type(ctrl_out),save :: o_d_tr_ds04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &301 'd_tr_ds04','Tendance depot sec CODU','', (/ ('', i=1, 9) /))302 type(ctrl_out),save :: o_d_tr_ds05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &303 'd_tr_ds05','Tendance dep sec SCDU','', (/ ('', i=1, 9) /))286 type(ctrl_out),save :: o_d_tr_ds01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 287 'd_tr_ds01','Tendance dep sec PREC','', (/ ('', i=1, 10) /)) 288 type(ctrl_out),save :: o_d_tr_ds02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 289 'd_tr_ds02','Tendance dep sec FINE','', (/ ('', i=1, 10) /)) 290 type(ctrl_out),save :: o_d_tr_ds03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 291 'd_tr_ds03','Tendance dep sec COSS','', (/ ('', i=1, 10) /)) 292 type(ctrl_out),save :: o_d_tr_ds04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 293 'd_tr_ds04','Tendance depot sec CODU','', (/ ('', i=1, 10) /)) 294 type(ctrl_out),save :: o_d_tr_ds05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 295 'd_tr_ds05','Tendance dep sec SCDU','', (/ ('', i=1, 10) /)) 304 296 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 305 297 306 type(ctrl_out),save :: o_dhkelsc01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 307 'dhkelsc01','KE dep hum large scale PREC','', (/ ('', i=1, 9) /)) 308 type(ctrl_out),save :: o_dhkelsc02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 309 'dhkelsc02','KE dep hum large scale FINE','', (/ ('', i=1, 9) /)) 310 type(ctrl_out),save :: o_dhkelsc03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 311 'dhkelsc03','KE dep hum large scale COSS','', (/ ('', i=1, 9) /)) 312 type(ctrl_out),save :: o_dhkelsc04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 313 'dhkelsc04','KE dep hum large scale CODU','', (/ ('', i=1, 9) /)) 314 type(ctrl_out),save :: o_dhkelsc05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 315 'dhkelsc05','KE dep hum large scale SCDU','', (/ ('', i=1, 9) /)) 316 317 318 type(ctrl_out),save :: o_d_tr_cv01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 319 'd_tr_cv01','cvltr d_tr_cv PREC','', (/ ('', i=1, 9) /)) 320 type(ctrl_out),save :: o_d_tr_cv02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 321 'd_tr_cv02','cvltr d_tr_cv FINE','', (/ ('', i=1, 9) /)) 322 type(ctrl_out),save :: o_d_tr_cv03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 323 'd_tr_cv03','cvltr d_tr_cv COSS','', (/ ('', i=1, 9) /)) 324 type(ctrl_out),save :: o_d_tr_cv04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 325 'd_tr_cv04','cvltr d_tr_cv CODU','', (/ ('', i=1, 9) /)) 326 type(ctrl_out),save :: o_d_tr_cv05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 327 'd_tr_cv05','cvltr d_tr_cv SCDU','', (/ ('', i=1, 9) /)) 328 329 330 type(ctrl_out),save :: o_d_tr_trsp01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 331 'd_tr_trsp01','cvltr d_tr_trsp PREC','', (/ ('', i=1, 9) /)) 332 type(ctrl_out),save :: o_d_tr_trsp02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 333 'd_tr_trsp02','cvltr d_tr_trsp FINE','', (/ ('', i=1, 9) /)) 334 type(ctrl_out),save :: o_d_tr_trsp03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 335 'd_tr_trsp03','cvltr d_tr_trsp COSS','', (/ ('', i=1, 9) /)) 336 type(ctrl_out),save :: o_d_tr_trsp04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 337 'd_tr_trsp04','cvltr d_tr_trsp CODU','', (/ ('', i=1, 9) /)) 338 type(ctrl_out),save :: o_d_tr_trsp05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 339 'd_tr_trsp05','cvltr d_tr_trsp SCDU','', (/ ('', i=1, 9) /)) 340 341 342 type(ctrl_out),save :: o_d_tr_sscav01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 343 'd_tr_sscav01','cvltr d_tr_sscav PREC','', (/ ('', i=1, 9) /)) 344 type(ctrl_out),save :: o_d_tr_sscav02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 345 'd_tr_sscav02','cvltr d_tr_sscav FINE','', (/ ('', i=1, 9) /)) 346 type(ctrl_out),save :: o_d_tr_sscav03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 347 'd_tr_sscav03','cvltr d_tr_sscav COSS','', (/ ('', i=1, 9) /)) 348 type(ctrl_out),save :: o_d_tr_sscav04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 349 'd_tr_sscav04','cvltr d_tr_sscav CODU','', (/ ('', i=1, 9) /)) 350 type(ctrl_out),save :: o_d_tr_sscav05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 351 'd_tr_sscav05','cvltr d_tr_sscav SCDU','', (/ ('', i=1, 9) /)) 352 353 type(ctrl_out),save :: o_d_tr_sat01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 354 'd_tr_sat01','cvltr d_tr_sat PREC','', (/ ('', i=1, 9) /)) 355 type(ctrl_out),save :: o_d_tr_sat02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 356 'd_tr_sat02','cvltr d_tr_sat FINE','', (/ ('', i=1, 9) /)) 357 type(ctrl_out),save :: o_d_tr_sat03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 358 'd_tr_sat03','cvltr d_tr_sat COSS','', (/ ('', i=1, 9) /)) 359 type(ctrl_out),save :: o_d_tr_sat04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 360 'd_tr_sat04','cvltr d_tr_sat CODU','', (/ ('', i=1, 9) /)) 361 type(ctrl_out),save :: o_d_tr_sat05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 362 'd_tr_sat05','cvltr d_tr_sat SCDU','', (/ ('', i=1, 9) /)) 363 364 type(ctrl_out),save :: o_d_tr_uscav01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 365 'd_tr_uscav01','cvltr d_tr_uscav PREC','', (/ ('', i=1, 9) /)) 366 type(ctrl_out),save :: o_d_tr_uscav02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 367 'd_tr_uscav02','cvltr d_tr_uscav FINE','', (/ ('', i=1, 9) /)) 368 type(ctrl_out),save :: o_d_tr_uscav03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 369 'd_tr_uscav03','cvltr d_tr_uscav COSS','', (/ ('', i=1, 9) /)) 370 type(ctrl_out),save :: o_d_tr_uscav04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 371 'd_tr_uscav04','cvltr d_tr_uscav CODU','', (/ ('', i=1, 9) /)) 372 type(ctrl_out),save :: o_d_tr_uscav05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 373 'd_tr_uscav05','cvltr d_tr_uscav SCDU','', (/ ('', i=1, 9) /)) 298 type(ctrl_out),save :: o_dhkelsc01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 299 'dhkelsc01','KE dep hum large scale PREC','', (/ ('', i=1, 10) /)) 300 type(ctrl_out),save :: o_dhkelsc02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 301 'dhkelsc02','KE dep hum large scale FINE','', (/ ('', i=1, 10) /)) 302 type(ctrl_out),save :: o_dhkelsc03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 303 'dhkelsc03','KE dep hum large scale COSS','', (/ ('', i=1, 10) /)) 304 type(ctrl_out),save :: o_dhkelsc04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 305 'dhkelsc04','KE dep hum large scale CODU','', (/ ('', i=1, 10) /)) 306 type(ctrl_out),save :: o_dhkelsc05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 307 'dhkelsc05','KE dep hum large scale SCDU','', (/ ('', i=1, 10) /)) 308 309 type(ctrl_out),save :: o_d_tr_cv01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 310 'd_tr_cv01','cvltr d_tr_cv PREC','', (/ ('', i=1, 10) /)) 311 type(ctrl_out),save :: o_d_tr_cv02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 312 'd_tr_cv02','cvltr d_tr_cv FINE','', (/ ('', i=1, 10) /)) 313 type(ctrl_out),save :: o_d_tr_cv03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 314 'd_tr_cv03','cvltr d_tr_cv COSS','', (/ ('', i=1, 10) /)) 315 type(ctrl_out),save :: o_d_tr_cv04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 316 'd_tr_cv04','cvltr d_tr_cv CODU','', (/ ('', i=1, 10) /)) 317 type(ctrl_out),save :: o_d_tr_cv05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 318 'd_tr_cv05','cvltr d_tr_cv SCDU','', (/ ('', i=1, 10) /)) 319 320 type(ctrl_out),save :: o_d_tr_trsp01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 321 'd_tr_trsp01','cvltr d_tr_trsp PREC','', (/ ('', i=1, 10) /)) 322 type(ctrl_out),save :: o_d_tr_trsp02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 323 'd_tr_trsp02','cvltr d_tr_trsp FINE','', (/ ('', i=1, 10) /)) 324 type(ctrl_out),save :: o_d_tr_trsp03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 325 'd_tr_trsp03','cvltr d_tr_trsp COSS','', (/ ('', i=1, 10) /)) 326 type(ctrl_out),save :: o_d_tr_trsp04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 327 'd_tr_trsp04','cvltr d_tr_trsp CODU','', (/ ('', i=1, 10) /)) 328 type(ctrl_out),save :: o_d_tr_trsp05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 329 'd_tr_trsp05','cvltr d_tr_trsp SCDU','', (/ ('', i=1, 10) /)) 330 331 type(ctrl_out),save :: o_d_tr_sscav01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 332 'd_tr_sscav01','cvltr d_tr_sscav PREC','', (/ ('', i=1, 10) /)) 333 type(ctrl_out),save :: o_d_tr_sscav02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 334 'd_tr_sscav02','cvltr d_tr_sscav FINE','', (/ ('', i=1, 10) /)) 335 type(ctrl_out),save :: o_d_tr_sscav03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 336 'd_tr_sscav03','cvltr d_tr_sscav COSS','', (/ ('', i=1, 10) /)) 337 type(ctrl_out),save :: o_d_tr_sscav04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 338 'd_tr_sscav04','cvltr d_tr_sscav CODU','', (/ ('', i=1, 10) /)) 339 type(ctrl_out),save :: o_d_tr_sscav05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 340 'd_tr_sscav05','cvltr d_tr_sscav SCDU','', (/ ('', i=1, 10) /)) 341 342 type(ctrl_out),save :: o_d_tr_sat01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 343 'd_tr_sat01','cvltr d_tr_sat PREC','', (/ ('', i=1, 10) /)) 344 type(ctrl_out),save :: o_d_tr_sat02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 345 'd_tr_sat02','cvltr d_tr_sat FINE','', (/ ('', i=1, 10) /)) 346 type(ctrl_out),save :: o_d_tr_sat03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 347 'd_tr_sat03','cvltr d_tr_sat COSS','', (/ ('', i=1, 10) /)) 348 type(ctrl_out),save :: o_d_tr_sat04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 349 'd_tr_sat04','cvltr d_tr_sat CODU','', (/ ('', i=1, 10) /)) 350 type(ctrl_out),save :: o_d_tr_sat05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 351 'd_tr_sat05','cvltr d_tr_sat SCDU','', (/ ('', i=1, 10) /)) 352 353 type(ctrl_out),save :: o_d_tr_uscav01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 354 'd_tr_uscav01','cvltr d_tr_uscav PREC','', (/ ('', i=1, 10) /)) 355 type(ctrl_out),save :: o_d_tr_uscav02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 356 'd_tr_uscav02','cvltr d_tr_uscav FINE','', (/ ('', i=1, 10) /)) 357 type(ctrl_out),save :: o_d_tr_uscav03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 358 'd_tr_uscav03','cvltr d_tr_uscav COSS','', (/ ('', i=1, 10) /)) 359 type(ctrl_out),save :: o_d_tr_uscav04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 360 'd_tr_uscav04','cvltr d_tr_uscav CODU','', (/ ('', i=1, 10) /)) 361 type(ctrl_out),save :: o_d_tr_uscav05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 362 'd_tr_uscav05','cvltr d_tr_uscav SCDU','', (/ ('', i=1, 10) /)) 374 363 375 364 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 365 type(ctrl_out),save :: o_d_tr_insc01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 366 'd_tr_insc01','large-scale d_tr_insc PREC','', (/ ('', i=1, 10) /)) 367 type(ctrl_out),save :: o_d_tr_insc02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 368 'd_tr_insc02','large-scale d_tr_insc FINE','', (/ ('', i=1, 10) /)) 369 type(ctrl_out),save :: o_d_tr_insc03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 370 'd_tr_insc03','large-scale d_tr_insc COSS','', (/ ('', i=1, 10) /)) 371 type(ctrl_out),save :: o_d_tr_insc04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 372 'd_tr_insc04','large-scale d_tr_insc CODU','', (/ ('', i=1, 10) /)) 373 type(ctrl_out),save :: o_d_tr_insc05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 374 'd_tr_insc05','large-scale d_tr_insc SCDU','', (/ ('', i=1, 10) /)) 376 375 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 377 type(ctrl_out),save :: o_d_tr_ insc01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &378 'd_tr_ insc01','large-scale d_tr_insc PREC','', (/ ('', i=1, 9) /))379 type(ctrl_out),save :: o_d_tr_ insc02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &380 'd_tr_ insc02','large-scale d_tr_insc FINE','', (/ ('', i=1, 9) /))381 type(ctrl_out),save :: o_d_tr_ insc03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &382 'd_tr_ insc03','large-scale d_tr_insc COSS','', (/ ('', i=1, 9) /))383 type(ctrl_out),save :: o_d_tr_ insc04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &384 'd_tr_ insc04','large-scale d_tr_insc CODU','', (/ ('', i=1, 9) /))385 type(ctrl_out),save :: o_d_tr_ insc05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &386 'd_tr_ insc05','large-scale d_tr_insc SCDU','', (/ ('', i=1, 9) /))376 type(ctrl_out),save :: o_d_tr_bcscav01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 377 'd_tr_bcscav01','large-scale d_tr_bcscav PREC','', (/ ('', i=1, 10) /)) 378 type(ctrl_out),save :: o_d_tr_bcscav02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 379 'd_tr_bcscav02','large-scale d_tr_bcscav FINE','', (/ ('', i=1, 10) /)) 380 type(ctrl_out),save :: o_d_tr_bcscav03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 381 'd_tr_bcscav03','large-scale d_tr_bcscav COSS','', (/ ('', i=1, 10) /)) 382 type(ctrl_out),save :: o_d_tr_bcscav04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 383 'd_tr_bcscav04','large-scale d_tr_bcscav CODU','', (/ ('', i=1, 10) /)) 384 type(ctrl_out),save :: o_d_tr_bcscav05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 385 'd_tr_bcscav05','large-scale d_tr_bcscav SCDU','', (/ ('', i=1, 10) /)) 387 386 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 388 type(ctrl_out),save :: o_d_tr_ bcscav01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &389 'd_tr_ bcscav01','large-scale d_tr_bcscav PREC','', (/ ('', i=1, 9) /))390 type(ctrl_out),save :: o_d_tr_ bcscav02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &391 'd_tr_ bcscav02','large-scale d_tr_bcscav FINE','', (/ ('', i=1, 9) /))392 type(ctrl_out),save :: o_d_tr_ bcscav03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &393 'd_tr_ bcscav03','large-scale d_tr_bcscav COSS','', (/ ('', i=1, 9) /))394 type(ctrl_out),save :: o_d_tr_ bcscav04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &395 'd_tr_ bcscav04','large-scale d_tr_bcscav CODU','', (/ ('', i=1, 9) /))396 type(ctrl_out),save :: o_d_tr_ bcscav05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &397 'd_tr_ bcscav05','large-scale d_tr_bcscav SCDU','', (/ ('', i=1, 9) /))387 type(ctrl_out),save :: o_d_tr_evapls01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 388 'd_tr_evapls01','large-scale d_tr_evapls PREC','', (/ ('', i=1, 10) /)) 389 type(ctrl_out),save :: o_d_tr_evapls02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 390 'd_tr_evapls02','large-scale d_tr_evapls FINE','', (/ ('', i=1, 10) /)) 391 type(ctrl_out),save :: o_d_tr_evapls03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 392 'd_tr_evapls03','large-scale d_tr_evapls COSS','', (/ ('', i=1, 10) /)) 393 type(ctrl_out),save :: o_d_tr_evapls04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 394 'd_tr_evapls04','large-scale d_tr_evapls CODU','', (/ ('', i=1, 10) /)) 395 type(ctrl_out),save :: o_d_tr_evapls05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 396 'd_tr_evapls05','large-scale d_tr_evapls SCDU','', (/ ('', i=1, 10) /)) 398 397 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 399 type(ctrl_out),save :: o_d_tr_ evapls01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &400 'd_tr_ evapls01','large-scale d_tr_evapls PREC','', (/ ('', i=1, 9) /))401 type(ctrl_out),save :: o_d_tr_ evapls02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &402 'd_tr_ evapls02','large-scale d_tr_evapls FINE','', (/ ('', i=1, 9) /))403 type(ctrl_out),save :: o_d_tr_ evapls03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &404 'd_tr_ evapls03','large-scale d_tr_evapls COSS','', (/ ('', i=1, 9) /))405 type(ctrl_out),save :: o_d_tr_ evapls04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &406 'd_tr_ evapls04','large-scale d_tr_evapls CODU','', (/ ('', i=1, 9) /))407 type(ctrl_out),save :: o_d_tr_ evapls05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &408 'd_tr_ evapls05','large-scale d_tr_evapls SCDU','', (/ ('', i=1, 9) /))398 type(ctrl_out),save :: o_d_tr_ls01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 399 'd_tr_ls01','large-scale d_tr_ls PREC','', (/ ('', i=1, 10) /)) 400 type(ctrl_out),save :: o_d_tr_ls02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 401 'd_tr_ls02','large-scale d_tr_ls FINE','', (/ ('', i=1, 10) /)) 402 type(ctrl_out),save :: o_d_tr_ls03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 403 'd_tr_ls03','large-scale d_tr_ls COSS','', (/ ('', i=1, 10) /)) 404 type(ctrl_out),save :: o_d_tr_ls04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 405 'd_tr_ls04','large-scale d_tr_ls CODU','', (/ ('', i=1, 10) /)) 406 type(ctrl_out),save :: o_d_tr_ls05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 407 'd_tr_ls05','large-scale d_tr_ls SCDU','', (/ ('', i=1, 10) /)) 409 408 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 410 type(ctrl_out),save :: o_d_tr_ ls01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &411 'd_tr_ ls01','large-scale d_tr_ls PREC','', (/ ('', i=1, 9) /))412 type(ctrl_out),save :: o_d_tr_ ls02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &413 'd_tr_ ls02','large-scale d_tr_ls FINE','', (/ ('', i=1, 9) /))414 type(ctrl_out),save :: o_d_tr_ ls03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &415 'd_tr_ ls03','large-scale d_tr_ls COSS','', (/ ('', i=1, 9) /))416 type(ctrl_out),save :: o_d_tr_ ls04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &417 'd_tr_ ls04','large-scale d_tr_ls CODU','', (/ ('', i=1, 9) /))418 type(ctrl_out),save :: o_d_tr_ ls05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &419 'd_tr_ ls05','large-scale d_tr_ls SCDU','', (/ ('', i=1, 9) /))409 type(ctrl_out),save :: o_d_tr_dyn01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 410 'd_tr_dyn01','cvltr d_tr_dyn PREC','', (/ ('', i=1, 10) /)) 411 type(ctrl_out),save :: o_d_tr_dyn02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 412 'd_tr_dyn02','cvltr d_tr_dyn FINE','', (/ ('', i=1, 10) /)) 413 type(ctrl_out),save :: o_d_tr_dyn03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 414 'd_tr_dyn03','cvltr d_tr_dyn COSS','', (/ ('', i=1, 10) /)) 415 type(ctrl_out),save :: o_d_tr_dyn04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 416 'd_tr_dyn04','cvltr d_tr_dyn CODU','', (/ ('', i=1, 10) /)) 417 type(ctrl_out),save :: o_d_tr_dyn05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 418 'd_tr_dyn05','cvltr d_tr_dyn SCDU','', (/ ('', i=1, 10) /)) 420 419 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 421 422 420 type(ctrl_out),save :: o_d_tr_cl01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 421 'd_tr_cl01','cvltr d_tr_cl PREC','', (/ ('', i=1, 10) /)) 422 type(ctrl_out),save :: o_d_tr_cl02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 423 'd_tr_cl02','cvltr d_tr_cl FINE','', (/ ('', i=1, 10) /)) 424 type(ctrl_out),save :: o_d_tr_cl03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 425 'd_tr_cl03','cvltr d_tr_cl COSS','', (/ ('', i=1, 10) /)) 426 type(ctrl_out),save :: o_d_tr_cl04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 427 'd_tr_cl04','cvltr d_tr_cl CODU','', (/ ('', i=1, 10) /)) 428 type(ctrl_out),save :: o_d_tr_cl05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 429 'd_tr_cl05','cvltr d_tr_cl SCDU','', (/ ('', i=1, 10) /)) 423 430 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 424 type(ctrl_out),save :: o_d_tr_dyn01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 425 'd_tr_dyn01','cvltr d_tr_dyn PREC','', (/ ('', i=1, 9) /)) 426 type(ctrl_out),save :: o_d_tr_dyn02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 427 'd_tr_dyn02','cvltr d_tr_dyn FINE','', (/ ('', i=1, 9) /)) 428 type(ctrl_out),save :: o_d_tr_dyn03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 429 'd_tr_dyn03','cvltr d_tr_dyn COSS','', (/ ('', i=1, 9) /)) 430 type(ctrl_out),save :: o_d_tr_dyn04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 431 'd_tr_dyn04','cvltr d_tr_dyn CODU','', (/ ('', i=1, 9) /)) 432 type(ctrl_out),save :: o_d_tr_dyn05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 433 'd_tr_dyn05','cvltr d_tr_dyn SCDU','', (/ ('', i=1, 9) /)) 434 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 435 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 436 type(ctrl_out),save :: o_d_tr_cl01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 437 'd_tr_cl01','cvltr d_tr_cl PREC','', (/ ('', i=1, 9) /)) 438 type(ctrl_out),save :: o_d_tr_cl02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 439 'd_tr_cl02','cvltr d_tr_cl FINE','', (/ ('', i=1, 9) /)) 440 type(ctrl_out),save :: o_d_tr_cl03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 441 'd_tr_cl03','cvltr d_tr_cl COSS','', (/ ('', i=1, 9) /)) 442 type(ctrl_out),save :: o_d_tr_cl04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 443 'd_tr_cl04','cvltr d_tr_cl CODU','', (/ ('', i=1, 9) /)) 444 type(ctrl_out),save :: o_d_tr_cl05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 445 'd_tr_cl05','cvltr d_tr_cl SCDU','', (/ ('', i=1, 9) /)) 446 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 447 type(ctrl_out),save :: o_d_tr_th01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 448 'd_tr_th01','cvltr d_tr_th PREC','', (/ ('', i=1, 9) /)) 449 type(ctrl_out),save :: o_d_tr_th02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 450 'd_tr_th02','cvltr d_tr_th FINE','', (/ ('', i=1, 9) /)) 451 type(ctrl_out),save :: o_d_tr_th03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 452 'd_tr_th03','cvltr d_tr_th COSS','', (/ ('', i=1, 9) /)) 453 type(ctrl_out),save :: o_d_tr_th04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 454 'd_tr_th04','cvltr d_tr_th CODU','', (/ ('', i=1, 9) /)) 455 type(ctrl_out),save :: o_d_tr_th05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 456 'd_tr_th05','cvltr d_tr_th SCDU','', (/ ('', i=1, 9) /)) 457 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 458 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 431 type(ctrl_out),save :: o_d_tr_th01 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 432 'd_tr_th01','cvltr d_tr_th PREC','', (/ ('', i=1, 10) /)) 433 type(ctrl_out),save :: o_d_tr_th02 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 434 'd_tr_th02','cvltr d_tr_th FINE','', (/ ('', i=1, 10) /)) 435 type(ctrl_out),save :: o_d_tr_th03 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 436 'd_tr_th03','cvltr d_tr_th COSS','', (/ ('', i=1, 10) /)) 437 type(ctrl_out),save :: o_d_tr_th04 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 438 'd_tr_th04','cvltr d_tr_th CODU','', (/ ('', i=1, 10) /)) 439 type(ctrl_out),save :: o_d_tr_th05 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 440 'd_tr_th05','cvltr d_tr_th SCDU','', (/ ('', i=1, 10) /)) 459 441 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 460 type(ctrl_out),save :: o_sed_ss3D = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &461 'sed_ss3D','Tendance Sedmet. COSS','', (/ ('', i=1, 9) /))462 type(ctrl_out),save :: o_sed_dust3D = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &463 'sed_dust3D','Tendance Sedmet. CODU','', (/ ('', i=1, 9) /))464 type(ctrl_out),save :: o_sed_dustsco3D = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), &465 'sed_dustsco3D','Tendance Sedmet. SCDU','', (/ ('', i=1, 9) /))442 type(ctrl_out),save :: o_sed_ss3D = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 443 'sed_ss3D','Tendance Sedmet. COSS','', (/ ('', i=1, 10) /)) 444 type(ctrl_out),save :: o_sed_dust3D = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 445 'sed_dust3D','Tendance Sedmet. CODU','', (/ ('', i=1, 10) /)) 446 type(ctrl_out),save :: o_sed_dustsco3D = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 447 'sed_dustsco3D','Tendance Sedmet. SCDU','', (/ ('', i=1, 10) /)) 466 448 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 467 468 type(ctrl_out),save :: o_sed_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 469 'sed_ss','Sedmet. COSS','', (/ ('', i=1, 9) /)) 470 type(ctrl_out),save :: o_sed_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 471 'sed_dust','Sedmet. CODU','', (/ ('', i=1, 9) /)) 472 type(ctrl_out),save :: o_sed_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 473 'sed_dustsco','Sedmet. SCDU','', (/ ('', i=1, 9) /)) 474 type(ctrl_out),save :: o_g2p_gas = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 475 'g2p_gas','Gas2particle gas sink','', (/ ('', i=1, 9) /)) 476 type(ctrl_out),save :: o_g2p_aer = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 477 'g2p_aer','Gas2particle tr2 src','', (/ ('', i=1, 9) /)) 478 449 type(ctrl_out),save :: o_sed_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 450 'sed_ss','Sedmet. COSS','', (/ ('', i=1, 10) /)) 451 type(ctrl_out),save :: o_sed_dust = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 452 'sed_dust','Sedmet. CODU','', (/ ('', i=1, 10) /)) 453 type(ctrl_out),save :: o_sed_dustsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 454 'sed_dustsco','Sedmet. SCDU','', (/ ('', i=1, 10) /)) 455 type(ctrl_out),save :: o_g2p_gas = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 456 'g2p_gas','Gas2particle gas sink','', (/ ('', i=1, 10) /)) 457 type(ctrl_out),save :: o_g2p_aer = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 458 'g2p_aer','Gas2particle tr2 src','', (/ ('', i=1, 10) /)) 479 459 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 480 460 ! histrac 481 461 482 type(ctrl_out),save :: o_fluxbb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 483 'fluxbb','Flux BB','mg/m2/s', (/ ('', i=1, 9) /)) 484 485 type(ctrl_out),save :: o_fluxff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 486 'fluxff','Flux FF','mg/m2/s', (/ ('', i=1, 9) /)) 487 488 type(ctrl_out),save :: o_fluxbcbb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 489 'fluxbcbb','Flux BC-BB','mg/m2/s', (/ ('', i=1, 9) /)) 490 491 type(ctrl_out),save :: o_fluxbcff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 492 'fluxbcff','Flux BC-FF','mg/m2/s', (/ ('', i=1, 9) /)) 493 494 type(ctrl_out),save :: o_fluxbcnff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 495 'fluxbcnff','Flux BC-NFF','mg/m2/s', (/ ('', i=1, 9) /)) 496 497 type(ctrl_out),save :: o_fluxbcba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 498 'fluxbcba','Flux BC-BA','mg/m2/s', (/ ('', i=1, 9) /)) 499 500 type(ctrl_out),save :: o_fluxbc = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 501 'fluxbc','Flux BC','mg/m2/s', (/ ('', i=1, 9) /)) 502 503 type(ctrl_out),save :: o_fluxombb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 504 'fluxombb','Flux OM-BB','mg/m2/s', (/ ('', i=1, 9) /)) 505 506 type(ctrl_out),save :: o_fluxomff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 507 'fluxomff','Flux OM-FF','mg/m2/s', (/ ('', i=1, 9) /)) 508 509 type(ctrl_out),save :: o_fluxomnff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 510 'fluxomnff','Flux OM-NFF','mg/m2/s', (/ ('', i=1, 9) /)) 511 512 type(ctrl_out),save :: o_fluxomba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 513 'fluxomba','Flux OM-BA','mg/m2/s', (/ ('', i=1, 9) /)) 514 515 type(ctrl_out),save :: o_fluxomnat = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 516 'fluxomnat','Flux OM-NT','mg/m2/s', (/ ('', i=1, 9) /)) 517 518 type(ctrl_out),save :: o_fluxom = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 519 'fluxom','Flux OM','mg/m2/s', (/ ('', i=1, 9) /)) 520 521 type(ctrl_out),save :: o_fluxh2sff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 522 'fluxh2sff','Flux H2S FF','mgS/m2/s', (/ ('', i=1, 9) /)) 523 524 type(ctrl_out),save :: o_fluxh2snff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 525 'fluxh2snff','Flux H2S non-FF','mgS/m2/s', (/ ('', i=1, 9) /)) 526 527 type(ctrl_out),save :: o_fluxso2ff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 528 'fluxso2ff','Flux SO2 FF','mgS/m2/s', (/ ('', i=1, 9) /)) 529 530 type(ctrl_out),save :: o_fluxso2nff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 531 'fluxso2nff','Flux SO2 non-FF','mgS/m2/s', (/ ('', i=1, 9) /)) 532 533 type(ctrl_out),save :: o_fluxso2bb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 534 'fluxso2bb','Flux SO2 BB','mgS/m2/s', (/ ('', i=1, 9) /)) 535 536 type(ctrl_out),save :: o_fluxso2vol = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 537 'fluxso2vol','Flux SO2 Vol','mgS/m2/s', (/ ('', i=1, 9) /)) 538 539 type(ctrl_out),save :: o_fluxso2ba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 540 'fluxso2ba','Flux SO2 Ba','mgS/m2/s', (/ ('', i=1, 9) /)) 541 542 type(ctrl_out),save :: o_fluxso2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 543 'fluxso2','Flux SO2','mgS/m2/s', (/ ('', i=1, 9) /)) 544 545 type(ctrl_out),save :: o_fluxso4ff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 546 'fluxso4ff','Flux SO4 FF','mgS/m2/s', (/ ('', i=1, 9) /)) 547 548 type(ctrl_out),save :: o_fluxso4nff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 549 'fluxso4nff','Flux SO4 non-FF','mgS/m2/s', (/ ('', i=1, 9) /)) 550 551 type(ctrl_out),save :: o_fluxso4bb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 552 'fluxso4bb','Flux SO4 BB','mgS/m2/s', (/ ('', i=1, 9) /)) 553 554 type(ctrl_out),save :: o_fluxso4ba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 555 'fluxso4ba','Flux SO4 Ba','mgS/m2/s', (/ ('', i=1, 9) /)) 556 557 type(ctrl_out),save :: o_fluxso4 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 558 'fluxso4','Flux SO4','mgS/m2/s', (/ ('', i=1, 9) /)) 559 560 type(ctrl_out),save :: o_fluxdms = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 561 'fluxdms','Flux DMS','mgS/m2/s', (/ ('', i=1, 9) /)) 562 563 type(ctrl_out),save :: o_fluxh2sbio = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 564 'fluxh2sbio','Flux H2S Bio','mgS/m2/s', (/ ('', i=1, 9) /)) 565 566 type(ctrl_out),save :: o_fluxdustec = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 567 'fluxdustec','Flux Dust EC','mg/m2/s', (/ ('', i=1, 9) /)) 568 569 type(ctrl_out),save :: o_fluxddfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 570 'fluxddfine','DD Fine Mode','mg/m2/s', (/ ('', i=1, 9) /)) 571 572 type(ctrl_out),save :: o_fluxddcoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 573 'fluxddcoa','DD Coarse Mode','mg/m2/s', (/ ('', i=1, 9) /)) 574 575 type(ctrl_out),save :: o_fluxddsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 576 'fluxddsco','DD SCoarse Mode','mg/m2/s', (/ ('', i=1, 9) /)) 577 578 type(ctrl_out),save :: o_fluxdd = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 579 'fluxdd','Flux DD','mg/m2/s', (/ ('', i=1, 9) /)) 580 581 type(ctrl_out),save :: o_fluxssfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 582 'fluxssfine','SS Fine Mode','mg/m2/s', (/ ('', i=1, 9) /)) 583 584 type(ctrl_out),save :: o_fluxsscoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 585 'fluxsscoa','SS Coarse Mode','mg/m2/s', (/ ('', i=1, 9) /)) 586 587 type(ctrl_out),save :: o_fluxss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 588 'fluxss','Flux SS','mg/m2/s', (/ ('', i=1, 9) /)) 589 590 type(ctrl_out),save :: o_flux_sparam_ind = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 591 'flux_sparam_ind','Ind emiss','mg/m2/s', (/ ('', i=1, 9) /)) 592 593 type(ctrl_out),save :: o_flux_sparam_bb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 594 'flux_sparam_bb','BB emiss','mg/m2/s', (/ ('', i=1, 9) /)) 595 596 type(ctrl_out),save :: o_flux_sparam_ff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 597 'flux_sparam_ff','FF emiss','mg/m2/s', (/ ('', i=1, 9) /)) 598 599 type(ctrl_out),save :: o_flux_sparam_ddfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 600 'flux_sparam_ddfine','DD fine emiss','mg/m2/s', (/ ('', i=1, 9) /)) 601 602 type(ctrl_out),save :: o_flux_sparam_ddcoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 603 'flux_sparam_ddcoa','DD coarse emiss','mg/m2/s', (/ ('', i=1, 9) /)) 604 605 type(ctrl_out),save :: o_flux_sparam_ddsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 606 'flux_sparam_ddsco','DD Scoarse emiss','mg/m2/s', (/ ('', i=1, 9) /)) 607 608 type(ctrl_out),save :: o_flux_sparam_ssfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 609 'flux_sparam_ssfine','SS fine emiss','mg/m2/s', (/ ('', i=1, 9) /)) 610 611 612 type(ctrl_out),save :: o_flux_sparam_sscoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 613 'flux_sparam_sscoa','SS coarse emiss','mg/m2/s', (/ ('', i=1, 9) /)) 614 615 type(ctrl_out),save :: o_u10m_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 616 'u10m_ss','Zonal wind at 10 m SS','m/s', (/ ('', i=1, 9) /)) 617 618 type(ctrl_out),save :: o_v10m_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 619 'v10m_ss','Meridional wind at 10 m SS','m/s', (/ ('', i=1, 9) /)) 620 621 622 ! type(ctrl_out),save :: o_ = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10 /), & 623 ! '','','', (/ ('', i=1, 9) /)) 624 625 626 627 !example TYPE(ctrl_out), SAVE :: o_psbg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 /), & 462 type(ctrl_out),save :: o_fluxbb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 463 'fluxbb','Flux BB','mg/m2/s', (/ ('', i=1, 10) /)) 464 465 type(ctrl_out),save :: o_fluxff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 466 'fluxff','Flux FF','mg/m2/s', (/ ('', i=1, 10) /)) 467 468 type(ctrl_out),save :: o_fluxbcbb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 469 'fluxbcbb','Flux BC-BB','mg/m2/s', (/ ('', i=1, 10) /)) 470 471 type(ctrl_out),save :: o_fluxbcff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 472 'fluxbcff','Flux BC-FF','mg/m2/s', (/ ('', i=1, 10) /)) 473 474 type(ctrl_out),save :: o_fluxbcnff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 475 'fluxbcnff','Flux BC-NFF','mg/m2/s', (/ ('', i=1, 10) /)) 476 477 type(ctrl_out),save :: o_fluxbcba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 478 'fluxbcba','Flux BC-BA','mg/m2/s', (/ ('', i=1, 10) /)) 479 480 type(ctrl_out),save :: o_fluxbc = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 481 'fluxbc','Flux BC','mg/m2/s', (/ ('', i=1, 10) /)) 482 483 type(ctrl_out),save :: o_fluxombb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 484 'fluxombb','Flux OM-BB','mg/m2/s', (/ ('', i=1, 10) /)) 485 486 type(ctrl_out),save :: o_fluxomff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 487 'fluxomff','Flux OM-FF','mg/m2/s', (/ ('', i=1, 10) /)) 488 489 type(ctrl_out),save :: o_fluxomnff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 490 'fluxomnff','Flux OM-NFF','mg/m2/s', (/ ('', i=1, 10) /)) 491 492 type(ctrl_out),save :: o_fluxomba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 493 'fluxomba','Flux OM-BA','mg/m2/s', (/ ('', i=1, 10) /)) 494 495 type(ctrl_out),save :: o_fluxomnat = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 496 'fluxomnat','Flux OM-NT','mg/m2/s', (/ ('', i=1, 10) /)) 497 498 type(ctrl_out),save :: o_fluxom = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 499 'fluxom','Flux OM','mg/m2/s', (/ ('', i=1, 10) /)) 500 501 type(ctrl_out),save :: o_fluxh2sff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 502 'fluxh2sff','Flux H2S FF','mgS/m2/s', (/ ('', i=1, 10) /)) 503 504 type(ctrl_out),save :: o_fluxh2snff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 505 'fluxh2snff','Flux H2S non-FF','mgS/m2/s', (/ ('', i=1, 10) /)) 506 507 type(ctrl_out),save :: o_fluxso2ff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 508 'fluxso2ff','Flux SO2 FF','mgS/m2/s', (/ ('', i=1, 10) /)) 509 510 type(ctrl_out),save :: o_fluxso2nff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 511 'fluxso2nff','Flux SO2 non-FF','mgS/m2/s', (/ ('', i=1, 10) /)) 512 513 type(ctrl_out),save :: o_fluxso2bb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 514 'fluxso2bb','Flux SO2 BB','mgS/m2/s', (/ ('', i=1, 10) /)) 515 516 type(ctrl_out),save :: o_fluxso2vol = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 517 'fluxso2vol','Flux SO2 Vol','mgS/m2/s', (/ ('', i=1, 10) /)) 518 519 type(ctrl_out),save :: o_fluxso2ba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 520 'fluxso2ba','Flux SO2 Ba','mgS/m2/s', (/ ('', i=1, 10) /)) 521 522 type(ctrl_out),save :: o_fluxso2 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 523 'fluxso2','Flux SO2','mgS/m2/s', (/ ('', i=1, 10) /)) 524 525 type(ctrl_out),save :: o_fluxso4ff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 526 'fluxso4ff','Flux SO4 FF','mgS/m2/s', (/ ('', i=1, 10) /)) 527 528 type(ctrl_out),save :: o_fluxso4nff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 529 'fluxso4nff','Flux SO4 non-FF','mgS/m2/s', (/ ('', i=1, 10) /)) 530 531 type(ctrl_out),save :: o_fluxso4bb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 532 'fluxso4bb','Flux SO4 BB','mgS/m2/s', (/ ('', i=1, 10) /)) 533 534 type(ctrl_out),save :: o_fluxso4ba = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 535 'fluxso4ba','Flux SO4 Ba','mgS/m2/s', (/ ('', i=1, 10) /)) 536 537 type(ctrl_out),save :: o_fluxso4 = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 538 'fluxso4','Flux SO4','mgS/m2/s', (/ ('', i=1, 10) /)) 539 540 type(ctrl_out),save :: o_fluxdms = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 541 'fluxdms','Flux DMS','mgS/m2/s', (/ ('', i=1, 10) /)) 542 543 type(ctrl_out),save :: o_fluxh2sbio = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 544 'fluxh2sbio','Flux H2S Bio','mgS/m2/s', (/ ('', i=1, 10) /)) 545 546 type(ctrl_out),save :: o_fluxdustec = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 547 'fluxdustec','Flux Dust EC','mg/m2/s', (/ ('', i=1, 10) /)) 548 549 type(ctrl_out),save :: o_fluxddfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 550 'fluxddfine','DD Fine Mode','mg/m2/s', (/ ('', i=1, 10) /)) 551 552 type(ctrl_out),save :: o_fluxddcoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 553 'fluxddcoa','DD Coarse Mode','mg/m2/s', (/ ('', i=1, 10) /)) 554 555 type(ctrl_out),save :: o_fluxddsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 556 'fluxddsco','DD SCoarse Mode','mg/m2/s', (/ ('', i=1, 10) /)) 557 558 type(ctrl_out),save :: o_fluxdd = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 559 'fluxdd','Flux DD','mg/m2/s', (/ ('', i=1, 10) /)) 560 561 type(ctrl_out),save :: o_fluxssfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 562 'fluxssfine','SS Fine Mode','mg/m2/s', (/ ('', i=1, 10) /)) 563 564 type(ctrl_out),save :: o_fluxsscoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 565 'fluxsscoa','SS Coarse Mode','mg/m2/s', (/ ('', i=1, 10) /)) 566 567 type(ctrl_out),save :: o_fluxss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 568 'fluxss','Flux SS','mg/m2/s', (/ ('', i=1, 10) /)) 569 570 type(ctrl_out),save :: o_flux_sparam_ind = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 571 'flux_sparam_ind','Ind emiss','mg/m2/s', (/ ('', i=1, 10) /)) 572 573 type(ctrl_out),save :: o_flux_sparam_bb = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 574 'flux_sparam_bb','BB emiss','mg/m2/s', (/ ('', i=1, 10) /)) 575 576 type(ctrl_out),save :: o_flux_sparam_ff = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 577 'flux_sparam_ff','FF emiss','mg/m2/s', (/ ('', i=1, 10) /)) 578 579 type(ctrl_out),save :: o_flux_sparam_ddfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 580 'flux_sparam_ddfine','DD fine emiss','mg/m2/s', (/ ('', i=1, 10) /)) 581 582 type(ctrl_out),save :: o_flux_sparam_ddcoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 583 'flux_sparam_ddcoa','DD coarse emiss','mg/m2/s', (/ ('', i=1, 10) /)) 584 585 type(ctrl_out),save :: o_flux_sparam_ddsco = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 586 'flux_sparam_ddsco','DD Scoarse emiss','mg/m2/s', (/ ('', i=1, 10) /)) 587 588 type(ctrl_out),save :: o_flux_sparam_ssfine = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 589 'flux_sparam_ssfine','SS fine emiss','mg/m2/s', (/ ('', i=1, 10) /)) 590 591 type(ctrl_out),save :: o_flux_sparam_sscoa = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 592 'flux_sparam_sscoa','SS coarse emiss','mg/m2/s', (/ ('', i=1, 10) /)) 593 594 type(ctrl_out),save :: o_u10m_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 595 'u10m_ss','Zonal wind at 10 m SS','m/s', (/ ('', i=1, 10) /)) 596 597 type(ctrl_out),save :: o_v10m_ss = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 598 'v10m_ss','Meridional wind at 10 m SS','m/s', (/ ('', i=1, 10) /)) 599 600 ! type(ctrl_out),save :: o_ = ctrl_out((/ 4, 4, 4, 10, 10, 10, 10, 10, 10, 10 /), & 601 ! '','','', (/ ('', i=1, 10) /)) 602 603 !example TYPE(ctrl_out), SAVE :: o_psbg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11 /), & 628 604 ! 'psbg', 'Pressure sfce below ground', '%', (/ "inst(X)", "inst(X)", "inst(X)", & 629 ! "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 630 631 632 605 ! "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) -
LMDZ5/branches/testing/libf/phylmd/Dust/spla_output_write.h
r2641 r2787 6 6 ! traceur 7 7 8 CALL histwrite_phy( o_taue550 , diff_aod550_tot 9 CALL histwrite_phy( o_taue670 , diag_aod670_tot 8 CALL histwrite_phy( o_taue550 , diff_aod550_tot ) 9 CALL histwrite_phy( o_taue670 , diag_aod670_tot ) 10 10 CALL histwrite_phy( o_taue865 , diag_aod865_tot ) 11 11 IF(id_fine>0) CALL histwrite_phy( o_taue550_tr2 , diff_aod550_tr2 ) 12 IF(id_fine>0) CALL histwrite_phy( o_taue670_tr2 , diag_aod670_tr2 12 IF(id_fine>0) CALL histwrite_phy( o_taue670_tr2 , diag_aod670_tr2 ) 13 13 IF(id_fine>0) CALL histwrite_phy( o_taue865_tr2 , diag_aod865_tr2 ) 14 IF(id_coss>0) CALL histwrite_phy( o_taue550_ss , diag_aod550_ss 14 IF(id_coss>0) CALL histwrite_phy( o_taue550_ss , diag_aod550_ss ) 15 15 IF(id_coss>0) CALL histwrite_phy( o_taue670_ss , diag_aod670_ss ) 16 IF(id_coss>0) CALL histwrite_phy( o_taue865_ss , diag_aod865_ss 17 IF(id_codu>0) CALL histwrite_phy( o_taue550_dust , diag_aod550_dust 16 IF(id_coss>0) CALL histwrite_phy( o_taue865_ss , diag_aod865_ss ) 17 IF(id_codu>0) CALL histwrite_phy( o_taue550_dust , diag_aod550_dust ) 18 18 IF(id_codu>0) CALL histwrite_phy( o_taue670_dust , diag_aod670_dust ) 19 19 IF(id_codu>0) CALL histwrite_phy( o_taue865_dust , diag_aod865_dust ) … … 22 22 IF(id_scdu>0) CALL histwrite_phy( o_taue865_dustsco , diag_aod865_dustsco ) 23 23 CALL histwrite_phy( o_taue550_aqua , aod550_aqua ) 24 CALL histwrite_phy( o_taue550_terra , aod550_terra 25 CALL histwrite_phy( o_taue670_aqua , aod670_aqua 26 CALL histwrite_phy( o_taue670_terra , aod670_terra 27 CALL histwrite_phy( o_taue865_aqua , aod865_aqua 28 CALL histwrite_phy( o_taue865_terra , aod865_terra 24 CALL histwrite_phy( o_taue550_terra , aod550_terra ) 25 CALL histwrite_phy( o_taue670_aqua , aod670_aqua ) 26 CALL histwrite_phy( o_taue670_terra , aod670_terra ) 27 CALL histwrite_phy( o_taue865_aqua , aod865_aqua ) 28 CALL histwrite_phy( o_taue865_terra , aod865_terra ) 29 29 30 30 IF(id_fine>0) CALL histwrite_phy( o_taue550_fine_aqua ,aod550_tr2_aqua ) 31 31 IF(id_fine>0) CALL histwrite_phy( o_taue670_fine_aqua ,aod670_tr2_aqua ) 32 32 IF(id_fine>0) CALL histwrite_phy( o_taue865_fine_aqua ,aod865_tr2_aqua ) 33 IF(id_coss>0) CALL histwrite_phy( o_taue550_coss_aqua ,aod550_ss_aqua 34 IF(id_coss>0) CALL histwrite_phy( o_taue670_coss_aqua ,aod670_ss_aqua 35 IF(id_coss>0) CALL histwrite_phy( o_taue865_coss_aqua ,aod865_ss_aqua 36 IF(id_codu>0) CALL histwrite_phy( o_taue550_codu_aqua ,aod550_dust_aqua 37 IF(id_codu>0) CALL histwrite_phy( o_taue670_codu_aqua ,aod670_dust_aqua 38 IF(id_codu>0) CALL histwrite_phy( o_taue865_codu_aqua ,aod865_dust_aqua 39 IF(id_scdu>0) CALL histwrite_phy( o_taue670_scdu_aqua ,aod670_dustsco_aqua 40 IF(id_scdu>0) CALL histwrite_phy( o_taue550_scdu_aqua ,aod550_dustsco_aqua 41 IF(id_scdu>0) CALL histwrite_phy( o_taue865_scdu_aqua ,aod865_dustsco_aqua 33 IF(id_coss>0) CALL histwrite_phy( o_taue550_coss_aqua ,aod550_ss_aqua ) 34 IF(id_coss>0) CALL histwrite_phy( o_taue670_coss_aqua ,aod670_ss_aqua ) 35 IF(id_coss>0) CALL histwrite_phy( o_taue865_coss_aqua ,aod865_ss_aqua ) 36 IF(id_codu>0) CALL histwrite_phy( o_taue550_codu_aqua ,aod550_dust_aqua ) 37 IF(id_codu>0) CALL histwrite_phy( o_taue670_codu_aqua ,aod670_dust_aqua ) 38 IF(id_codu>0) CALL histwrite_phy( o_taue865_codu_aqua ,aod865_dust_aqua ) 39 IF(id_scdu>0) CALL histwrite_phy( o_taue670_scdu_aqua ,aod670_dustsco_aqua ) 40 IF(id_scdu>0) CALL histwrite_phy( o_taue550_scdu_aqua ,aod550_dustsco_aqua ) 41 IF(id_scdu>0) CALL histwrite_phy( o_taue865_scdu_aqua ,aod865_dustsco_aqua ) 42 42 43 43 IF(id_fine>0) CALL histwrite_phy( o_taue550_fine_terra ,aod550_tr2_terra ) 44 44 IF(id_fine>0) CALL histwrite_phy( o_taue670_fine_terra ,aod670_tr2_terra ) 45 45 IF(id_fine>0) CALL histwrite_phy( o_taue865_fine_terra ,aod865_tr2_terra ) 46 IF(id_coss>0) CALL histwrite_phy( o_taue550_coss_terra ,aod550_ss_terra 47 IF(id_coss>0) CALL histwrite_phy( o_taue670_coss_terra ,aod670_ss_terra 48 IF(id_coss>0) CALL histwrite_phy( o_taue865_coss_terra ,aod865_ss_terra 49 IF(id_codu>0) CALL histwrite_phy( o_taue550_codu_terra ,aod550_dust_terra 50 IF(id_codu>0) CALL histwrite_phy( o_taue670_codu_terra ,aod670_dust_terra 51 IF(id_codu>0) CALL histwrite_phy( o_taue865_codu_terra ,aod865_dust_terra 52 IF(id_scdu>0) CALL histwrite_phy( o_taue670_scdu_terra ,aod670_dustsco_terra 53 IF(id_scdu>0) CALL histwrite_phy( o_taue550_scdu_terra ,aod550_dustsco_terra 54 IF(id_scdu>0) CALL histwrite_phy( o_taue865_scdu_terra ,aod865_dustsco_terra 46 IF(id_coss>0) CALL histwrite_phy( o_taue550_coss_terra ,aod550_ss_terra ) 47 IF(id_coss>0) CALL histwrite_phy( o_taue670_coss_terra ,aod670_ss_terra ) 48 IF(id_coss>0) CALL histwrite_phy( o_taue865_coss_terra ,aod865_ss_terra ) 49 IF(id_codu>0) CALL histwrite_phy( o_taue550_codu_terra ,aod550_dust_terra ) 50 IF(id_codu>0) CALL histwrite_phy( o_taue670_codu_terra ,aod670_dust_terra ) 51 IF(id_codu>0) CALL histwrite_phy( o_taue865_codu_terra ,aod865_dust_terra ) 52 IF(id_scdu>0) CALL histwrite_phy( o_taue670_scdu_terra ,aod670_dustsco_terra ) 53 IF(id_scdu>0) CALL histwrite_phy( o_taue550_scdu_terra ,aod550_dustsco_terra ) 54 IF(id_scdu>0) CALL histwrite_phy( o_taue865_scdu_terra ,aod865_dustsco_terra ) 55 55 56 56 … … 133 133 IF(id_codu>0) CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 ) 134 134 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_uscav05 , d_tr_uscav05 ) 135 IF(id_prec>0) CALL histwrite_phy( o_d_tr_insc01 , d_tr_insc01 ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!135 IF(id_prec>0) CALL histwrite_phy( o_d_tr_insc01 , d_tr_insc01 ) 136 136 IF(id_fine>0) CALL histwrite_phy( o_d_tr_insc02 , d_tr_insc02 ) 137 137 IF(id_coss>0) CALL histwrite_phy( o_d_tr_insc03 , d_tr_insc03 ) … … 152 152 IF(id_coss>0) CALL histwrite_phy( o_d_tr_ls03 , d_tr_ls03 ) 153 153 IF(id_codu>0) CALL histwrite_phy( o_d_tr_ls04 , d_tr_ls04 ) 154 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_ls05 , d_tr_ls05 ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 155 154 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_ls05 , d_tr_ls05 ) 156 155 157 156 IF(id_prec>0) CALL histwrite_phy( o_d_tr_dyn01 , d_tr_dyn01 ) … … 159 158 IF(id_coss>0) CALL histwrite_phy( o_d_tr_dyn03 , d_tr_dyn03 ) 160 159 IF(id_codu>0) CALL histwrite_phy( o_d_tr_dyn04 , d_tr_dyn04 ) 161 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_dyn05 , d_tr_dyn05 ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!160 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_dyn05 , d_tr_dyn05 ) 162 161 163 162 IF(id_prec>0) CALL histwrite_phy( o_d_tr_cl01 , d_tr_cl01 ) … … 165 164 IF(id_coss>0) CALL histwrite_phy( o_d_tr_cl03 , d_tr_cl03 ) 166 165 IF(id_codu>0) CALL histwrite_phy( o_d_tr_cl04 , d_tr_cl04 ) 167 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_cl05 , d_tr_cl05 ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!166 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_cl05 , d_tr_cl05 ) 168 167 IF(id_prec>0) CALL histwrite_phy( o_d_tr_th01 , d_tr_th01 ) 169 168 IF(id_fine>0) CALL histwrite_phy( o_d_tr_th02 , d_tr_th02 ) 170 169 IF(id_coss>0) CALL histwrite_phy( o_d_tr_th03 , d_tr_th03 ) 171 170 IF(id_codu>0) CALL histwrite_phy( o_d_tr_th04 , d_tr_th04 ) 172 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_th05 , d_tr_th05 ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 173 171 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_th05 , d_tr_th05 ) 174 172 175 173 IF(id_coss>0) CALL histwrite_phy( o_sed_ss , sed_ss) … … 232 230 CALL histwrite_phy( o_u10m_ss , u10m_ss ) 233 231 CALL histwrite_phy( o_v10m_ss , v10m_ss ) 234 235 ! CALL histwrite_phy( ,)236 !237 238 239 240 -
LMDZ5/branches/testing/libf/phylmd/StratAer/aer_sedimnt.F90
r2720 r2787 14 14 !----------------------------------------------------------------------- 15 15 16 USE phys_local_var_mod, ONLY: mdw, sfluxaer, DENSO4, f_r_wet, vsed_aer16 USE phys_local_var_mod, ONLY: mdw, budg_sed_part, DENSO4, f_r_wet, vsed_aer 17 17 USE dimphy, ONLY : klon,klev 18 18 USE infotrac … … 106 106 !---ZAERONWM1 now contains the surface concentration at the new timestep 107 107 !---PFLUXAER in unit of xx m-2 s-1 108 sfluxaer(:)=0.0108 budg_sed_part(:)=0.0 109 109 DO JL=1,klon 110 110 ZRHO=pplay(JL,1)/(RD*t_seri(JL,1)) 111 111 DO nb=1,nbtr_bin 112 !compute sfluxaeras sum over bins in kg(S)/m2/s113 sfluxaer(JL)=sfluxaer(JL)+ZRHO*ZAERONWM1(JL,nb)*ZVAER(JL,1,nb)*(mSatom/mH2SO4mol) &112 !compute budg_sed_part as sum over bins in kg(S)/m2/s 113 budg_sed_part(JL)=budg_sed_part(JL)+ZRHO*ZAERONWM1(JL,nb)*ZVAER(JL,1,nb)*(mSatom/mH2SO4mol) & 114 114 & *dens_aer_dry*4./3.*RPI*(mdw(nb)/2.)**3 115 115 ENDDO -
LMDZ5/branches/testing/libf/phylmd/StratAer/aerophys.F90
r2720 r2787 6 6 REAL,PARAMETER :: dens_aer_dry=1848.682308 ! dry aerosol particle mass density at T_0=293K[kg/m3] 7 7 REAL,PARAMETER :: dens_aer_ref=1483.905336 ! aerosol particle mass density with 75% H2SO4 at T_0=293K[kg/m3] 8 REAL,PARAMETER :: mdwmin=0.002e-6 ! dry diameter of smallest aerosol particles [m] 8 ! REAL,PARAMETER :: mdwmin=0.002e-6 ! dry diameter of smallest aerosol particles [m] 9 REAL,PARAMETER :: mdwmin=0.2e-6 ! dry diameter of smallest aerosol particles [m] !--testing 9 10 REAL,PARAMETER :: V_rat=2.0 ! volume ratio of neighboring size bins 10 11 REAL,PARAMETER :: mfrac_H2SO4=0.75 ! default mass fraction of H2SO4 in the aerosol -
LMDZ5/branches/testing/libf/phylmd/StratAer/interp_sulf_input.F90
r2720 r2787 8 8 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_root 9 9 USE mod_phys_lmdz_omp_data, ONLY : is_omp_root 10 USE phys_local_var_mod, ONLY : OCS_backgr_tend, SO2_backgr_tend10 USE phys_local_var_mod, ONLY : budg_3D_backgr_ocs, budg_3D_backgr_so2 11 11 USE phys_local_var_mod, ONLY : OCS_lifetime, SO2_lifetime 12 12 USE mod_phys_lmdz_para … … 34 34 REAL OCS_tmp, SO2_tmp 35 35 INTEGER, SAVE :: mth_pre 36 !$OMP THREADPRIVATE(mth_pre) 36 37 37 38 ! Champs reconstitues … … 244 245 tr_seri(i,k,id_SO2_strat)=SO2_clim(i,k) 245 246 ENDIF 246 OCS_backgr_tend(i,k)=tr_seri(i,k,id_OCS_strat)-OCS_tmp247 SO2_backgr_tend(i,k)=tr_seri(i,k,id_SO2_strat)-SO2_tmp247 budg_3D_backgr_ocs(i,k)=tr_seri(i,k,id_OCS_strat)-OCS_tmp 248 budg_3D_backgr_so2(i,k)=tr_seri(i,k,id_SO2_strat)-SO2_tmp 248 249 ENDDO 249 250 ENDDO … … 252 253 DO i=1, klon 253 254 DO k=1, klev 254 SO2_backgr_tend(i,k)=SO2_backgr_tend(i,k)*mSatom/mSO2mol*(paprs(i,k)-paprs(i,k+1))/RG/pdtphys255 OCS_backgr_tend(i,k)=OCS_backgr_tend(i,k)*mSatom/mOCSmol*(paprs(i,k)-paprs(i,k+1))/RG/pdtphys255 budg_3D_backgr_ocs(i,k)=budg_3D_backgr_ocs(i,k)*mSatom/mOCSmol*(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 256 budg_3D_backgr_so2(i,k)=budg_3D_backgr_so2(i,k)*mSatom/mSO2mol*(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 256 257 ENDDO 257 258 ENDDO -
LMDZ5/branches/testing/libf/phylmd/StratAer/micphy_tstep.F90
r2720 r2787 4 4 USE aerophys 5 5 USE infotrac 6 USE phys_local_var_mod, ONLY: mdw, sulf_nucl, sulf_cond_evap, R2SO4, DENSO4, f_r_wet6 USE phys_local_var_mod, ONLY: mdw, budg_3D_nucl, budg_3D_cond_evap, R2SO4, DENSO4, f_r_wet 7 7 USE nucleation_tstep_mod 8 8 USE cond_evap_tstep_mod … … 68 68 IF (is_strato(ilon,ilev)) THEN 69 69 ! initialize sulfur fluxes 70 sulf_nucl(ilon,ilev)=0.071 sulf_cond_evap(ilon,ilev)=0.070 budg_3D_nucl(ilon,ilev)=0.0 71 budg_3D_cond_evap(ilon,ilev)=0.0 72 72 H2SO4_init=tr_seri(ilon,ilev,id_H2SO4_strat) 73 73 ! adaptive timestep for nucleation and condensation … … 109 109 CALL nucleation_part(nucl_rate,ntot,x,dt,Vbin,tr_seri(ilon,ilev,:)) 110 110 ! compute fluxes as diagnostic in [kg(S)/m2/layer/s] (now - for evap and + for cond) 111 sulf_cond_evap(ilon,ilev)=sulf_cond_evap(ilon,ilev)+mSatom/mH2SO4mol &111 budg_3D_cond_evap(ilon,ilev)=budg_3D_cond_evap(ilon,ilev)+mSatom/mH2SO4mol & 112 112 & *cond_evap_rate*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG*dt/pdtphys 113 sulf_nucl(ilon,ilev)=sulf_nucl(ilon,ilev)+mSatom/mH2SO4mol &113 budg_3D_nucl(ilon,ilev)=budg_3D_nucl(ilon,ilev)+mSatom/mH2SO4mol & 114 114 & *nucl_rate*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG*dt/pdtphys 115 115 ! update time step … … 139 139 CALL cond_evap_part(pdtphys,FL,ASO4,f_r_wet(ilon,ilev),RRSI,Vbin,tr_seri(ilon,ilev,:)) 140 140 ! compute fluxes as diagnostic in [kg(S)/m2/layer/s] (now - for evap and + for cond) 141 sulf_cond_evap(ilon,ilev)=sulf_cond_evap(ilon,ilev)+mSatom/mH2SO4mol &141 budg_3D_cond_evap(ilon,ilev)=budg_3D_cond_evap(ilon,ilev)+mSatom/mH2SO4mol & 142 142 & *evap_rate*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG 143 143 ENDIF -
LMDZ5/branches/testing/libf/phylmd/StratAer/ocs_to_so2.F90
r2720 r2787 1 SUBROUTINE ocs_to_so2(pdtphys,tr_seri,t_seri,pplay,paprs, sh,is_strato)1 SUBROUTINE ocs_to_so2(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato) 2 2 3 3 USE dimphy, ONLY : klon,klev … … 5 5 USE infotrac 6 6 USE YOMCST, ONLY : RG 7 USE phys_local_var_mod, ONLY : OCS_lifetime, ocs_convert7 USE phys_local_var_mod, ONLY : OCS_lifetime, budg_3D_ocs_to_so2, budg_ocs_to_so2 8 8 9 9 IMPLICIT NONE … … 16 16 REAL,DIMENSION(klon,klev),INTENT(IN) :: pplay ! pression pour le mileu de chaque couche (en Pa) 17 17 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs ! pression pour chaque inter-couche (en Pa) 18 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique19 18 LOGICAL,DIMENSION(klon,klev),INTENT(IN) :: is_strato 20 19 … … 23 22 24 23 !--convert OCS to SO2 25 ocs_convert(:,:)=0.0 24 budg_3D_ocs_to_so2(:,:)=0.0 25 budg_ocs_to_so2(:)=0.0 26 26 27 DO ilon=1, klon 27 28 DO ilev=1, klev … … 29 30 IF (is_strato(ilon,ilev)) THEN 30 31 IF (OCS_lifetime(ilon,ilev).GT.0.0) THEN 31 ocs_convert(ilon,ilev)=tr_seri(ilon,ilev,id_OCS_strat)*(1.0-exp(-pdtphys/OCS_lifetime(ilon,ilev)))32 budg_3D_ocs_to_so2(ilon,ilev)=tr_seri(ilon,ilev,id_OCS_strat)*(1.0-exp(-pdtphys/OCS_lifetime(ilon,ilev))) 32 33 ENDIF 33 tr_seri(ilon,ilev,id_OCS_strat)=tr_seri(ilon,ilev,id_OCS_strat) - ocs_convert(ilon,ilev) 34 tr_seri(ilon,ilev,id_SO2_strat)=tr_seri(ilon,ilev,id_SO2_strat) + mSO2mol/mOCSmol*ocs_convert(ilon,ilev) 35 !convert ocs_convert from kg(OCS)/kgA to kg(S)/m2/layer/s for saving as diagnostic 36 ocs_convert(ilon,ilev)=ocs_convert(ilon,ilev)*mSatom/mOCSmol*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys 34 tr_seri(ilon,ilev,id_OCS_strat)=tr_seri(ilon,ilev,id_OCS_strat) - budg_3D_ocs_to_so2(ilon,ilev) 35 tr_seri(ilon,ilev,id_SO2_strat)=tr_seri(ilon,ilev,id_SO2_strat) + mSO2mol/mOCSmol*budg_3D_ocs_to_so2(ilon,ilev) 36 !convert budget from kg(OCS)/kgA to kg(S)/m2/layer/s for saving as diagnostic 37 budg_3D_ocs_to_so2(ilon,ilev)=budg_3D_ocs_to_so2(ilon,ilev)*mSatom/mOCSmol*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys 38 budg_ocs_to_so2(ilon)=budg_ocs_to_so2(ilon)+budg_3D_ocs_to_so2(ilon,ilev) 37 39 ENDIF 38 40 ENDDO -
LMDZ5/branches/testing/libf/phylmd/StratAer/so2_to_h2so4.F90
r2720 r2787 1 SUBROUTINE SO2_TO_H2SO4(pdtphys,tr_seri,t_seri,pplay,paprs, sh,is_strato)1 SUBROUTINE SO2_TO_H2SO4(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato) 2 2 3 3 USE dimphy, ONLY : klon,klev … … 5 5 USE infotrac 6 6 USE YOMCST, ONLY : RG 7 USE phys_local_var_mod, ONLY : SO2_lifetime, sulf_convert7 USE phys_local_var_mod, ONLY : SO2_lifetime, budg_3D_so2_to_h2so4, budg_so2_to_h2so4 8 8 9 9 IMPLICIT NONE … … 17 17 REAL,DIMENSION(klon,klev),INTENT(IN) :: pplay ! pression pour le mileu de chaque couche (en Pa) 18 18 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs ! pression pour chaque inter-couche (en Pa) 19 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique20 19 LOGICAL,DIMENSION(klon,klev),INTENT(IN) :: is_strato ! stratospheric flag 21 20 … … 24 23 25 24 !--convert SO2 to H2SO4 26 sulf_convert(:,:)=0.0 25 budg_3D_so2_to_h2so4(:,:)=0.0 26 budg_so2_to_h2so4(:)=0.0 27 27 28 DO ilon=1, klon 28 29 DO ilev=1, klev … … 30 31 IF (is_strato(ilon,ilev)) THEN 31 32 IF (SO2_lifetime(ilon,ilev).GT.0.0) THEN 32 sulf_convert(ilon,ilev)=tr_seri(ilon,ilev,id_SO2_strat)*(1.0-exp(-pdtphys/SO2_lifetime(ilon,ilev)))33 budg_3D_so2_to_h2so4(ilon,ilev)=tr_seri(ilon,ilev,id_SO2_strat)*(1.0-exp(-pdtphys/SO2_lifetime(ilon,ilev))) 33 34 ENDIF 34 tr_seri(ilon,ilev,id_SO2_strat)=tr_seri(ilon,ilev,id_SO2_strat) - sulf_convert(ilon,ilev) 35 tr_seri(ilon,ilev,id_H2SO4_strat)=tr_seri(ilon,ilev,id_H2SO4_strat) + mH2SO4mol/mSO2mol*sulf_convert(ilon,ilev) 36 !convert sulf_convert from kg(SO2)/kgA to kg(S)/m2/layer/s for saving as diagnostic 37 sulf_convert(ilon,ilev)=sulf_convert(ilon,ilev)*mSatom/mSO2mol*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys 35 tr_seri(ilon,ilev,id_SO2_strat)=tr_seri(ilon,ilev,id_SO2_strat) - budg_3D_so2_to_h2so4(ilon,ilev) 36 tr_seri(ilon,ilev,id_H2SO4_strat)=tr_seri(ilon,ilev,id_H2SO4_strat) + mH2SO4mol/mSO2mol*budg_3D_so2_to_h2so4(ilon,ilev) 37 !convert budget from kg(SO2)/kgA to kg(S)/m2/layer/s for saving as diagnostic 38 budg_3D_so2_to_h2so4(ilon,ilev)=budg_3D_so2_to_h2so4(ilon,ilev)*mSatom/mSO2mol*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys 39 budg_so2_to_h2so4(ilon)=budg_so2_to_h2so4(ilon)+budg_3D_so2_to_h2so4(ilon,ilev) 38 40 ENDIF 39 41 ENDDO -
LMDZ5/branches/testing/libf/phylmd/StratAer/traccoag_mod.F90
r2720 r2787 8 8 SUBROUTINE traccoag(pdtphys, gmtime, debutphy, julien, & 9 9 presnivs, xlat, xlon, pphis, pphi, & 10 t_seri, pplay, paprs, sh, rh , & 11 tr_seri) 12 13 USE phys_local_var_mod, ONLY: mdw, sulf_convert, sulf_nucl, sulf_cond_evap, & 14 & sfluxaer, ocs_convert, R2SO4, DENSO4, f_r_wet, SO2_backgr_tend, OCS_backgr_tend, & 15 & OCS_lifetime, SO2_lifetime, surf_PM25_sulf 10 t_seri, pplay, paprs, sh, rh, tr_seri) 11 12 USE phys_local_var_mod, ONLY: mdw, R2SO4, DENSO4, f_r_wet, surf_PM25_sulf, & 13 & budg_emi_ocs, budg_emi_so2, budg_emi_h2so4, budg_emi_part 16 14 17 15 USE dimphy … … 71 69 REAL,PARAMETER :: altemiss_sai=17.e3 ! emission altitude in m 72 70 REAL,PARAMETER :: sigma_alt_sai=1.e3 ! standard deviation of emission altitude in m 73 REAL,PARAMETER :: xlat_sai=0.0 71 REAL,PARAMETER :: xlat_sai=0.01 ! latitude of SAI in degree 74 72 REAL,PARAMETER :: xlon_sai=120.35 ! longitude of SAI in degree 75 73 … … 90 88 REAL :: zrho ! Density of air [kg/m3] 91 89 REAL :: zdz ! thickness of atm. model layer in m 90 REAL,DIMENSION(klev) :: zdm ! mass of atm. model layer in kg 92 91 REAL,DIMENSION(klon,klev) :: dens_aer ! density of aerosol particles [kg/m3 aerosol] with default H2SO4 mass fraction 93 92 REAL :: dlat, dlon ! d latitude and d longitude of grid in degree 93 REAL :: emission ! emission 94 94 95 95 IF (is_mpi_root) THEN … … 141 141 DO ilon=1, klon 142 142 DO ilev=1, klev 143 m_air_gridbox(ilon,ilev)=(paprs(ilon,ilev)-paprs(ilon,ilev+1)) / RG *cell_area(ilon)144 ENDDO 145 ENDDO 146 147 IF (debutphy) THEN148 CALL gather(tr_seri, tr_seri_glo)149 IF (MAXVAL(tr_seri_glo).LT.1.e-30) THEN143 m_air_gridbox(ilon,ilev)=(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG*cell_area(ilon) 144 ENDDO 145 ENDDO 146 147 ! IF (debutphy) THEN 148 ! CALL gather(tr_seri, tr_seri_glo) 149 ! IF (MAXVAL(tr_seri_glo).LT.1.e-30) THEN 150 150 !--initialising tracer concentrations to zero 151 DO it=1, nbtr 152 tr_seri(:,:,it)=0.0 153 ENDDO 154 ENDIF 155 ENDIF 151 ! DO it=1, nbtr 152 ! tr_seri(:,:,it)=0.0 153 ! ENDDO 154 ! ENDIF 155 ! ENDIF 156 157 !--initialise emission diagnostics 158 budg_emi_ocs(:)=0.0 159 budg_emi_so2(:)=0.0 160 budg_emi_h2so4(:)=0.0 161 budg_emi_part(:)=0.0 156 162 157 163 !--sulfur emission, depending on chosen scenario (flag_sulf_emit) … … 170 176 IF ( xlat(i).GE.xlat_vol-dlat .AND. xlat(i).LT.xlat_vol+dlat .AND. & 171 177 xlon(i).GE.xlon_vol-dlon .AND. xlon(i).LT.xlon_vol+dlon ) THEN 178 ! 179 PRINT *,'coordinates of volcanic injection point=',xlat(i), xlon(i), day_cur, mth_cur, year_cur 172 180 ! compute altLMDz 173 181 altLMDz(:)=0.0 174 182 DO k=1, klev 175 zrho=pplay(i,k)/t_seri(i,k)/RD !air density in kg/m3 176 zdz=(paprs(i,k)-paprs(i,k+1))/zrho/RG !thickness of layer in m 177 altLMDz(k+1)=altLMDz(k)+zdz 183 zrho=pplay(i,k)/t_seri(i,k)/RD !air density in kg/m3 184 zdm(k)=(paprs(i,k)-paprs(i,k+1))/RG !mass of layer in kg 185 zdz=zdm(k)/zrho !thickness of layer in m 186 altLMDz(k+1)=altLMDz(k)+zdz !altitude of interface 178 187 ENDDO 179 188 !compute distribution of emission to vertical model layers (based on Gaussian peak in altitude) … … 194 203 !vertically distributed emission 195 204 DO k=1, klev 196 tr_seri(i,k,id_SO2_strat)=tr_seri(i,k,id_SO2_strat)+ & 197 & m_aer_emiss_vol*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k) & 198 & /(1.*86400./pdtphys) ! stretch emission over one day of Pinatubo eruption 205 ! stretch emission over one day of Pinatubo eruption 206 emission=m_aer_emiss_vol*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k)/1./86400. 207 tr_seri(i,k,id_SO2_strat)=tr_seri(i,k,id_SO2_strat)+emission*pdtphys 208 budg_emi_so2(i)=budg_emi_so2(i)+emission*zdm(k)*mSatom/mSO2mol 199 209 ENDDO 200 210 ENDIF ! emission grid cell … … 211 221 IF ( xlat(i).GE.xlat_sai-dlat .AND. xlat(i).LT.xlat_sai+dlat .AND. & 212 222 & xlon(i).GE.xlon_sai-dlon .AND. xlon(i).LT.xlon_sai+dlon ) THEN 223 ! 224 PRINT *,'coordinates of SAI point=',xlat(i), xlon(i), day_cur, mth_cur, year_cur 213 225 ! compute altLMDz 214 226 altLMDz(:)=0.0 215 227 DO k=1, klev 216 zrho=pplay(i,k)/t_seri(i,k)/RD !air density in kg/m3 217 zdz=(paprs(i,k)-paprs(i,k+1))/zrho/RG !thickness of layer in m 218 altLMDz(k+1)=altLMDz(k)+zdz 228 zrho=pplay(i,k)/t_seri(i,k)/RD !air density in kg/m3 229 zdm(k)=(paprs(i,k)-paprs(i,k+1))/RG !mass of layer in kg 230 zdz=zdm(k)/zrho !thickness of layer in m 231 altLMDz(k+1)=altLMDz(k)+zdz !altitude of interface 219 232 ENDDO 220 233 !compute distribution of emission to vertical model layers (based on Gaussian peak in altitude) … … 235 248 !vertically distributed emission 236 249 DO k=1, klev 237 tr_seri(i,k,id_SO2_strat)=tr_seri(i,k,id_SO2_strat)+ & 238 & m_aer_emiss_sai*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k) & 239 & /(360.*86400./pdtphys) ! stretch emission over whole year (360d) 240 ! & /(60.*86400./pdtphys) ! stretch emission over 2 months (seasonal emission) 241 ! & /7. ! distribute equally over 7 emission grid points 250 ! stretch emission over whole year (360d) 251 emission=m_aer_emiss_sai*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k)/360./86400. 252 tr_seri(i,k,id_SO2_strat)=tr_seri(i,k,id_SO2_strat)+emission*pdtphys 253 budg_emi_so2(i)=budg_emi_so2(i)+emission*zdm(k)*mSatom/mSO2mol 242 254 ENDDO 243 255 ! !emission as monodisperse particles with 0.1um dry radius (BIN21) 244 256 ! !vertically distributed emission 245 257 ! DO k=1, klev 246 ! tr_seri(i,k,id_BIN01_strat+20)=tr_seri(i,k,id_BIN01_strat+20)+ &247 ! & m_aer_emiss*(mH2SO4mol/mSatom)/m_part_dry(21)/m_air_gridbox(i,k)*f_lay_emiss(k) &248 ! & /(360.*86400./pdtphys) & ! stretch emission over whole year (360d)249 ! & /7. ! distribute equally over 7 emission grid points258 ! ! stretch emission over whole year (360d) 259 ! emission=m_aer_emiss*(mH2SO4mol/mSatom)/m_part_dry(21)/m_air_gridbox(i,k)*f_lay_emiss(k)/360./86400 260 ! tr_seri(i,k,id_BIN01_strat+20)=tr_seri(i,k,id_BIN01_strat+20)+emission*pdtphys 261 ! budg_emi_part(i)=budg_emi_part(i)+emission*zdm(k)*mSatom/mH2SO4mol 250 262 ! ENDDO 251 263 ENDIF ! emission grid cell … … 259 271 260 272 !--convert OCS to SO2 in the stratosphere 261 CALL ocs_to_so2(pdtphys,tr_seri,t_seri,pplay,paprs, sh,is_strato)273 CALL ocs_to_so2(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato) 262 274 263 275 !--convert SO2 to H2SO4 264 CALL so2_to_h2so4(pdtphys,tr_seri,t_seri,pplay,paprs, sh,is_strato)276 CALL so2_to_h2so4(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato) 265 277 266 278 !--common routine for nucleation and condensation/evaporation with adaptive timestep … … 282 294 surf_PM25_sulf(i)=surf_PM25_sulf(i)+tr_seri(i,1,it+nbtr_sulgas) & 283 295 & *132./98.*dens_aer_dry*4./3.*RPI*(mdw(it)/2.)**3 & 284 & *pplay(i,1)/t_seri(i,1)/RD*1 e9296 & *pplay(i,1)/t_seri(i,1)/RD*1.e9 285 297 ENDIF 286 298 ENDDO -
LMDZ5/branches/testing/libf/phylmd/alpale_th.F90
r2594 r2787 38 38 REAL, DIMENSION(klon), INTENT(INOUT) :: alp_bl 39 39 REAL, DIMENSION(klon), INTENT(INOUT) :: alp_bl_stat 40 41 REAL, DIMENSION(klon), INTENT(OUT) :: proba_notrig, random_notrig 40 REAL, DIMENSION(klon), INTENT(INOUT) :: proba_notrig 41 42 REAL, DIMENSION(klon), INTENT(OUT) :: random_notrig 42 43 43 44 include "thermcell.h" … … 73 74 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 74 75 ! 76 !! 77 !! The following 3 lines should be commented if one wants to activate the 78 !! multiplication of no-trigger probabilities between calls to the convection 79 !! scheme. 80 !! 81 do i=1,klon 82 proba_notrig(i)=1. 83 enddo 84 !! 85 !! 75 86 !--------------------------------------- 76 87 IF (iflag_clos_bl .LT. 3) THEN … … 97 108 !----Initialisations 98 109 do i=1,klon 99 proba_notrig(i)=1.110 !!jyg proba_notrig(i)=1. 100 111 random_notrig(i)=1e6*ale_bl_stat(i)-int(1e6*ale_bl_stat(i)) 101 112 if ( random_notrig(i) > random_notrig_max ) random_notrig(i)=0. … … 120 131 do i=1,klon 121 132 if ( (ale_bl_stat(i) .gt. abs(cin(i))+1.e-10) ) then 122 proba_notrig(i)= (1.-exp(-s_trig/s2(i)))** &123 133 proba_notrig(i)=proba_notrig(i)* & 134 (1.-exp(-s_trig/s2(i)))**(n2(i)*dtime/tau_trig(i)) 124 135 ! print *, 'proba_notrig(i) ',proba_notrig(i) 125 136 if (random_notrig(i) .ge. proba_notrig(i)) then … … 129 140 endif 130 141 else 131 proba_notrig(i)=1.142 !!jyg proba_notrig(i)=1. 132 143 random_notrig(i)=0. 133 144 ale_bl_trig(i)=0. … … 139 150 do i=1,klon 140 151 if ( (Ale_bl(i) .gt. abs(cin(i))+1.e-10) ) then 141 proba_notrig(i)= (1.-exp(-s_trig/s2(i)))** &142 152 proba_notrig(i)=proba_notrig(i)* & 153 (1.-exp(-s_trig/s2(i)))**(n2(i)*dtime/tau_trig(i)) 143 154 ! print *, 'proba_notrig(i) ',proba_notrig(i) 144 155 if (random_notrig(i) .ge. proba_notrig(i)) then … … 148 159 endif 149 160 else 150 proba_notrig(i)=1.161 !!jyg proba_notrig(i)=1. 151 162 random_notrig(i)=0. 152 163 ale_bl_trig(i)=0. … … 223 234 !----Initializations and random number generation 224 235 do i=1,klon 225 proba_notrig(i)=1.236 !!jyg proba_notrig(i)=1. 226 237 random_notrig(i)=1e6*ale_bl_stat(i)-int(1e6*ale_bl_stat(i)) 227 238 if ( ale_bl_trig(i) .lt. abs(cin(i))+1.e-10 ) then … … 244 255 birth_number = n2(i)*exp(-s_trig/s2(i)) 245 256 birth_rate(i) = birth_number/(tau_trig(i)*cell_area(i)) 246 proba_notrig(i)= exp(-birth_number*dtime/tau_trig(i))257 proba_notrig(i)=proba_notrig(i)*exp(-birth_number*dtime/tau_trig(i)) 247 258 Alp_bl(i) = Alp_bl(i)* & 248 259 umexp(-birth_number*cv_feed_area/cell_area(i))/ & … … 250 261 tau_trig(i)*cv_feed_area/(dtime*cell_area(i)) 251 262 else 252 proba_notrig(i)=1.263 !!jyg proba_notrig(i)=1. 253 264 random_notrig(i)=0. 254 265 alp_bl(i)=0. -
LMDZ5/branches/testing/libf/phylmd/calwake.F90
r2720 r2787 26 26 27 27 USE dimphy 28 USE phys_state_var_mod, ONLY: pctsrf 29 USE indice_sol_mod, ONLY: is_oce 30 USE print_control_mod, ONLY: mydebug=>debug , lunout, prt_level 28 31 IMPLICIT NONE 29 32 ! ====================================================================== … … 51 54 ! ------ 52 55 REAL, DIMENSION(klon, klev), INTENT (OUT) :: dt_wake, dq_wake 53 INTEGER, DIMENSION(klon),INTENT (OUT) :: wake_k56 REAL, DIMENSION(klon), INTENT (OUT) :: wake_k 54 57 REAL, DIMENSION(klon, klev), INTENT (OUT) :: wake_d_deltat_gw 55 58 REAL, DIMENSION(klon), INTENT (OUT) :: wake_h … … 69 72 ! ----------------- 70 73 INTEGER :: i, l 74 INTEGER, DIMENSION(klon) :: znatsurf ! 0 if pctsrf(is_oce)>0.1; 1 else. 71 75 REAL :: aire 72 76 REAL, DIMENSION(klon, klev) :: p, pi … … 97 101 98 102 99 ! print *, '-> calwake, wake_s ', wake_s(1) 103 IF (prt_level >= 10) THEN 104 print *, '-> calwake, wake_s input ', wake_s(1) 105 ENDIF 100 106 101 107 rdcp = 1./3.5 108 109 znatsurf(:) = 0 110 DO i = 1,klon 111 IF (pctsrf(i,is_oce) < 0.1) znatsurf(i) = 1 112 ENDDO 102 113 103 114 … … 124 135 END DO 125 136 137 !---------------------------------------------------------------- 138 ! Initialize tendencies to zero 139 !---------------------------------------------------------------- 140 dtls(:,:) = 0. 141 dqls(:,:) = 0. 142 d_deltat_gw(:,:) = 0. 143 d_deltatw(:,:) = 0. 144 d_deltaqw(:,:) = 0. 145 d_sigmaw(:) = 0. 146 d_wdens(:) = 0. 147 ! 148 126 149 DO i = 1, klon 127 150 sigd0(i) = sigd(i) … … 132 155 END DO 133 156 134 DO i = 1, klon 135 ktopw(i) = wake_k(i) 136 END DO 157 !!jyg! DO i = 1, klon 158 !!jyg! ktopw(i) = NINT(wake_k(i)) 159 !!jyg! END DO 137 160 138 161 DO i = 1, klon … … 178 201 END DO 179 202 180 CALL wake( p, ph, pi, dtime, &203 CALL wake(znatsurf, p, ph, pi, dtime, & 181 204 te, qe, omgbe, & 182 205 dtdwn, dqdwn, amdwn, amup, dta, dqa, & … … 254 277 END IF 255 278 END DO 279 ! 256 280 257 281 !jyg< -
LMDZ5/branches/testing/libf/phylmd/cdrag.F90
-
Property
svn:keywords
set to
Id
r2488 r2787 1 1 ! 2 !$Id : cdrag.F90 ???? 2015-??-?? ??:??:??Z ?$2 !$Id$ 3 3 ! 4 4 SUBROUTINE cdrag( knon, nsrf, & … … 9 9 USE dimphy 10 10 USE indice_sol_mod 11 USE print_control_mod, ONLY: lunout 11 USE print_control_mod, ONLY: lunout, prt_level 12 12 IMPLICIT NONE 13 13 ! ================================================================= c … … 139 139 IF (qsurf(i).LT.0.0) ng_qsurf = ng_qsurf + 1 140 140 ENDDO 141 IF (ng_q1.GT.0 ) THEN141 IF (ng_q1.GT.0 .and. prt_level > 5) THEN 142 142 WRITE(lunout,*)" *** Warning: Negative q1(humidity at 1st level) values in cdrag.F90 !" 143 143 WRITE(lunout,*)" The total number of the grids is: ", ng_q1 … … 146 146 ! CALL abort_physic(modname,abort_message,1) 147 147 ENDIF 148 IF (ng_qsurf.GT.0 ) THEN148 IF (ng_qsurf.GT.0 .and. prt_level > 5) THEN 149 149 WRITE(lunout,*)" *** Warning: Negative qsurf(humidity at surface) values in cdrag.F90 !" 150 150 WRITE(lunout,*)" The total number of the grids is: ", ng_qsurf … … 172 172 ! the negative qsurf and q1 are set to zero (as in coefcdrag) 173 173 ztsolv = tsurf(i) * (1.0+RETV*max(qsurf(i),0.0)) ! negative qsurf set to zero 174 ztvd = (t1(i)+zgeop1(i)/RCPD/(1.+RVTMP2* q1(i))) &174 ztvd = (t1(i)+zgeop1(i)/RCPD/(1.+RVTMP2*max(q1(i),0.0))) & 175 175 *(1.+RETV*max(q1(i),0.0)) ! negative q1 set to zero 176 176 zri(i) = zgeop1(i)*(ztvd-ztsolv)/(zdu2*ztvd) -
Property
svn:keywords
set to
-
LMDZ5/branches/testing/libf/phylmd/clesphys.h
r2720 r2787 13 13 LOGICAL ok_limitvrai 14 14 LOGICAL ok_all_xml 15 INTEGER nbapp_rad, iflag_con, nbapp_cv, iflag_ener_conserv15 INTEGER nbapp_rad, iflag_con, nbapp_cv, nbapp_wk, iflag_ener_conserv 16 16 REAL co2_ppm, co2_ppm0, solaire 17 17 LOGICAL ok_suntime_rrtm … … 114 114 & , cycle_diurne, soil_model, new_oliq & 115 115 & , ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad & 116 & , iflag_con, nbapp_cv 116 & , iflag_con, nbapp_cv, nbapp_wk & 117 117 & , iflag_ener_conserv & 118 118 & , ok_4xCO2atm & -
LMDZ5/branches/testing/libf/phylmd/conf_phys_m.F90
r2720 r2787 17 17 iflag_cld_th, & 18 18 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 19 ok_ade, ok_aie, ok_ cdnc, aerosol_couple, &19 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, & 20 20 flag_aerosol, flag_aerosol_strat, new_aod, & 21 21 flag_bc_internal_mixture, bl95_b0, bl95_b1,& … … 61 61 ! ok_instan: sorties instantanees 62 62 ! ok_ade, ok_aie: apply or not aerosol direct and indirect effects 63 ! ok_alw: activate aerosol LW effect 63 64 ! ok_cdnc, ok cloud droplet number concentration 64 65 ! flag_aerosol_strat : flag pour les aerosols stratos … … 74 75 LOGICAL :: ok_LES 75 76 LOGICAL :: callstats 76 LOGICAL :: ok_ade, ok_aie, ok_ cdnc, aerosol_couple77 LOGICAL :: ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple 77 78 INTEGER :: flag_aerosol 78 79 INTEGER :: flag_aerosol_strat … … 93 94 LOGICAL, SAVE :: ok_LES_omp 94 95 LOGICAL, SAVE :: callstats_omp 95 LOGICAL, SAVE :: ok_ade_omp, ok_aie_omp, ok_ cdnc_omp, aerosol_couple_omp96 LOGICAL, SAVE :: ok_ade_omp, ok_aie_omp, ok_alw_omp, ok_cdnc_omp, aerosol_couple_omp 96 97 INTEGER, SAVE :: flag_aerosol_omp 97 98 INTEGER, SAVE :: flag_aerosol_strat_omp … … 207 208 LOGICAL,SAVE :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp 208 209 INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp 209 INTEGER, SAVE :: nbapp_cv_omp 210 INTEGER, SAVE :: nbapp_cv_omp, nbapp_wk_omp 210 211 INTEGER, SAVE :: iflag_ener_conserv_omp 211 212 LOGICAL, SAVE :: ok_conserv_q_omp … … 348 349 CALL getin('ok_ade', ok_ade_omp) 349 350 351 !Config Key = ok_alw 352 !Config Desc = Aerosol longwave effect or not? 353 !Config Def = .FALSE. 354 !Config Help = Used in radlwsw.F 355 ! 356 ok_alw_omp = .FALSE. 357 CALL getin('ok_alw', ok_alw_omp) 358 350 359 ! 351 360 !Config Key = ok_aie … … 389 398 flag_aerosol_omp = 0 390 399 CALL getin('flag_aerosol',flag_aerosol_omp) 391 !392 !Config Key = flag_aerosol_strat393 !Config Desc = use stratospheric aerosols 0, 1, 2394 ! - 0 = no stratospheric aerosols395 ! - 1 = stratospheric aerosols scaled from 550 nm AOD396 ! - 2 = stratospheric aerosol properties from CMIP6397 !Config Def = 0398 !Config Help = Used in physiq.F399 !400 !401 flag_aerosol_strat_omp = 0402 CALL getin('flag_aerosol_strat',flag_aerosol_strat_omp)403 400 404 401 ! … … 547 544 solaire_omp = 1365. 548 545 CALL getin('solaire', solaire_omp) 549 !550 !Config Key = ok_sun_time551 !Config Desc = oui ou non variabilite solaire552 !Config Def = .FALSE.553 !Config Help =554 !555 !556 !valeur AMIP II557 ok_suntime_rrtm_omp = .FALSE.558 CALL getin('ok_suntime_rrtm',ok_suntime_rrtm_omp)559 546 ! 560 547 !Config Key = co2_ppm … … 790 777 CALL getin('nbapp_cv',nbapp_cv_omp) 791 778 779 !Config Key = nbapp_wk 780 !Config Desc = Frequence d'appel aux wakes 781 !Config Def = 0 782 !Config Help = Nombre d'appels des routines de wakes 783 !Config par jour. Si =0, appel a chaque pas de temps physique. 784 nbapp_wk_omp = 0 785 CALL getin('nbapp_wk',nbapp_wk_omp) 786 792 787 !Config Key = iflag_ener_conserv 793 788 !Config Desc = Flag de convection … … 989 984 CALL getin('ok_chlorophyll',ok_chlorophyll_omp) 990 985 !albedo SB <<< 986 ! 987 !Config Key = ok_sun_time 988 !Config Desc = oui ou non variabilite solaire 989 !Config Def = .FALSE. 990 !Config Help = 991 ! 992 ! 993 !valeur AMIP II 994 ok_suntime_rrtm_omp = .FALSE. 995 IF (iflag_rrtm_omp==1) THEN 996 CALL getin('ok_suntime_rrtm',ok_suntime_rrtm_omp) 997 ENDIF 998 ! 999 !Config Key = flag_aerosol_strat 1000 !Config Desc = use stratospheric aerosols 0, 1, 2 1001 ! - 0 = no stratospheric aerosols 1002 ! - 1 = stratospheric aerosols scaled from 550 nm AOD 1003 ! - 2 = stratospheric aerosol properties from CMIP6 1004 !Config Def = 0 1005 !Config Help = Used in physiq.F 1006 ! 1007 ! 1008 flag_aerosol_strat_omp = 0 1009 IF (iflag_rrtm_omp==1) THEN 1010 CALL getin('flag_aerosol_strat',flag_aerosol_strat_omp) 1011 ENDIF 991 1012 992 1013 ! … … 2066 2087 iflag_con = iflag_con_omp 2067 2088 nbapp_cv = nbapp_cv_omp 2089 nbapp_wk = nbapp_wk_omp 2068 2090 iflag_ener_conserv = iflag_ener_conserv_omp 2069 2091 ok_conserv_q = ok_conserv_q_omp … … 2152 2174 ok_ade = ok_ade_omp 2153 2175 ok_aie = ok_aie_omp 2176 ok_alw = ok_alw_omp 2154 2177 ok_cdnc = ok_cdnc_omp 2155 2178 aerosol_couple = aerosol_couple_omp … … 2400 2423 write(lunout,*)'iflag_con=',iflag_con 2401 2424 write(lunout,*)'nbapp_cv=',nbapp_cv 2425 write(lunout,*)'nbapp_wk=',nbapp_wk 2402 2426 write(lunout,*)'iflag_ener_conserv=',iflag_ener_conserv 2403 2427 write(lunout,*)'ok_conserv_q=',ok_conserv_q … … 2458 2482 write(lunout,*)' ok_ade = ',ok_ade 2459 2483 write(lunout,*)' ok_aie = ',ok_aie 2484 write(lunout,*)' ok_alw = ',ok_alw 2460 2485 write(lunout,*)' aerosol_couple = ', aerosol_couple 2461 2486 write(lunout,*)' flag_aerosol = ', flag_aerosol -
LMDZ5/branches/testing/libf/phylmd/cosp/cosp_output_write_mod.F90
r2720 r2787 370 370 modis%Optical_Thickness_vs_Cloud_Top_Pressure(:,icl,:),nvertisccp,icl) 371 371 enddo 372 endif373 372 374 373 where(modis%Optical_Thickness_vs_ReffIce == R_UNDEF) & … … 384 383 modis%Optical_Thickness_vs_ReffLiq(:,icl,:),nvertReffLiq,icl) 385 384 enddo 385 endif 386 386 387 387 IF(.NOT.cosp_varsdefined) THEN -
LMDZ5/branches/testing/libf/phylmd/cv3_routines.F90
r2720 r2787 83 83 84 84 ! Var interm pour le getin 85 cv_flag_feed=1 86 CALL getin_p('cv_flag_feed',cv_flag_feed) 87 T_top_max = 1000. 88 CALL getin_p('t_top_max',T_top_max) 85 89 dpbase=-40. 86 90 CALL getin_p('dpbase',dpbase) … … 117 121 CALL getin_p('tlcrit',tlcrit) 118 122 123 WRITE (*, *) 't_top_max=', t_top_max 119 124 WRITE (*, *) 'dpbase=', dpbase 120 125 WRITE (*, *) 'pbcrit=', pbcrit … … 453 458 END DO 454 459 END DO ! iter 460 455 461 DO i = 1, len 456 462 p2feed(i) = pfeed(i) … … 467 473 ! --- are reasonable 468 474 ! ------------------------------------------------------------------- 469 DO i = 1, len 470 IF (((tnk(i)<250.0) .OR. (qnk(i)<=0.0)) .AND. (iflag(i)==0)) iflag(i) = 7 471 END DO 475 IF (cv_flag_feed == 1) THEN 476 DO i = 1, len 477 IF (((tnk(i)<250.0) .OR. & 478 (qnk(i)<=0.0)) .AND. & 479 (iflag(i)==0)) iflag(i) = 7 480 END DO 481 ELSEIF (cv_flag_feed >= 2) THEN 482 ! --- and demand that LCL be high enough 483 DO i = 1, len 484 IF (((tnk(i)<250.0) .OR. & 485 (qnk(i)<=0.0) .OR. & 486 (plcl(i)>min(0.99*ph(i,1),ph(i,3)))) .AND. & 487 (iflag(i)==0)) iflag(i) = 7 488 END DO 489 ENDIF 472 490 473 491 ! ------------------------------------------------------------------- … … 1056 1074 END SUBROUTINE icefrac 1057 1075 1058 SUBROUTINE cv3_undilute2(nloc, ncum, nd, i cb, icbs, nk, &1076 SUBROUTINE cv3_undilute2(nloc, ncum, nd, iflag, icb, icbs, nk, & 1059 1077 tnk, qnk, gznk, hnk, t, q, qs, gz, & 1060 1078 p, ph, h, tv, lv, lf, pbase, buoybase, plcl, & … … 1101 1119 REAL, DIMENSION (nloc, nd), INTENT (INOUT) :: tp, tvp, clw ! Input for k = 1, icb+1 (computed in cv3_undilute1) 1102 1120 ! Output above 1121 INTEGER, DIMENSION (nloc), INTENT (INOUT) :: iflag 1103 1122 1104 1123 !outputs: … … 1579 1598 ! ori frac(i)=max(frac(i),0.0) 1580 1599 ! ori 540 continue 1600 1601 ! -------------------------------------------------------------------- 1602 ! Prevent convection when top is too hot 1603 ! -------------------------------------------------------------------- 1604 DO i = 1,ncum 1605 IF (t(i,inb(i)) > T_top_max) iflag(i) = 10 1606 ENDDO 1581 1607 1582 1608 ! ===================================================================== … … 2820 2846 END IF !(amp2.gt.(0.1*amfac)) 2821 2847 2822 ! *** limit magnitude of mp(i) to meet cfl condition *** 2823 2824 ampmax = 2.0*(ph(il,i)-ph(il,i+1))*delti 2825 amp2 = 2.0*(ph(il,i-1)-ph(il,i))*delti 2826 ampmax = min(ampmax, amp2) 2827 mp(il, i) = min(mp(il,i), ampmax) 2848 !jyg< This part shifted 10 lines farther 2849 !!! *** limit magnitude of mp(i) to meet cfl condition *** 2850 !! 2851 !! ampmax = 2.0*(ph(il,i)-ph(il,i+1))*delti 2852 !! amp2 = 2.0*(ph(il,i-1)-ph(il,i))*delti 2853 !! ampmax = min(ampmax, amp2) 2854 !! mp(il, i) = min(mp(il,i), ampmax) 2855 !>jyg 2828 2856 2829 2857 ! *** force mp to decrease linearly to zero *** … … 2837 2865 mp(il, i) = mp(il, i)*(ph(il,1)-ph(il,i))/(ph(il,1)-0.9*plcl(il)) 2838 2866 END IF 2867 2868 !jyg< Shifted part 2869 ! *** limit magnitude of mp(i) to meet cfl condition *** 2870 2871 ampmax = 2.0*(ph(il,i)-ph(il,i+1))*delti 2872 amp2 = 2.0*(ph(il,i-1)-ph(il,i))*delti 2873 ampmax = min(ampmax, amp2) 2874 mp(il, i) = min(mp(il,i), ampmax) 2875 !>jyg 2839 2876 2840 2877 END IF ! (i.le.inb(il) .and. lwork(il) .and. i.ne.1) -
LMDZ5/branches/testing/libf/phylmd/cv3param.h
r2542 r2787 11 11 logical ok_intermittent 12 12 integer noff, minorig, nl, nlp, nlm 13 integer cv_flag_feed 14 integer flag_epKEorig,flag_wb 13 15 real sigdz, spfac 14 integer flag_epKEorig,flag_wb15 16 real pbcrit, ptcrit 16 17 real elcrit, tlcrit … … 19 20 real dtovsh, dpbase, dttrig 20 21 real dtcrit, tau, beta, alpha, alpha1 22 real T_top_max 21 23 real tau_stop, noconv_stop 22 24 real wbmax … … 31 33 ,dtovsh, dpbase, dttrig & 32 34 ,dtcrit, tau, beta, alpha, alpha1 & 35 ,T_top_max & 33 36 ,tau_stop, noconv_stop & 34 37 ,wbmax & 35 38 ,delta, betad & 36 39 ,flag_epKEorig & 37 ,flag_wb &40 ,flag_wb, cv_flag_feed & 38 41 ,noff, minorig, nl, nlp, nlm & 39 42 ,ok_convstop, ok_intermittent & -
LMDZ5/branches/testing/libf/phylmd/cva_driver.F90
r2669 r2787 353 353 ! 9 No moist convection: cloud base is higher 354 354 ! then the level NL-1. 355 ! 10 No moist convection: cloud top is too warm. 356 ! 355 357 356 358 ! ft: Array of temperature tendency (K/s) of dimension ND, defined at same … … 907 909 if (prt_level >= 9) & 908 910 PRINT *, 'cva_driver -> cv3_undilute2' 909 CALL cv3_undilute2(nloc, ncum, nd, i cb, icbs, nk, &!na->nd911 CALL cv3_undilute2(nloc, ncum, nd, iflag, icb, icbs, nk, & !na->nd 910 912 tnk, qnk, gznk, hnk, t, q, qs, gz, & 911 913 p, ph, h, tv, lv, lf, pbase, buoybase, plcl, & -
LMDZ5/branches/testing/libf/phylmd/dyn1d/mod_1D_cases_read2.F90
r2720 r2787 178 178 179 179 print*,'Allocations OK' 180 call read_cas (nid,nlev_cas,nt_cas &180 call read_cas2(nid,nlev_cas,nt_cas & 181 181 & ,z_cas,plev_cas,t_cas,q_cas,rh_cas,th_cas,rv_cas,u_cas,v_cas & 182 182 & ,ug_cas,vg_cas,vitw_cas,du_cas,hu_cas,vu_cas,dv_cas,hv_cas,vv_cas & … … 241 241 allocate(z_cas(nlev_cas,nt_cas),zh_cas(nlev_cas+1)) 242 242 allocate(ap_cas(nlev_cas+1),bp_cas(nt_cas+1)) 243 allocate(t_cas(nlev_cas,nt_cas),q_cas(nlev_cas,nt_cas),qv_cas(nlev_cas,nt_cas),ql_cas(nlev_cas,nt_cas),qi_cas(nlev_cas,nt_cas),rh_cas(nlev_cas,nt_cas)) 243 allocate(t_cas(nlev_cas,nt_cas),q_cas(nlev_cas,nt_cas),qv_cas(nlev_cas,nt_cas),ql_cas(nlev_cas,nt_cas), & 244 qi_cas(nlev_cas,nt_cas),rh_cas(nlev_cas,nt_cas)) 244 245 allocate(th_cas(nlev_cas,nt_cas),thl_cas(nlev_cas,nt_cas),thv_cas(nlev_cas,nt_cas),rv_cas(nlev_cas,nt_cas)) 245 246 allocate(u_cas(nlev_cas,nt_cas),v_cas(nlev_cas,nt_cas),vitw_cas(nlev_cas,nt_cas),omega_cas(nlev_cas,nt_cas)) … … 382 383 END MODULE mod_1D_cases_read2 383 384 !===================================================================== 384 subroutine read_cas (nid,nlevel,ntime &385 subroutine read_cas2(nid,nlevel,ntime & 385 386 & ,zz,pp,temp,qv,rh,theta,rv,u,v,ug,vg,w, & 386 387 & du,hu,vu,dv,hv,vv,dt,dtrad,ht,vt,dq,hq,vq, & … … 423 424 424 425 do i=1,nbvar3d 425 print *,'Dans read_cas , on va lire ',nid,i,name_var(i)426 print *,'Dans read_cas2, on va lire ',nid,i,name_var(i) 426 427 enddo 427 428 do i=1,nbvar3d … … 433 434 enddo 434 435 do i=1,nbvar3d 435 print *,'Dans read_cas , on va lire ',var3didin(i),name_var(i)436 print *,'Dans read_cas2, on va lire ',var3didin(i),name_var(i) 436 437 if(i.LE.35) then 437 438 #ifdef NC_DOUBLE … … 440 441 ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul) 441 442 #endif 442 print *,'Dans read_cas , on a lu ',ierr,var3didin(i),name_var(i)443 print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i) 443 444 if(ierr/=NF_NOERR) then 444 445 print *,'Pb a la lecture de cas.nc: ',name_var(i) … … 451 452 ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul1) 452 453 #endif 453 print *,'Dans read_cas , on a lu ',ierr,var3didin(i),name_var(i)454 print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i) 454 455 if(ierr/=NF_NOERR) then 455 456 print *,'Pb a la lecture de cas.nc: ',name_var(i) … … 501 502 502 503 return 503 end subroutine read_cas 504 end subroutine read_cas2 504 505 !====================================================================== 505 506 subroutine read2_cas(nid,nlevel,ntime, & … … 545 546 data name_var/'coor_par_a','coor_par_b','height_h','pressure_h',& 546 547 &'w','omega','ug','vg','uadv','uadvh','uadvv','vadv','vadvh','vadvv','tadv','tadvh','tadvv',& 547 &'qadv','qadvh','qadvv','thadv','thadvh','thadvv','thladvh','radv','radvh','radvv','radcool','q1','q2','ustress','vstress','rh',& 548 &'qadv','qadvh','qadvv','thadv','thadvh','thadvv','thladvh','radv','radvh','radvv','radcool','q1','q2','ustress','vstress', & 549 'rh',& 548 550 &'height_f','pressure_f','temp','theta','thv','thl','qv','ql','qi','rv','u','v',& 549 551 &'sfc_sens_flx','sfc_lat_flx','ts','ps','ustar','tke',& … … 686 688 end subroutine read2_cas 687 689 !====================================================================== 688 SUBROUTINE interp_case_time (day,day1,annee_ref &690 SUBROUTINE interp_case_time2(day,day1,annee_ref & 689 691 ! & ,year_cas,day_cas,nt_cas,pdt_forc,nlev_cas & 690 692 & ,nt_cas,nlev_cas & … … 887 889 888 890 return 889 END SUBROUTINE interp_case_time 891 END SUBROUTINE interp_case_time2 890 892 891 893 !********************************************************************************************** -
LMDZ5/branches/testing/libf/phylmd/iophys.F90
r2669 r2787 1 1 subroutine iophys_ecrit(nom,lllm,titre,unite,px) 2 USE dimphy 3 USE mod_phys_lmdz_para 4 USE mod_grid_phy_lmdz 2 3 USE mod_phys_lmdz_para, ONLY: klon_omp, is_mpi_root 4 USE mod_phys_lmdz_transfert_para, ONLY: gather 5 USE mod_grid_phy_lmdz, ONLY: klon_glo, nbp_lon, nbp_lat, grid1dto2d_glo 5 6 IMPLICIT NONE 6 7 … … 39 40 !================================================================= 40 41 41 #include "dimensions.h"42 #include "paramet.h"43 #include "netcdf.inc"44 #include "iotd.h"45 46 42 47 43 ! Arguments on input: … … 52 48 real px(klon_omp,lllm) 53 49 real xglo(klon_glo,lllm) 54 real zx( iim,jjp1,lllm)50 real zx(nbp_lon,nbp_lat,lllm) 55 51 56 52 … … 68 64 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 69 65 SUBROUTINE iophys_ini 70 USE mod_phys_lmdz_para 66 USE mod_phys_lmdz_para, ONLY: is_mpi_root 71 67 USE vertical_layers_mod, ONLY: presnivs 72 68 USE regular_lonlat_mod, ONLY: lon_reg, lat_reg -
LMDZ5/branches/testing/libf/phylmd/limit_read_mod.F90
r2720 r2787 190 190 !**************************************************************************************** 191 191 IF (first_call) THEN 192 first_call=.FALSE. 192 193 ! calculate number of time steps for one day 193 194 lmt_pas = NINT(86400./dtime * 1.0) … … 204 205 END IF 205 206 206 first_call=.FALSE.207 ENDIF208 209 !****************************************************************************************210 ! 1) Open the file limit.nc if it is the right moment to read, once a day.211 ! The file is read only by the master thread of the master mpi process(is_mpi_root)212 ! Check by the way if the number of records is correct.213 !214 !****************************************************************************************215 216 is_modified = .FALSE.217 IF (MOD(itime-1, lmt_pas) == 0 .OR. jour_lu /= jour ) THEN ! time to read218 jour_lu = jour219 is_modified = .TRUE.220 207 !$OMP MASTER ! Only master thread 221 208 IF (is_mpi_root) THEN ! Only master processus 222 223 209 ierr = NF90_OPEN ('limit.nc', NF90_NOWRITE, nid) 224 210 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,& … … 237 223 ierr=NF90_INQUIRE(nid, UnlimitedDimID=ndimid) 238 224 ierr=NF90_INQUIRE_DIMENSION(nid, ndimid, len=nn) 239 CALL num2str(nn,str) 240 abort_message='limit.nc records number ('//TRIM(str)//') does'//& 241 ' not match year length (' 242 CALL num2str(year_len,str) 243 abort_message=TRIM(abort_message)//TRIM(str)//')' 225 WRITE(abort_message,'(a,2(i0,a))')'limit.nc records number (',nn,') does no'//& 226 't match year length (',year_len,')' 244 227 IF(nn/=year_len) CALL abort_physic(modname,abort_message,1) 245 228 … … 247 230 ierr=NF90_INQ_DIMID(nid, 'points_physiques', ndimid) 248 231 ierr=NF90_INQUIRE_DIMENSION(nid, ndimid, len=nn) 249 CALL num2str(nn,str) 250 abort_message='limit.nc horizontal number of cells ('//TRIM(str)//') does'//& 251 ' not match LMDZ klon_glo (' 252 CALL num2str(klon_glo,str) 253 abort_message=TRIM(abort_message)//TRIM(str)//')' 232 WRITE(abort_message,'(a,2(i0,a))')'limit.nc horizontal number of cells (',nn, & 233 ') does not match LMDZ klon_glo (',klon_glo,')' 254 234 IF(nn/=klon_glo) CALL abort_physic(modname,abort_message,1) 235 236 ierr = NF90_CLOSE(nid) 237 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Pb when closing file', 1) 238 END IF ! is_mpi_root 239 !$OMP END MASTER 240 !$OMP BARRIER 241 END IF 242 243 !**************************************************************************************** 244 ! 1) Open the file limit.nc if it is the right moment to read, once a day. 245 ! The file is read only by the master thread of the master mpi process(is_mpi_root) 246 ! Check by the way if the number of records is correct. 247 ! 248 !**************************************************************************************** 249 250 is_modified = .FALSE. 251 IF (MOD(itime-1, lmt_pas) == 0 .OR. jour_lu /= jour ) THEN ! time to read 252 jour_lu = jour 253 is_modified = .TRUE. 254 !$OMP MASTER ! Only master thread 255 IF (is_mpi_root) THEN ! Only master processus 256 257 ierr = NF90_OPEN ('limit.nc', NF90_NOWRITE, nid) 258 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,& 259 'Pb d''ouverture du fichier de conditions aux limites',1) 255 260 256 261 ! La tranche de donnees a lire: … … 370 375 END SUBROUTINE limit_read_tot 371 376 372 !--------------------------------------------------------------------------------------373 SUBROUTINE num2str(n,str)374 !--------------------------------------------------------------------------------------375 ! Arguments:376 INTEGER, INTENT(IN) :: n377 CHARACTER(LEN=99), INTENT(OUT) :: str378 !--------------------------------------------------------------------------------------379 ! Local variables:380 INTEGER :: nn381 !--------------------------------------------------------------------------------------382 nn=n; str=''; DO WHILE(nn>0); str=CHAR(nn-10*(nn/10)-48)//TRIM(str); nn=nn/10; END DO383 END SUBROUTINE num2str384 !--------------------------------------------------------------------------------------385 386 377 END MODULE limit_read_mod -
LMDZ5/branches/testing/libf/phylmd/ocean_albedo.F90
r2720 r2787 203 203 ! Use Morel 91 formula to compute the diffuse 204 204 ! reflectance below the surface 205 ZR00(1:knon)=(0.5*ZBW+ZBBP(1:knon))/(ZAW+ZAP(1:knon))*(0.6279-0.2227*ZHB(1:knon)-0.0513*ZHB(1:knon)**2 + (-0.3119+0.2465*ZHB(1:knon))*ZUE) 205 ZR00(1:knon) = (0.5*ZBW+ZBBP(1:knon)) / (ZAW+ZAP(1:knon)) & 206 * (0.6279-0.2227*ZHB(1:knon)-0.0513*ZHB(1:knon)**2 & 207 + (-0.3119+0.2465*ZHB(1:knon))*ZUE) 206 208 ZRWDF(1:knon)=ZR00(1:knon)*(1.-ZR22(1:knon))*(1.-ZR11DF(1:knon))/(1.-ZR00(1:knon)*ZR22(1:knon)) 207 209 -
LMDZ5/branches/testing/libf/phylmd/phys_local_var_mod.F90
r2720 r2787 255 255 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: ale_wake, alp_wake 256 256 !$OMP THREADPRIVATE(ale_wake, alp_wake) 257 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wake_h 258 !$OMP THREADPRIVATE(wake_h )257 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wake_h,wake_k 258 !$OMP THREADPRIVATE(wake_h,wake_k) 259 259 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wake_omg 260 260 !$OMP THREADPRIVATE(wake_omg) … … 419 419 420 420 #ifdef CPP_StratAer 421 ! variables for strat. aerosol CK 421 ! 422 ! variables for stratospheric aerosol 422 423 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: R2SO4 423 424 !$OMP THREADPRIVATE(R2SO4) … … 426 427 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: f_r_wet 427 428 !$OMP THREADPRIVATE(f_r_wet) 428 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sfluxaer429 !$OMP THREADPRIVATE(sfluxaer)430 429 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: decfluxaer 431 430 !$OMP THREADPRIVATE(decfluxaer) 432 431 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: mdw 433 432 !$OMP THREADPRIVATE(mdw) 434 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sulf_convert435 !$OMP THREADPRIVATE(sulf_convert)436 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sulf_nucl437 !$OMP THREADPRIVATE(sulf_nucl)438 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sulf_cond_evap439 !$OMP THREADPRIVATE(sulf_cond_evap)440 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ocs_convert441 !$OMP THREADPRIVATE(ocs_convert)442 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: SO2_backgr_tend443 !$OMP THREADPRIVATE(SO2_backgr_tend)444 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: OCS_backgr_tend445 !$OMP THREADPRIVATE(OCS_backgr_tend)446 433 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: OCS_lifetime 447 434 !$OMP THREADPRIVATE(OCS_lifetime) … … 456 443 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_550 457 444 !$OMP THREADPRIVATE(tau_strat_550) 458 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_550_lay459 !$OMP THREADPRIVATE(tau_strat_550_lay)460 445 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_1020 461 446 !$OMP THREADPRIVATE(tau_strat_1020) 462 447 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tausum_strat 463 448 !$OMP THREADPRIVATE(tausum_strat) 464 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sulf_dep_dry465 !$OMP THREADPRIVATE(sulf_dep_dry)466 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sulf_dep_wet467 !$OMP THREADPRIVATE(sulf_dep_wet)468 449 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: surf_PM25_sulf 469 450 !$OMP THREADPRIVATE(surf_PM25_sulf) … … 472 453 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vsed_aer 473 454 !$OMP THREADPRIVATE(vsed_aer) 455 ! 456 !---3D budget variables 457 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_nucl 458 !$OMP THREADPRIVATE(budg_3D_nucl) 459 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_cond_evap 460 !$OMP THREADPRIVATE(budg_3D_cond_evap) 461 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_ocs_to_so2 462 !$OMP THREADPRIVATE(budg_3D_ocs_to_so2) 463 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_so2_to_h2so4 464 !$OMP THREADPRIVATE(budg_3D_so2_to_h2so4) 465 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_backgr_ocs 466 !$OMP THREADPRIVATE(budg_3D_backgr_ocs) 467 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: budg_3D_backgr_so2 468 !$OMP THREADPRIVATE(budg_3D_backgr_so2) 469 ! 470 !---2D budget variables 471 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_h2so4 472 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_dry_part 473 !$OMP THREADPRIVATE(budg_dep_dry_h2so4,budg_dep_dry_part) 474 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_h2so4 475 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_dep_wet_part 476 !$OMP THREADPRIVATE(budg_dep_wet_h2so4,budg_dep_wet_part) 477 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_ocs 478 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_so2 479 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_h2so4 480 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_emi_part 481 !$OMP THREADPRIVATE(budg_emi_ocs,budg_emi_so2,budg_emi_h2so4,budg_emi_part) 482 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_ocs_to_so2 483 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_so2_to_h2so4 484 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_h2so4_to_part 485 !$OMP THREADPRIVATE(budg_ocs_to_so2,budg_so2_to_h2so4,budg_h2so4_to_part) 486 REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: budg_sed_part 487 !$OMP THREADPRIVATE(budg_sed_part) 474 488 #endif 475 489 … … 614 628 !! Wake variables 615 629 ALLOCATE(ale_wake(klon), alp_wake(klon)) 616 ALLOCATE(wake_h(klon) )630 ALLOCATE(wake_h(klon),wake_k(klon)) 617 631 ALLOCATE(wake_omg(klon, klev)) 618 632 ALLOCATE(d_deltat_wk(klon, klev), d_deltaq_wk(klon, klev)) … … 718 732 ALLOCATE (DENSO4(klon,klev)) 719 733 ALLOCATE (f_r_wet(klon,klev)) 720 ALLOCATE (sfluxaer(klon))721 734 ALLOCATE (decfluxaer(klon,nbtr)) 722 735 ALLOCATE (mdw(nbtr)) 723 ALLOCATE ( sulf_convert(klon,klev))724 ALLOCATE ( sulf_nucl(klon,klev))725 ALLOCATE ( sulf_cond_evap(klon,klev))726 ALLOCATE ( ocs_convert(klon,klev))727 ALLOCATE ( SO2_backgr_tend(klon,klev))728 ALLOCATE ( OCS_backgr_tend(klon,klev))736 ALLOCATE (budg_3D_nucl(klon,klev)) 737 ALLOCATE (budg_3D_cond_evap(klon,klev)) 738 ALLOCATE (budg_3D_ocs_to_so2(klon,klev)) 739 ALLOCATE (budg_3D_so2_to_h2so4(klon,klev)) 740 ALLOCATE (budg_3D_backgr_ocs(klon,klev)) 741 ALLOCATE (budg_3D_backgr_so2(klon,klev)) 729 742 ALLOCATE (OCS_lifetime(klon,klev)) 730 743 ALLOCATE (SO2_lifetime(klon,klev)) … … 733 746 ALLOCATE (cg_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave+nwave_lw,nbtr)) 734 747 ALLOCATE (tau_strat_550(klon,klev)) 735 ALLOCATE (tau_strat_550_lay(klon,klev))736 748 ALLOCATE (tau_strat_1020(klon,klev)) 737 749 ALLOCATE (tausum_strat(klon,3)) 738 ALLOCATE (sulf_dep_dry(klon)) 739 ALLOCATE (sulf_dep_wet(klon)) 750 ALLOCATE (budg_dep_dry_h2so4(klon)) 751 ALLOCATE (budg_dep_wet_h2so4(klon)) 752 ALLOCATE (budg_dep_dry_part(klon)) 753 ALLOCATE (budg_dep_wet_part(klon)) 754 ALLOCATE (budg_emi_ocs(klon)) 755 ALLOCATE (budg_emi_so2(klon)) 756 ALLOCATE (budg_emi_h2so4(klon)) 757 ALLOCATE (budg_emi_part(klon)) 758 ALLOCATE (budg_ocs_to_so2(klon)) 759 ALLOCATE (budg_so2_to_h2so4(klon)) 760 ALLOCATE (budg_h2so4_to_part(klon)) 761 ALLOCATE (budg_sed_part(klon)) 740 762 ALLOCATE (surf_PM25_sulf(klon)) 741 763 ALLOCATE (p_tropopause(klon)) … … 867 889 ! 868 890 DEALLOCATE(ale_wake, alp_wake) 869 DEALLOCATE(wake_h )891 DEALLOCATE(wake_h,wake_k) 870 892 DEALLOCATE(wake_omg) 871 893 DEALLOCATE(d_deltat_wk, d_deltaq_wk) … … 964 986 DEALLOCATE (DENSO4) 965 987 DEALLOCATE (f_r_wet) 966 DEALLOCATE (sfluxaer)967 988 DEALLOCATE (decfluxaer) 968 989 DEALLOCATE (mdw) 969 DEALLOCATE (sulf_convert)970 DEALLOCATE (sulf_nucl)971 DEALLOCATE (sulf_cond_evap)972 DEALLOCATE (ocs_convert)973 DEALLOCATE (SO2_backgr_tend)974 DEALLOCATE (OCS_backgr_tend)975 990 DEALLOCATE (SO2_lifetime) 976 991 DEALLOCATE (OCS_lifetime) … … 979 994 DEALLOCATE (cg_bin) 980 995 DEALLOCATE (tau_strat_550) 981 DEALLOCATE (tau_strat_550_lay)982 996 DEALLOCATE (tau_strat_1020) 983 997 DEALLOCATE (tausum_strat) 984 DEALLOCATE (sulf_dep_dry)985 DEALLOCATE (sulf_dep_wet)986 998 DEALLOCATE (surf_PM25_sulf) 987 999 DEALLOCATE (p_tropopause) 988 1000 DEALLOCATE (vsed_aer) 1001 DEALLOCATE (budg_3D_ocs_to_so2) 1002 DEALLOCATE (budg_3D_so2_to_h2so4) 1003 DEALLOCATE (budg_3D_backgr_ocs) 1004 DEALLOCATE (budg_3D_backgr_so2) 1005 DEALLOCATE (budg_3D_nucl) 1006 DEALLOCATE (budg_3D_cond_evap) 1007 DEALLOCATE (budg_dep_dry_h2so4) 1008 DEALLOCATE (budg_dep_wet_h2so4) 1009 DEALLOCATE (budg_dep_dry_part) 1010 DEALLOCATE (budg_dep_wet_part) 1011 DEALLOCATE (budg_emi_ocs) 1012 DEALLOCATE (budg_emi_so2) 1013 DEALLOCATE (budg_emi_h2so4) 1014 DEALLOCATE (budg_emi_part) 1015 DEALLOCATE (budg_ocs_to_so2) 1016 DEALLOCATE (budg_so2_to_h2so4) 1017 DEALLOCATE (budg_h2so4_to_part) 1018 DEALLOCATE (budg_sed_part) 989 1019 #endif 990 1020 -
LMDZ5/branches/testing/libf/phylmd/phys_output_ctrlout_mod.F90
r2720 r2787 19 19 !!! Comosantes de la coordonnee sigma-hybride 20 20 !!! Ap et Bp 21 TYPE(ctrl_out), SAVE :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11 22 'Ap', '', '', (/ ('', i=1, 9) /))23 TYPE(ctrl_out), SAVE :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11 24 'Bp', '', '', (/ ('', i=1, 9) /))25 TYPE(ctrl_out), SAVE :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11 26 'Alt', '', '', (/ ('', i=1, 9) /))21 TYPE(ctrl_out), SAVE :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 22 'Ap', '', '', (/ ('', i=1, 10) /)) 23 TYPE(ctrl_out), SAVE :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 24 'Bp', '', '', (/ ('', i=1, 10) /)) 25 TYPE(ctrl_out), SAVE :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 26 'Alt', '', '', (/ ('', i=1, 10) /)) 27 27 28 28 !!! 1D 29 TYPE(ctrl_out), SAVE :: o_phis = ctrl_out((/ 1, 1, 10, 5, 1, 1, 11, 11, 11 30 'phis', 'Surface geop.height', 'm2/s2', (/ ('', i=1, 9) /))31 TYPE(ctrl_out), SAVE :: o_aire = ctrl_out((/ 1, 1, 10, 10, 1, 1, 11, 11, 11 29 TYPE(ctrl_out), SAVE :: o_phis = ctrl_out((/ 1, 1, 10, 5, 1, 1, 11, 11, 11, 11/), & 30 'phis', 'Surface geop.height', 'm2/s2', (/ ('', i=1, 10) /)) 31 TYPE(ctrl_out), SAVE :: o_aire = ctrl_out((/ 1, 1, 10, 10, 1, 1, 11, 11, 11, 11/), & 32 32 'aire', 'Grid area', '-', (/ 'once', 'once', 'once', 'once', 'once', 'once', & 33 34 TYPE(ctrl_out), SAVE :: o_contfracATM = ctrl_out((/ 10, 1, 1, 10, 10, 10, 11, 11, 11 33 'once', 'once', 'once', 'once' /)) 34 TYPE(ctrl_out), SAVE :: o_contfracATM = ctrl_out((/ 10, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 35 35 'contfracATM', '% sfce ter+lic', '-', & 36 (/ 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once' /))37 TYPE(ctrl_out), SAVE :: o_contfracOR = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 38 'contfracOR', '% sfce terre OR', '-', (/ ('', i=1, 9) /))39 TYPE(ctrl_out), SAVE :: o_aireTER = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 40 'aireTER', 'Grid area CONT', '-', (/ ('', i=1, 9) /))36 (/ 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once', 'once' /)) 37 TYPE(ctrl_out), SAVE :: o_contfracOR = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 38 'contfracOR', '% sfce terre OR', '-', (/ ('', i=1, 10) /)) 39 TYPE(ctrl_out), SAVE :: o_aireTER = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 40 'aireTER', 'Grid area CONT', '-', (/ ('', i=1, 10) /)) 41 41 42 42 !!! 2D … … 44 44 ! Marine 45 45 46 TYPE(ctrl_out), SAVE :: o_alt_tropo = ctrl_out((/1,1,1,1,1,10,10,10,10 /),&46 TYPE(ctrl_out), SAVE :: o_alt_tropo = ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 47 47 'alt_tropo','Tropopause pressure','hPa',& 48 48 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 49 "inst(X)", "inst(X)","inst(X)" /))50 51 TYPE(ctrl_out), SAVE :: o_map_prop_hc = ctrl_out((/1,1,1,1,1,10,10,10,10 /),&49 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 50 51 TYPE(ctrl_out), SAVE :: o_map_prop_hc = ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 52 52 'map_prop_hc','Proportion of high clouds',' ',& 53 53 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 54 "inst(X)", "inst(X)","inst(X)" /))54 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 55 55 56 56 TYPE(ctrl_out), SAVE :: o_map_prop_hist = & 57 ctrl_out((/1,1,1,1,1,1,10,10,10 /),&57 ctrl_out((/1,1,1,1,1,1,10,10,10,10/),& 58 58 'map_prop_hist','Proportion of high ice semi-transp clouds',' ',& 59 59 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 60 "inst(X)", "inst(X)","inst(X)" /))60 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 61 61 62 62 TYPE(ctrl_out), SAVE :: o_map_emis_hc = & 63 ctrl_out((/1,1,1,1,1,1,10,10,10 /),&63 ctrl_out((/1,1,1,1,1,1,10,10,10,10/),& 64 64 'map_emis_hc','Emissivity of high clouds',' ',& 65 65 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 66 "inst(X)", "inst(X)","inst(X)" /))66 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 67 67 68 68 TYPE(ctrl_out), SAVE :: o_map_iwp_hc = & 69 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&69 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 70 70 'map_iwp_hc','Ice water path of high clouds','g/m2',& 71 71 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 72 "inst(X)", "inst(X)","inst(X)" /))72 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 73 73 74 74 TYPE(ctrl_out), SAVE :: o_map_deltaz_hc = & 75 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&75 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 76 76 'map_deltaz_hc','geom thickness of high clouds','m',& 77 77 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 78 "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_pcld_hc = & 81 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&81 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 82 82 'map_pcld_hc','cloud pressure of high clouds','hPa',& 83 83 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 84 "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_tcld_hc = & 87 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&87 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 88 88 'map_tcld_hc','cloud temperature of high clouds','K',& 89 89 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 90 "inst(X)", "inst(X)","inst(X)" /)) 91 90 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 92 91 93 92 TYPE(ctrl_out), SAVE :: o_map_emis_hist = & 94 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&93 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 95 94 'map_emis_hist','Emissivity of high ice st clouds',' ',& 96 95 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 97 "inst(X)", "inst(X)","inst(X)" /))96 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 98 97 99 98 TYPE(ctrl_out), SAVE :: o_map_iwp_hist = & 100 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&99 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 101 100 'map_iwp_hist','Ice water path of high ice st clouds','g/m2',& 102 101 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 103 "inst(X)", "inst(X)","inst(X)" /))102 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 104 103 105 104 TYPE(ctrl_out), SAVE :: o_map_deltaz_hist = & 106 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&105 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 107 106 'map_deltaz_hist','geom thickness of high ice st clouds','m',& 108 107 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 109 "inst(X)", "inst(X)","inst(X)" /))108 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 110 109 111 110 TYPE(ctrl_out), SAVE :: o_map_rad_hist = & 112 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&111 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 113 112 'map_rad_hist','ice crystals radius in high ice st clouds','µm',& 114 113 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 115 "inst(X)", "inst(X)","inst(X)" /))114 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 116 115 117 116 118 117 TYPE(ctrl_out), SAVE :: o_map_emis_Cb = & 119 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&118 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 120 119 'map_emis_Cb','Emissivity of high Cb clouds',' ',& 121 120 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 122 "inst(X)", "inst(X)","inst(X)" /))121 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 123 122 124 123 TYPE(ctrl_out), SAVE :: o_map_pcld_Cb = & 125 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&124 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 126 125 'map_pcld_Cb','cloud pressure of high Cb clouds','hPa',& 127 126 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 128 "inst(X)", "inst(X)","inst(X)" /))127 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 129 128 130 129 TYPE(ctrl_out), SAVE :: o_map_tcld_Cb = & 131 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&130 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 132 131 'map_tcld_Cb','cloud temperature of high Cb clouds','K',& 133 132 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 134 "inst(X)", "inst(X)","inst(X)" /))133 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 135 134 136 135 137 136 TYPE(ctrl_out), SAVE :: o_map_emis_Anv = & 138 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&137 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 139 138 'map_emis_Anv','Emissivity of high Anv clouds',' ',& 140 139 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 141 "inst(X)", "inst(X)","inst(X)" /))140 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 142 141 143 142 TYPE(ctrl_out), SAVE :: o_map_pcld_Anv = & 144 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&143 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 145 144 'map_pcld_Anv','cloud pressure of high Anv clouds','hPa',& 146 145 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 147 "inst(X)", "inst(X)","inst(X)" /))146 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 148 147 149 148 TYPE(ctrl_out), SAVE :: o_map_tcld_Anv = & 150 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&149 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 151 150 'map_tcld_Anv','cloud temperature of high Anv clouds','K',& 152 151 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 153 "inst(X)", "inst(X)","inst(X)" /))152 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 154 153 155 154 TYPE(ctrl_out), SAVE :: o_map_emis_ThCi = & 156 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&155 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 157 156 'map_emis_ThCi','Emissivity of high ThCi clouds',' ',& 158 157 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 159 "inst(X)", "inst(X)","inst(X)" /))158 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 160 159 161 160 TYPE(ctrl_out), SAVE :: o_map_pcld_ThCi = & 162 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&161 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 163 162 'map_pcld_ThCi','cloud pressure of high ThCi clouds','hPa',& 164 163 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 165 "inst(X)", "inst(X)","inst(X)" /))164 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 166 165 167 166 TYPE(ctrl_out), SAVE :: o_map_tcld_ThCi = & 168 ctrl_out((/10,10,1,10,10,10,10,10,10 /),&167 ctrl_out((/10,10,1,10,10,10,10,10,10,10/),& 169 168 'map_tcld_ThCi','cloud temperature of high ThCi clouds','K',& 170 169 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 171 "inst(X)", "inst(X)","inst(X)" /))170 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 172 171 173 172 TYPE(ctrl_out), SAVE :: o_map_ntot = & 174 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&173 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 175 174 'map_ntot','total AIRS cloud fraction',' ',& 176 175 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 177 "inst(X)", "inst(X)","inst(X)" /))176 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 178 177 179 178 TYPE(ctrl_out), SAVE :: o_map_hc = & 180 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&179 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 181 180 'map_hc','high clouds AIRS cloud fraction',' ',& 182 181 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 183 "inst(X)", "inst(X)","inst(X)" /))182 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 184 183 185 184 TYPE(ctrl_out), SAVE :: o_map_hist = & 186 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&185 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 187 186 'map_hist','high clouds ice st AIRS cloud fraction',' ',& 188 187 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 189 "inst(X)", "inst(X)","inst(X)" /))188 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 190 189 191 190 TYPE(ctrl_out), SAVE :: o_map_Cb = & 192 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&191 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 193 192 'map_Cb','high clouds Cb AIRS cloud fraction',' ',& 194 193 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 195 "inst(X)", "inst(X)","inst(X)" /))194 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 196 195 197 196 TYPE(ctrl_out), SAVE :: o_map_ThCi = & 198 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&197 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 199 198 'map_ThCi','high clouds ThCi AIRS cloud fraction',' ',& 200 199 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 201 "inst(X)", "inst(X)","inst(X)" /))200 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 202 201 203 202 TYPE(ctrl_out), SAVE :: o_map_Anv = & 204 ctrl_out((/1,1,1,1,1,10,10,10,10 /),&203 ctrl_out((/1,1,1,1,1,10,10,10,10,10/),& 205 204 'map_Anv','high clouds Anv AIRS cloud fraction',' ',& 206 205 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)",& 207 "inst(X)", "inst(X)","inst(X)" /)) 208 206 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 209 207 210 208 ! Fin Marine 211 209 212 TYPE(ctrl_out), SAVE :: o_flat = ctrl_out((/ 5, 1, 10, 10, 5, 10, 11, 11, 11 213 'flat', 'Latent heat flux', 'W/m2', (/ ('', i=1, 9) /))214 TYPE(ctrl_out), SAVE :: o_ptstar = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 215 'ptstar', 'Air Surface Temperature', 'K', (/ ('', i=1, 9) /))216 TYPE(ctrl_out), SAVE :: o_pt0 = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 217 'pt0', 'Standard Air Surface Temperature', 'K', (/ ('', i=1, 9) /))218 TYPE(ctrl_out), SAVE :: o_slp = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 219 'slp', 'Sea Level Pressure', 'Pa', (/ ('', i=1, 9) /))220 TYPE(ctrl_out), SAVE :: o_tsol = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11 221 'tsol', 'Surface Temperature', 'K', (/ ('', i=1, 9) /))222 TYPE(ctrl_out), SAVE :: o_t2m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11 223 't2m', 'Temperature 2m', 'K', (/ ('', i=1, 9) /))224 TYPE(ctrl_out), SAVE :: o_t2m_min = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11 210 TYPE(ctrl_out), SAVE :: o_flat = ctrl_out((/ 5, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 211 'flat', 'Latent heat flux', 'W/m2', (/ ('', i=1, 10) /)) 212 TYPE(ctrl_out), SAVE :: o_ptstar = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 213 'ptstar', 'Air Surface Temperature', 'K', (/ ('', i=1, 10) /)) 214 TYPE(ctrl_out), SAVE :: o_pt0 = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 215 'pt0', 'Standard Air Surface Temperature', 'K', (/ ('', i=1, 10) /)) 216 TYPE(ctrl_out), SAVE :: o_slp = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 217 'slp', 'Sea Level Pressure', 'Pa', (/ ('', i=1, 10) /)) 218 TYPE(ctrl_out), SAVE :: o_tsol = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 219 'tsol', 'Surface Temperature', 'K', (/ ('', i=1, 10) /)) 220 TYPE(ctrl_out), SAVE :: o_t2m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 221 't2m', 'Temperature 2m', 'K', (/ ('', i=1, 10) /)) 222 TYPE(ctrl_out), SAVE :: o_t2m_min = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 225 223 't2m_min', 'Temp 2m min', 'K', & 226 (/ "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)" /)) 227 TYPE(ctrl_out), SAVE :: o_t2m_max = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11 /), & 224 (/ "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", & 225 "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)" /)) 226 TYPE(ctrl_out), SAVE :: o_t2m_max = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 228 227 't2m_max', 'Temp 2m max', 'K', & 229 228 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 230 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /))231 232 TYPE(ctrl_out), SAVE :: o_t2m_min_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20 /), &229 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 230 231 TYPE(ctrl_out), SAVE :: o_t2m_min_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20, 20 /), & 233 232 't2m_min_mon', 'Monthly average min 2m temperature', 'K', & 234 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 235 TYPE(ctrl_out), SAVE :: o_t2m_max_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20 /), & 233 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 234 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 235 TYPE(ctrl_out), SAVE :: o_t2m_max_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20, 20 /), & 236 236 't2m_max_mon', 'Monthly average max 2m temperature', 'K', & 237 237 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 238 "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))238 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 239 239 240 240 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_t2m_srf = (/ & 241 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 242 't2m_ter', "Temp 2m "//clnsurf(1), "K", (/ ('', i=1, 9) /)), &243 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 244 't2m_lic', "Temp 2m "//clnsurf(2), "K", (/ ('', i=1, 9) /)), &245 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 246 't2m_oce', "Temp 2m "//clnsurf(3), "K", (/ ('', i=1, 9) /)), &247 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 248 't2m_sic', "Temp 2m "//clnsurf(4), "K", (/ ('', i=1, 9) /)) /)249 250 TYPE(ctrl_out), SAVE :: o_gusts = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 251 'gusts', 'surface gustiness', 'm2/s2', (/ ('', i=1, 9) /))252 253 TYPE(ctrl_out), SAVE :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 254 'wind10m', '10-m wind speed', 'm/s', (/ ('', i=1, 9) /))255 TYPE(ctrl_out), SAVE :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 241 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 242 't2m_ter', "Temp 2m "//clnsurf(1), "K", (/ ('', i=1, 10) /)), & 243 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 244 't2m_lic', "Temp 2m "//clnsurf(2), "K", (/ ('', i=1, 10) /)), & 245 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 246 't2m_oce', "Temp 2m "//clnsurf(3), "K", (/ ('', i=1, 10) /)), & 247 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 248 't2m_sic', "Temp 2m "//clnsurf(4), "K", (/ ('', i=1, 10) /)) /) 249 250 TYPE(ctrl_out), SAVE :: o_gusts = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 251 'gusts', 'surface gustiness', 'm2/s2', (/ ('', i=1, 10) /)) 252 253 TYPE(ctrl_out), SAVE :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 254 'wind10m', '10-m wind speed', 'm/s', (/ ('', i=1, 10) /)) 255 TYPE(ctrl_out), SAVE :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 256 256 'wind10max', '10m wind speed max', 'm/s', & 257 257 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 258 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 259 TYPE(ctrl_out), SAVE :: o_sicf = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 /), & 260 'sicf', 'Sea-ice fraction', '-', (/ ('', i=1, 9) /)) 261 TYPE(ctrl_out), SAVE :: o_q2m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11 /), & 262 'q2m', 'Specific humidity 2m', 'kg/kg', (/ ('', i=1, 9) /)) 263 TYPE(ctrl_out), SAVE :: o_ustar = ctrl_out((/ 1, 1, 10, 5, 10, 10, 11, 11, 11 /), & 264 'ustar', 'Friction velocity', 'm/s', (/ ('', i=1, 9) /)) 265 TYPE(ctrl_out), SAVE :: o_u10m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11 /), & 266 'u10m', 'Vent zonal 10m', 'm/s', (/ ('', i=1, 9) /)) 267 TYPE(ctrl_out), SAVE :: o_v10m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11 /), & 268 'v10m', 'Vent meridien 10m', 'm/s', (/ ('', i=1, 9) /)) 269 TYPE(ctrl_out), SAVE :: o_psol = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11 /), & 270 'psol', 'Surface Pressure', 'Pa', (/ ('', i=1, 9) /)) 271 TYPE(ctrl_out), SAVE :: o_qsurf = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), & 272 'qsurf', 'Surface Air humidity', 'kg/kg', (/ ('', i=1, 9) /)) 258 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 259 260 TYPE(ctrl_out), SAVE :: o_sicf = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 261 'sicf', 'Sea-ice fraction', '-', (/ ('', i=1, 10) /)) 262 TYPE(ctrl_out), SAVE :: o_q2m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 263 'q2m', 'Specific humidity 2m', 'kg/kg', (/ ('', i=1, 10) /)) 264 TYPE(ctrl_out), SAVE :: o_ustar = ctrl_out((/ 1, 1, 10, 5, 10, 10, 11, 11, 11, 11/), & 265 'ustar', 'Friction velocity', 'm/s', (/ ('', i=1, 10) /)) 266 TYPE(ctrl_out), SAVE :: o_u10m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 267 'u10m', 'Vent zonal 10m', 'm/s', (/ ('', i=1, 10) /)) 268 TYPE(ctrl_out), SAVE :: o_v10m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 269 'v10m', 'Vent meridien 10m', 'm/s', (/ ('', i=1, 10) /)) 270 TYPE(ctrl_out), SAVE :: o_psol = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11, 11/), & 271 'psol', 'Surface Pressure', 'Pa', (/ ('', i=1, 10) /)) 272 TYPE(ctrl_out), SAVE :: o_qsurf = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 273 'qsurf', 'Surface Air humidity', 'kg/kg', (/ ('', i=1, 10) /)) 273 274 274 275 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_ustar_srf = (/ & 275 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 276 "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &277 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 278 "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &279 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 280 "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &281 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 282 "Friction velocity "//clnsurf(4),"m/s", (/ ('', i=1, 9) /)) /)276 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_ter', & 277 "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), & 278 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_lic', & 279 "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), & 280 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_oce', & 281 "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), & 282 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'ustar_sic', & 283 "Friction velocity "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /) 283 284 284 285 TYPE(ctrl_out), SAVE, DIMENSION(5) :: o_wstar = (/ & 285 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 286 "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &287 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 288 "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &289 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 290 "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &291 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 292 "Friction velocity "//clnsurf(4),"m/s", (/ ('', i=1, 9) /)), &293 ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11 294 "w* convective velocity "//clnsurf(4),"m/s", (/ ('', i=1, 9) /)) /)286 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_ter', & 287 "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), & 288 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_lic', & 289 "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), & 290 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_oce', & 291 "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), & 292 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar_sic', & 293 "Friction velocity "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)), & 294 ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11, 11/),'wstar', & 295 "w* convective velocity "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /) 295 296 296 297 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_u10m_srf = (/ & 297 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 298 "Vent Zonal 10m "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &299 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 300 "Vent Zonal 10m "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &301 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 302 "Vent Zonal 10m "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &303 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 304 "Vent Zonal 10m "//clnsurf(4),"m/s", (/ ('', i=1, 9) /)) /)298 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_ter', & 299 "Vent Zonal 10m "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), & 300 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_lic', & 301 "Vent Zonal 10m "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), & 302 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_oce', & 303 "Vent Zonal 10m "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), & 304 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'u10m_sic', & 305 "Vent Zonal 10m "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /) 305 306 306 307 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_v10m_srf = (/ & 307 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 308 "Vent meredien 10m "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &309 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 310 "Vent meredien 10m "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &311 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 312 "Vent meredien 10m "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &313 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 314 "Vent meredien 10m "//clnsurf(4),"m/s", (/ ('', i=1, 9) /)) /)315 316 TYPE(ctrl_out), SAVE :: o_qsol = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 317 'qsol', 'Soil watter content', 'mm', (/ ('', i=1, 9) /))318 TYPE(ctrl_out), SAVE :: o_ndayrain = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 308 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_ter', & 309 "Vent meredien 10m "//clnsurf(1),"m/s", (/ ('', i=1, 10) /)), & 310 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_lic', & 311 "Vent meredien 10m "//clnsurf(2),"m/s", (/ ('', i=1, 10) /)), & 312 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_oce', & 313 "Vent meredien 10m "//clnsurf(3),"m/s", (/ ('', i=1, 10) /)), & 314 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'v10m_sic', & 315 "Vent meredien 10m "//clnsurf(4),"m/s", (/ ('', i=1, 10) /)) /) 316 317 TYPE(ctrl_out), SAVE :: o_qsol = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 318 'qsol', 'Soil watter content', 'mm', (/ ('', i=1, 10) /)) 319 TYPE(ctrl_out), SAVE :: o_ndayrain = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 319 320 'ndayrain', 'Number of dayrain(liq+sol)', '-', & 320 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))321 TYPE(ctrl_out), SAVE :: o_precip = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11 322 'precip', 'Precip Totale liq+sol', 'kg/(s*m2)', (/ ('', i=1, 9) /))323 TYPE(ctrl_out), SAVE :: o_plul = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 324 'plul', 'Large-scale Precip.', 'kg/(s*m2)', (/ ('', i=1, 9) /))325 TYPE(ctrl_out), SAVE :: o_plun = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 326 'plun', 'Numerical Precip.', 'kg/(s*m2)', (/ ('', i=1, 9) /))327 TYPE(ctrl_out), SAVE :: o_pluc = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11 328 'pluc', 'Convective Precip.', 'kg/(s*m2)', (/ ('', i=1, 9) /))329 TYPE(ctrl_out), SAVE :: o_snow = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11 330 'snow', 'Snow fall', 'kg/(s*m2)', (/ ('', i=1, 9) /))331 TYPE(ctrl_out), SAVE :: o_evap = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 332 'evap', 'Evaporat', 'kg/(s*m2)', (/ ('', i=1, 9) /))333 334 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 335 'sens_rain_oce', 'Sensible heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /))336 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 337 'sens_rain_sic', 'Sensible heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /))338 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 339 'sens_snow_oce', 'Sensible heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /))340 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 341 'sens_snow_sic', 'Sensible heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /))342 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 343 'lat_rain_oce', 'Latent heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /))344 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 345 'lat_rain_sic', 'Latent heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /))346 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 347 'lat_snow_oce', 'Latent heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /))348 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 349 'lat_snow_sic', 'Latent heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /))321 (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 322 TYPE(ctrl_out), SAVE :: o_precip = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11, 11/), & 323 'precip', 'Precip Totale liq+sol', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 324 TYPE(ctrl_out), SAVE :: o_plul = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 325 'plul', 'Large-scale Precip.', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 326 TYPE(ctrl_out), SAVE :: o_plun = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 327 'plun', 'Numerical Precip.', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 328 TYPE(ctrl_out), SAVE :: o_pluc = ctrl_out((/ 1, 1, 1, 10, 5, 10, 11, 11, 11, 11/), & 329 'pluc', 'Convective Precip.', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 330 TYPE(ctrl_out), SAVE :: o_snow = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 331 'snow', 'Snow fall', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 332 TYPE(ctrl_out), SAVE :: o_evap = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 333 'evap', 'Evaporat', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 334 335 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 336 'sens_rain_oce', 'Sensible heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /)) 337 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 338 'sens_rain_sic', 'Sensible heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /)) 339 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 340 'sens_snow_oce', 'Sensible heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /)) 341 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 342 'sens_snow_sic', 'Sensible heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /)) 343 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 344 'lat_rain_oce', 'Latent heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /)) 345 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 346 'lat_rain_sic', 'Latent heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /)) 347 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 348 'lat_snow_oce', 'Latent heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 10) /)) 349 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11, 11/), & 350 'lat_snow_sic', 'Latent heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 10) /)) 350 351 351 352 352 353 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evap_srf = (/ & 353 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 354 "evaporation at surface "//clnsurf(1),"kg/(s*m2)", (/ ('', i=1, 9) /)), &355 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 356 "evaporation at surface "//clnsurf(2),"kg/(s*m2)", (/ ('', i=1, 9) /)), &357 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 358 "evaporation at surface "//clnsurf(3),"kg/(s*m2)", (/ ('', i=1, 9) /)), &359 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 360 "evaporation at surface "//clnsurf(4),"kg/(s*m2)", (/ ('', i=1, 9) /)) /)361 362 TYPE(ctrl_out), SAVE :: o_msnow = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 363 'msnow', 'Surface snow amount', 'kg/m2', (/ ('', i=1, 9) /))364 TYPE(ctrl_out), SAVE :: o_fsnow = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 365 'fsnow', 'Surface snow area fraction', '-', (/ ('', i=1, 9) /))366 TYPE(ctrl_out), SAVE :: o_tops = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 367 'tops', 'Solar rad. at TOA', 'W/m2', (/ ('', i=1, 9) /))368 TYPE(ctrl_out), SAVE :: o_tops0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 369 'tops0', 'CS Solar rad. at TOA', 'W/m2', (/ ('', i=1, 9) /))370 TYPE(ctrl_out), SAVE :: o_topl = ctrl_out((/ 1, 1, 10, 5, 10, 10, 11, 11, 11 371 'topl', 'IR rad. at TOA', 'W/m2', (/ ('', i=1, 9) /))372 TYPE(ctrl_out), SAVE :: o_topl0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 373 'topl0', 'IR rad. at TOA', 'W/m2', (/ ('', i=1, 9) /))374 TYPE(ctrl_out), SAVE :: o_SWupTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 375 'SWupTOA', 'SWup at TOA', 'W/m2', (/ ('', i=1, 9) /))376 TYPE(ctrl_out), SAVE :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 377 'SWupTOAclr', 'SWup clear sky at TOA', 'W/m2', (/ ('', i=1, 9) /))378 TYPE(ctrl_out), SAVE :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 379 'SWdnTOA', 'SWdn at TOA', 'W/m2', (/ ('', i=1, 9) /))380 TYPE(ctrl_out), SAVE :: o_SWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 381 'SWdnTOAclr', 'SWdn clear sky at TOA', 'W/m2', (/ ('', i=1, 9) /))382 TYPE(ctrl_out), SAVE :: o_nettop = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 383 'nettop', 'Net dn radiatif flux at TOA', 'W/m2', (/ ('', i=1, 9) /))384 TYPE(ctrl_out), SAVE :: o_SWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 385 'SWup200', 'SWup at 200mb', 'W/m2', (/ ('', i=1, 9) /))386 TYPE(ctrl_out), SAVE :: o_SWup200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 387 'SWup200clr', 'SWup clear sky at 200mb', 'W/m2', (/ ('', i=1, 9) /))388 TYPE(ctrl_out), SAVE :: o_SWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 389 'SWdn200', 'SWdn at 200mb', 'W/m2', (/ ('', i=1, 9) /))390 TYPE(ctrl_out), SAVE :: o_SWdn200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 391 'SWdn200clr', 'SWdn clear sky at 200mb', 'W/m2', (/ ('', i=1, 9) /))354 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_ter', & 355 "evaporation at surface "//clnsurf(1),"kg/(s*m2)", (/ ('', i=1, 10) /)), & 356 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_lic', & 357 "evaporation at surface "//clnsurf(2),"kg/(s*m2)", (/ ('', i=1, 10) /)), & 358 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_oce', & 359 "evaporation at surface "//clnsurf(3),"kg/(s*m2)", (/ ('', i=1, 10) /)), & 360 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evap_sic', & 361 "evaporation at surface "//clnsurf(4),"kg/(s*m2)", (/ ('', i=1, 10) /)) /) 362 363 TYPE(ctrl_out), SAVE :: o_msnow = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 364 'msnow', 'Surface snow amount', 'kg/m2', (/ ('', i=1, 10) /)) 365 TYPE(ctrl_out), SAVE :: o_fsnow = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 366 'fsnow', 'Surface snow area fraction', '-', (/ ('', i=1, 10) /)) 367 TYPE(ctrl_out), SAVE :: o_tops = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 368 'tops', 'Solar rad. at TOA', 'W/m2', (/ ('', i=1, 10) /)) 369 TYPE(ctrl_out), SAVE :: o_tops0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 370 'tops0', 'CS Solar rad. at TOA', 'W/m2', (/ ('', i=1, 10) /)) 371 TYPE(ctrl_out), SAVE :: o_topl = ctrl_out((/ 1, 1, 10, 5, 10, 10, 11, 11, 11, 11/), & 372 'topl', 'IR rad. at TOA', 'W/m2', (/ ('', i=1, 10) /)) 373 TYPE(ctrl_out), SAVE :: o_topl0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 374 'topl0', 'IR rad. at TOA', 'W/m2', (/ ('', i=1, 10) /)) 375 TYPE(ctrl_out), SAVE :: o_SWupTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 376 'SWupTOA', 'SWup at TOA', 'W/m2', (/ ('', i=1, 10) /)) 377 TYPE(ctrl_out), SAVE :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 378 'SWupTOAclr', 'SWup clear sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 379 TYPE(ctrl_out), SAVE :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 380 'SWdnTOA', 'SWdn at TOA', 'W/m2', (/ ('', i=1, 10) /)) 381 TYPE(ctrl_out), SAVE :: o_SWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 382 'SWdnTOAclr', 'SWdn clear sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 383 TYPE(ctrl_out), SAVE :: o_nettop = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 384 'nettop', 'Net dn radiatif flux at TOA', 'W/m2', (/ ('', i=1, 10) /)) 385 TYPE(ctrl_out), SAVE :: o_SWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 386 'SWup200', 'SWup at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 387 TYPE(ctrl_out), SAVE :: o_SWup200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 388 'SWup200clr', 'SWup clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 389 TYPE(ctrl_out), SAVE :: o_SWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 390 'SWdn200', 'SWdn at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 391 TYPE(ctrl_out), SAVE :: o_SWdn200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 392 'SWdn200clr', 'SWdn clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 392 393 393 394 ! arajouter 394 ! type(ctrl_out),save :: o_LWupTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 395 ! (/ ('', i=1, 9) /))396 ! type(ctrl_out),save :: o_LWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 397 ! (/ ('', i=1, 9) /))398 ! type(ctrl_out),save :: o_LWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 399 ! (/ ('', i=1, 9) /))400 ! type(ctrl_out),save :: o_LWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 401 ! (/ ('', i=1, 9) /))402 TYPE(ctrl_out), SAVE :: o_LWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 403 'LWup200', 'LWup at 200mb', 'W/m2', (/ ('', i=1, 9) /))404 TYPE(ctrl_out), SAVE :: o_LWup200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 405 'LWup200clr', 'LWup clear sky at 200mb', 'W/m2', (/ ('', i=1, 9) /))406 TYPE(ctrl_out), SAVE :: o_LWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 407 'LWdn200', 'LWdn at 200mb', 'W/m2', (/ ('', i=1, 9) /))408 TYPE(ctrl_out), SAVE :: o_LWdn200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 409 'LWdn200clr', 'LWdn clear sky at 200mb', 'W/m2', (/ ('', i=1, 9) /))410 TYPE(ctrl_out), SAVE :: o_sols = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 411 'sols', 'Solar rad. at surf.', 'W/m2', (/ ('', i=1, 9) /))412 TYPE(ctrl_out), SAVE :: o_sols0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 413 'sols0', 'Solar rad. at surf.', 'W/m2', (/ ('', i=1, 9) /))414 TYPE(ctrl_out), SAVE :: o_soll = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 415 'soll', 'IR rad. at surface', 'W/m2', (/ ('', i=1, 9) /))416 TYPE(ctrl_out), SAVE :: o_soll0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 417 'soll0', 'IR rad. at surface', 'W/m2', (/ ('', i=1, 9) /))418 TYPE(ctrl_out), SAVE :: o_radsol = ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 419 'radsol', 'Rayonnement au sol', 'W/m2', (/ ('', i=1, 9) /))420 TYPE(ctrl_out), SAVE :: o_SWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11 421 'SWupSFC', 'SWup at surface', 'W/m2', (/ ('', i=1, 9) /))422 TYPE(ctrl_out), SAVE :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11 423 'SWupSFCclr', 'SWup clear sky at surface', 'W/m2', (/ ('', i=1, 9) /))424 TYPE(ctrl_out), SAVE :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11 425 'SWdnSFC', 'SWdn at surface', 'W/m2', (/ ('', i=1, 9) /))426 TYPE(ctrl_out), SAVE :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11 427 'SWdnSFCclr', 'SWdn clear sky at surface', 'W/m2', (/ ('', i=1, 9) /))428 TYPE(ctrl_out), SAVE :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11 429 'LWupSFC', 'Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 9) /))430 TYPE(ctrl_out), SAVE :: o_LWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11 431 'LWupSFCclr', 'CS Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 9) /))432 TYPE(ctrl_out), SAVE :: o_LWdnSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11 433 'LWdnSFC', 'Down. IR rad. at surface', 'W/m2', (/ ('', i=1, 9) /))434 TYPE(ctrl_out), SAVE :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11 435 'LWdnSFCclr', 'Down. CS IR rad. at surface', 'W/m2', (/ ('', i=1, 9) /))436 TYPE(ctrl_out), SAVE :: o_bils = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 437 'bils', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /))438 TYPE(ctrl_out), SAVE :: o_bils_tke = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 439 'bils_tke', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /))440 TYPE(ctrl_out), SAVE :: o_bils_diss = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 441 'bils_diss', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /))442 TYPE(ctrl_out), SAVE :: o_bils_ec = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 443 'bils_ec', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 9) /))444 TYPE(ctrl_out), SAVE :: o_bils_ech = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 445 'bils_ech', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 9) /))446 TYPE(ctrl_out), SAVE :: o_bils_kinetic = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 447 'bils_kinetic', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /))448 TYPE(ctrl_out), SAVE :: o_bils_enthalp = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 449 'bils_enthalp', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /))450 TYPE(ctrl_out), SAVE :: o_bils_latent = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 451 'bils_latent', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /))452 TYPE(ctrl_out), SAVE :: o_sens = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11 453 'sens', 'Sensible heat flux', 'W/m2', (/ ('', i=1, 9) /))454 TYPE(ctrl_out), SAVE :: o_fder = ctrl_out((/ 1, 2, 10, 10, 10, 10, 11, 11, 11 455 'fder', 'Heat flux derivation', 'W/m2', (/ ('', i=1, 9) /))456 TYPE(ctrl_out), SAVE :: o_ffonte = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 457 'ffonte', 'Thermal flux for snow melting', 'W/m2', (/ ('', i=1, 9) /))458 TYPE(ctrl_out), SAVE :: o_fqcalving = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 459 'fqcalving', 'Ice Calving', 'kg/m2/s', (/ ('', i=1, 9) /))460 TYPE(ctrl_out), SAVE :: o_fqfonte = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 461 'fqfonte', 'Land ice melt', 'kg/m2/s', (/ ('', i=1, 9) /))462 TYPE(ctrl_out), SAVE :: o_runofflic = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 463 'runofflic', 'Land ice melt to ocean', 'kg/m2/s', (/ ('', i=1, 9) /))464 TYPE(ctrl_out), SAVE :: o_taux = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 465 'taux', 'Zonal wind stress', 'Pa', (/ ('', i=1, 9) /))466 TYPE(ctrl_out), SAVE :: o_tauy = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 467 'tauy', 'Meridional wind stress', 'Pa', (/ ('', i=1, 9) /))395 ! type(ctrl_out),save :: o_LWupTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'LWupTOA', & 396 ! (/ ('', i=1, 10) /)) 397 ! type(ctrl_out),save :: o_LWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'LWupTOAclr', & 398 ! (/ ('', i=1, 10) /)) 399 ! type(ctrl_out),save :: o_LWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'LWdnTOA', & 400 ! (/ ('', i=1, 10) /)) 401 ! type(ctrl_out),save :: o_LWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'LWdnTOAclr', & 402 ! (/ ('', i=1, 10) /)) 403 TYPE(ctrl_out), SAVE :: o_LWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 404 'LWup200', 'LWup at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 405 TYPE(ctrl_out), SAVE :: o_LWup200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 406 'LWup200clr', 'LWup clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 407 TYPE(ctrl_out), SAVE :: o_LWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 408 'LWdn200', 'LWdn at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 409 TYPE(ctrl_out), SAVE :: o_LWdn200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 410 'LWdn200clr', 'LWdn clear sky at 200mb', 'W/m2', (/ ('', i=1, 10) /)) 411 TYPE(ctrl_out), SAVE :: o_sols = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 412 'sols', 'Solar rad. at surf.', 'W/m2', (/ ('', i=1, 10) /)) 413 TYPE(ctrl_out), SAVE :: o_sols0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 414 'sols0', 'Solar rad. at surf.', 'W/m2', (/ ('', i=1, 10) /)) 415 TYPE(ctrl_out), SAVE :: o_soll = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 416 'soll', 'IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) 417 TYPE(ctrl_out), SAVE :: o_soll0 = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 418 'soll0', 'IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) 419 TYPE(ctrl_out), SAVE :: o_radsol = ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/), & 420 'radsol', 'Rayonnement au sol', 'W/m2', (/ ('', i=1, 10) /)) 421 TYPE(ctrl_out), SAVE :: o_SWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 422 'SWupSFC', 'SWup at surface', 'W/m2', (/ ('', i=1, 10) /)) 423 TYPE(ctrl_out), SAVE :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 424 'SWupSFCclr', 'SWup clear sky at surface', 'W/m2', (/ ('', i=1, 10) /)) 425 TYPE(ctrl_out), SAVE :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 426 'SWdnSFC', 'SWdn at surface', 'W/m2', (/ ('', i=1, 10) /)) 427 TYPE(ctrl_out), SAVE :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 428 'SWdnSFCclr', 'SWdn clear sky at surface', 'W/m2', (/ ('', i=1, 10) /)) 429 TYPE(ctrl_out), SAVE :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 430 'LWupSFC', 'Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) 431 TYPE(ctrl_out), SAVE :: o_LWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 432 'LWupSFCclr', 'CS Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) 433 TYPE(ctrl_out), SAVE :: o_LWdnSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 434 'LWdnSFC', 'Down. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) 435 TYPE(ctrl_out), SAVE :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 436 'LWdnSFCclr', 'Down. CS IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) 437 TYPE(ctrl_out), SAVE :: o_bils = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 438 'bils', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /)) 439 TYPE(ctrl_out), SAVE :: o_bils_tke = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 440 'bils_tke', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /)) 441 TYPE(ctrl_out), SAVE :: o_bils_diss = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 442 'bils_diss', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /)) 443 TYPE(ctrl_out), SAVE :: o_bils_ec = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 444 'bils_ec', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 10) /)) 445 TYPE(ctrl_out), SAVE :: o_bils_ech = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 446 'bils_ech', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 10) /)) 447 TYPE(ctrl_out), SAVE :: o_bils_kinetic = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 448 'bils_kinetic', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /)) 449 TYPE(ctrl_out), SAVE :: o_bils_enthalp = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 450 'bils_enthalp', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /)) 451 TYPE(ctrl_out), SAVE :: o_bils_latent = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11, 11/), & 452 'bils_latent', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 10) /)) 453 TYPE(ctrl_out), SAVE :: o_sens = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 454 'sens', 'Sensible heat flux', 'W/m2', (/ ('', i=1, 10) /)) 455 TYPE(ctrl_out), SAVE :: o_fder = ctrl_out((/ 1, 2, 10, 10, 10, 10, 11, 11, 11, 11/), & 456 'fder', 'Heat flux derivation', 'W/m2', (/ ('', i=1, 10) /)) 457 TYPE(ctrl_out), SAVE :: o_ffonte = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 458 'ffonte', 'Thermal flux for snow melting', 'W/m2', (/ ('', i=1, 10) /)) 459 TYPE(ctrl_out), SAVE :: o_fqcalving = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 460 'fqcalving', 'Ice Calving', 'kg/m2/s', (/ ('', i=1, 10) /)) 461 TYPE(ctrl_out), SAVE :: o_fqfonte = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 462 'fqfonte', 'Land ice melt', 'kg/m2/s', (/ ('', i=1, 10) /)) 463 TYPE(ctrl_out), SAVE :: o_runofflic = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 464 'runofflic', 'Land ice melt to ocean', 'kg/m2/s', (/ ('', i=1, 10) /)) 465 TYPE(ctrl_out), SAVE :: o_taux = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 466 'taux', 'Zonal wind stress', 'Pa', (/ ('', i=1, 10) /)) 467 TYPE(ctrl_out), SAVE :: o_tauy = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 468 'tauy', 'Meridional wind stress', 'Pa', (/ ('', i=1, 10) /)) 468 469 469 470 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_taux_srf = (/ & 470 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 471 "Zonal wind stress"//clnsurf(1), "Pa", (/ ('', i=1, 9) /)), &472 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 473 "Zonal wind stress"//clnsurf(2), "Pa", (/ ('', i=1, 9) /)), &474 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 475 "Zonal wind stress"//clnsurf(3), "Pa", (/ ('', i=1, 9) /)), &476 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 477 "Zonal wind stress"//clnsurf(4), "Pa", (/ ('', i=1, 9) /)) /)471 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_ter', & 472 "Zonal wind stress"//clnsurf(1), "Pa", (/ ('', i=1, 10) /)), & 473 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_lic', & 474 "Zonal wind stress"//clnsurf(2), "Pa", (/ ('', i=1, 10) /)), & 475 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_oce', & 476 "Zonal wind stress"//clnsurf(3), "Pa", (/ ('', i=1, 10) /)), & 477 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'taux_sic', & 478 "Zonal wind stress"//clnsurf(4), "Pa", (/ ('', i=1, 10) /)) /) 478 479 479 480 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tauy_srf = (/ & 480 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 481 "Meridional wind stress "//clnsurf(1),"Pa", (/ ('', i=1, 9) /)), &482 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 483 "Meridional wind stress "//clnsurf(2),"Pa", (/ ('', i=1, 9) /)), &484 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 485 "Meridional wind stress "//clnsurf(3),"Pa", (/ ('', i=1, 9) /)), &486 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 487 "Meridional wind stress "//clnsurf(4),"Pa", (/ ('', i=1, 9) /)) /)481 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_ter', & 482 "Meridional wind stress "//clnsurf(1),"Pa", (/ ('', i=1, 10) /)), & 483 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_lic', & 484 "Meridional wind stress "//clnsurf(2),"Pa", (/ ('', i=1, 10) /)), & 485 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_oce', & 486 "Meridional wind stress "//clnsurf(3),"Pa", (/ ('', i=1, 10) /)), & 487 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tauy_sic', & 488 "Meridional wind stress "//clnsurf(4),"Pa", (/ ('', i=1, 10) /)) /) 488 489 489 490 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_pourc_srf = (/ & 490 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 491 "% "//clnsurf(1),"%", (/ ('', i=1, 9) /)), &492 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 493 "% "//clnsurf(2),"%", (/ ('', i=1, 9) /)), &494 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 495 "% "//clnsurf(3),"%", (/ ('', i=1, 9) /)), &496 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 497 "% "//clnsurf(4),"%", (/ ('', i=1, 9) /)) /)491 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_ter', & 492 "% "//clnsurf(1),"%", (/ ('', i=1, 10) /)), & 493 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_lic', & 494 "% "//clnsurf(2),"%", (/ ('', i=1, 10) /)), & 495 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_oce', & 496 "% "//clnsurf(3),"%", (/ ('', i=1, 10) /)), & 497 ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11, 11/),'pourc_sic', & 498 "% "//clnsurf(4),"%", (/ ('', i=1, 10) /)) /) 498 499 499 500 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fract_srf = (/ & 500 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 501 "Fraction "//clnsurf(1),"1", (/ ('', i=1, 9) /)), &502 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 503 "Fraction "//clnsurf(2),"1", (/ ('', i=1, 9) /)), &504 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 505 "Fraction "//clnsurf(3),"1", (/ ('', i=1, 9) /)), &506 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 507 "Fraction "//clnsurf(4),"1", (/ ('', i=1, 9) /)) /)501 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_ter', & 502 "Fraction "//clnsurf(1),"1", (/ ('', i=1, 10) /)), & 503 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_lic', & 504 "Fraction "//clnsurf(2),"1", (/ ('', i=1, 10) /)), & 505 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_oce', & 506 "Fraction "//clnsurf(3),"1", (/ ('', i=1, 10) /)), & 507 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'fract_sic', & 508 "Fraction "//clnsurf(4),"1", (/ ('', i=1, 10) /)) /) 508 509 509 510 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tsol_srf = (/ & 510 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 511 "Temperature "//clnsurf(1),"K", (/ ('', i=1, 9) /)), &512 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 513 "Temperature "//clnsurf(2),"K", (/ ('', i=1, 9) /)), &514 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 515 "Temperature "//clnsurf(3),"K", (/ ('', i=1, 9) /)), &516 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 517 "Temperature "//clnsurf(4),"K", (/ ('', i=1, 9) /)) /)511 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_ter', & 512 "Temperature "//clnsurf(1),"K", (/ ('', i=1, 10) /)), & 513 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_lic', & 514 "Temperature "//clnsurf(2),"K", (/ ('', i=1, 10) /)), & 515 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_oce', & 516 "Temperature "//clnsurf(3),"K", (/ ('', i=1, 10) /)), & 517 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'tsol_sic', & 518 "Temperature "//clnsurf(4),"K", (/ ('', i=1, 10) /)) /) 518 519 519 520 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evappot_srf = (/ & 520 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 521 "Temperature"//clnsurf(1),"K", (/ ('', i=1, 9) /)), &522 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 523 "Temperature"//clnsurf(2),"K", (/ ('', i=1, 9) /)), &524 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 525 "Temperature"//clnsurf(3),"K", (/ ('', i=1, 9) /)), &526 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 527 "Temperature"//clnsurf(4),"K", (/ ('', i=1, 9) /)) /)521 ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_ter', & 522 "Temperature"//clnsurf(1),"K", (/ ('', i=1, 10) /)), & 523 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_lic', & 524 "Temperature"//clnsurf(2),"K", (/ ('', i=1, 10) /)), & 525 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_oce', & 526 "Temperature"//clnsurf(3),"K", (/ ('', i=1, 10) /)), & 527 ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'evappot_sic', & 528 "Temperature"//clnsurf(4),"K", (/ ('', i=1, 10) /)) /) 528 529 529 530 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_sens_srf = (/ & 530 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 531 "Sensible heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &532 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 533 "Sensible heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &534 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 535 "Sensible heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &536 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 537 "Sensible heat flux "//clnsurf(4),"W/m2", (/ ('', i=1, 9) /)) /)531 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_ter', & 532 "Sensible heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), & 533 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_lic', & 534 "Sensible heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), & 535 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_oce', & 536 "Sensible heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), & 537 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'sens_sic', & 538 "Sensible heat flux "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /) 538 539 539 540 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_lat_srf = (/ & 540 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 541 "Latent heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &542 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 543 "Latent heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &544 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 545 "Latent heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &546 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 547 "Latent heat flux "//clnsurf(4),"W/m2", (/ ('', i=1, 9) /)) /)541 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_ter', & 542 "Latent heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), & 543 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_lic', & 544 "Latent heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), & 545 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_oce', & 546 "Latent heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), & 547 ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11, 11/),'lat_sic', & 548 "Latent heat flux "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /) 548 549 549 550 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_flw_srf = (/ & 550 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 551 "LW "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &552 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 553 "LW "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &554 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 555 "LW "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &556 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 557 "LW "//clnsurf(4),"W/m2", (/ ('', i=1, 9) /)) /)551 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_ter', & 552 "LW "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), & 553 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_lic', & 554 "LW "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), & 555 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_oce', & 556 "LW "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), & 557 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'flw_sic', & 558 "LW "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /) 558 559 559 560 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fsw_srf = (/ & 560 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 561 "SW "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &562 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 563 "SW "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &564 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 565 "SW "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &566 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 567 "SW "//clnsurf(4),"W/m2", (/ ('', i=1, 9) /)) /)561 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_ter', & 562 "SW "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), & 563 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_lic', & 564 "SW "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), & 565 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_oce', & 566 "SW "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), & 567 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'fsw_sic', & 568 "SW "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /) 568 569 569 570 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbils_srf = (/ & 570 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 571 "Bilan sol "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &572 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 573 "Bilan sol "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &574 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 575 "Bilan sol "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &576 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 577 "Bilan sol "//clnsurf(4),"W/m2", (/ ('', i=1, 9) /)) /)571 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_ter', & 572 "Bilan sol "//clnsurf(1),"W/m2", (/ ('', i=1, 10) /)), & 573 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_lic', & 574 "Bilan sol "//clnsurf(2),"W/m2", (/ ('', i=1, 10) /)), & 575 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_oce', & 576 "Bilan sol "//clnsurf(3),"W/m2", (/ ('', i=1, 10) /)), & 577 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbils_sic', & 578 "Bilan sol "//clnsurf(4),"W/m2", (/ ('', i=1, 10) /)) /) 578 579 579 580 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbilo_srf = (/ & 580 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 581 "Bilan eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &582 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 583 "Bilan eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &584 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 585 "Bilan eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &586 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 587 "Bilan eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)581 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_ter', & 582 "Bilan eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 583 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_lic', & 584 "Bilan eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 585 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_oce', & 586 "Bilan eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 587 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wbilo_sic', & 588 "Bilan eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /) 588 589 589 590 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wevap_srf = (/ & 590 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 591 "Evap eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &592 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 593 "Evap eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &594 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 595 "Evap eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &596 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 597 "Evap eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)591 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_ter', & 592 "Evap eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 593 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_lic', & 594 "Evap eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 595 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_oce', & 596 "Evap eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 597 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wevap_sic', & 598 "Evap eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /) 598 599 599 600 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wrain_srf = (/ & 600 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 601 "Pluie eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &602 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 603 "Pluie eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &604 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 605 "Pluie eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &606 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 607 "Pluie eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)601 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_ter', & 602 "Pluie eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 603 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_lic', & 604 "Pluie eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 605 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_oce', & 606 "Pluie eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 607 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wrain_sic', & 608 "Pluie eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /) 608 609 609 610 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wsnow_srf = (/ & 610 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 611 "Neige eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &612 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 613 "Neige eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &614 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 615 "Neige eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &616 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 617 "Neige eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)618 619 TYPE(ctrl_out), SAVE :: o_cdrm = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 620 'cdrm', 'Momentum drag coef.', '-', (/ ('', i=1, 9) /))621 TYPE(ctrl_out), SAVE :: o_cdrh = ctrl_out((/ 1, 10, 10, 7, 10, 10, 11, 11, 11 622 'cdrh', 'Heat drag coef.', '-', (/ ('', i=1, 9) /))623 TYPE(ctrl_out), SAVE :: o_cldl = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 624 'cldl', 'Low-level cloudiness', '-', (/ ('', i=1, 9) /))625 TYPE(ctrl_out), SAVE :: o_cldm = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 626 'cldm', 'Mid-level cloudiness', '-', (/ ('', i=1, 9) /))627 TYPE(ctrl_out), SAVE :: o_cldh = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 628 'cldh', 'High-level cloudiness', '-', (/ ('', i=1, 9) /))629 TYPE(ctrl_out), SAVE :: o_cldt = ctrl_out((/ 1, 1, 2, 10, 5, 10, 11, 11, 11 630 'cldt', 'Total cloudiness', '-', (/ ('', i=1, 9) /))631 TYPE(ctrl_out), SAVE :: o_JrNt = ctrl_out((/ 1, 1, 10, 7, 10, 10, 11, 11, 11 632 'JrNt', '1 if Day 0 if Night', '-', (/ ('', i=1, 9) /))633 TYPE(ctrl_out), SAVE :: o_cldhjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 634 'cldhjn', 'High-level cloudiness Day', '-', (/ ('', i=1, 9) /))635 TYPE(ctrl_out), SAVE :: o_cldmjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &636 'cldmjn', 'Mid-level cloudiness day', '-', (/ ('', i=1, 9) /))637 TYPE(ctrl_out), SAVE :: o_cldljn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &638 'cldljn', 'Low-level cloudiness day', '-', (/ ('', i=1, 9) /))639 TYPE(ctrl_out), SAVE :: o_cldtjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), &640 'cldtjn', 'Total cloudiness day', '-', (/ ('', i=1, 9) /))641 642 TYPE(ctrl_out), SAVE :: o_cldq = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 643 'cldq', 'Cloud liquid water path', 'kg/m2', (/ ('', i=1, 9) /))644 TYPE(ctrl_out), SAVE :: o_lwp = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 645 'lwp', 'Cloud water path', 'kg/m2', (/ ('', i=1, 9) /))646 TYPE(ctrl_out), SAVE :: o_iwp = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 647 'iwp', 'Cloud ice water path', 'kg/m2', (/ ('', i=1, 9) /))648 TYPE(ctrl_out), SAVE :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 649 'ue', 'Zonal energy transport', '-', (/ ('', i=1, 9) /))650 TYPE(ctrl_out), SAVE :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 651 've', 'Merid energy transport', '-', (/ ('', i=1, 9) /))652 TYPE(ctrl_out), SAVE :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 653 'uq', 'Zonal humidity transport', '-', (/ ('', i=1, 9) /))654 TYPE(ctrl_out), SAVE :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 655 'vq', 'Merid humidity transport', '-', (/ ('', i=1, 9) /))656 TYPE(ctrl_out), SAVE :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 657 'cape', 'Conv avlbl pot ener', 'J/kg', (/ ('', i=1, 9) /))658 TYPE(ctrl_out), SAVE :: o_pbase = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 659 'pbase', 'Cld base pressure', 'Pa', (/ ('', i=1, 9) /))660 TYPE(ctrl_out), SAVE :: o_ptop = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11 661 'ptop', 'Cld top pressure', 'Pa', (/ ('', i=1, 9) /))662 TYPE(ctrl_out), SAVE :: o_fbase = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 663 'fbase', 'Cld base mass flux', 'kg/m2/s', (/ ('', i=1, 9) /))664 TYPE(ctrl_out), SAVE :: o_plcl = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 665 'plcl', 'Lifting Condensation Level', 'hPa', (/ ('', i=1, 9) /))666 TYPE(ctrl_out), SAVE :: o_plfc = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 667 'plfc', 'Level of Free Convection', 'hPa', (/ ('', i=1, 9) /))668 TYPE(ctrl_out), SAVE :: o_wbeff = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 669 'wbeff', 'Conv. updraft velocity at LFC (<100)', 'm/s', (/ ('', i=1, 9) /))670 TYPE(ctrl_out), SAVE :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 671 'prw', 'Precipitable water', 'kg/m2', (/ ('', i=1, 9) /))672 TYPE(ctrl_out), SAVE :: o_prlw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 673 'prlw', 'Precipitable liquid water', 'kg/m2', (/ ('', i=1, 9) /))674 TYPE(ctrl_out), SAVE :: o_prsw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 675 'prsw', 'Precipitable solid water', 'kg/m2', (/ ('', i=1, 9) /))676 TYPE(ctrl_out), SAVE :: o_s_pblh = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 677 's_pblh', 'Boundary Layer Height', 'm', (/ ('', i=1, 9) /))678 TYPE(ctrl_out), SAVE :: o_s_pblt = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 679 's_pblt', 't at Boundary Layer Height', 'K', (/ ('', i=1, 9) /))680 TYPE(ctrl_out), SAVE :: o_s_lcl = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 681 's_lcl', 'Condensation level', 'm', (/ ('', i=1, 9) /))682 TYPE(ctrl_out), SAVE :: o_s_therm = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 683 's_therm', 'Exces du thermique', 'K', (/ ('', i=1, 9) /))611 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_ter', & 612 "Neige eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 613 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_lic', & 614 "Neige eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 615 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_oce', & 616 "Neige eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 10) /)), & 617 ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'wsnow_sic', & 618 "Neige eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 10) /)) /) 619 620 TYPE(ctrl_out), SAVE :: o_cdrm = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 621 'cdrm', 'Momentum drag coef.', '-', (/ ('', i=1, 10) /)) 622 TYPE(ctrl_out), SAVE :: o_cdrh = ctrl_out((/ 1, 10, 10, 7, 10, 10, 11, 11, 11, 11/), & 623 'cdrh', 'Heat drag coef.', '-', (/ ('', i=1, 10) /)) 624 TYPE(ctrl_out), SAVE :: o_cldl = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 625 'cldl', 'Low-level cloudiness', '-', (/ ('', i=1, 10) /)) 626 TYPE(ctrl_out), SAVE :: o_cldm = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 627 'cldm', 'Mid-level cloudiness', '-', (/ ('', i=1, 10) /)) 628 TYPE(ctrl_out), SAVE :: o_cldh = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 629 'cldh', 'High-level cloudiness', '-', (/ ('', i=1, 10) /)) 630 TYPE(ctrl_out), SAVE :: o_cldt = ctrl_out((/ 1, 1, 2, 10, 5, 10, 11, 11, 11, 11/), & 631 'cldt', 'Total cloudiness', '-', (/ ('', i=1, 10) /)) 632 TYPE(ctrl_out), SAVE :: o_JrNt = ctrl_out((/ 1, 1, 10, 7, 10, 10, 11, 11, 11, 11/), & 633 'JrNt', '1 if Day 0 if Night', '-', (/ ('', i=1, 10) /)) 634 TYPE(ctrl_out), SAVE :: o_cldhjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 635 'cldhjn', 'High-level cloudiness Day', '-', (/ ('', i=1, 10) /)) 636 TYPE(ctrl_out), SAVE :: o_cldmjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 637 'cldmjn', 'Mid-level cloudiness day', '-', (/ ('', i=1, 10) /)) 638 TYPE(ctrl_out), SAVE :: o_cldljn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 639 'cldljn', 'Low-level cloudiness day', '-', (/ ('', i=1, 10) /)) 640 TYPE(ctrl_out), SAVE :: o_cldtjn = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 641 'cldtjn', 'Total cloudiness day', '-', (/ ('', i=1, 10) /)) 642 643 TYPE(ctrl_out), SAVE :: o_cldq = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 644 'cldq', 'Cloud liquid water path', 'kg/m2', (/ ('', i=1, 10) /)) 645 TYPE(ctrl_out), SAVE :: o_lwp = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 646 'lwp', 'Cloud water path', 'kg/m2', (/ ('', i=1, 10) /)) 647 TYPE(ctrl_out), SAVE :: o_iwp = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 648 'iwp', 'Cloud ice water path', 'kg/m2', (/ ('', i=1, 10) /)) 649 TYPE(ctrl_out), SAVE :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 650 'ue', 'Zonal energy transport', '-', (/ ('', i=1, 10) /)) 651 TYPE(ctrl_out), SAVE :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 652 've', 'Merid energy transport', '-', (/ ('', i=1, 10) /)) 653 TYPE(ctrl_out), SAVE :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 654 'uq', 'Zonal humidity transport', '-', (/ ('', i=1, 10) /)) 655 TYPE(ctrl_out), SAVE :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 656 'vq', 'Merid humidity transport', '-', (/ ('', i=1, 10) /)) 657 TYPE(ctrl_out), SAVE :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 658 'cape', 'Conv avlbl pot ener', 'J/kg', (/ ('', i=1, 10) /)) 659 TYPE(ctrl_out), SAVE :: o_pbase = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 660 'pbase', 'Cld base pressure', 'Pa', (/ ('', i=1, 10) /)) 661 TYPE(ctrl_out), SAVE :: o_ptop = ctrl_out((/ 1, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 662 'ptop', 'Cld top pressure', 'Pa', (/ ('', i=1, 10) /)) 663 TYPE(ctrl_out), SAVE :: o_fbase = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 664 'fbase', 'Cld base mass flux', 'kg/m2/s', (/ ('', i=1, 10) /)) 665 TYPE(ctrl_out), SAVE :: o_plcl = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 666 'plcl', 'Lifting Condensation Level', 'hPa', (/ ('', i=1, 10) /)) 667 TYPE(ctrl_out), SAVE :: o_plfc = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 668 'plfc', 'Level of Free Convection', 'hPa', (/ ('', i=1, 10) /)) 669 TYPE(ctrl_out), SAVE :: o_wbeff = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 670 'wbeff', 'Conv. updraft velocity at LFC (<100)', 'm/s', (/ ('', i=1, 10) /)) 671 TYPE(ctrl_out), SAVE :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 672 'prw', 'Precipitable water', 'kg/m2', (/ ('', i=1, 10) /)) 673 TYPE(ctrl_out), SAVE :: o_prlw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 674 'prlw', 'Precipitable liquid water', 'kg/m2', (/ ('', i=1, 10) /)) 675 TYPE(ctrl_out), SAVE :: o_prsw = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 676 'prsw', 'Precipitable solid water', 'kg/m2', (/ ('', i=1, 10) /)) 677 TYPE(ctrl_out), SAVE :: o_s_pblh = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 678 's_pblh', 'Boundary Layer Height', 'm', (/ ('', i=1, 10) /)) 679 TYPE(ctrl_out), SAVE :: o_s_pblt = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 680 's_pblt', 't at Boundary Layer Height', 'K', (/ ('', i=1, 10) /)) 681 TYPE(ctrl_out), SAVE :: o_s_lcl = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 682 's_lcl', 'Condensation level', 'm', (/ ('', i=1, 10) /)) 683 TYPE(ctrl_out), SAVE :: o_s_therm = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 684 's_therm', 'Exces du thermique', 'K', (/ ('', i=1, 10) /)) 684 685 !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F 685 ! type(ctrl_out),save :: o_s_capCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 686 ! (/ ('', i=1, 9) /))687 ! type(ctrl_out),save :: o_s_oliqCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 688 ! (/ ('', i=1, 9) /))689 ! type(ctrl_out),save :: o_s_cteiCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 690 ! (/ ('', i=1, 9) /))691 ! type(ctrl_out),save :: o_s_trmb1 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 692 ! (/ ('', i=1, 9) /))693 ! type(ctrl_out),save :: o_s_trmb2 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 694 ! (/ ('', i=1, 9) /))695 ! type(ctrl_out),save :: o_s_trmb3 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 696 !(/ ('', i=1, 9) /))697 TYPE(ctrl_out), SAVE :: o_slab_bils = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 698 'slab_bils', 'flux atmos - slab ponderes foce', 'W/m2', (/ ('', i=1, 9) /))699 TYPE(ctrl_out), SAVE :: o_slab_bilg = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 700 'slab_bilg', 'flux glace - slab ponderes fsic', 'W/m2', (/ ('', i=1, 9) /))701 TYPE(ctrl_out), SAVE :: o_slab_qflux = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 702 'slab_qflux', 'Correction flux slab', 'W/m2', (/ ('', i=1, 9) /))703 TYPE(ctrl_out), SAVE :: o_tslab = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 704 'tslab', 'Temperature ocean slab', 'K', (/ ('', i=1, 9) /))705 TYPE(ctrl_out), SAVE :: o_slab_tice = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 706 'slab_tice', 'Temperature banquise slab', 'K', (/ ('', i=1, 9) /))707 TYPE(ctrl_out), SAVE :: o_slab_sic = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 708 'seaice', 'Epaisseur banquise slab', 'kg/m2', (/ ('', i=1, 9) /))709 TYPE(ctrl_out), SAVE :: o_slab_hdiff = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 710 'slab_hdiff', 'Horizontal diffusion', 'W/m2', (/ ('', i=1, 9) /))711 TYPE(ctrl_out), SAVE :: o_slab_ekman = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 712 'slab_ekman', 'Ekman heat transport', 'W/m2', (/ ('', i=1, 9) /))713 TYPE(ctrl_out), SAVE :: o_ale_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 714 'ale_bl', 'ALE BL', 'm2/s2', (/ ('', i=1, 9) /))715 TYPE(ctrl_out), SAVE :: o_alp_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 716 'alp_bl', 'ALP BL', 'W/m2', (/ ('', i=1, 9) /))717 TYPE(ctrl_out), SAVE :: o_ale_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 718 'ale_wk', 'ALE WK', 'm2/s2', (/ ('', i=1, 9) /))719 TYPE(ctrl_out), SAVE :: o_alp_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 720 'alp_wk', 'ALP WK', 'W/m2', (/ ('', i=1, 9) /))686 ! type(ctrl_out),save :: o_s_capCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_capCL', & 687 ! (/ ('', i=1, 10) /)) 688 ! type(ctrl_out),save :: o_s_oliqCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_oliqCL', & 689 ! (/ ('', i=1, 10) /)) 690 ! type(ctrl_out),save :: o_s_cteiCL = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_cteiCL', & 691 ! (/ ('', i=1, 10) /)) 692 ! type(ctrl_out),save :: o_s_trmb1 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_trmb1', & 693 ! (/ ('', i=1, 10) /)) 694 ! type(ctrl_out),save :: o_s_trmb2 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_trmb2', & 695 ! (/ ('', i=1, 10) /)) 696 ! type(ctrl_out),save :: o_s_trmb3 = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'s_trmb3', & 697 !(/ ('', i=1, 10) /)) 698 TYPE(ctrl_out), SAVE :: o_slab_bils = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 699 'slab_bils', 'flux atmos - slab ponderes foce', 'W/m2', (/ ('', i=1, 10) /)) 700 TYPE(ctrl_out), SAVE :: o_slab_bilg = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 701 'slab_bilg', 'flux glace - slab ponderes fsic', 'W/m2', (/ ('', i=1, 10) /)) 702 TYPE(ctrl_out), SAVE :: o_slab_qflux = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 703 'slab_qflux', 'Correction flux slab', 'W/m2', (/ ('', i=1, 10) /)) 704 TYPE(ctrl_out), SAVE :: o_tslab = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 705 'tslab', 'Temperature ocean slab', 'K', (/ ('', i=1, 10) /)) 706 TYPE(ctrl_out), SAVE :: o_slab_tice = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 707 'slab_tice', 'Temperature banquise slab', 'K', (/ ('', i=1, 10) /)) 708 TYPE(ctrl_out), SAVE :: o_slab_sic = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 709 'seaice', 'Epaisseur banquise slab', 'kg/m2', (/ ('', i=1, 10) /)) 710 TYPE(ctrl_out), SAVE :: o_slab_hdiff = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 711 'slab_hdiff', 'Horizontal diffusion', 'W/m2', (/ ('', i=1, 10) /)) 712 TYPE(ctrl_out), SAVE :: o_slab_ekman = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 713 'slab_ekman', 'Ekman heat transport', 'W/m2', (/ ('', i=1, 10) /)) 714 TYPE(ctrl_out), SAVE :: o_ale_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 715 'ale_bl', 'ALE BL', 'm2/s2', (/ ('', i=1, 10) /)) 716 TYPE(ctrl_out), SAVE :: o_alp_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 717 'alp_bl', 'ALP BL', 'W/m2', (/ ('', i=1, 10) /)) 718 TYPE(ctrl_out), SAVE :: o_ale_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 719 'ale_wk', 'ALE WK', 'm2/s2', (/ ('', i=1, 10) /)) 720 TYPE(ctrl_out), SAVE :: o_alp_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 721 'alp_wk', 'ALP WK', 'W/m2', (/ ('', i=1, 10) /)) 721 722 !!! 722 723 !nrlmd+jyg< 723 type(ctrl_out),save :: o_dtvdf_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 724 'dtvdf_x', ' dtvdf off_wake','K/s', (/ ('', i=1, 9) /))725 type(ctrl_out),save :: o_dtvdf_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 726 'dtvdf_w', ' dtvdf within_wake','K/s', (/ ('', i=1, 9) /))727 type(ctrl_out),save :: o_dqvdf_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 728 'dqvdf_x', ' dqvdf off_wake','kg/kg/s', (/ ('', i=1, 9) /))729 type(ctrl_out),save :: o_dqvdf_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 730 'dqvdf_w', ' dqvdf within_wake','kg/kg/s', (/ ('', i=1, 9) /))724 type(ctrl_out),save :: o_dtvdf_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 725 'dtvdf_x', ' dtvdf off_wake','K/s', (/ ('', i=1, 10) /)) 726 type(ctrl_out),save :: o_dtvdf_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 727 'dtvdf_w', ' dtvdf within_wake','K/s', (/ ('', i=1, 10) /)) 728 type(ctrl_out),save :: o_dqvdf_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 729 'dqvdf_x', ' dqvdf off_wake','kg/kg/s', (/ ('', i=1, 10) /)) 730 type(ctrl_out),save :: o_dqvdf_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 731 'dqvdf_w', ' dqvdf within_wake','kg/kg/s', (/ ('', i=1, 10) /)) 731 732 !! 732 type(ctrl_out),save :: o_sens_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 733 'sens_x', 'sens off_wake', 'W/m2', (/ ('', i=1, 9) /))734 type(ctrl_out),save :: o_sens_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 735 'sens_w', 'sens within_wake', 'W/m2', (/ ('', i=1, 9) /))736 type(ctrl_out),save :: o_flat_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 737 'flat_x', 'flat off_wake', 'W/m2', (/ ('', i=1, 9) /))738 type(ctrl_out),save :: o_flat_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 739 'flat_w', 'flat within_wake', 'W/m2', (/ ('', i=1, 9) /))733 type(ctrl_out),save :: o_sens_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 734 'sens_x', 'sens off_wake', 'W/m2', (/ ('', i=1, 10) /)) 735 type(ctrl_out),save :: o_sens_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 736 'sens_w', 'sens within_wake', 'W/m2', (/ ('', i=1, 10) /)) 737 type(ctrl_out),save :: o_flat_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 738 'flat_x', 'flat off_wake', 'W/m2', (/ ('', i=1, 10) /)) 739 type(ctrl_out),save :: o_flat_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 740 'flat_w', 'flat within_wake', 'W/m2', (/ ('', i=1, 10) /)) 740 741 !! 741 type(ctrl_out),save :: o_delta_tsurf = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 742 'delta_tsurf', 'Temperature difference (w-x)', 'K', (/ ('', i=1, 9) /))743 type(ctrl_out),save :: o_cdragh_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 744 'cdragh_x', 'cdragh off-wake', '', (/ ('', i=1, 9) /))745 type(ctrl_out),save :: o_cdragh_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 746 'cdragh_w', 'cdragh within-wake', '', (/ ('', i=1, 9) /))747 type(ctrl_out),save :: o_cdragm_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 748 'cdragm_x', 'cdragm off-wake', '', (/ ('', i=1, 9) /))749 type(ctrl_out),save :: o_cdragm_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 750 'cdragm_w', 'cdrgam within-wake', '', (/ ('', i=1, 9) /))751 type(ctrl_out),save :: o_kh = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 752 'kh', 'Kh', 'kg/s/m2', (/ ('', i=1, 9) /))753 type(ctrl_out),save :: o_kh_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 754 'kh_x', 'Kh off-wake', 'kg/s/m2', (/ ('', i=1, 9) /))755 type(ctrl_out),save :: o_kh_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 756 'kh_w', 'Kh within-wake', 'kg/s/m2', (/ ('', i=1, 9) /))742 type(ctrl_out),save :: o_delta_tsurf = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 743 'delta_tsurf', 'Temperature difference (w-x)', 'K', (/ ('', i=1, 10) /)) 744 type(ctrl_out),save :: o_cdragh_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 745 'cdragh_x', 'cdragh off-wake', '', (/ ('', i=1, 10) /)) 746 type(ctrl_out),save :: o_cdragh_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 747 'cdragh_w', 'cdragh within-wake', '', (/ ('', i=1, 10) /)) 748 type(ctrl_out),save :: o_cdragm_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 749 'cdragm_x', 'cdragm off-wake', '', (/ ('', i=1, 10) /)) 750 type(ctrl_out),save :: o_cdragm_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 751 'cdragm_w', 'cdrgam within-wake', '', (/ ('', i=1, 10) /)) 752 type(ctrl_out),save :: o_kh = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 753 'kh', 'Kh', 'kg/s/m2', (/ ('', i=1, 10) /)) 754 type(ctrl_out),save :: o_kh_x = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 755 'kh_x', 'Kh off-wake', 'kg/s/m2', (/ ('', i=1, 10) /)) 756 type(ctrl_out),save :: o_kh_w = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 757 'kh_w', 'Kh within-wake', 'kg/s/m2', (/ ('', i=1, 10) /)) 757 758 !>nrlmd+jyg 758 759 !!! 759 TYPE(ctrl_out), SAVE :: o_ale = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 760 'ale', 'ALE', 'm2/s2', (/ ('', i=1, 9) /))761 TYPE(ctrl_out), SAVE :: o_alp = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 762 'alp', 'ALP', 'W/m2', (/ ('', i=1, 9) /))763 TYPE(ctrl_out), SAVE :: o_cin = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 764 'cin', 'Convective INhibition', 'm2/s2', (/ ('', i=1, 9) /))765 TYPE(ctrl_out), SAVE :: o_wape = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 766 'wape', '', 'm2/s2', (/ ('', i=1, 9) /))760 TYPE(ctrl_out), SAVE :: o_ale = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 761 'ale', 'ALE', 'm2/s2', (/ ('', i=1, 10) /)) 762 TYPE(ctrl_out), SAVE :: o_alp = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 763 'alp', 'ALP', 'W/m2', (/ ('', i=1, 10) /)) 764 TYPE(ctrl_out), SAVE :: o_cin = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 765 'cin', 'Convective INhibition', 'm2/s2', (/ ('', i=1, 10) /)) 766 TYPE(ctrl_out), SAVE :: o_wape = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 767 'wape', '', 'm2/s2', (/ ('', i=1, 10) /)) 767 768 768 769 !!! nrlmd le 10/04/2012 769 770 770 771 !-------Spectre de thermiques de type 2 au LCL 771 TYPE(ctrl_out), SAVE :: o_n2 = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11 /), & 772 'n2', 'Nombre de panaches de type 2', ' ', (/ ('', i=1, 9) /)) 773 TYPE(ctrl_out), SAVE :: o_s2 = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11 /), & 774 's2', 'Surface moyenne des panaches de type 2', 'm2', (/ ('', i=1, 9) /)) 775 776 !-------Déclenchement stochastique 777 TYPE(ctrl_out), SAVE :: o_proba_notrig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11 /), & 778 'proba_notrig', & 779 'Probabilite de non-declenchement', ' ', (/ ('', i=1, 9) /)) 780 TYPE(ctrl_out), SAVE :: o_random_notrig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11 /), & 781 'random_notrig', & 782 'Tirage aleatoire de non-declenchement', ' ', (/ ('', i=1, 9) /)) 783 TYPE(ctrl_out), SAVE :: o_ale_bl_stat = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11 /), & 784 'ale_bl_stat', & 785 'ALE_BL_STAT', 'm2/s2', (/ ('', i=1, 9) /)) 786 TYPE(ctrl_out), SAVE :: o_ale_bl_trig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11 /), & 787 'ale_bl_trig', & 788 'ALE_BL_STAT + Condition S>Sthreshold', 'm2/s2', (/ ('', i=1, 9) /)) 772 TYPE(ctrl_out), SAVE :: o_n2 = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 773 'n2', 'Nombre de panaches de type 2', ' ', (/ ('', i=1, 10) /)) 774 TYPE(ctrl_out), SAVE :: o_s2 = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 775 's2', 'Surface moyenne des panaches de type 2', 'm2', (/ ('', i=1, 10) /)) 776 777 !-------Déclenchement stochastiqu 778 TYPE(ctrl_out), SAVE :: o_proba_notrig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 779 'proba_notrig', 'Probabilite de non-declenchement', ' ', (/ ('', i=1, 10) /)) 780 TYPE(ctrl_out), SAVE :: o_random_notrig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 781 'random_notrig', 'Tirage aleatoire de non-declenchement', ' ', (/ ('', i=1, 10) /)) 782 TYPE(ctrl_out), SAVE :: o_ale_bl_stat = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 783 'ale_bl_stat', 'ALE_BL_STAT', 'm2/s2', (/ ('', i=1, 10) /)) 784 TYPE(ctrl_out), SAVE :: o_ale_bl_trig = ctrl_out((/ 1, 6, 6, 6, 10, 10, 11, 11, 11, 11/), & 785 'ale_bl_trig', 'ALE_BL_STAT + Condition S>Sthreshold', 'm2/s2', (/ ('', i=1, 10) /)) 789 786 790 787 !-------Fermeture statistique 791 TYPE(ctrl_out), SAVE :: o_alp_bl_det = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 792 'alp_bl_det', 'ALP_BL_DET', 'W/m2', (/ ('', i=1, 9) /))793 TYPE(ctrl_out), SAVE :: o_alp_bl_fluct_m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 794 'alp_bl_fluct_m', 'ALP_BL_FLUCT_M', 'W/m2', (/ ('', i=1, 9) /))795 TYPE(ctrl_out), SAVE :: o_alp_bl_fluct_tke = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 796 'alp_bl_fluct_tke', 'ALP_BL_FLUCT_TKE', 'W/m2', (/ ('', i=1, 9) /))797 TYPE(ctrl_out), SAVE :: o_alp_bl_conv = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 798 'alp_bl_conv', 'ALP_BL_CONV', 'W/m2', (/ ('', i=1, 9) /))799 TYPE(ctrl_out), SAVE :: o_alp_bl_stat = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 800 'alp_bl_stat', 'ALP_BL_STAT', 'W/m2', (/ ('', i=1, 9) /))788 TYPE(ctrl_out), SAVE :: o_alp_bl_det = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 789 'alp_bl_det', 'ALP_BL_DET', 'W/m2', (/ ('', i=1, 10) /)) 790 TYPE(ctrl_out), SAVE :: o_alp_bl_fluct_m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 791 'alp_bl_fluct_m', 'ALP_BL_FLUCT_M', 'W/m2', (/ ('', i=1, 10) /)) 792 TYPE(ctrl_out), SAVE :: o_alp_bl_fluct_tke = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 793 'alp_bl_fluct_tke', 'ALP_BL_FLUCT_TKE', 'W/m2', (/ ('', i=1, 10) /)) 794 TYPE(ctrl_out), SAVE :: o_alp_bl_conv = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 795 'alp_bl_conv', 'ALP_BL_CONV', 'W/m2', (/ ('', i=1, 10) /)) 796 TYPE(ctrl_out), SAVE :: o_alp_bl_stat = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 797 'alp_bl_stat', 'ALP_BL_STAT', 'W/m2', (/ ('', i=1, 10) /)) 801 798 802 799 !!! fin nrlmd le 10/04/2012 … … 805 802 806 803 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_uSTDlevs = (/ & 807 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 808 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &809 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 810 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &811 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 812 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &813 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 814 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &815 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 816 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &817 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 818 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &819 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 820 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)804 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u850', "Zonal wind 850hPa", "m/s", & 805 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 806 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u700', "Zonal wind 700hPa", "m/s", & 807 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 808 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u500', "Zonal wind 500hPa", "m/s", & 809 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 810 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u200', "Zonal wind 200hPa", "m/s", & 811 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 812 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u100', "Zonal wind 100hPa", "m/s", & 813 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 814 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u50', "Zonal wind 50hPa", "m/s", & 815 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 816 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'u10', "Zonal wind 10hPa", "m/s", & 817 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 821 818 822 819 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_vSTDlevs = (/ & 823 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 824 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &825 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 826 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &827 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 828 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &829 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 830 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &831 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 832 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &833 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 834 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &835 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 836 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)820 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v850', "Meridional wind 850hPa", "m/s", & 821 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 822 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v700', "Meridional wind 700hPa", "m/s", & 823 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 824 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v500', "Meridional wind 500hPa", "m/s", & 825 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 826 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v200', "Meridional wind 200hPa", "m/s", & 827 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 828 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v100', "Meridional wind 100hPa", "m/s", & 829 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 830 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v50', "Meridional wind 50hPa", "m/s", & 831 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 832 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'v10', "Meridional wind 10hPa", "m/s", & 833 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 837 834 838 835 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_wSTDlevs = (/ & 839 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 840 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &841 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 842 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &843 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 844 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &845 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 846 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &847 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 848 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &849 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 850 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &851 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 852 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)836 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w850', "Vertical wind 850hPa", "Pa/s", & 837 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 838 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w700', "Vertical wind 700hPa", "Pa/s", & 839 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 840 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w500', "Vertical wind 500hPa", "Pa/s", & 841 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 842 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w200', "Vertical wind 200hPa", "Pa/s", & 843 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 844 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w100', "Vertical wind 100hPa", "Pa/s", & 845 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 846 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w50', "Vertical wind 50hPa", "Pa/s", & 847 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 848 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'w10', "Vertical wind 10hPa", "Pa/s", & 849 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 853 850 854 851 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_tSTDlevs = (/ & 855 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 856 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &857 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 858 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &859 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 860 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &861 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 862 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &863 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 864 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &865 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 866 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &867 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 868 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)852 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t850', "Temperature 850hPa", "K", & 853 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 854 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t700', "Temperature 700hPa", "K", & 855 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 856 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t500', "Temperature 500hPa", "K", & 857 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 858 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t200', "Temperature 200hPa", "K", & 859 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 860 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t100', "Temperature 100hPa", "K", & 861 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 862 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t50', "Temperature 50hPa", "K", & 863 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 864 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'t10', "Temperature 10hPa", "K", & 865 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 869 866 870 867 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_qSTDlevs = (/ & 871 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 872 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &873 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 874 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &875 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 876 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &877 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 878 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &879 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 880 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &881 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 882 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &883 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 884 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)868 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q850', "Specific humidity 850hPa", & 869 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 870 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q700', "Specific humidity 700hPa", & 871 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 872 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q500', "Specific humidity 500hPa", & 873 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 874 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q200', "Specific humidity 200hPa", & 875 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 876 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q100', "Specific humidity 100hPa", & 877 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 878 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q50', "Specific humidity 50hPa", & 879 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 880 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'q10', "Specific humidity 10hPa", & 881 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 885 882 886 883 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_zSTDlevs = (/ & 887 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 888 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &889 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 890 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &891 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 892 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &893 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 894 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &895 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 896 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &897 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 898 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), &899 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 900 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /)901 902 TYPE(ctrl_out), SAVE :: o_t_oce_sic = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 903 't_oce_sic', 'Temp mixte oce-sic', 'K', (/ ('', i=1, 9) /))904 TYPE(ctrl_out), SAVE :: o_weakinv = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 905 'weakinv', 'Weak inversion', '-', (/ ('', i=1, 9) /))906 TYPE(ctrl_out), SAVE :: o_dthmin = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 907 'dthmin', 'dTheta mini', 'K/m', (/ ('', i=1, 9) /))884 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z850', "Geopotential height 850hPa", & 885 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 886 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z700', "Geopotential height 700hPa", & 887 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 888 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z500', "Geopotential height 500hPa", & 889 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 890 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z200', "Geopotential height 200hPa", & 891 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 892 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z100', "Geopotential height 100hPa", & 893 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 894 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z50', "Geopotential height 50hPa", & 895 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 896 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11, 11/),'z10', "Geopotential height 10hPa", & 897 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 898 899 TYPE(ctrl_out), SAVE :: o_t_oce_sic = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 900 't_oce_sic', 'Temp mixte oce-sic', 'K', (/ ('', i=1, 10) /)) 901 TYPE(ctrl_out), SAVE :: o_weakinv = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 902 'weakinv', 'Weak inversion', '-', (/ ('', i=1, 10) /)) 903 TYPE(ctrl_out), SAVE :: o_dthmin = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 904 'dthmin', 'dTheta mini', 'K/m', (/ ('', i=1, 10) /)) 908 905 909 906 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_u10_srf = (/ & 910 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'u10_ter', "", "", (/ ('', i=1, 9) /)), &911 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'u10_lic', "", "", (/ ('', i=1, 9) /)), &912 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'u10_oce', "", "", (/ ('', i=1, 9) /)), &913 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'u10_sic', "", "", (/ ('', i=1, 9) /)) /)907 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_ter', "", "", (/ ('', i=1, 10) /)), & 908 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_lic', "", "", (/ ('', i=1, 10) /)), & 909 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_oce', "", "", (/ ('', i=1, 10) /)), & 910 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'u10_sic', "", "", (/ ('', i=1, 10) /)) /) 914 911 915 912 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_v10_srf = (/ & 916 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'v10_ter', "", "", (/ ('', i=1, 9) /)), &917 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'v10_lic', "", "", (/ ('', i=1, 9) /)), &918 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'v10_oce', "", "", (/ ('', i=1, 9) /)), &919 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'v10_sic', "", "", (/ ('', i=1, 9) /)) /)920 921 TYPE(ctrl_out), SAVE :: o_cldtau = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11 922 'cldtau', 'Cloud optical thickness', '1', (/ ('', i=1, 9) /))923 TYPE(ctrl_out), SAVE :: o_cldemi = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11 924 'cldemi', 'Cloud optical emissivity', '1', (/ ('', i=1, 9) /))925 TYPE(ctrl_out), SAVE :: o_rh2m = ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11 926 'rh2m', 'Relative humidity at 2m', '%', (/ ('', i=1, 9) /))927 TYPE(ctrl_out), SAVE :: o_rh2m_min = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11 913 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_ter', "", "", (/ ('', i=1, 10) /)), & 914 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_lic', "", "", (/ ('', i=1, 10) /)), & 915 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_oce', "", "", (/ ('', i=1, 10) /)), & 916 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'v10_sic', "", "", (/ ('', i=1, 10) /)) /) 917 918 TYPE(ctrl_out), SAVE :: o_cldtau = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 919 'cldtau', 'Cloud optical thickness', '1', (/ ('', i=1, 10) /)) 920 TYPE(ctrl_out), SAVE :: o_cldemi = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 921 'cldemi', 'Cloud optical emissivity', '1', (/ ('', i=1, 10) /)) 922 TYPE(ctrl_out), SAVE :: o_rh2m = ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 923 'rh2m', 'Relative humidity at 2m', '%', (/ ('', i=1, 10) /)) 924 TYPE(ctrl_out), SAVE :: o_rh2m_min = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 928 925 'rh2m_min', 'Min Relative humidity at 2m', '%', & 929 (/ 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)' /)) 930 TYPE(ctrl_out), SAVE :: o_rh2m_max = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11 /), & 931 'rh2m_max', 'Max Relative humidity at 2m', '%', & 932 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 926 (/ 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', & 927 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)', 't_min(X)' /)) 928 TYPE(ctrl_out), SAVE :: o_rh2m_max = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 929 'rh2m_max', 'Max Relative humidity at 2m', '%', & 930 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 933 931 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 934 TYPE(ctrl_out), SAVE :: o_qsat2m = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11 /), & 935 'qsat2m', 'Saturant humidity at 2m', '%', (/ ('', i=1, 9) /)) 936 TYPE(ctrl_out), SAVE :: o_tpot = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11 /), & 937 'tpot', 'Surface air potential temperature', 'K', (/ ('', i=1, 9) /)) 938 TYPE(ctrl_out), SAVE :: o_tpote = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11 /), & 939 'tpote', & 940 'Surface air equivalent potential temperature', 'K', (/ ('', i=1, 9) /)) 941 TYPE(ctrl_out), SAVE :: o_tke = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 942 'tke ', 'TKE', 'm2/s2', (/ ('', i=1, 9) /)) 943 TYPE(ctrl_out), SAVE :: o_tke_max = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 944 'tke_max', 'TKE max', 'm2/s2', & 932 TYPE(ctrl_out), SAVE :: o_qsat2m = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 933 'qsat2m', 'Saturant humidity at 2m', '%', (/ ('', i=1, 10) /)) 934 TYPE(ctrl_out), SAVE :: o_tpot = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 935 'tpot', 'Surface air potential temperature', 'K', (/ ('', i=1, 10) /)) 936 TYPE(ctrl_out), SAVE :: o_tpote = ctrl_out((/ 10, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 937 'tpote', 'Surface air equivalent potential temperature', 'K', (/ ('', i=1, 10) /)) 938 TYPE(ctrl_out), SAVE :: o_tke = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 939 'tke ', 'TKE', 'm2/s2', (/ ('', i=1, 10) /)) 940 TYPE(ctrl_out), SAVE :: o_tke_max = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 941 'tke_max', 'TKE max', 'm2/s2', & 945 942 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 946 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /))943 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /)) 947 944 948 945 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_srf = (/ & 949 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 950 "Max Turb. Kinetic Energy "//clnsurf(1),"m2/s2", (/ ('', i=1, 9) /)), &951 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 952 "Max Turb. Kinetic Energy "//clnsurf(2),"m2/s2", (/ ('', i=1, 9) /)), &953 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 954 "Max Turb. Kinetic Energy "//clnsurf(3),"m2/s2", (/ ('', i=1, 9) /)), &955 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 956 "Max Turb. Kinetic Energy "//clnsurf(4),"m2/s2", (/ ('', i=1, 9) /)) /)946 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_ter', & 947 "Max Turb. Kinetic Energy "//clnsurf(1),"m2/s2", (/ ('', i=1, 10) /)), & 948 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_lic', & 949 "Max Turb. Kinetic Energy "//clnsurf(2),"m2/s2", (/ ('', i=1, 10) /)), & 950 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_oce', & 951 "Max Turb. Kinetic Energy "//clnsurf(3),"m2/s2", (/ ('', i=1, 10) /)), & 952 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_sic', & 953 "Max Turb. Kinetic Energy "//clnsurf(4),"m2/s2", (/ ('', i=1, 10) /)) /) 957 954 958 955 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mixmin = (/ & 959 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 960 "PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 9) /)), &961 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 962 "PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 9) /)), &963 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 964 "PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 9) /)), &965 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 966 "PBL mixing length "//clnsurf(4),"m", (/ ('', i=1, 9) /)) /)956 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_ter', & 957 "PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 10) /)), & 958 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_lic', & 959 "PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 10) /)), & 960 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_oce', & 961 "PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 10) /)), & 962 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mixmin_sic', & 963 "PBL mixing length "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /) 967 964 968 965 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mix = (/ & 969 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 970 "min PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 9) /)), &971 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 972 "min PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 9) /)), &973 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 974 "min PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 9) /)), &975 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 976 "min PBL mixing length "//clnsurf(4),"m", (/ ('', i=1, 9) /)) /)966 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_ter', & 967 "min PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 10) /)), & 968 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_lic', & 969 "min PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 10) /)), & 970 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_oce', & 971 "min PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 10) /)), & 972 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'l_mix_sic', & 973 "min PBL mixing length "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /) 977 974 978 975 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_max_srf = (/ & 979 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 976 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_ter', & 980 977 "Max Turb. Kinetic Energy "//clnsurf(1),"-", & 981 978 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 982 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), &983 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 979 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 980 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_lic', & 984 981 "Max Turb. Kinetic Energy "//clnsurf(2),"-", & 985 982 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 986 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), &987 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 983 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 984 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_oce', & 988 985 "Max Turb. Kinetic Energy "//clnsurf(3),"-", & 989 986 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 990 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), &991 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 987 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)), & 988 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_sic', & 992 989 "Max Turb. Kinetic Energy "//clnsurf(4),"-", & 993 990 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 994 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) /)991 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) /) 995 992 996 993 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_dltpbltke_srf = (/ & 997 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 998 "TKE difference (w - x) "//clnsurf(1),"-", (/ ('', i=1, 9) /)), &999 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 1000 "TKE difference (w - x) "//clnsurf(2),"-", (/ ('', i=1, 9) /)), &1001 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 1002 "TKE difference (w - x) "//clnsurf(3),"-", (/ ('', i=1, 9) /)), &1003 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 1004 "TKE difference (w - x) "//clnsurf(4),"-", (/ ('', i=1, 9) /)) /)1005 1006 TYPE(ctrl_out), SAVE :: o_kz = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1007 'kz', 'Kz melange', 'm2/s', (/ ('', i=1, 9) /))1008 TYPE(ctrl_out), SAVE :: o_kz_max = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 994 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_ter', & 995 "TKE difference (w - x) "//clnsurf(1),"-", (/ ('', i=1, 10) /)), & 996 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_lic', & 997 "TKE difference (w - x) "//clnsurf(2),"-", (/ ('', i=1, 10) /)), & 998 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_oce', & 999 "TKE difference (w - x) "//clnsurf(3),"-", (/ ('', i=1, 10) /)), & 1000 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'dltpbltke_sic', & 1001 "TKE difference (w - x) "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /) 1002 1003 TYPE(ctrl_out), SAVE :: o_kz = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1004 'kz', 'Kz melange', 'm2/s', (/ ('', i=1, 10) /)) 1005 TYPE(ctrl_out), SAVE :: o_kz_max = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1009 1006 'kz_max', 'Kz melange max', 'm2/s', & 1010 1007 (/ 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', & 1011 't_max(X)', "t_max(X)", "t_max(X)", "t_max(X)" /))1012 TYPE(ctrl_out), SAVE :: o_SWnetOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1013 'SWnetOR', 'Sfce net SW radiation OR', 'W/m2', (/ ('', i=1, 9) /))1014 TYPE(ctrl_out), SAVE :: o_SWdownOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1015 'SWdownOR', 'Sfce incident SW radiation OR', 'W/m2', (/ ('', i=1, 9) /))1016 TYPE(ctrl_out), SAVE :: o_LWdownOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1017 'LWdownOR', 'Sfce incident LW radiation OR', 'W/m2', (/ ('', i=1, 9) /))1018 TYPE(ctrl_out), SAVE :: o_snowl = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 1019 'snowl', 'Solid Large-scale Precip.', 'kg/(m2*s)', (/ ('', i=1, 9) /))1020 TYPE(ctrl_out), SAVE :: o_cape_max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 1008 't_max(X)', "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 1009 TYPE(ctrl_out), SAVE :: o_SWnetOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1010 'SWnetOR', 'Sfce net SW radiation OR', 'W/m2', (/ ('', i=1, 10) /)) 1011 TYPE(ctrl_out), SAVE :: o_SWdownOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1012 'SWdownOR', 'Sfce incident SW radiation OR', 'W/m2', (/ ('', i=1, 10) /)) 1013 TYPE(ctrl_out), SAVE :: o_LWdownOR = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1014 'LWdownOR', 'Sfce incident LW radiation OR', 'W/m2', (/ ('', i=1, 10) /)) 1015 TYPE(ctrl_out), SAVE :: o_snowl = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1016 'snowl', 'Solid Large-scale Precip.', 'kg/(m2*s)', (/ ('', i=1, 10) /)) 1017 TYPE(ctrl_out), SAVE :: o_cape_max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1021 1018 'cape_max', 'CAPE max.', 'J/kg', & 1022 1019 (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", & 1023 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /))1024 TYPE(ctrl_out), SAVE :: o_solldown = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11 1025 'solldown', 'Down. IR rad. at surface', 'W/m2', (/ ('', i=1, 9) /))1026 TYPE(ctrl_out), SAVE :: o_dtsvdfo = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1027 'dtsvdfo', 'Boundary-layer dTs(o)', 'K/s', (/ ('', i=1, 9) /))1028 TYPE(ctrl_out), SAVE :: o_dtsvdft = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1029 'dtsvdft', 'Boundary-layer dTs(t)', 'K/s', (/ ('', i=1, 9) /))1030 TYPE(ctrl_out), SAVE :: o_dtsvdfg = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1031 'dtsvdfg', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i=1, 9) /))1032 TYPE(ctrl_out), SAVE :: o_dtsvdfi = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1033 'dtsvdfi', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i=1, 9) /))1034 TYPE(ctrl_out), SAVE :: o_z0m = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1035 'z0m', 'roughness length, momentum', '-', (/ ('', i=1, 9) /))1036 TYPE(ctrl_out), SAVE :: o_z0h = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1037 'z0h', 'roughness length, enthalpy', '-', (/ ('', i=1, 9) /))1038 TYPE(ctrl_out), SAVE :: o_topswad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1039 'topswad', 'ADE at TOA', 'W/m2', (/ ('', i=1, 9) /))1040 TYPE(ctrl_out), SAVE :: o_topswad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1041 'topswad0', 'ADE clear-sky at TOA', 'W/m2', (/ ('', i=1, 9) /))1042 TYPE(ctrl_out), SAVE :: o_topswai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1043 'topswai', 'AIE at TOA', 'W/m2', (/ ('', i=1, 9) /))1044 TYPE(ctrl_out), SAVE :: o_solswad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1045 'solswad', 'ADE at SRF', 'W/m2', (/ ('', i=1, 9) /))1046 TYPE(ctrl_out), SAVE :: o_solswad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1047 'solswad0', 'ADE clear-sky at SRF', 'W/m2', (/ ('', i=1, 9) /))1048 TYPE(ctrl_out), SAVE :: o_solswai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1049 'solswai', 'AIE at SFR', 'W/m2', (/ ('', i=1, 9) /))1050 TYPE(ctrl_out), SAVE :: o_toplwad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1051 'toplwad', 'LW-ADE at TOA', 'W/m2', (/ ('', i=1, 9) /))1052 TYPE(ctrl_out), SAVE :: o_toplwad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1053 'toplwad0', 'LW-ADE clear-sky at TOA', 'W/m2', (/ ('', i=1, 9) /))1054 TYPE(ctrl_out), SAVE :: o_toplwai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1055 'toplwai', 'LW-AIE at TOA', 'W/m2', (/ ('', i=1, 9) /))1056 TYPE(ctrl_out), SAVE :: o_sollwad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1057 'sollwad', 'LW-ADE at SRF', 'W/m2', (/ ('', i=1, 9) /))1058 TYPE(ctrl_out), SAVE :: o_sollwad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1059 'sollwad0', 'LW-ADE clear-sky at SRF', 'W/m2', (/ ('', i=1, 9) /))1060 TYPE(ctrl_out), SAVE :: o_sollwai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1061 'sollwai', 'LW-AIE at SFR', 'W/m2', (/ ('', i=1, 9) /))1020 "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /)) 1021 TYPE(ctrl_out), SAVE :: o_solldown = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 1022 'solldown', 'Down. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) 1023 TYPE(ctrl_out), SAVE :: o_dtsvdfo = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1024 'dtsvdfo', 'Boundary-layer dTs(o)', 'K/s', (/ ('', i=1, 10) /)) 1025 TYPE(ctrl_out), SAVE :: o_dtsvdft = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1026 'dtsvdft', 'Boundary-layer dTs(t)', 'K/s', (/ ('', i=1, 10) /)) 1027 TYPE(ctrl_out), SAVE :: o_dtsvdfg = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1028 'dtsvdfg', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i=1, 10) /)) 1029 TYPE(ctrl_out), SAVE :: o_dtsvdfi = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1030 'dtsvdfi', 'Boundary-layer dTs(g)', 'K/s', (/ ('', i=1, 10) /)) 1031 TYPE(ctrl_out), SAVE :: o_z0m = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1032 'z0m', 'roughness length, momentum', '-', (/ ('', i=1, 10) /)) 1033 TYPE(ctrl_out), SAVE :: o_z0h = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1034 'z0h', 'roughness length, enthalpy', '-', (/ ('', i=1, 10) /)) 1035 TYPE(ctrl_out), SAVE :: o_topswad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1036 'topswad', 'ADE at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1037 TYPE(ctrl_out), SAVE :: o_topswad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1038 'topswad0', 'ADE clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1039 TYPE(ctrl_out), SAVE :: o_topswai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1040 'topswai', 'AIE at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1041 TYPE(ctrl_out), SAVE :: o_solswad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1042 'solswad', 'ADE at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1043 TYPE(ctrl_out), SAVE :: o_solswad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1044 'solswad0', 'ADE clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1045 TYPE(ctrl_out), SAVE :: o_solswai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1046 'solswai', 'AIE at SFR', 'W/m2', (/ ('', i=1, 10) /)) 1047 TYPE(ctrl_out), SAVE :: o_toplwad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1048 'toplwad', 'LW-ADE at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1049 TYPE(ctrl_out), SAVE :: o_toplwad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1050 'toplwad0', 'LW-ADE clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1051 TYPE(ctrl_out), SAVE :: o_toplwai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1052 'toplwai', 'LW-AIE at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1053 TYPE(ctrl_out), SAVE :: o_sollwad = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1054 'sollwad', 'LW-ADE at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1055 TYPE(ctrl_out), SAVE :: o_sollwad0 = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1056 'sollwad0', 'LW-ADE clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1057 TYPE(ctrl_out), SAVE :: o_sollwai = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1058 'sollwai', 'LW-AIE at SFR', 'W/m2', (/ ('', i=1, 10) /)) 1062 1059 1063 1060 1064 1061 TYPE(ctrl_out),SAVE,DIMENSION(naero_tot) :: o_tausumaero = & 1065 (/ ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1066 "Aerosol Optical depth at 550 nm "//name_aero_tau(1),"1", (/ ('', i=1, 9) /)), &1067 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1068 "Aerosol Optical depth at 550 nm "//name_aero_tau(2),"2", (/ ('', i=1, 9) /)), &1069 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1070 "Aerosol Optical depth at 550 nm "//name_aero_tau(3),"3", (/ ('', i=1, 9) /)), &1071 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1072 "Aerosol Optical depth at 550 nm "//name_aero_tau(4),"4", (/ ('', i=1, 9) /)), &1073 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1074 "Aerosol Optical depth at 550 nm "//name_aero_tau(5),"5", (/ ('', i=1, 9) /)), &1075 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1076 "Aerosol Optical depth at 550 nm "//name_aero_tau(6),"6", (/ ('', i=1, 9) /)), &1077 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1078 "Aerosol Optical depth at 550 nm "//name_aero_tau(7),"7", (/ ('', i=1, 9) /)), &1079 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1080 "Aerosol Optical depth at 550 nm "//name_aero_tau(8),"8", (/ ('', i=1, 9) /)), &1081 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1082 "Aerosol Optical depth at 550 nm "//name_aero_tau(9),"9", (/ ('', i=1, 9) /)), &1083 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1084 "Aerosol Optical depth at 550 nm "//name_aero_tau(10),"10", (/ ('', i=1, 9) /)), &1085 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1086 "Aerosol Optical depth at 550 nm "//name_aero_tau(11),"11", (/ ('', i=1, 9) /)), &1087 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1088 "Aerosol Optical depth at 550 nm "//name_aero_tau(12),"12", (/ ('', i=1, 9) /)), &1089 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1090 "Aerosol Optical depth at 550 nm "//name_aero_tau(13),"13", (/ ('', i=1, 9) /)), &1091 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1092 "Aerosol Optical depth at 550 nm "//name_aero_tau(14),"14", (/ ('', i=1, 9) /)) /)1062 (/ ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(1), & 1063 "Aerosol Optical depth at 550 nm "//name_aero_tau(1),"1", (/ ('', i=1, 10) /)), & 1064 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(2), & 1065 "Aerosol Optical depth at 550 nm "//name_aero_tau(2),"2", (/ ('', i=1, 10) /)), & 1066 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(3), & 1067 "Aerosol Optical depth at 550 nm "//name_aero_tau(3),"3", (/ ('', i=1, 10) /)), & 1068 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(4), & 1069 "Aerosol Optical depth at 550 nm "//name_aero_tau(4),"4", (/ ('', i=1, 10) /)), & 1070 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(5), & 1071 "Aerosol Optical depth at 550 nm "//name_aero_tau(5),"5", (/ ('', i=1, 10) /)), & 1072 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(6), & 1073 "Aerosol Optical depth at 550 nm "//name_aero_tau(6),"6", (/ ('', i=1, 10) /)), & 1074 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(7), & 1075 "Aerosol Optical depth at 550 nm "//name_aero_tau(7),"7", (/ ('', i=1, 10) /)), & 1076 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(8), & 1077 "Aerosol Optical depth at 550 nm "//name_aero_tau(8),"8", (/ ('', i=1, 10) /)), & 1078 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(9), & 1079 "Aerosol Optical depth at 550 nm "//name_aero_tau(9),"9", (/ ('', i=1, 10) /)), & 1080 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(10), & 1081 "Aerosol Optical depth at 550 nm "//name_aero_tau(10),"10", (/ ('', i=1, 10) /)), & 1082 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(11), & 1083 "Aerosol Optical depth at 550 nm "//name_aero_tau(11),"11", (/ ('', i=1, 10) /)), & 1084 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(12), & 1085 "Aerosol Optical depth at 550 nm "//name_aero_tau(12),"12", (/ ('', i=1, 10) /)), & 1086 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(13), & 1087 "Aerosol Optical depth at 550 nm "//name_aero_tau(13),"13", (/ ('', i=1, 10) /)), & 1088 ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'OD550_'//name_aero_tau(14), & 1089 "Aerosol Optical depth at 550 nm "//name_aero_tau(14),"14", (/ ('', i=1, 10) /)) /) 1093 1090 ! 1094 TYPE(ctrl_out), SAVE :: o_tausumaero_lw = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1095 'OD_10um_STRAT', 'Stratospheric Aerosol Optical depth at 10 um ', '1', (/ ('', i=1, 9) /))1091 TYPE(ctrl_out), SAVE :: o_tausumaero_lw = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1092 'OD_10um_STRAT', 'Stratospheric Aerosol Optical depth at 10 um ', '1', (/ ('', i=1, 10) /)) 1096 1093 ! 1097 TYPE(ctrl_out), SAVE :: o_od550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1098 'od550aer', 'Total aerosol optical depth at 550nm', '-', (/ ('', i=1, 9) /))1099 TYPE(ctrl_out), SAVE :: o_od865aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1100 'od865aer', 'Total aerosol optical depth at 870nm', '-', (/ ('', i=1, 9) /))1101 TYPE(ctrl_out), SAVE :: o_absvisaer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1102 'absvisaer', 'Absorption aerosol visible optical depth', '-', (/ ('', i=1, 9) /))1103 TYPE(ctrl_out), SAVE :: o_od550lt1aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1104 'od550lt1aer', 'Fine mode optical depth', '-', (/ ('', i=1, 9) /))1105 TYPE(ctrl_out), SAVE :: o_sconcso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1106 'sconcso4', 'Surface Concentration of Sulfate ', 'kg/m3', (/ ('', i=1, 9) /))1107 TYPE(ctrl_out), SAVE :: o_sconcno3 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1108 'sconcno3', 'Surface Concentration of Nitrate ', 'kg/m3', (/ ('', i=1, 9) /))1109 TYPE(ctrl_out), SAVE :: o_sconcoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1110 'sconcoa', 'Surface Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i=1, 9) /))1111 TYPE(ctrl_out), SAVE :: o_sconcbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1112 'sconcbc', 'Surface Concentration of Black Carbon ', 'kg/m3', (/ ('', i=1, 9) /))1113 TYPE(ctrl_out), SAVE :: o_sconcss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1114 'sconcss', 'Surface Concentration of Sea Salt ', 'kg/m3', (/ ('', i=1, 9) /))1115 TYPE(ctrl_out), SAVE :: o_sconcdust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1116 'sconcdust', 'Surface Concentration of Dust ', 'kg/m3', (/ ('', i=1, 9) /))1117 TYPE(ctrl_out), SAVE :: o_concso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1118 'concso4', 'Concentration of Sulfate ', 'kg/m3', (/ ('', i=1, 9) /))1119 TYPE(ctrl_out), SAVE :: o_concno3 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1120 'concno3', 'Concentration of Nitrate ', 'kg/m3', (/ ('', i=1, 9) /))1121 TYPE(ctrl_out), SAVE :: o_concoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1122 'concoa', 'Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i=1, 9) /))1123 TYPE(ctrl_out), SAVE :: o_concbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1124 'concbc', 'Concentration of Black Carbon ', 'kg/m3', (/ ('', i=1, 9) /))1125 TYPE(ctrl_out), SAVE :: o_concss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1126 'concss', 'Concentration of Sea Salt ', 'kg/m3', (/ ('', i=1, 9) /))1127 TYPE(ctrl_out), SAVE :: o_concdust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1128 'concdust', 'Concentration of Dust ', 'kg/m3', (/ ('', i=1, 9) /))1129 TYPE(ctrl_out), SAVE :: o_loadso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1130 'loadso4', 'Column Load of Sulfate ', 'kg/m2', (/ ('', i=1, 9) /))1131 TYPE(ctrl_out), SAVE :: o_loadoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1132 'loadoa', 'Column Load of Organic Aerosol ', 'kg/m2', (/ ('', i=1, 9) /))1133 TYPE(ctrl_out), SAVE :: o_loadbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1134 'loadbc', 'Column Load of Black Carbon ', 'kg/m2', (/ ('', i=1, 9) /))1135 TYPE(ctrl_out), SAVE :: o_loadss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1136 'loadss', 'Column Load of Sea Salt ', 'kg/m2', (/ ('', i=1, 9) /))1137 TYPE(ctrl_out), SAVE :: o_loaddust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1138 'loaddust', 'Column Load of Dust ', 'kg/m2', (/ ('', i=1, 9) /))1139 TYPE(ctrl_out), SAVE :: o_swtoaas_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1140 'swtoaas_nat', 'Natural aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i=1, 9) /))1141 TYPE(ctrl_out), SAVE :: o_swsrfas_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1142 'swsrfas_nat', 'Natural aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i=1, 9) /))1143 TYPE(ctrl_out), SAVE :: o_swtoacs_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1144 'swtoacs_nat', 'Natural aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i=1, 9) /))1145 TYPE(ctrl_out), SAVE :: o_swsrfcs_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1146 'swsrfcs_nat', 'Natural aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i=1, 9) /))1147 TYPE(ctrl_out), SAVE :: o_swtoaas_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1148 'swtoaas_ant', 'Anthropogenic aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i=1, 9) /))1149 TYPE(ctrl_out), SAVE :: o_swsrfas_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1150 'swsrfas_ant', 'Anthropogenic aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i=1, 9) /))1151 TYPE(ctrl_out), SAVE :: o_swtoacs_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1152 'swtoacs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i=1, 9) /))1153 TYPE(ctrl_out), SAVE :: o_swsrfcs_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1154 'swsrfcs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i=1, 9) /))1155 TYPE(ctrl_out), SAVE :: o_swtoacf_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1156 'swtoacf_nat', 'Natural aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i=1, 9) /))1157 TYPE(ctrl_out), SAVE :: o_swsrfcf_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1158 'swsrfcf_nat', 'Natural aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i=1, 9) /))1159 TYPE(ctrl_out), SAVE :: o_swtoacf_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1160 'swtoacf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i=1, 9) /))1161 TYPE(ctrl_out), SAVE :: o_swsrfcf_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1162 'swsrfcf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i=1, 9) /))1163 TYPE(ctrl_out), SAVE :: o_swtoacf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1164 'swtoacf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at TOA', 'W/m2', (/ ('', i=1, 9) /))1165 TYPE(ctrl_out), SAVE :: o_swsrfcf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 1166 'swsrfcf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at SRF', 'W/m2', (/ ('', i=1, 9) /))1167 TYPE(ctrl_out), SAVE :: o_cldncl = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1168 'cldncl', 'CDNC at top of liquid water cloud', 'm-3', (/ ('', i=1, 9) /))1169 TYPE(ctrl_out), SAVE :: o_reffclwtop = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1170 'reffclwtop', 'Droplet effective radius at top of liquid water cloud', 'm', (/ ('', i=1, 9) /))1171 TYPE(ctrl_out), SAVE :: o_cldnvi = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1172 'cldnvi', 'Column Integrated Cloud Droplet Number', 'm-2', (/ ('', i=1, 9) /))1173 TYPE(ctrl_out), SAVE :: o_lcc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1174 'lcc', 'Cloud liquid fraction at top of cloud', '1', (/ ('', i=1, 9) /))1094 TYPE(ctrl_out), SAVE :: o_od550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1095 'od550aer', 'Total aerosol optical depth at 550nm', '-', (/ ('', i=1, 10) /)) 1096 TYPE(ctrl_out), SAVE :: o_od865aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1097 'od865aer', 'Total aerosol optical depth at 870nm', '-', (/ ('', i=1, 10) /)) 1098 TYPE(ctrl_out), SAVE :: o_absvisaer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1099 'absvisaer', 'Absorption aerosol visible optical depth', '-', (/ ('', i=1, 10) /)) 1100 TYPE(ctrl_out), SAVE :: o_od550lt1aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1101 'od550lt1aer', 'Fine mode optical depth', '-', (/ ('', i=1, 10) /)) 1102 TYPE(ctrl_out), SAVE :: o_sconcso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1103 'sconcso4', 'Surface Concentration of Sulfate ', 'kg/m3', (/ ('', i=1, 10) /)) 1104 TYPE(ctrl_out), SAVE :: o_sconcno3 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1105 'sconcno3', 'Surface Concentration of Nitrate ', 'kg/m3', (/ ('', i=1, 10) /)) 1106 TYPE(ctrl_out), SAVE :: o_sconcoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1107 'sconcoa', 'Surface Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i=1, 10) /)) 1108 TYPE(ctrl_out), SAVE :: o_sconcbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1109 'sconcbc', 'Surface Concentration of Black Carbon ', 'kg/m3', (/ ('', i=1, 10) /)) 1110 TYPE(ctrl_out), SAVE :: o_sconcss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1111 'sconcss', 'Surface Concentration of Sea Salt ', 'kg/m3', (/ ('', i=1, 10) /)) 1112 TYPE(ctrl_out), SAVE :: o_sconcdust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1113 'sconcdust', 'Surface Concentration of Dust ', 'kg/m3', (/ ('', i=1, 10) /)) 1114 TYPE(ctrl_out), SAVE :: o_concso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1115 'concso4', 'Concentration of Sulfate ', 'kg/m3', (/ ('', i=1, 10) /)) 1116 TYPE(ctrl_out), SAVE :: o_concno3 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1117 'concno3', 'Concentration of Nitrate ', 'kg/m3', (/ ('', i=1, 10) /)) 1118 TYPE(ctrl_out), SAVE :: o_concoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1119 'concoa', 'Concentration of Organic Aerosol ', 'kg/m3', (/ ('', i=1, 10) /)) 1120 TYPE(ctrl_out), SAVE :: o_concbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1121 'concbc', 'Concentration of Black Carbon ', 'kg/m3', (/ ('', i=1, 10) /)) 1122 TYPE(ctrl_out), SAVE :: o_concss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1123 'concss', 'Concentration of Sea Salt ', 'kg/m3', (/ ('', i=1, 10) /)) 1124 TYPE(ctrl_out), SAVE :: o_concdust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1125 'concdust', 'Concentration of Dust ', 'kg/m3', (/ ('', i=1, 10) /)) 1126 TYPE(ctrl_out), SAVE :: o_loadso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1127 'loadso4', 'Column Load of Sulfate ', 'kg/m2', (/ ('', i=1, 10) /)) 1128 TYPE(ctrl_out), SAVE :: o_loadoa = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1129 'loadoa', 'Column Load of Organic Aerosol ', 'kg/m2', (/ ('', i=1, 10) /)) 1130 TYPE(ctrl_out), SAVE :: o_loadbc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1131 'loadbc', 'Column Load of Black Carbon ', 'kg/m2', (/ ('', i=1, 10) /)) 1132 TYPE(ctrl_out), SAVE :: o_loadss = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1133 'loadss', 'Column Load of Sea Salt ', 'kg/m2', (/ ('', i=1, 10) /)) 1134 TYPE(ctrl_out), SAVE :: o_loaddust = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1135 'loaddust', 'Column Load of Dust ', 'kg/m2', (/ ('', i=1, 10) /)) 1136 TYPE(ctrl_out), SAVE :: o_swtoaas_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1137 'swtoaas_nat', 'Natural aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1138 TYPE(ctrl_out), SAVE :: o_swsrfas_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1139 'swsrfas_nat', 'Natural aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1140 TYPE(ctrl_out), SAVE :: o_swtoacs_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1141 'swtoacs_nat', 'Natural aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1142 TYPE(ctrl_out), SAVE :: o_swsrfcs_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1143 'swsrfcs_nat', 'Natural aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1144 TYPE(ctrl_out), SAVE :: o_swtoaas_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1145 'swtoaas_ant', 'Anthropogenic aerosol radiative forcing all-sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1146 TYPE(ctrl_out), SAVE :: o_swsrfas_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1147 'swsrfas_ant', 'Anthropogenic aerosol radiative forcing all-sky at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1148 TYPE(ctrl_out), SAVE :: o_swtoacs_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1149 'swtoacs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1150 TYPE(ctrl_out), SAVE :: o_swsrfcs_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1151 'swsrfcs_ant', 'Anthropogenic aerosol radiative forcing clear-sky at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1152 TYPE(ctrl_out), SAVE :: o_swtoacf_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1153 'swtoacf_nat', 'Natural aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1154 TYPE(ctrl_out), SAVE :: o_swsrfcf_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1155 'swsrfcf_nat', 'Natural aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1156 TYPE(ctrl_out), SAVE :: o_swtoacf_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1157 'swtoacf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1158 TYPE(ctrl_out), SAVE :: o_swsrfcf_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1159 'swsrfcf_ant', 'Anthropogenic aerosol impact on cloud radiative forcing at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1160 TYPE(ctrl_out), SAVE :: o_swtoacf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1161 'swtoacf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at TOA', 'W/m2', (/ ('', i=1, 10) /)) 1162 TYPE(ctrl_out), SAVE :: o_swsrfcf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1163 'swsrfcf_zero', 'Cloud radiative forcing (allsky-clearsky fluxes) at SRF', 'W/m2', (/ ('', i=1, 10) /)) 1164 TYPE(ctrl_out), SAVE :: o_cldncl = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1165 'cldncl', 'CDNC at top of liquid water cloud', 'm-3', (/ ('', i=1, 10) /)) 1166 TYPE(ctrl_out), SAVE :: o_reffclwtop = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1167 'reffclwtop', 'Droplet effective radius at top of liquid water cloud', 'm', (/ ('', i=1, 10) /)) 1168 TYPE(ctrl_out), SAVE :: o_cldnvi = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1169 'cldnvi', 'Column Integrated Cloud Droplet Number', 'm-2', (/ ('', i=1, 10) /)) 1170 TYPE(ctrl_out), SAVE :: o_lcc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1171 'lcc', 'Cloud liquid fraction at top of cloud', '1', (/ ('', i=1, 10) /)) 1175 1172 1176 1173 #ifdef CPP_StratAer 1177 TYPE(ctrl_out), SAVE :: o_ext_strat_550 = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1178 'ext_strat_550', 'Strat. aerosol extinction coefficient at 550 nm', '1/m', (/ ('', i=1, 9) /)) 1179 TYPE(ctrl_out), SAVE :: o_ext_strat_1020 = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1180 'ext_strat_1020', 'Strat. aerosol extinction coefficient at 1020 nm', '1/m', (/ ('', i=1, 9) /)) 1181 TYPE(ctrl_out), SAVE :: o_tau_strat_550 = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1182 'OD550_strat_only', 'Stratospheric Aerosol Optical depth at 550 nm ', '1', (/ ('', i=1, 9) /)) 1183 TYPE(ctrl_out), SAVE :: o_tau_strat_1020 = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1184 'OD1020_strat_only', 'Stratospheric Aerosol Optical depth at 1020 nm ', '1', (/ ('', i=1, 9) /)) 1185 TYPE(ctrl_out), SAVE :: o_sulf_convert = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1186 'sulf_convert', 'SO2 mass flux converted to H2SO4', 'kg(S)/m2/layer/s', (/ ('', i=1, 9) /)) 1187 TYPE(ctrl_out), SAVE :: o_sulf_nucl = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1188 'sulf_nucl', 'H2SO4 nucleation mass flux', 'kg(S)/m2/layer/s', (/ ('', i=1, 9) /)) 1189 TYPE(ctrl_out), SAVE :: o_sulf_cond_evap = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1190 'sulf_cond_evap', 'H2SO4 condensation/evaporation mass flux', 'kg(S)/m2/layer/s', (/ ('', i=1, 9) /)) 1191 TYPE(ctrl_out), SAVE :: o_ocs_convert = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1192 'ocs_convert', 'OCS mass flux converted to SO2', 'kg(S)/m2/layer/s', (/ ('', i=1, 9) /)) 1193 TYPE(ctrl_out), SAVE :: o_R2SO4 = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1194 'R2SO4', 'H2SO4 mass fraction in aerosol', '%', (/ ('', i=1, 9) /)) 1195 TYPE(ctrl_out), SAVE :: o_OCS_lifetime = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1196 'OCS_lifetime', 'OCS lifetime', 's', (/ ('', i=1, 9) /)) 1197 TYPE(ctrl_out), SAVE :: o_SO2_lifetime = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1198 'SO2_lifetime', 'SO2 lifetime', 's', (/ ('', i=1, 9) /)) 1199 TYPE(ctrl_out), SAVE :: o_SO2_backgr_tend = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1200 'SO2_backgr_tend', 'SO2 background tendency', 'kg(S)/m2/layer/s', (/ ('', i=1, 9) /)) 1201 TYPE(ctrl_out), SAVE :: o_OCS_backgr_tend = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1202 'OCS_backgr_tend', 'OCS background tendency', 'kg(S)/m2/layer/s', (/ ('', i=1, 9) /)) 1203 TYPE(ctrl_out), SAVE :: o_vsed_aer = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1204 'vsed_aer', 'Strat. aerosol sedimentation velocity (mass-weighted)', 'm/s', (/ ('', i=1, 9) /)) 1205 TYPE(ctrl_out), SAVE :: o_f_r_wet = ctrl_out((/ 1, 6, 7, 10, 10, 10, 11, 11, 11 /), & 1206 'f_r_wet', 'Conversion factor dry to wet aerosol radius', '-', (/ ('', i=1, 9) /)) 1207 TYPE(ctrl_out), SAVE :: o_sulf_dep_dry = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1208 'sulf_dep_dry', 'Sulfur dry deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 9) /)) 1209 TYPE(ctrl_out), SAVE :: o_sulf_dep_wet = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1210 'sulf_dep_wet', 'Sulfur wet deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 9) /)) 1211 TYPE(ctrl_out), SAVE :: o_surf_PM25_sulf = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1212 'surf_PM25_sulf', 'Sulfate PM2.5 concentration at the surface', 'ug/m3', (/ ('', i=1, 9) /)) 1213 TYPE(ctrl_out), SAVE :: o_p_tropopause = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1214 'p_tropopause', 'Tropopause pressure', 'Pa', (/ ('', i=1, 9) /)) 1215 TYPE(ctrl_out), SAVE :: o_sfluxaer = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1216 'sflux', 'Ground sedimentation flux of strat. particles', 'kg(S)/m2/s', (/ ('', i=1, 9) /)) 1174 !--extinction coefficient 1175 TYPE(ctrl_out), SAVE :: o_ext_strat_550 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1176 'ext_strat_550', 'Strat. aerosol extinction coefficient at 550 nm', '1/m', (/ ('', i=1, 10) /)) 1177 TYPE(ctrl_out), SAVE :: o_ext_strat_1020 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1178 'ext_strat_1020', 'Strat. aerosol extinction coefficient at 1020 nm', '1/m', (/ ('', i=1, 10) /)) 1179 !--strat aerosol optical depth 1180 TYPE(ctrl_out), SAVE :: o_tau_strat_550 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1181 'OD550_strat_only', 'Stratospheric Aerosol Optical depth at 550 nm ', '1', (/ ('', i=1, 10) /)) 1182 TYPE(ctrl_out), SAVE :: o_tau_strat_1020 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1183 'OD1020_strat_only', 'Stratospheric Aerosol Optical depth at 1020 nm ', '1', (/ ('', i=1, 10) /)) 1184 !--chemistry 1185 TYPE(ctrl_out), SAVE :: o_R2SO4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1186 'R2SO4', 'H2SO4 mass fraction in aerosol', '%', (/ ('', i=1, 10) /)) 1187 TYPE(ctrl_out), SAVE :: o_OCS_lifetime = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1188 'OCS_lifetime', 'OCS lifetime', 's', (/ ('', i=1, 10) /)) 1189 TYPE(ctrl_out), SAVE :: o_SO2_lifetime = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1190 'SO2_lifetime', 'SO2 lifetime', 's', (/ ('', i=1, 10) /)) 1191 TYPE(ctrl_out), SAVE :: o_f_r_wet = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1192 'f_r_wet', 'Conversion factor dry to wet aerosol radius', '-', (/ ('', i=1, 10) /)) 1193 !--budget 3D 1194 TYPE(ctrl_out), SAVE :: o_budg_3D_nucl = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1195 'budg_3D_nucl', 'H2SO4 nucleation mass flux', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /)) 1196 TYPE(ctrl_out), SAVE :: o_budg_3D_cond_evap = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1197 'budg_3D_cond_evap', 'H2SO4 condensation/evaporation mass flux', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /)) 1198 TYPE(ctrl_out), SAVE :: o_budg_3D_ocs_to_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1199 'budg_3D_ocs_to_so2', 'OCS mass flux converted to SO2', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /)) 1200 TYPE(ctrl_out), SAVE :: o_budg_3D_so2_to_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1201 'budg_3D_so2_to_h2so4', 'SO2 mass flux converted to H2SO4', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /)) 1202 TYPE(ctrl_out), SAVE :: o_budg_3D_backgr_ocs = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1203 'budg_3D_backgr_ocs', 'OCS background tendency', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /)) 1204 TYPE(ctrl_out), SAVE :: o_budg_3D_backgr_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1205 'budg_3D_backgr_so2', 'SO2 background tendency', 'kg(S)/m2/layer/s', (/ ('', i=1, 10) /)) 1206 TYPE(ctrl_out), SAVE :: o_vsed_aer = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1207 'vsed_aer', 'Strat. aerosol sedimentation velocity (mass-weighted)', 'm/s', (/ ('', i=1, 10) /)) 1208 !--budget 2D 1209 TYPE(ctrl_out), SAVE :: o_budg_dep_dry_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1210 'budg_dep_dry_h2so4', 'H2SO4 dry deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1211 TYPE(ctrl_out), SAVE :: o_budg_dep_wet_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1212 'budg_dep_wet_h2so4', 'H2SO4 wet deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1213 TYPE(ctrl_out), SAVE :: o_budg_dep_dry_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1214 'budg_dep_dry_part', 'particle dry deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1215 TYPE(ctrl_out), SAVE :: o_budg_dep_wet_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1216 'budg_dep_wet_part', 'particle wet deposition flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1217 TYPE(ctrl_out), SAVE :: o_budg_emi_ocs = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1218 'budg_emi_ocs', 'OCS emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1219 TYPE(ctrl_out), SAVE :: o_budg_emi_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1220 'budg_emi_so2', 'SO2 emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1221 TYPE(ctrl_out), SAVE :: o_budg_emi_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1222 'budg_emi_h2so4', 'H2SO4 emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1223 TYPE(ctrl_out), SAVE :: o_budg_emi_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1224 'budg_emi_part', 'Particle emission flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1225 TYPE(ctrl_out), SAVE :: o_budg_ocs_to_so2 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1226 'budg_ocs_to_so2', 'OCS to SO2 flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1227 TYPE(ctrl_out), SAVE :: o_budg_so2_to_h2so4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1228 'budg_so2_to_h2so4', 'SO2 to H2SO4 flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1229 TYPE(ctrl_out), SAVE :: o_budg_h2so4_to_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1230 'budg_h2so4_to_part', 'H2SO4 to part flux', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1231 TYPE(ctrl_out), SAVE :: o_budg_sed_part = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1232 'budg_sed_part', 'Ground sedimentation flux of strat. particles', 'kg(S)/m2/s', (/ ('', i=1, 10) /)) 1233 !--tropopause height 1234 TYPE(ctrl_out), SAVE :: o_p_tropopause = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1235 'p_tropopause', 'Tropopause pressure', 'Pa', (/ ('', i=1, 10) /)) 1236 !--surface PM25 due to strat aerosol 1237 TYPE(ctrl_out), SAVE :: o_surf_PM25_sulf = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1238 'surf_PM25_sulf', 'Sulfate PM2.5 concentration at the surface', 'ug/m3', (/ ('', i=1, 10) /)) 1217 1239 #endif 1218 1240 1219 1241 !!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1220 TYPE(ctrl_out), SAVE :: o_ec550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1221 'ec550aer', 'Extinction at 550nm', 'm^-1', (/ ('', i=1, 9) /))1222 TYPE(ctrl_out), SAVE :: o_lwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11 1223 'lwcon', 'Cloud liquid water content', 'kg/kg', (/ ('', i=1, 9) /))1224 TYPE(ctrl_out), SAVE :: o_iwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11 1225 'iwcon', 'Cloud ice water content', 'kg/kg', (/ ('', i=1, 9) /))1226 TYPE(ctrl_out), SAVE :: o_temp = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11 1227 'temp', 'Air temperature', 'K', (/ ('', i=1, 9) /))1228 TYPE(ctrl_out), SAVE :: o_theta = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11 1229 'theta', 'Potential air temperature', 'K', (/ ('', i=1, 9) /))1230 TYPE(ctrl_out), SAVE :: o_ovap = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11 1231 'ovap', 'Specific humidity', 'kg/kg', (/ ('', i=1, 9) /))1232 TYPE(ctrl_out), SAVE :: o_ovapinit = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1233 'ovapinit', 'Specific humidity (begin of timestep)', 'kg/kg', (/ ('', i=1, 9) /))1234 TYPE(ctrl_out), SAVE :: o_oliq = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11 1235 'oliq', 'Liquid water', 'kg/kg', (/ ('', i=1, 9) /))1236 TYPE(ctrl_out), SAVE :: o_ocond = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11 1237 'ocond', 'Condensed water', 'kg/kg', (/ ('', i=1, 9) /))1238 TYPE(ctrl_out), SAVE :: o_wvapp = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1239 'wvapp', '', '', (/ ('', i=1, 9) /))1240 TYPE(ctrl_out), SAVE :: o_geop = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11 1241 'geop', 'Geopotential height', 'm2/s2', (/ ('', i=1, 9) /))1242 TYPE(ctrl_out), SAVE :: o_vitu = ctrl_out((/ 2, 3, 4, 6, 10, 10, 11, 11, 11 1243 'vitu', 'Zonal wind', 'm/s', (/ ('', i=1, 9) /))1244 TYPE(ctrl_out), SAVE :: o_vitv = ctrl_out((/ 2, 3, 4, 6, 10, 10, 11, 11, 11 1245 'vitv', 'Meridional wind', 'm/s', (/ ('', i=1, 9) /))1246 TYPE(ctrl_out), SAVE :: o_vitw = ctrl_out((/ 2, 3, 10, 6, 10, 10, 11, 11, 11 1247 'vitw', 'Vertical wind', 'Pa/s', (/ ('', i=1, 9) /))1248 TYPE(ctrl_out), SAVE :: o_pres = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11 1249 'pres', 'Air pressure', 'Pa', (/ ('', i=1, 9) /))1250 TYPE(ctrl_out), SAVE :: o_paprs = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11 1251 'paprs', 'Air pressure Inter-Couches', 'Pa', (/ ('', i=1, 9) /))1252 TYPE(ctrl_out), SAVE :: o_mass = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11 1253 'mass', 'Masse Couches', 'kg/m2', (/ ('', i=1, 9) /))1254 TYPE(ctrl_out), SAVE :: o_zfull = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11 1255 'zfull', 'Altitude of full pressure levels', 'm', (/ ('', i=1, 9) /))1256 TYPE(ctrl_out), SAVE :: o_zhalf = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11 1257 'zhalf', 'Altitude of half pressure levels', 'm', (/ ('', i=1, 9) /))1258 TYPE(ctrl_out), SAVE :: o_rneb = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11 1259 'rneb', 'Cloud fraction', '-', (/ ('', i=1, 9) /))1260 TYPE(ctrl_out), SAVE :: o_rnebjn = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11,11 1261 'rnebjn', 'Cloud fraction in day', '-', (/ ('', i=1, 9) /))1262 TYPE(ctrl_out), SAVE :: o_rnebcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11 1263 'rnebcon', 'Convective Cloud Fraction', '-', (/ ('', i=1, 9) /))1264 TYPE(ctrl_out), SAVE :: o_rnebls = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11 1265 'rnebls', 'LS Cloud fraction', '-', (/ ('', i=1, 9) /))1266 TYPE(ctrl_out), SAVE :: o_rhum = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11 1267 'rhum', 'Relative humidity', '-', (/ ('', i=1, 9) /))1268 TYPE(ctrl_out), SAVE :: o_ozone = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1269 'ozone', 'Ozone mole fraction', '-', (/ ('', i=1, 9) /))1270 TYPE(ctrl_out), SAVE :: o_ozone_light = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1271 'ozone_daylight', 'Daylight ozone mole fraction', '-', (/ ('', i=1, 9) /))1272 TYPE(ctrl_out), SAVE :: o_upwd = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1273 'upwd', 'saturated updraft', 'kg/m2/s', (/ ('', i=1, 9) /))1274 TYPE(ctrl_out), SAVE :: o_epmax_diag = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1275 'epmax', 'epmax en fn cape', 'su', (/ ('', i=1, 9) /))1276 TYPE(ctrl_out), SAVE :: o_ep = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1277 'ep', 'ep', 'su', (/ ('', i=1, 9) /))1278 TYPE(ctrl_out), SAVE :: o_duphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1279 'duphy', 'Physics du', 'm/s2', (/ ('', i=1, 9) /))1280 TYPE(ctrl_out), SAVE :: o_dtphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1281 'dtphy', 'Physics dT', 'K/s', (/ ('', i=1, 9) /))1282 TYPE(ctrl_out), SAVE :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1283 'dqphy', 'Physics dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))1284 TYPE(ctrl_out), SAVE :: o_dqphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1285 'dqphy2d', 'Physics dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))1286 TYPE(ctrl_out), SAVE :: o_dqlphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1287 'dqlphy', 'Physics dQL', '(kg/kg)/s', (/ ('', i=1, 9) /))1288 TYPE(ctrl_out), SAVE :: o_dqlphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1289 'dqlphy2d', 'Physics dQL', '(kg/m2)/s', (/ ('', i=1, 9) /))1290 TYPE(ctrl_out), SAVE :: o_dqsphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1291 'dqsphy', 'Physics dQS', '(kg/kg)/s', (/ ('', i=1, 9) /))1292 TYPE(ctrl_out), SAVE :: o_dqsphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1293 'dqsphy2d', 'Physics dQS', '(kg/m2)/s', (/ ('', i=1, 9) /))1294 TYPE(ctrl_out), SAVE :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1295 'pr_con_l', 'Convective precipitation lic', ' ', (/ ('', i=1, 9) /))1296 TYPE(ctrl_out), SAVE :: o_pr_con_i = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1297 'pr_con_i', 'Convective precipitation ice', ' ', (/ ('', i=1, 9) /))1298 TYPE(ctrl_out), SAVE :: o_pr_lsc_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1299 'pr_lsc_l', 'Large scale precipitation lic', ' ', (/ ('', i=1, 9) /))1300 TYPE(ctrl_out), SAVE :: o_pr_lsc_i = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11 1301 'pr_lsc_i', 'Large scale precipitation ice', ' ', (/ ('', i=1, 9) /))1302 TYPE(ctrl_out), SAVE :: o_re = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1303 're', 'Cloud droplet effective radius', 'um', (/ ('', i=1, 9) /))1304 TYPE(ctrl_out), SAVE :: o_fl = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1305 'fl', 'Denominator of Cloud droplet effective radius', ' ', (/ ('', i=1, 9) /))1306 TYPE(ctrl_out), SAVE :: o_scdnc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1307 'scdnc', 'Cloud droplet number concentration', 'm-3', (/ ('', i=1, 9) /))1308 TYPE(ctrl_out), SAVE :: o_reffclws = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1309 'reffclws', 'Stratiform Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i=1, 9) /))1310 TYPE(ctrl_out), SAVE :: o_reffclwc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1311 'reffclwc', 'Convective Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i=1, 9) /))1312 TYPE(ctrl_out), SAVE :: o_lcc3d = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1313 'lcc3d', 'Cloud liquid fraction', '1', (/ ('', i=1, 9) /))1314 TYPE(ctrl_out), SAVE :: o_lcc3dcon = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1315 'lcc3dcon', 'Convective cloud liquid fraction', '1', (/ ('', i=1, 9) /))1316 TYPE(ctrl_out), SAVE :: o_lcc3dstra = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1317 'lcc3dstra', 'Stratiform cloud liquid fraction', '1', (/ ('', i=1, 9) /))1318 TYPE(ctrl_out), SAVE :: o_stratomask = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 1319 'stratomask', 'Stratospheric fraction', '1', (/ ('', i=1, 9) /))1242 TYPE(ctrl_out), SAVE :: o_ec550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1243 'ec550aer', 'Extinction at 550nm', 'm^-1', (/ ('', i=1, 10) /)) 1244 TYPE(ctrl_out), SAVE :: o_lwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1245 'lwcon', 'Cloud liquid water content', 'kg/kg', (/ ('', i=1, 10) /)) 1246 TYPE(ctrl_out), SAVE :: o_iwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1247 'iwcon', 'Cloud ice water content', 'kg/kg', (/ ('', i=1, 10) /)) 1248 TYPE(ctrl_out), SAVE :: o_temp = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1249 'temp', 'Air temperature', 'K', (/ ('', i=1, 10) /)) 1250 TYPE(ctrl_out), SAVE :: o_theta = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1251 'theta', 'Potential air temperature', 'K', (/ ('', i=1, 10) /)) 1252 TYPE(ctrl_out), SAVE :: o_ovap = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1253 'ovap', 'Specific humidity', 'kg/kg', (/ ('', i=1, 10) /)) 1254 TYPE(ctrl_out), SAVE :: o_ovapinit = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1255 'ovapinit', 'Specific humidity (begin of timestep)', 'kg/kg', (/ ('', i=1, 10) /)) 1256 TYPE(ctrl_out), SAVE :: o_oliq = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1257 'oliq', 'Liquid water', 'kg/kg', (/ ('', i=1, 10) /)) 1258 TYPE(ctrl_out), SAVE :: o_ocond = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1259 'ocond', 'Condensed water', 'kg/kg', (/ ('', i=1, 10) /)) 1260 TYPE(ctrl_out), SAVE :: o_wvapp = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1261 'wvapp', '', '', (/ ('', i=1, 10) /)) 1262 TYPE(ctrl_out), SAVE :: o_geop = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1263 'geop', 'Geopotential height', 'm2/s2', (/ ('', i=1, 10) /)) 1264 TYPE(ctrl_out), SAVE :: o_vitu = ctrl_out((/ 2, 3, 4, 6, 10, 10, 11, 11, 11, 11/), & 1265 'vitu', 'Zonal wind', 'm/s', (/ ('', i=1, 10) /)) 1266 TYPE(ctrl_out), SAVE :: o_vitv = ctrl_out((/ 2, 3, 4, 6, 10, 10, 11, 11, 11, 11/), & 1267 'vitv', 'Meridional wind', 'm/s', (/ ('', i=1, 10) /)) 1268 TYPE(ctrl_out), SAVE :: o_vitw = ctrl_out((/ 2, 3, 10, 6, 10, 10, 11, 11, 11, 11/), & 1269 'vitw', 'Vertical wind', 'Pa/s', (/ ('', i=1, 10) /)) 1270 TYPE(ctrl_out), SAVE :: o_pres = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1271 'pres', 'Air pressure', 'Pa', (/ ('', i=1, 10) /)) 1272 TYPE(ctrl_out), SAVE :: o_paprs = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1273 'paprs', 'Air pressure Inter-Couches', 'Pa', (/ ('', i=1, 10) /)) 1274 TYPE(ctrl_out), SAVE :: o_mass = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1275 'mass', 'Masse Couches', 'kg/m2', (/ ('', i=1, 10) /)) 1276 TYPE(ctrl_out), SAVE :: o_zfull = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1277 'zfull', 'Altitude of full pressure levels', 'm', (/ ('', i=1, 10) /)) 1278 TYPE(ctrl_out), SAVE :: o_zhalf = ctrl_out((/ 2, 3, 10, 10, 10, 10, 11, 11, 11, 11/), & 1279 'zhalf', 'Altitude of half pressure levels', 'm', (/ ('', i=1, 10) /)) 1280 TYPE(ctrl_out), SAVE :: o_rneb = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1281 'rneb', 'Cloud fraction', '-', (/ ('', i=1, 10) /)) 1282 TYPE(ctrl_out), SAVE :: o_rnebjn = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11,11, 11/), & 1283 'rnebjn', 'Cloud fraction in day', '-', (/ ('', i=1, 10) /)) 1284 TYPE(ctrl_out), SAVE :: o_rnebcon = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1285 'rnebcon', 'Convective Cloud Fraction', '-', (/ ('', i=1, 10) /)) 1286 TYPE(ctrl_out), SAVE :: o_rnebls = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1287 'rnebls', 'LS Cloud fraction', '-', (/ ('', i=1, 10) /)) 1288 TYPE(ctrl_out), SAVE :: o_rhum = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1289 'rhum', 'Relative humidity', '-', (/ ('', i=1, 10) /)) 1290 TYPE(ctrl_out), SAVE :: o_ozone = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1291 'ozone', 'Ozone mole fraction', '-', (/ ('', i=1, 10) /)) 1292 TYPE(ctrl_out), SAVE :: o_ozone_light = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1293 'ozone_daylight', 'Daylight ozone mole fraction', '-', (/ ('', i=1, 10) /)) 1294 TYPE(ctrl_out), SAVE :: o_upwd = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1295 'upwd', 'saturated updraft', 'kg/m2/s', (/ ('', i=1, 10) /)) 1296 TYPE(ctrl_out), SAVE :: o_epmax_diag = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1297 'epmax', 'epmax en fn cape', 'su', (/ ('', i=1, 10) /)) 1298 TYPE(ctrl_out), SAVE :: o_ep = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1299 'ep', 'ep', 'su', (/ ('', i=1, 10) /)) 1300 TYPE(ctrl_out), SAVE :: o_duphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1301 'duphy', 'Physics du', 'm/s2', (/ ('', i=1, 10) /)) 1302 TYPE(ctrl_out), SAVE :: o_dtphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1303 'dtphy', 'Physics dT', 'K/s', (/ ('', i=1, 10) /)) 1304 TYPE(ctrl_out), SAVE :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1305 'dqphy', 'Physics dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1306 TYPE(ctrl_out), SAVE :: o_dqphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1307 'dqphy2d', 'Physics dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1308 TYPE(ctrl_out), SAVE :: o_dqlphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1309 'dqlphy', 'Physics dQL', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1310 TYPE(ctrl_out), SAVE :: o_dqlphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1311 'dqlphy2d', 'Physics dQL', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1312 TYPE(ctrl_out), SAVE :: o_dqsphy = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1313 'dqsphy', 'Physics dQS', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1314 TYPE(ctrl_out), SAVE :: o_dqsphy2d = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1315 'dqsphy2d', 'Physics dQS', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1316 TYPE(ctrl_out), SAVE :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1317 'pr_con_l', 'Convective precipitation lic', ' ', (/ ('', i=1, 10) /)) 1318 TYPE(ctrl_out), SAVE :: o_pr_con_i = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1319 'pr_con_i', 'Convective precipitation ice', ' ', (/ ('', i=1, 10) /)) 1320 TYPE(ctrl_out), SAVE :: o_pr_lsc_l = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1321 'pr_lsc_l', 'Large scale precipitation lic', ' ', (/ ('', i=1, 10) /)) 1322 TYPE(ctrl_out), SAVE :: o_pr_lsc_i = ctrl_out((/ 2, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1323 'pr_lsc_i', 'Large scale precipitation ice', ' ', (/ ('', i=1, 10) /)) 1324 TYPE(ctrl_out), SAVE :: o_re = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1325 're', 'Cloud droplet effective radius', 'um', (/ ('', i=1, 10) /)) 1326 TYPE(ctrl_out), SAVE :: o_fl = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1327 'fl', 'Denominator of Cloud droplet effective radius', ' ', (/ ('', i=1, 10) /)) 1328 TYPE(ctrl_out), SAVE :: o_scdnc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1329 'scdnc', 'Cloud droplet number concentration', 'm-3', (/ ('', i=1, 10) /)) 1330 TYPE(ctrl_out), SAVE :: o_reffclws = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1331 'reffclws', 'Stratiform Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i=1, 10) /)) 1332 TYPE(ctrl_out), SAVE :: o_reffclwc = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1333 'reffclwc', 'Convective Cloud Droplet Effective Radius (aerosol diags.)', 'm', (/ ('', i=1, 10) /)) 1334 TYPE(ctrl_out), SAVE :: o_lcc3d = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1335 'lcc3d', 'Cloud liquid fraction', '1', (/ ('', i=1, 10) /)) 1336 TYPE(ctrl_out), SAVE :: o_lcc3dcon = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1337 'lcc3dcon', 'Convective cloud liquid fraction', '1', (/ ('', i=1, 10) /)) 1338 TYPE(ctrl_out), SAVE :: o_lcc3dstra = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1339 'lcc3dstra', 'Stratiform cloud liquid fraction', '1', (/ ('', i=1, 10) /)) 1340 TYPE(ctrl_out), SAVE :: o_stratomask = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11, 11/), & 1341 'stratomask', 'Stratospheric fraction', '1', (/ ('', i=1, 10) /)) 1320 1342 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1321 1343 1322 1344 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_albe_srf = (/ & 1323 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11 /),'albe_ter', "Albedo VIS surf. "//clnsurf(1),"-", (/ ('', i=1, 9) /)), &1324 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11 /),'albe_lic', "Albedo VIS surf. "//clnsurf(2),"-", (/ ('', i=1, 9) /)), &1325 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11 /),'albe_oce', "Albedo VIS surf. "//clnsurf(3),"-", (/ ('', i=1, 9) /)), &1326 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11 /),'albe_sic', "Albedo VIS surf. "//clnsurf(4),"-", (/ ('', i=1, 9) /)) /)1345 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_ter', "Albedo VIS surf. "//clnsurf(1),"-", (/ ('', i=1, 10) /)), & 1346 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_lic', "Albedo VIS surf. "//clnsurf(2),"-", (/ ('', i=1, 10) /)), & 1347 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_oce', "Albedo VIS surf. "//clnsurf(3),"-", (/ ('', i=1, 10) /)), & 1348 ctrl_out((/ 3, 7, 10, 7, 10, 10, 11, 11, 11, 11/),'albe_sic', "Albedo VIS surf. "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /) 1327 1349 1328 1350 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_ages_srf = (/ & 1329 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'ages_ter', "Snow age", "day", (/ ('', i=1, 9) /)), &1330 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11 /),'ages_lic', "Snow age", "day", (/ ('', i=1, 9) /)), &1331 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'ages_oce',"Snow age", "day", (/ ('', i=1, 9) /)), &1332 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11 /),'ages_sic',"Snow age", "day", (/ ('', i=1, 9) /)) /)1351 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_ter', "Snow age", "day", (/ ('', i=1, 10) /)), & 1352 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_lic', "Snow age", "day", (/ ('', i=1, 10) /)), & 1353 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_oce',"Snow age", "day", (/ ('', i=1, 10) /)), & 1354 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'ages_sic',"Snow age", "day", (/ ('', i=1, 10) /)) /) 1333 1355 1334 1356 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_snow_srf = (/ & 1335 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'snow_ter', "Snow", "kg/m2", (/ ('', i=1, 9) /)), &1336 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11 /),'snow_lic', "Snow", "kg/m2", (/ ('', i=1, 9) /)), &1337 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'snow_oce',"Snow", "kg/m2", (/ ('', i=1, 9) /)), &1338 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11 /),'snow_sic',"Snow", "kg/m2", (/ ('', i=1, 9) /)) /)1357 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_ter', "Snow", "kg/m2", (/ ('', i=1, 10) /)), & 1358 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_lic', "Snow", "kg/m2", (/ ('', i=1, 10) /)), & 1359 ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_oce',"Snow", "kg/m2", (/ ('', i=1, 10) /)), & 1360 ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/),'snow_sic',"Snow", "kg/m2", (/ ('', i=1, 10) /)) /) 1339 1361 1340 1362 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_z0m_srf = (/ & 1341 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0m_ter', "Surface roughness "//clnsurf(1),"m", (/ ('', i=1, 9) /)), &1342 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0m_lic', "Surface roughness "//clnsurf(2),"m", (/ ('', i=1, 9) /)), &1343 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0m_oce', "Surface roughness "//clnsurf(3),"m", (/ ('', i=1, 9) /)), &1344 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0m_sic', "Surface roughness "//clnsurf(4),"m", (/ ('', i=1, 9) /)) /)1363 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_ter', "Surface roughness "//clnsurf(1),"m", (/ ('', i=1, 10) /)), & 1364 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_lic', "Surface roughness "//clnsurf(2),"m", (/ ('', i=1, 10) /)), & 1365 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_oce', "Surface roughness "//clnsurf(3),"m", (/ ('', i=1, 10) /)), & 1366 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0m_sic', "Surface roughness "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /) 1345 1367 1346 1368 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_z0h_srf = (/ & 1347 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0h_ter', "Surface roughness "//clnsurf(1),"m", (/ ('', i=1, 9) /)), &1348 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0h_lic', "Surface roughness "//clnsurf(2),"m", (/ ('', i=1, 9) /)), &1349 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0h_oce', "Surface roughness "//clnsurf(3),"m", (/ ('', i=1, 9) /)), &1350 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11 /),'z0h_sic', "Surface roughness "//clnsurf(4),"m", (/ ('', i=1, 9) /)) /)1351 1352 TYPE(ctrl_out), SAVE :: o_alb1 = ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11 1353 'alb1', 'Surface VIS albedo', '-', (/ ('', i=1, 9) /))1354 TYPE(ctrl_out), SAVE :: o_alb2 = ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11 1355 'alb2', 'Surface Near IR albedo', '-', (/ ('', i=1, 9) /))1356 TYPE(ctrl_out), SAVE :: o_clwcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1357 'clwcon', 'Convective Cloud Liquid water content', 'kg/kg', (/ ('', i=1, 9) /))1358 TYPE(ctrl_out), SAVE :: o_Ma = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1359 'Ma', 'undilute adiab updraft', 'kg/m2/s', (/ ('', i=1, 9) /))1360 TYPE(ctrl_out), SAVE :: o_dnwd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1361 'dnwd', 'saturated downdraft', 'kg/m2/s', (/ ('', i=1, 9) /))1362 TYPE(ctrl_out), SAVE :: o_dnwd0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1363 'dnwd0', 'unsat. downdraft', 'kg/m2/s', (/ ('', i=1, 9) /))1364 TYPE(ctrl_out), SAVE :: o_mc = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 1365 'mc', 'Convective mass flux', 'kg/m2/s', (/ ('', i=1, 9) /))1366 TYPE(ctrl_out), SAVE :: o_ftime_con = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1369 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_ter', "Surface roughness "//clnsurf(1),"m", (/ ('', i=1, 10) /)), & 1370 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_lic', "Surface roughness "//clnsurf(2),"m", (/ ('', i=1, 10) /)), & 1371 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_oce', "Surface roughness "//clnsurf(3),"m", (/ ('', i=1, 10) /)), & 1372 ctrl_out((/ 3, 6, 10, 10, 10, 10, 11, 11, 11, 11/),'z0h_sic', "Surface roughness "//clnsurf(4),"m", (/ ('', i=1, 10) /)) /) 1373 1374 TYPE(ctrl_out), SAVE :: o_alb1 = ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1375 'alb1', 'Surface VIS albedo', '-', (/ ('', i=1, 10) /)) 1376 TYPE(ctrl_out), SAVE :: o_alb2 = ctrl_out((/ 3, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1377 'alb2', 'Surface Near IR albedo', '-', (/ ('', i=1, 10) /)) 1378 TYPE(ctrl_out), SAVE :: o_clwcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1379 'clwcon', 'Convective Cloud Liquid water content', 'kg/kg', (/ ('', i=1, 10) /)) 1380 TYPE(ctrl_out), SAVE :: o_Ma = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1381 'Ma', 'undilute adiab updraft', 'kg/m2/s', (/ ('', i=1, 10) /)) 1382 TYPE(ctrl_out), SAVE :: o_dnwd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1383 'dnwd', 'saturated downdraft', 'kg/m2/s', (/ ('', i=1, 10) /)) 1384 TYPE(ctrl_out), SAVE :: o_dnwd0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1385 'dnwd0', 'unsat. downdraft', 'kg/m2/s', (/ ('', i=1, 10) /)) 1386 TYPE(ctrl_out), SAVE :: o_mc = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1387 'mc', 'Convective mass flux', 'kg/m2/s', (/ ('', i=1, 10) /)) 1388 TYPE(ctrl_out), SAVE :: o_ftime_con = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1367 1389 'ftime_con', 'Fraction of time convection Occurs', ' ', & 1368 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) 1369 TYPE(ctrl_out), SAVE :: o_dtdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1370 'dtdyn', 'Dynamics dT', 'K/s', (/ ('', i=1, 9) /)) 1371 TYPE(ctrl_out), SAVE :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1372 'dqdyn', 'Dynamics dQ', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1373 TYPE(ctrl_out), SAVE :: o_dqdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1374 'dqdyn2d', 'Dynamics dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1375 TYPE(ctrl_out), SAVE :: o_dqldyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1376 'dqldyn', 'Dynamics dQL', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1377 TYPE(ctrl_out), SAVE :: o_dqldyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1378 'dqldyn2d', 'Dynamics dQL', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1379 TYPE(ctrl_out), SAVE :: o_dqsdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1380 'dqsdyn', 'Dynamics dQS', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1381 TYPE(ctrl_out), SAVE :: o_dqsdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1382 'dqsdyn2d', 'Dynamics dQS', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1383 TYPE(ctrl_out), SAVE :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1384 'dudyn', 'Dynamics dU', 'm/s2', (/ ('', i=1, 9) /)) 1385 TYPE(ctrl_out), SAVE :: o_dvdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1386 'dvdyn', 'Dynamics dV', 'm/s2', (/ ('', i=1, 9) /)) 1387 TYPE(ctrl_out), SAVE :: o_dtcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1388 'dtcon', 'Convection dT', 'K/s', (/ ('', i=1, 9) /)) 1389 TYPE(ctrl_out), SAVE :: o_ducon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1390 'ducon', 'Convection du', 'm/s2', (/ ('', i=1, 9) /)) 1391 TYPE(ctrl_out), SAVE :: o_dvcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1392 'dvcon', 'Convection dv', 'm/s2', (/ ('', i=1, 9) /)) 1393 TYPE(ctrl_out), SAVE :: o_dqcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1394 'dqcon', 'Convection dQ', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1395 TYPE(ctrl_out), SAVE :: o_dqcon2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1396 'dqcon2d', 'Convection dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1397 TYPE(ctrl_out), SAVE :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1398 'dtwak', 'Wake dT', 'K/s', (/ ('', i=1, 9) /)) 1399 TYPE(ctrl_out), SAVE :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1400 'dqwak', 'Wake dQ', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1401 TYPE(ctrl_out), SAVE :: o_dqwak2d = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1402 'dqwak2d', 'Wake dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1403 TYPE(ctrl_out), SAVE :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1404 'wake_h', 'wake_h', '-', (/ ('', i=1, 9) /)) 1405 TYPE(ctrl_out), SAVE :: o_wake_s = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1406 'wake_s', 'wake_s', '-', (/ ('', i=1, 9) /)) 1407 TYPE(ctrl_out), SAVE :: o_wake_deltat = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1408 'wake_deltat', 'wake_deltat', ' ', (/ ('', i=1, 9) /)) 1409 TYPE(ctrl_out), SAVE :: o_wake_deltaq = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1410 'wake_deltaq', 'wake_deltaq', ' ', (/ ('', i=1, 9) /)) 1411 TYPE(ctrl_out), SAVE :: o_wake_omg = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1412 'wake_omg', 'wake_omg', ' ', (/ ('', i=1, 9) /)) 1413 TYPE(ctrl_out), SAVE :: o_wdtrainA = ctrl_out((/ 4, 5, 10, 4, 10, 10, 11, 11, 110 /), & 1414 'wdtrainA', 'precipitation from AA', '-', (/ ('', i=1, 9) /)) 1415 TYPE(ctrl_out), SAVE :: o_wdtrainM = ctrl_out((/ 4, 5, 10, 4, 10, 10, 11, 11, 110 /), & 1416 'wdtrainM', 'precipitation from mixture', '-', (/ ('', i=1, 9) /)) 1417 TYPE(ctrl_out), SAVE :: o_Vprecip = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1418 'Vprecip', 'precipitation vertical profile', '-', (/ ('', i=1, 9) /)) 1419 TYPE(ctrl_out), SAVE :: o_ftd = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1420 'ftd', 'tend temp due aux descentes precip', '-', (/ ('', i=1, 9) /)) 1421 TYPE(ctrl_out), SAVE :: o_fqd = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11 /), & 1422 'fqd', 'tend vap eau due aux descentes precip', '-', (/ ('', i=1, 9) /)) 1423 TYPE(ctrl_out), SAVE :: o_dtlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1424 'dtlsc', 'Condensation dT', 'K/s', (/ ('', i=1, 9) /)) 1425 TYPE(ctrl_out), SAVE :: o_dtlschr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1426 'dtlschr', 'Large-scale condensational heating rate', 'K/s', (/ ('', i=1, 9) /)) 1427 TYPE(ctrl_out), SAVE :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1428 'dqlsc', 'Condensation dQ', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1429 TYPE(ctrl_out), SAVE :: o_dqlsc2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1430 'dqlsc2d', 'Condensation dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1431 TYPE(ctrl_out), SAVE :: o_beta_prec = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1432 'beta_prec', 'LS Conversion rate to prec', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1433 TYPE(ctrl_out), SAVE :: o_dtvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1434 'dtvdf', 'Boundary-layer dT', 'K/s', (/ ('', i=1, 9) /)) 1435 TYPE(ctrl_out), SAVE :: o_dtdis = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1436 'dtdis', 'TKE dissipation dT', 'K/s', (/ ('', i=1, 9) /)) 1437 TYPE(ctrl_out), SAVE :: o_dqvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1438 'dqvdf', 'Boundary-layer dQ', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1439 TYPE(ctrl_out), SAVE :: o_dqvdf2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1440 'dqvdf2d', 'Boundary-layer dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1441 TYPE(ctrl_out), SAVE :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1442 'dteva', 'Reevaporation dT', 'K/s', (/ ('', i=1, 9) /)) 1443 TYPE(ctrl_out), SAVE :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1444 'dqeva', 'Reevaporation dQ', '(kg/kg)/s', (/ ('', i=1, 9) /)) 1445 TYPE(ctrl_out), SAVE :: o_dqeva2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1446 'dqeva2d', 'Reevaporation dQ', '(kg/m2)/s', (/ ('', i=1, 9) /)) 1390 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', & 1391 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) 1392 TYPE(ctrl_out), SAVE :: o_dtdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1393 'dtdyn', 'Dynamics dT', 'K/s', (/ ('', i=1, 10) /)) 1394 TYPE(ctrl_out), SAVE :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1395 'dqdyn', 'Dynamics dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1396 TYPE(ctrl_out), SAVE :: o_dqdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1397 'dqdyn2d', 'Dynamics dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1398 TYPE(ctrl_out), SAVE :: o_dqldyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1399 'dqldyn', 'Dynamics dQL', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1400 TYPE(ctrl_out), SAVE :: o_dqldyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1401 'dqldyn2d', 'Dynamics dQL', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1402 TYPE(ctrl_out), SAVE :: o_dqsdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1403 'dqsdyn', 'Dynamics dQS', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1404 TYPE(ctrl_out), SAVE :: o_dqsdyn2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1405 'dqsdyn2d', 'Dynamics dQS', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1406 TYPE(ctrl_out), SAVE :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1407 'dudyn', 'Dynamics dU', 'm/s2', (/ ('', i=1, 10) /)) 1408 TYPE(ctrl_out), SAVE :: o_dvdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1409 'dvdyn', 'Dynamics dV', 'm/s2', (/ ('', i=1, 10) /)) 1410 TYPE(ctrl_out), SAVE :: o_dtcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1411 'dtcon', 'Convection dT', 'K/s', (/ ('', i=1, 10) /)) 1412 TYPE(ctrl_out), SAVE :: o_ducon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1413 'ducon', 'Convection du', 'm/s2', (/ ('', i=1, 10) /)) 1414 TYPE(ctrl_out), SAVE :: o_dvcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1415 'dvcon', 'Convection dv', 'm/s2', (/ ('', i=1, 10) /)) 1416 TYPE(ctrl_out), SAVE :: o_dqcon = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1417 'dqcon', 'Convection dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1418 TYPE(ctrl_out), SAVE :: o_dqcon2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1419 'dqcon2d', 'Convection dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1420 TYPE(ctrl_out), SAVE :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1421 'dtwak', 'Wake dT', 'K/s', (/ ('', i=1, 10) /)) 1422 TYPE(ctrl_out), SAVE :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1423 'dqwak', 'Wake dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1424 TYPE(ctrl_out), SAVE :: o_dqwak2d = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1425 'dqwak2d', 'Wake dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1426 TYPE(ctrl_out), SAVE :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1427 'wake_h', 'wake_h', '-', (/ ('', i=1, 10) /)) 1428 TYPE(ctrl_out), SAVE :: o_wake_s = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1429 'wake_s', 'wake_s', '-', (/ ('', i=1, 10) /)) 1430 TYPE(ctrl_out), SAVE :: o_wake_deltat = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1431 'wake_deltat', 'wake_deltat', ' ', (/ ('', i=1, 10) /)) 1432 TYPE(ctrl_out), SAVE :: o_wake_deltaq = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1433 'wake_deltaq', 'wake_deltaq', ' ', (/ ('', i=1, 10) /)) 1434 TYPE(ctrl_out), SAVE :: o_wake_omg = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1435 'wake_omg', 'wake_omg', ' ', (/ ('', i=1, 10) /)) 1436 TYPE(ctrl_out), SAVE :: o_wdtrainA = ctrl_out((/ 4, 5, 10, 4, 10, 10, 11, 11, 11, 11 /), & 1437 'wdtrainA', 'precipitation from AA', '-', (/ ('', i=1, 10) /)) 1438 TYPE(ctrl_out), SAVE :: o_wdtrainM = ctrl_out((/ 4, 5, 10, 4, 10, 10, 11, 11, 11, 11 /), & 1439 'wdtrainM', 'precipitation from mixture', '-', (/ ('', i=1, 10) /)) 1440 TYPE(ctrl_out), SAVE :: o_Vprecip = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1441 'Vprecip', 'precipitation vertical profile', '-', (/ ('', i=1, 10) /)) 1442 TYPE(ctrl_out), SAVE :: o_ftd = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1443 'ftd', 'tend temp due aux descentes precip', '-', (/ ('', i=1, 10) /)) 1444 TYPE(ctrl_out), SAVE :: o_fqd = ctrl_out((/ 4, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1445 'fqd', 'tend vap eau due aux descentes precip', '-', (/ ('', i=1, 10) /)) 1446 TYPE(ctrl_out), SAVE :: o_dtlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1447 'dtlsc', 'Condensation dT', 'K/s', (/ ('', i=1, 10) /)) 1448 TYPE(ctrl_out), SAVE :: o_dtlschr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1449 'dtlschr', 'Large-scale condensational heating rate', 'K/s', (/ ('', i=1, 10) /)) 1450 TYPE(ctrl_out), SAVE :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1451 'dqlsc', 'Condensation dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1452 TYPE(ctrl_out), SAVE :: o_dqlsc2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1453 'dqlsc2d', 'Condensation dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1454 TYPE(ctrl_out), SAVE :: o_beta_prec = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1455 'beta_prec', 'LS Conversion rate to prec', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1456 TYPE(ctrl_out), SAVE :: o_dtvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1457 'dtvdf', 'Boundary-layer dT', 'K/s', (/ ('', i=1, 10) /)) 1458 TYPE(ctrl_out), SAVE :: o_dtdis = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1459 'dtdis', 'TKE dissipation dT', 'K/s', (/ ('', i=1, 10) /)) 1460 TYPE(ctrl_out), SAVE :: o_dqvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1461 'dqvdf', 'Boundary-layer dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1462 TYPE(ctrl_out), SAVE :: o_dqvdf2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1463 'dqvdf2d', 'Boundary-layer dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1464 TYPE(ctrl_out), SAVE :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1465 'dteva', 'Reevaporation dT', 'K/s', (/ ('', i=1, 10) /)) 1466 TYPE(ctrl_out), SAVE :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1467 'dqeva', 'Reevaporation dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1468 TYPE(ctrl_out), SAVE :: o_dqeva2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1469 'dqeva2d', 'Reevaporation dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1447 1470 1448 1471 !!!!!!!!!!!!!!!! Specifique thermiques 1449 TYPE(ctrl_out), SAVE :: o_dqlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1450 'dqlscth', 'dQ therm.', '(kg/kg)/s', (/ ('', i=1, 9) /))1451 TYPE(ctrl_out), SAVE :: o_dqlscth2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1452 'dqlscth2d', 'dQ therm.', '(kg/m2)/s', (/ ('', i=1, 9) /))1453 TYPE(ctrl_out), SAVE :: o_dqlscst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1454 'dqlscst', 'dQ strat.', '(kg/kg)/s', (/ ('', i=1, 9) /))1455 TYPE(ctrl_out), SAVE :: o_dqlscst2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1456 'dqlscst2d', 'dQ strat.', '(kg/m2)/s', (/ ('', i=1, 9) /))1457 TYPE(ctrl_out), SAVE :: o_dtlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1458 'dtlscth', 'dQ therm.', 'K/s', (/ ('', i=1, 9) /))1459 TYPE(ctrl_out), SAVE :: o_dtlscst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1460 'dtlscst', 'dQ strat.', 'K/s', (/ ('', i=1, 9) /))1461 TYPE(ctrl_out), SAVE :: o_plulth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1462 'plulth', 'Rainfall therm.', 'K/s', (/ ('', i=1, 9) /))1463 TYPE(ctrl_out), SAVE :: o_plulst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1464 'plulst', 'Rainfall strat.', 'K/s', (/ ('', i=1, 9) /))1465 TYPE(ctrl_out), SAVE :: o_lmaxth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1466 'lmaxth', "Upper level thermals", "", (/ ('', i=1, 9) /))1467 TYPE(ctrl_out), SAVE :: o_ptconvth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1468 'ptconvth', 'POINTS CONVECTIFS therm.', ' ', (/ ('', i=1, 9) /))1472 TYPE(ctrl_out), SAVE :: o_dqlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1473 'dqlscth', 'dQ therm.', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1474 TYPE(ctrl_out), SAVE :: o_dqlscth2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1475 'dqlscth2d', 'dQ therm.', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1476 TYPE(ctrl_out), SAVE :: o_dqlscst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1477 'dqlscst', 'dQ strat.', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1478 TYPE(ctrl_out), SAVE :: o_dqlscst2d = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1479 'dqlscst2d', 'dQ strat.', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1480 TYPE(ctrl_out), SAVE :: o_dtlscth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1481 'dtlscth', 'dQ therm.', 'K/s', (/ ('', i=1, 10) /)) 1482 TYPE(ctrl_out), SAVE :: o_dtlscst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1483 'dtlscst', 'dQ strat.', 'K/s', (/ ('', i=1, 10) /)) 1484 TYPE(ctrl_out), SAVE :: o_plulth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1485 'plulth', 'Rainfall therm.', 'K/s', (/ ('', i=1, 10) /)) 1486 TYPE(ctrl_out), SAVE :: o_plulst = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1487 'plulst', 'Rainfall strat.', 'K/s', (/ ('', i=1, 10) /)) 1488 TYPE(ctrl_out), SAVE :: o_lmaxth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1489 'lmaxth', "Upper level thermals", "", (/ ('', i=1, 10) /)) 1490 TYPE(ctrl_out), SAVE :: o_ptconvth = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1491 'ptconvth', 'POINTS CONVECTIFS therm.', ' ', (/ ('', i=1, 10) /)) 1469 1492 !!!!!!!!!!!!!!!!!!!!!!!! 1470 TYPE(ctrl_out), SAVE :: o_ptconv = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1471 'ptconv', 'POINTS CONVECTIFS', ' ', (/ ('', i=1, 9) /))1472 TYPE(ctrl_out), SAVE :: o_ratqs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1473 'ratqs', 'RATQS', ' ', (/ ('', i=1, 9) /))1474 TYPE(ctrl_out), SAVE :: o_dtthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1475 'dtthe', 'Thermal dT', 'K/s', (/ ('', i=1, 9) /))1476 TYPE(ctrl_out), SAVE :: o_duthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1477 'duthe', 'Thermal du', 'm/s2', (/ ('', i=1, 9) /))1478 TYPE(ctrl_out), SAVE :: o_dvthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1479 'dvthe', 'Thermal dv', 'm/s2', (/ ('', i=1, 9) /))1480 TYPE(ctrl_out), SAVE :: o_f_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1481 'f_th', 'Thermal plume mass flux', 'kg/(m2*s)', (/ ('', i=1, 9) /))1482 TYPE(ctrl_out), SAVE :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1483 'e_th', 'Thermal plume entrainment', 'K/s', (/ ('', i=1, 9) /))1484 TYPE(ctrl_out), SAVE :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1485 'w_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i=1, 9) /))1486 TYPE(ctrl_out), SAVE :: o_lambda_th = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 1487 'lambda_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i=1, 9) /))1488 TYPE(ctrl_out), SAVE :: o_ftime_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1489 'ftime_th', 'Fraction of time Shallow convection occurs', ' ', (/ ('', i=1, 9) /))1490 TYPE(ctrl_out), SAVE :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1491 'q_th', 'Thermal plume total humidity', 'kg/kg', (/ ('', i=1, 9) /))1492 TYPE(ctrl_out), SAVE :: o_a_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1493 'a_th', "Thermal plume fraction", "", (/ ('', i=1, 9) /))1494 TYPE(ctrl_out), SAVE :: o_d_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1495 'd_th', 'Thermal plume detrainment', 'K/s', (/ ('', i=1, 9) /))1496 TYPE(ctrl_out), SAVE :: o_f0_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1497 'f0_th', 'Thermal closure mass flux', 'K/s', (/ ('', i=1, 9) /))1498 TYPE(ctrl_out), SAVE :: o_zmax_th = ctrl_out((/ 4, 4, 4, 5, 10, 10, 11, 11, 11 1499 'zmax_th', 'Thermal plume height', 'K/s', (/ ('', i=1, 9) /))1500 TYPE(ctrl_out), SAVE :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1501 'dqthe', 'Thermal dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))1502 TYPE(ctrl_out), SAVE :: o_dqthe2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1503 'dqthe2d', 'Thermal dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))1504 TYPE(ctrl_out), SAVE :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1505 'dtajs', 'Dry adjust. dT', 'K/s', (/ ('', i=1, 9) /))1506 TYPE(ctrl_out), SAVE :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1507 'dqajs', 'Dry adjust. dQ', '(kg/kg)/s', (/ ('', i=1, 9) /))1508 TYPE(ctrl_out), SAVE :: o_dqajs2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1509 'dqajs2d', 'Dry adjust. dQ', '(kg/m2)/s', (/ ('', i=1, 9) /))1510 TYPE(ctrl_out), SAVE :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1511 'dtswr', 'SW radiation dT', 'K/s', (/ ('', i=1, 9) /))1512 TYPE(ctrl_out), SAVE :: o_dtsw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1513 'dtsw0', 'CS SW radiation dT', 'K/s', (/ ('', i=1, 9) /))1514 TYPE(ctrl_out), SAVE :: o_dtlwr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1515 'dtlwr', 'LW radiation dT', 'K/s', (/ ('', i=1, 9) /))1516 TYPE(ctrl_out), SAVE :: o_dtlw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1517 'dtlw0', 'CS LW radiation dT', 'K/s', (/ ('', i=1, 9) /))1518 TYPE(ctrl_out), SAVE :: o_dtec = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1519 'dtec', 'Cinetic dissip dT', 'K/s', (/ ('', i=1, 9) /))1520 TYPE(ctrl_out), SAVE :: o_duvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1521 'duvdf', 'Boundary-layer dU', 'm/s2', (/ ('', i=1, 9) /))1522 TYPE(ctrl_out), SAVE :: o_dvvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1523 'dvvdf', 'Boundary-layer dV', 'm/s2', (/ ('', i=1, 9) /))1524 TYPE(ctrl_out), SAVE :: o_duoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1525 'duoro', 'Orography dU', 'm/s2', (/ ('', i=1, 9) /))1526 TYPE(ctrl_out), SAVE :: o_dvoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1527 'dvoro', 'Orography dV', 'm/s2', (/ ('', i=1, 9) /))1528 TYPE(ctrl_out), SAVE :: o_dulif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1529 'dulif', 'Orography dU', 'm/s2', (/ ('', i=1, 9) /))1530 TYPE(ctrl_out), SAVE :: o_dvlif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1531 'dvlif', 'Orography dV', 'm/s2', (/ ('', i=1, 9) /))1532 TYPE(ctrl_out), SAVE :: o_du_gwd_hines = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1533 'du_gwd_hines', 'Hines GWD dU', 'm/s2', (/ ('', i=1, 9) /))1534 TYPE(ctrl_out), SAVE :: o_dv_gwd_hines = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1535 'dv_gwd_hines', 'Hines GWD dV', 'm/s2', (/ ('', i=1, 9) /))1536 TYPE(ctrl_out), SAVE :: o_du_gwd_front = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1537 'du_gwd_front', 'Fronts GWD dU', 'm/s2', (/ ('', i=1, 9) /))1538 TYPE(ctrl_out), SAVE :: o_dv_gwd_front = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1539 'dv_gwd_front', 'Fronts GWD dV', 'm/s2', (/ ('', i=1, 9) /))1540 TYPE(ctrl_out), SAVE :: o_east_gwstress = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1541 'east_gwstress', 'Eastward GW Stress', 'Pa', (/ ('', i=1, 9) /))1542 TYPE(ctrl_out), SAVE :: o_west_gwstress = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1543 'west_gwstress', 'Westward GW Stress', 'Pa', (/ ('', i=1, 9) /))1544 TYPE(ctrl_out), SAVE :: o_dtoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1545 'dtoro', 'Orography dT', 'K/s', (/ ('', i=1, 9) /))1546 TYPE(ctrl_out), SAVE :: o_dtlif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1547 'dtlif', 'Orography dT', 'K/s', (/ ('', i=1, 9) /))1548 TYPE(ctrl_out), SAVE :: o_dthin = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1549 'dthin', 'Hines GWD dT', 'K/s', (/ ('', i=1, 9) /))1550 TYPE(ctrl_out), SAVE :: o_dqch4 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1551 'dqch4', 'H2O due to CH4 oxidation & photolysis', '(kg/kg)/s', (/ ('', i=1, 9) /))1493 TYPE(ctrl_out), SAVE :: o_ptconv = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1494 'ptconv', 'POINTS CONVECTIFS', ' ', (/ ('', i=1, 10) /)) 1495 TYPE(ctrl_out), SAVE :: o_ratqs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1496 'ratqs', 'RATQS', ' ', (/ ('', i=1, 10) /)) 1497 TYPE(ctrl_out), SAVE :: o_dtthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1498 'dtthe', 'Thermal dT', 'K/s', (/ ('', i=1, 10) /)) 1499 TYPE(ctrl_out), SAVE :: o_duthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1500 'duthe', 'Thermal du', 'm/s2', (/ ('', i=1, 10) /)) 1501 TYPE(ctrl_out), SAVE :: o_dvthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1502 'dvthe', 'Thermal dv', 'm/s2', (/ ('', i=1, 10) /)) 1503 TYPE(ctrl_out), SAVE :: o_f_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1504 'f_th', 'Thermal plume mass flux', 'kg/(m2*s)', (/ ('', i=1, 10) /)) 1505 TYPE(ctrl_out), SAVE :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1506 'e_th', 'Thermal plume entrainment', 'K/s', (/ ('', i=1, 10) /)) 1507 TYPE(ctrl_out), SAVE :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1508 'w_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i=1, 10) /)) 1509 TYPE(ctrl_out), SAVE :: o_lambda_th = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1510 'lambda_th', 'Thermal plume vertical velocity', 'm/s', (/ ('', i=1, 10) /)) 1511 TYPE(ctrl_out), SAVE :: o_ftime_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1512 'ftime_th', 'Fraction of time Shallow convection occurs', ' ', (/ ('', i=1, 10) /)) 1513 TYPE(ctrl_out), SAVE :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1514 'q_th', 'Thermal plume total humidity', 'kg/kg', (/ ('', i=1, 10) /)) 1515 TYPE(ctrl_out), SAVE :: o_a_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1516 'a_th', "Thermal plume fraction", "", (/ ('', i=1, 10) /)) 1517 TYPE(ctrl_out), SAVE :: o_d_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1518 'd_th', 'Thermal plume detrainment', 'K/s', (/ ('', i=1, 10) /)) 1519 TYPE(ctrl_out), SAVE :: o_f0_th = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1520 'f0_th', 'Thermal closure mass flux', 'K/s', (/ ('', i=1, 10) /)) 1521 TYPE(ctrl_out), SAVE :: o_zmax_th = ctrl_out((/ 4, 4, 4, 5, 10, 10, 11, 11, 11, 11/), & 1522 'zmax_th', 'Thermal plume height', 'K/s', (/ ('', i=1, 10) /)) 1523 TYPE(ctrl_out), SAVE :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1524 'dqthe', 'Thermal dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1525 TYPE(ctrl_out), SAVE :: o_dqthe2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1526 'dqthe2d', 'Thermal dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1527 TYPE(ctrl_out), SAVE :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1528 'dtajs', 'Dry adjust. dT', 'K/s', (/ ('', i=1, 10) /)) 1529 TYPE(ctrl_out), SAVE :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1530 'dqajs', 'Dry adjust. dQ', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1531 TYPE(ctrl_out), SAVE :: o_dqajs2d = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1532 'dqajs2d', 'Dry adjust. dQ', '(kg/m2)/s', (/ ('', i=1, 10) /)) 1533 TYPE(ctrl_out), SAVE :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1534 'dtswr', 'SW radiation dT', 'K/s', (/ ('', i=1, 10) /)) 1535 TYPE(ctrl_out), SAVE :: o_dtsw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1536 'dtsw0', 'CS SW radiation dT', 'K/s', (/ ('', i=1, 10) /)) 1537 TYPE(ctrl_out), SAVE :: o_dtlwr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1538 'dtlwr', 'LW radiation dT', 'K/s', (/ ('', i=1, 10) /)) 1539 TYPE(ctrl_out), SAVE :: o_dtlw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1540 'dtlw0', 'CS LW radiation dT', 'K/s', (/ ('', i=1, 10) /)) 1541 TYPE(ctrl_out), SAVE :: o_dtec = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1542 'dtec', 'Cinetic dissip dT', 'K/s', (/ ('', i=1, 10) /)) 1543 TYPE(ctrl_out), SAVE :: o_duvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1544 'duvdf', 'Boundary-layer dU', 'm/s2', (/ ('', i=1, 10) /)) 1545 TYPE(ctrl_out), SAVE :: o_dvvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1546 'dvvdf', 'Boundary-layer dV', 'm/s2', (/ ('', i=1, 10) /)) 1547 TYPE(ctrl_out), SAVE :: o_duoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1548 'duoro', 'Orography dU', 'm/s2', (/ ('', i=1, 10) /)) 1549 TYPE(ctrl_out), SAVE :: o_dvoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1550 'dvoro', 'Orography dV', 'm/s2', (/ ('', i=1, 10) /)) 1551 TYPE(ctrl_out), SAVE :: o_dulif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1552 'dulif', 'Orography dU', 'm/s2', (/ ('', i=1, 10) /)) 1553 TYPE(ctrl_out), SAVE :: o_dvlif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1554 'dvlif', 'Orography dV', 'm/s2', (/ ('', i=1, 10) /)) 1555 TYPE(ctrl_out), SAVE :: o_du_gwd_hines = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1556 'du_gwd_hines', 'Hines GWD dU', 'm/s2', (/ ('', i=1, 10) /)) 1557 TYPE(ctrl_out), SAVE :: o_dv_gwd_hines = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1558 'dv_gwd_hines', 'Hines GWD dV', 'm/s2', (/ ('', i=1, 10) /)) 1559 TYPE(ctrl_out), SAVE :: o_du_gwd_front = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1560 'du_gwd_front', 'Fronts GWD dU', 'm/s2', (/ ('', i=1, 10) /)) 1561 TYPE(ctrl_out), SAVE :: o_dv_gwd_front = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1562 'dv_gwd_front', 'Fronts GWD dV', 'm/s2', (/ ('', i=1, 10) /)) 1563 TYPE(ctrl_out), SAVE :: o_east_gwstress = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1564 'east_gwstress', 'Eastward GW Stress', 'Pa', (/ ('', i=1, 10) /)) 1565 TYPE(ctrl_out), SAVE :: o_west_gwstress = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1566 'west_gwstress', 'Westward GW Stress', 'Pa', (/ ('', i=1, 10) /)) 1567 TYPE(ctrl_out), SAVE :: o_dtoro = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1568 'dtoro', 'Orography dT', 'K/s', (/ ('', i=1, 10) /)) 1569 TYPE(ctrl_out), SAVE :: o_dtlif = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1570 'dtlif', 'Orography dT', 'K/s', (/ ('', i=1, 10) /)) 1571 TYPE(ctrl_out), SAVE :: o_dthin = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1572 'dthin', 'Hines GWD dT', 'K/s', (/ ('', i=1, 10) /)) 1573 TYPE(ctrl_out), SAVE :: o_dqch4 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1574 'dqch4', 'H2O due to CH4 oxidation & photolysis', '(kg/kg)/s', (/ ('', i=1, 10) /)) 1552 1575 1553 1576 type(ctrl_out), save:: o_du_gwd_rando & 1554 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1555 "Random gravity waves dU/dt", "m/s2", (/ ('', i=1, 9) /))1577 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'du_gwd_rando', & 1578 "Random gravity waves dU/dt", "m/s2", (/ ('', i=1, 10) /)) 1556 1579 type(ctrl_out), save:: o_dv_gwd_rando & 1557 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1558 "Random gravity waves dV/dt", "m/s2", (/ ('', i=1, 9) /))1580 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'dv_gwd_rando', & 1581 "Random gravity waves dV/dt", "m/s2", (/ ('', i=1, 10) /)) 1559 1582 type(ctrl_out), save:: o_ustr_gwd_hines & 1560 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1561 "zonal wind stress Hines gravity waves", "Pa", (/ ('', i=1, 9) /))1583 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_hines', & 1584 "zonal wind stress Hines gravity waves", "Pa", (/ ('', i=1, 10) /)) 1562 1585 type(ctrl_out), save:: o_vstr_gwd_hines & 1563 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1564 "meridional wind stress Hines gravity waves", "Pa", (/ ('', i=1, 9) /))1586 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_hines', & 1587 "meridional wind stress Hines gravity waves", "Pa", (/ ('', i=1, 10) /)) 1565 1588 type(ctrl_out), save:: o_ustr_gwd_front & 1566 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1567 "zonal wind stress fronts gravity waves", "Pa", (/ ('', i=1, 9) /))1589 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_front', & 1590 "zonal wind stress fronts gravity waves", "Pa", (/ ('', i=1, 10) /)) 1568 1591 type(ctrl_out), save:: o_vstr_gwd_front & 1569 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1570 "meridional wind stress fronts gravity waves", "Pa", (/ ('', i=1, 9) /))1592 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_front', & 1593 "meridional wind stress fronts gravity waves", "Pa", (/ ('', i=1, 10) /)) 1571 1594 type(ctrl_out), save:: o_ustr_gwd_rando & 1572 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1573 "zonal wind stress random gravity waves", "Pa", (/ ('', i=1, 9) /))1595 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'ustr_gwd_rando', & 1596 "zonal wind stress random gravity waves", "Pa", (/ ('', i=1, 10) /)) 1574 1597 type(ctrl_out), save:: o_vstr_gwd_rando & 1575 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1576 "meridional wind stress random gravity waves", "Pa", (/ ('', i=1, 9) /))1598 = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), 'vstr_gwd_rando', & 1599 "meridional wind stress random gravity waves", "Pa", (/ ('', i=1, 10) /)) 1577 1600 1578 1601 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_trac(:) … … 1593 1616 TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dtr_dry(:) 1594 1617 1595 TYPE(ctrl_out), SAVE :: o_rsu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1596 'rsu', 'SW upward radiation', 'W m-2', (/ ('', i=1, 9) /))1597 TYPE(ctrl_out), SAVE :: o_rsd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1598 'rsd', 'SW downward radiation', 'W m-2', (/ ('', i=1, 9) /))1599 TYPE(ctrl_out), SAVE :: o_rlu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1600 'rlu', 'LW upward radiation', 'W m-2', (/ ('', i=1, 9) /))1601 TYPE(ctrl_out), SAVE :: o_rld = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1602 'rld', 'LW downward radiation', 'W m-2', (/ ('', i=1, 9) /))1603 TYPE(ctrl_out), SAVE :: o_rsucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1604 'rsucs', 'SW CS upward radiation', 'W m-2', (/ ('', i=1, 9) /))1605 TYPE(ctrl_out), SAVE :: o_rsdcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1606 'rsdcs', 'SW CS downward radiation', 'W m-2', (/ ('', i=1, 9) /))1607 TYPE(ctrl_out), SAVE :: o_rlucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1608 'rlucs', 'LW CS upward radiation', 'W m-2', (/ ('', i=1, 9) /))1609 TYPE(ctrl_out), SAVE :: o_rldcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1610 'rldcs', 'LW CS downward radiation', 'W m-2', (/ ('', i=1, 9) /))1611 TYPE(ctrl_out), SAVE :: o_tnt = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1612 'tnt', 'Tendency of air temperature', 'K s-1', (/ ('', i=1, 9) /))1613 TYPE(ctrl_out), SAVE :: o_tntc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1614 'tntc', 'Tendency of air temperature due to Moist Convection', 'K s-1', (/ ('', i=1, 9) /))1615 TYPE(ctrl_out), SAVE :: o_tntr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1616 'tntr', 'Air temperature tendency due to Radiative heating', 'K s-1', (/ ('', i=1, 9) /))1617 TYPE(ctrl_out), SAVE :: o_tntscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1618 TYPE(ctrl_out), SAVE :: o_rsu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1619 'rsu', 'SW upward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1620 TYPE(ctrl_out), SAVE :: o_rsd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1621 'rsd', 'SW downward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1622 TYPE(ctrl_out), SAVE :: o_rlu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1623 'rlu', 'LW upward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1624 TYPE(ctrl_out), SAVE :: o_rld = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1625 'rld', 'LW downward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1626 TYPE(ctrl_out), SAVE :: o_rsucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1627 'rsucs', 'SW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1628 TYPE(ctrl_out), SAVE :: o_rsdcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1629 'rsdcs', 'SW CS downward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1630 TYPE(ctrl_out), SAVE :: o_rlucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1631 'rlucs', 'LW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1632 TYPE(ctrl_out), SAVE :: o_rldcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1633 'rldcs', 'LW CS downward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1634 TYPE(ctrl_out), SAVE :: o_tnt = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1635 'tnt', 'Tendency of air temperature', 'K s-1', (/ ('', i=1, 10) /)) 1636 TYPE(ctrl_out), SAVE :: o_tntc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1637 'tntc', 'Tendency of air temperature due to Moist Convection', 'K s-1', (/ ('', i=1, 10) /)) 1638 TYPE(ctrl_out), SAVE :: o_tntr = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1639 'tntr', 'Air temperature tendency due to Radiative heating', 'K s-1', (/ ('', i=1, 10) /)) 1640 TYPE(ctrl_out), SAVE :: o_tntscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1618 1641 'tntscpbl', 'Air temperature tendency due to St cloud and precipitation and BL mixing', & 1619 'K s-1', (/ ('', i=1, 9) /))1620 TYPE(ctrl_out), SAVE :: o_tnhus = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1621 'tnhus', 'Tendency of specific humidity', 's-1', (/ ('', i=1, 9) /))1622 TYPE(ctrl_out), SAVE :: o_tnhusc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1623 'tnhusc', 'Tendency of specific humidity due to convection', 's-1', (/ ('', i=1, 9) /))1624 TYPE(ctrl_out), SAVE :: o_tnhusscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1625 'tnhusscpbl', 'Tendency of Specific humidity due to ST cl, precip and BL mixing', 's-1', (/ ('', i=1, 9) /))1626 TYPE(ctrl_out), SAVE :: o_evu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1627 'evu', 'Eddy viscosity coefficient for Momentum Variables', 'm2 s-1', (/ ('', i=1, 9) /))1628 TYPE(ctrl_out), SAVE :: o_h2o = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1629 'h2o', 'Mass Fraction of Water', '1', (/ ('', i=1, 9) /))1630 TYPE(ctrl_out), SAVE :: o_mcd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1631 'mcd', 'Downdraft COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i=1, 9) /))1632 TYPE(ctrl_out), SAVE :: o_dmc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1633 'dmc', 'Deep COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i=1, 9) /))1634 TYPE(ctrl_out), SAVE :: o_ref_liq = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1635 'ref_liq', 'Effective radius of convective cloud liquid water particle', 'm', (/ ('', i=1, 9) /))1636 TYPE(ctrl_out), SAVE :: o_ref_ice = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 1637 'ref_ice', 'Effective radius of startiform cloud ice particle', 'm', (/ ('', i=1, 9) /))1638 TYPE(ctrl_out), SAVE :: o_rsut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1639 'rsut4co2', 'TOA Out SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1640 TYPE(ctrl_out), SAVE :: o_rlut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1641 'rlut4co2', 'TOA Out LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1642 TYPE(ctrl_out), SAVE :: o_rsutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1643 'rsutcs4co2', 'TOA Out CS SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1644 TYPE(ctrl_out), SAVE :: o_rlutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1645 'rlutcs4co2', 'TOA Out CS LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1646 TYPE(ctrl_out), SAVE :: o_rsu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1647 'rsu4co2', 'Upwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1648 TYPE(ctrl_out), SAVE :: o_rlu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1649 'rlu4co2', 'Upwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1650 TYPE(ctrl_out), SAVE :: o_rsucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1651 'rsucs4co2', 'Upwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1652 TYPE(ctrl_out), SAVE :: o_rlucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1653 'rlucs4co2', 'Upwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1654 TYPE(ctrl_out), SAVE :: o_rsd4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1655 'rsd4co2', 'Downwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1656 TYPE(ctrl_out), SAVE :: o_rld4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1657 'rld4co2', 'Downwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1658 TYPE(ctrl_out), SAVE :: o_rsdcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1659 'rsdcs4co2', 'Downwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1660 TYPE(ctrl_out), SAVE :: o_rldcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 1661 'rldcs4co2', 'Downwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /))1662 TYPE(ctrl_out), SAVE :: o_snowsrf = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 1663 'snowsrf', 'Snow mass at surface', 'kg/m2', (/ ('', i=1, 9) /))1664 TYPE(ctrl_out), SAVE :: o_qsnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 1665 'qsnow', 'Water contained in snow', 'kg/m2', (/ ('', i=1, 9) /))1666 TYPE(ctrl_out), SAVE :: o_snowhgt = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 1667 'snowhgt', 'Snow height at surface', 'm', (/ ('', i=1, 9) /))1668 TYPE(ctrl_out), SAVE :: o_toice = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 1669 'to_ice', 'Snow passed to ice model', 'kg/m2', (/ ('', i=1, 9) /))1670 TYPE(ctrl_out), SAVE :: o_sissnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 1671 'sissnow', 'Snow in snow model', 'kg/m2', (/ ('', i=1, 9) /))1672 TYPE(ctrl_out), SAVE :: o_runoff = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 1673 'runoff', 'Run-off rate land ice', 'kg/m2/s', (/ ('', i=1, 9) /))1674 TYPE(ctrl_out), SAVE :: o_albslw3 = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11 1675 'albslw3', 'Surface albedo LW3', '-', (/ ('', i=1, 9) /))1642 'K s-1', (/ ('', i=1, 10) /)) 1643 TYPE(ctrl_out), SAVE :: o_tnhus = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1644 'tnhus', 'Tendency of specific humidity', 's-1', (/ ('', i=1, 10) /)) 1645 TYPE(ctrl_out), SAVE :: o_tnhusc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1646 'tnhusc', 'Tendency of specific humidity due to convection', 's-1', (/ ('', i=1, 10) /)) 1647 TYPE(ctrl_out), SAVE :: o_tnhusscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1648 'tnhusscpbl', 'Tendency of Specific humidity due to ST cl, precip and BL mixing', 's-1', (/ ('', i=1, 10) /)) 1649 TYPE(ctrl_out), SAVE :: o_evu = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1650 'evu', 'Eddy viscosity coefficient for Momentum Variables', 'm2 s-1', (/ ('', i=1, 10) /)) 1651 TYPE(ctrl_out), SAVE :: o_h2o = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1652 'h2o', 'Mass Fraction of Water', '1', (/ ('', i=1, 10) /)) 1653 TYPE(ctrl_out), SAVE :: o_mcd = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1654 'mcd', 'Downdraft COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i=1, 10) /)) 1655 TYPE(ctrl_out), SAVE :: o_dmc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1656 'dmc', 'Deep COnvective Mass Flux', 'kg/(m2*s)', (/ ('', i=1, 10) /)) 1657 TYPE(ctrl_out), SAVE :: o_ref_liq = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1658 'ref_liq', 'Effective radius of convective cloud liquid water particle', 'm', (/ ('', i=1, 10) /)) 1659 TYPE(ctrl_out), SAVE :: o_ref_ice = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1660 'ref_ice', 'Effective radius of startiform cloud ice particle', 'm', (/ ('', i=1, 10) /)) 1661 TYPE(ctrl_out), SAVE :: o_rsut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1662 'rsut4co2', 'TOA Out SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1663 TYPE(ctrl_out), SAVE :: o_rlut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1664 'rlut4co2', 'TOA Out LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1665 TYPE(ctrl_out), SAVE :: o_rsutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1666 'rsutcs4co2', 'TOA Out CS SW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1667 TYPE(ctrl_out), SAVE :: o_rlutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1668 'rlutcs4co2', 'TOA Out CS LW in 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1669 TYPE(ctrl_out), SAVE :: o_rsu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1670 'rsu4co2', 'Upwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1671 TYPE(ctrl_out), SAVE :: o_rlu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1672 'rlu4co2', 'Upwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1673 TYPE(ctrl_out), SAVE :: o_rsucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1674 'rsucs4co2', 'Upwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1675 TYPE(ctrl_out), SAVE :: o_rlucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1676 'rlucs4co2', 'Upwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1677 TYPE(ctrl_out), SAVE :: o_rsd4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1678 'rsd4co2', 'Downwelling SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1679 TYPE(ctrl_out), SAVE :: o_rld4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1680 'rld4co2', 'Downwelling LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1681 TYPE(ctrl_out), SAVE :: o_rsdcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1682 'rsdcs4co2', 'Downwelling CS SW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1683 TYPE(ctrl_out), SAVE :: o_rldcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1684 'rldcs4co2', 'Downwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 10) /)) 1685 TYPE(ctrl_out), SAVE :: o_snowsrf = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 1686 'snowsrf', 'Snow mass at surface', 'kg/m2', (/ ('', i=1, 10) /)) 1687 TYPE(ctrl_out), SAVE :: o_qsnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 1688 'qsnow', 'Water contained in snow', 'kg/m2', (/ ('', i=1, 10) /)) 1689 TYPE(ctrl_out), SAVE :: o_snowhgt = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 1690 'snowhgt', 'Snow height at surface', 'm', (/ ('', i=1, 10) /)) 1691 TYPE(ctrl_out), SAVE :: o_toice = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 1692 'to_ice', 'Snow passed to ice model', 'kg/m2', (/ ('', i=1, 10) /)) 1693 TYPE(ctrl_out), SAVE :: o_sissnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 1694 'sissnow', 'Snow in snow model', 'kg/m2', (/ ('', i=1, 10) /)) 1695 TYPE(ctrl_out), SAVE :: o_runoff = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11, 11/), & 1696 'runoff', 'Run-off rate land ice', 'kg/m2/s', (/ ('', i=1, 10) /)) 1697 TYPE(ctrl_out), SAVE :: o_albslw3 = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11, 11/), & 1698 'albslw3', 'Surface albedo LW3', '-', (/ ('', i=1, 10) /)) 1676 1699 1677 1700 !!!!!!!!!!!!! Sorties niveaux standards de pression NMC 1678 TYPE(ctrl_out), SAVE :: o_tnondef = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1701 TYPE(ctrl_out), SAVE :: o_tnondef = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1679 1702 'tnondef', 'Undefined value of T', 'K', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 1680 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1681 TYPE(ctrl_out), SAVE :: o_ta = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1703 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1704 TYPE(ctrl_out), SAVE :: o_ta = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1682 1705 'ta', 'Air temperature', 'K', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 1683 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1684 TYPE(ctrl_out), SAVE :: o_zg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1706 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1707 TYPE(ctrl_out), SAVE :: o_zg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1685 1708 'zg', 'Geopotential height', 'm', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 1686 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1687 TYPE(ctrl_out), SAVE :: o_hus = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1709 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1710 TYPE(ctrl_out), SAVE :: o_hus = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1688 1711 'hus', 'Specific humidity', '1', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 1689 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1690 TYPE(ctrl_out), SAVE :: o_hur = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1712 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1713 TYPE(ctrl_out), SAVE :: o_hur = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1691 1714 'hur', 'Relative humidity', '%', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 1692 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1693 TYPE(ctrl_out), SAVE :: o_ua = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1715 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1716 TYPE(ctrl_out), SAVE :: o_ua = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1694 1717 'ua', 'Eastward wind', 'm s-1', (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", & 1695 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1696 TYPE(ctrl_out), SAVE :: o_va = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1697 'va', 'Northward wind', 'm s-1', (/ ('', i=1, 9)/))1698 TYPE(ctrl_out), SAVE :: o_wap = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1718 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1719 TYPE(ctrl_out), SAVE :: o_va = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1720 'va', 'Northward wind', 'm s-1', (/ ('', i=1, 10)/)) 1721 TYPE(ctrl_out), SAVE :: o_wap = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1699 1722 'wap', 'Lagrangian tendency of air pressure', 'Pa s-1', (/ "inst(X)", "inst(X)", "inst(X)", & 1700 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1701 TYPE(ctrl_out), SAVE :: o_psbg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1723 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1724 TYPE(ctrl_out), SAVE :: o_psbg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1702 1725 'psbg', 'Pressure sfce below ground', '%', (/ "inst(X)", "inst(X)", "inst(X)", & 1703 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1704 TYPE(ctrl_out), SAVE :: o_tro3 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1726 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1727 TYPE(ctrl_out), SAVE :: o_tro3 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1705 1728 'tro3', 'Ozone mole fraction', '1e-9', (/ "inst(X)", "inst(X)", "inst(X)", & 1706 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1707 TYPE(ctrl_out), SAVE :: o_tro3_daylight = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 1729 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1730 TYPE(ctrl_out), SAVE :: o_tro3_daylight = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5, 11/), & 1708 1731 'tro3_daylight', 'Daylight ozone mole fraction', '1e-9', (/ "inst(X)", "inst(X)", "inst(X)", & 1709 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1710 TYPE(ctrl_out), SAVE :: o_uxv = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1732 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1733 TYPE(ctrl_out), SAVE :: o_uxv = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1711 1734 'uv', 'uv', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", & 1712 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1713 TYPE(ctrl_out), SAVE :: o_vxq = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1735 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1736 TYPE(ctrl_out), SAVE :: o_vxq = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1714 1737 'vxq', 'vxq', 'm/s * (kg/kg)', (/ "inst(X)", "inst(X)", "inst(X)", & 1715 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1716 TYPE(ctrl_out), SAVE :: o_vxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1738 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1739 TYPE(ctrl_out), SAVE :: o_vxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1717 1740 'vT', 'vT', 'mK/s', (/ "inst(X)", "inst(X)", "inst(X)", & 1718 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1719 TYPE(ctrl_out), SAVE :: o_wxq = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1741 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1742 TYPE(ctrl_out), SAVE :: o_wxq = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1720 1743 'wq', 'wq', '(Pa/s)*(kg/kg)', (/ "inst(X)", "inst(X)", "inst(X)", & 1721 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1722 TYPE(ctrl_out), SAVE :: o_vxphi = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1744 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1745 TYPE(ctrl_out), SAVE :: o_vxphi = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1723 1746 'vphi', 'vphi', 'm2/s', (/ "inst(X)", "inst(X)", "inst(X)", & 1724 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1725 TYPE(ctrl_out), SAVE :: o_wxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1747 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1748 TYPE(ctrl_out), SAVE :: o_wxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1726 1749 'wT', 'wT', '"K*Pa/s', (/ "inst(X)", "inst(X)", "inst(X)", & 1727 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1728 TYPE(ctrl_out), SAVE :: o_uxu = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1750 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1751 TYPE(ctrl_out), SAVE :: o_uxu = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1729 1752 'u2', 'u2', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", & 1730 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1731 TYPE(ctrl_out), SAVE :: o_vxv = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1753 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1754 TYPE(ctrl_out), SAVE :: o_vxv = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1732 1755 'v2', 'v2', 'm2/s2', (/ "inst(X)", "inst(X)", "inst(X)", & 1733 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1734 TYPE(ctrl_out), SAVE :: o_TxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6 1756 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1757 TYPE(ctrl_out), SAVE :: o_TxT = ctrl_out((/ 11, 11, 11, 11, 11, 11, 6, 6, 6, 11/), & 1735 1758 'T2', 'T2', 'K2', (/ "inst(X)", "inst(X)", "inst(X)", & 1736 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))1759 "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /)) 1737 1760 1738 1761 #ifdef CPP_Dust -
LMDZ5/branches/testing/libf/phylmd/phys_output_mod.F90
r2720 r2787 113 113 INTEGER, DIMENSION(nfiles) :: phys_out_filelevels 114 114 CHARACTER(LEN=20), DIMENSION(nfiles) :: chtimestep = (/ 'Default', 'Default', 'Default', 'Default', 'Default', & 115 'Default', 'Default', 'Default', 'Default' /)115 'Default', 'Default', 'Default', 'Default', 'Default' /) 116 116 LOGICAL, DIMENSION(nfiles) :: phys_out_filekeys 117 117 LOGICAL, DIMENSION(nfiles) :: phys_out_filestations … … 120 120 ! entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax] 121 121 122 LOGICAL, DIMENSION(nfiles), SAVE :: phys_out_regfkey = (/ .FALSE., .FALSE., .FALSE., .FALSE., &123 .FALSE., .FALSE., .FALSE., .FALSE.,.FALSE. /)124 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmin = (/ -180., -180., -180.,-180., &125 -180., -180., -180., -180.,-180. /)126 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmax = (/ 180., 180., 180.,180., &127 180., 180., 180., 180.,180. /)128 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmin = (/ -90., -90., -90.,-90., &129 -90., -90., -90., -90.,-90. /)130 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmax = (/ 90., 90., 90.,90., &131 90., 90., 90., 90.,90. /)122 LOGICAL, DIMENSION(nfiles), SAVE :: phys_out_regfkey = (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 123 .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 124 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmin = (/ -180., -180., -180., -180., -180., & 125 -180., -180., -180., -180., -180. /) 126 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmax = (/ 180., 180., 180., 180., 180., & 127 180., 180., 180., 180., 180. /) 128 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmin = (/ -90., -90., -90., -90., -90., & 129 -90., -90., -90., -90., -90. /) 130 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmax = (/ 90., 90., 90., 90., 90., & 131 90., 90., 90., 90., 90. /) 132 132 #ifdef CPP_XIOS 133 133 ! ug Variables utilis\'ees pour r\'ecup\'erer le calendrier pour xios … … 149 149 ALLOCATE(o_dtr_dry(nqtot),o_dtr_vdf(nqtot)) 150 150 151 152 levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD /) 151 levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev /) 153 152 154 153 phys_out_filenames(1) = 'histmth' … … 160 159 phys_out_filenames(7) = 'histmthNMC' 161 160 phys_out_filenames(8) = 'histdayNMC' 162 phys_out_filenames(9) = 'histhfNMC.nc' 161 phys_out_filenames(9) = 'histhfNMC' 162 phys_out_filenames(10)= 'histstrataer' 163 163 164 164 type_ecri(1) = 'ave(X)' … … 171 171 type_ecri(8) = 'inst(X)' 172 172 type_ecri(9) = 'inst(X)' 173 type_ecri(10)= 'ave(X)' 173 174 174 175 clef_files(1) = ok_mensuel … … 181 182 clef_files(8) = ok_histNMC(2) 182 183 clef_files(9) = ok_histNMC(3) 184 #ifdef CPP_StratAer 185 clef_files(10)= .TRUE. 186 #else 187 clef_files(10)= .FALSE. 188 #endif 183 189 184 190 !sortir des fichiers "stations" si clef_stations(:)=.TRUE. … … 192 198 clef_stations(8) = .FALSE. 193 199 clef_stations(9) = .FALSE. 200 clef_stations(10)= .FALSE. 194 201 195 202 lev_files(1) = lev_histmth … … 202 209 lev_files(8) = levout_histNMC(2) 203 210 lev_files(9) = levout_histNMC(3) 211 lev_files(10)= 5 204 212 205 213 ecrit_files(1) = ecrit_mth … … 212 220 ecrit_files(8) = freq_outNMC(2) 213 221 ecrit_files(9) = freq_outNMC(3) 222 ecrit_files(10)= ecrit_mth 214 223 215 224 !! Lectures des parametres de sorties dans physiq.def … … 248 257 WRITE(lunout,*)'phys_out_filestations=',clef_stations 249 258 WRITE(lunout,*)'phys_out_filelevels=',lev_files 259 WRITE(lunout,*)'phys_out_regfkey=',phys_out_regfkey 250 260 251 261 ! A noter pour … … 331 341 print*,'phys_output_open: Declare vertical axes for each file' 332 342 ENDIF 333 IF (iff. le.6) THEN343 IF (iff.LE.6.OR.iff.EQ.10) THEN 334 344 CALL wxios_add_vaxis("presnivs", & 335 345 levmax(iff) - levmin(iff) + 1, presnivs(levmin(iff):levmax(iff))) … … 392 402 itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff)) 393 403 ELSE 404 405 IF (prt_level >= 10) THEN 406 WRITE(lunout,*)'phys_output_open: iff=',iff,' phys_out_filenames(iff)=',phys_out_filenames(iff) 407 ENDIF 408 394 409 CALL histbeg_phy_all(phys_out_filenames(iff),itau_phy,zjulian,& 395 410 dtime,nhorim(iff),nid_files(iff)) … … 397 412 398 413 #ifndef CPP_IOIPSL_NO_OUTPUT 399 IF (iff. le.6) THEN414 IF (iff.LE.6.OR.iff.EQ.10) THEN 400 415 CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "Pa", & 401 416 levmax(iff) - levmin(iff) + 1, & … … 412 427 413 428 ELSE 429 ! NMC files 414 430 CALL histvert(nid_files(iff), "plev", "pressure", "Pa", & 415 431 levmax(iff) - levmin(iff) + 1, & … … 424 440 DO iq=nqo+1,nqtot 425 441 iiq=niadv(iq) 426 o_trac(iq-nqo) = ctrl_out((/ 1, 5, 5, 5, 10, 10, 11, 11, 11 /), &442 o_trac(iq-nqo) = ctrl_out((/ 1, 5, 5, 5, 10, 10, 11, 11, 11, 11 /), & 427 443 tname(iiq),'Tracer '//ttext(iiq), "-", & 428 (/ '', '', '', '', '', '', '', '', '' /))429 o_dtr_vdf(iq-nqo) = ctrl_out((/ 4, 7, 7, 7, 10, 10, 11, 11, 11 /), &444 (/ '', '', '', '', '', '', '', '', '', '' /)) 445 o_dtr_vdf(iq-nqo) = ctrl_out((/ 4, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 430 446 'd'//trim(tname(iq))//'_vdf', & 431 447 'Tendance tracer '//ttext(iiq), "-" , & 432 (/ '', '', '', '', '', '', '', '', '' /))433 434 o_dtr_the(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11 /), &448 (/ '', '', '', '', '', '', '', '', '', '' /)) 449 450 o_dtr_the(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 435 451 'd'//trim(tname(iq))//'_the', & 436 452 'Tendance tracer '//ttext(iiq), "-", & 437 (/ '', '', '', '', '', '', '', '', '' /))438 439 o_dtr_con(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11 /), &453 (/ '', '', '', '', '', '', '', '', '', '' /)) 454 455 o_dtr_con(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 440 456 'd'//trim(tname(iq))//'_con', & 441 457 'Tendance tracer '//ttext(iiq), "-", & 442 (/ '', '', '', '', '', '', '', '', '' /))443 444 o_dtr_lessi_impa(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &458 (/ '', '', '', '', '', '', '', '', '', '' /)) 459 460 o_dtr_lessi_impa(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 445 461 'd'//trim(tname(iq))//'_lessi_impa', & 446 462 'Tendance tracer '//ttext(iiq), "-", & 447 (/ '', '', '', '', '', '', '', '', '' /))448 449 o_dtr_lessi_nucl(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &463 (/ '', '', '', '', '', '', '', '', '', '' /)) 464 465 o_dtr_lessi_nucl(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 450 466 'd'//trim(tname(iq))//'_lessi_nucl', & 451 467 'Tendance tracer '//ttext(iiq), "-", & 452 (/ '', '', '', '', '', '', '', '', '' /))453 454 o_dtr_insc(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &468 (/ '', '', '', '', '', '', '', '', '', '' /)) 469 470 o_dtr_insc(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 455 471 'd'//trim(tname(iq))//'_insc', & 456 472 'Tendance tracer '//ttext(iiq), "-", & 457 (/ '', '', '', '', '', '', '', '', '' /))458 459 o_dtr_bcscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &473 (/ '', '', '', '', '', '', '', '', '', '' /)) 474 475 o_dtr_bcscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 460 476 'd'//trim(tname(iq))//'_bcscav', & 461 477 'Tendance tracer '//ttext(iiq), "-", & 462 (/ '', '', '', '', '', '', '', '', '' /))463 464 o_dtr_evapls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &478 (/ '', '', '', '', '', '', '', '', '', '' /)) 479 480 o_dtr_evapls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 465 481 'd'//trim(tname(iq))//'_evapls', & 466 482 'Tendance tracer '//ttext(iiq), "-", & 467 (/ '', '', '', '', '', '', '', '', '' /))468 469 o_dtr_ls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &483 (/ '', '', '', '', '', '', '', '', '', '' /)) 484 485 o_dtr_ls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 470 486 'd'//trim(tname(iq))//'_ls', & 471 487 'Tendance tracer '//ttext(iiq), "-", & 472 (/ '', '', '', '', '', '', '', '', '' /))473 474 o_dtr_trsp(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &488 (/ '', '', '', '', '', '', '', '', '', '' /)) 489 490 o_dtr_trsp(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 475 491 'd'//trim(tname(iq))//'_trsp', & 476 492 'Tendance tracer '//ttext(iiq), "-", & 477 (/ '', '', '', '', '', '', '', '', '' /))478 479 o_dtr_sscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &493 (/ '', '', '', '', '', '', '', '', '', '' /)) 494 495 o_dtr_sscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 480 496 'd'//trim(tname(iq))//'_sscav', & 481 497 'Tendance tracer '//ttext(iiq), "-", & 482 (/ '', '', '', '', '', '', '', '', '' /))483 484 o_dtr_sat(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &498 (/ '', '', '', '', '', '', '', '', '', '' /)) 499 500 o_dtr_sat(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 485 501 'd'//trim(tname(iq))//'_sat', & 486 502 'Tendance tracer '//ttext(iiq), "-", & 487 (/ '', '', '', '', '', '', '', '', '' /))488 489 o_dtr_uscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &503 (/ '', '', '', '', '', '', '', '', '', '' /)) 504 505 o_dtr_uscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 490 506 'd'//trim(tname(iq))//'_uscav', & 491 507 'Tendance tracer '//ttext(iiq), "-", & 492 (/ '', '', '', '', '', '', '', '', '' /))493 494 o_dtr_dry(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &508 (/ '', '', '', '', '', '', '', '', '', '' /)) 509 510 o_dtr_dry(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 495 511 'cum'//'d'//trim(tname(iq))//'_dry', & 496 512 'tracer tendency dry deposition'//ttext(iiq), "-", & 497 (/ '', '', '', '', '', '', '', '', '' /))498 499 o_trac_cum(iq-nqo) = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 /), &513 (/ '', '', '', '', '', '', '', '', '', '' /)) 514 515 o_trac_cum(iq-nqo) = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11 /), & 500 516 'cum'//tname(iiq),& 501 517 'Cumulated tracer '//ttext(iiq), "-", & 502 (/ '', '', '', '', '', '', '', '', '' /))518 (/ '', '', '', '', '', '', '', '', '', '' /)) 503 519 ENDDO 504 520 ENDIF … … 547 563 type=str(ipos+1:il) 548 564 549 550 565 IF ( il == ipos ) THEN 551 566 type='day' -
LMDZ5/branches/testing/libf/phylmd/phys_output_var_mod.F90
r2594 r2787 46 46 47 47 ! ug Plein de variables venues de phys_output_mod 48 INTEGER, PARAMETER :: nfiles = 948 INTEGER, PARAMETER :: nfiles = 10 49 49 LOGICAL, DIMENSION(nfiles), SAVE :: clef_files 50 50 LOGICAL, DIMENSION(nfiles), SAVE :: clef_stations -
LMDZ5/branches/testing/libf/phylmd/phys_output_write_mod.F90
r2720 r2787 25 25 26 26 USE dimphy, ONLY: klon, klev, klevp1 27 USE infotrac , ONLY: nbtr27 USE infotrac_phy, ONLY: nbtr 28 28 USE mod_phys_lmdz_para, ONLY: is_north_pole_phy,is_south_pole_phy 29 29 USE mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat … … 115 115 o_swsrfcs_nat, o_swsrfcf_ant, & 116 116 o_swtoacf_zero, o_swsrfcf_zero, & 117 o_topswai, o_solswai, o_ scdnc, &117 o_topswai, o_solswai, o_toplwai, o_sollwai, o_scdnc, & 118 118 o_cldncl, o_reffclws, o_reffclwc, o_stratomask,& 119 119 o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, & … … 185 185 #ifdef CPP_StratAer 186 186 USE phys_output_ctrlout_mod, ONLY: & 187 o_sulf_convert, o_sulf_nucl, o_sulf_cond_evap, o_ocs_convert, & 188 o_sfluxaer, o_R2SO4, o_OCS_lifetime, o_SO2_lifetime, & 189 o_OCS_backgr_tend, o_SO2_backgr_tend, o_sulf_dep_dry, o_sulf_dep_wet, & 187 o_budg_3D_nucl, o_budg_3D_cond_evap, o_budg_3D_ocs_to_so2, o_budg_3D_so2_to_h2so4, & 188 o_budg_sed_part, o_R2SO4, o_OCS_lifetime, o_SO2_lifetime, & 189 o_budg_3D_backgr_ocs, o_budg_3D_backgr_so2, & 190 o_budg_dep_dry_h2so4, o_budg_dep_wet_h2so4, & 191 o_budg_dep_dry_part, o_budg_dep_wet_part, & 192 o_budg_emi_ocs, o_budg_emi_so2, o_budg_emi_h2so4, o_budg_emi_part, & 193 o_budg_ocs_to_so2, o_budg_so2_to_h2so4, o_budg_h2so4_to_part, & 190 194 o_surf_PM25_sulf, o_ext_strat_550, o_tau_strat_550, & 191 195 o_p_tropopause, o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet … … 284 288 #ifdef CPP_StratAer 285 289 USE phys_local_var_mod, ONLY: & 286 sulf_convert, sulf_nucl, sulf_cond_evap, ocs_convert, & 287 sfluxaer, R2SO4, OCS_lifetime, SO2_lifetime, & 288 OCS_backgr_tend, SO2_backgr_tend, sulf_dep_dry, sulf_dep_wet, & 290 budg_3D_nucl, budg_3D_cond_evap, budg_3D_ocs_to_so2, budg_3D_so2_to_h2so4, & 291 budg_sed_part, R2SO4, OCS_lifetime, SO2_lifetime, & 292 budg_3D_backgr_ocs, budg_3D_backgr_so2, & 293 budg_dep_dry_h2so4, budg_dep_wet_h2so4, & 294 budg_dep_dry_part, budg_dep_wet_part, & 295 budg_emi_ocs, budg_emi_so2, budg_emi_h2so4, budg_emi_part, & 296 budg_ocs_to_so2, budg_so2_to_h2so4, budg_h2so4_to_part, & 289 297 surf_PM25_sulf, tau_strat_550, p_tropopause, tausum_strat, & 290 298 vsed_aer, tau_strat_1020, f_r_wet … … 385 393 TYPE(xios_field) :: child 386 394 #endif 395 #ifdef CPP_StratAer 396 LOGICAL, PARAMETER :: debug_strataer=.FALSE. 397 #endif 387 398 388 399 ! On calcul le nouveau tau: … … 406 417 iiq=niadv(iq) 407 418 varname=trim(tname(iiq)) 408 WRITE (lunout,*) 'XIOS var=', nqo, iq, varname419 WRITE (lunout,*) 'XIOS var=', nqo, iq, nqtot, varname 409 420 CALL xios_add_child(group_handle, child, varname) 410 421 CALL xios_set_attr(child, name=varname, unit="kg kg-1") … … 455 466 iiq=niadv(iq) 456 467 varname='cum'//trim(tname(iiq)) 457 WRITE (lunout,*) 'XIOS var=', iq, varname468 WRITE (lunout,*) 'XIOS var=', iq, nqtot, varname 458 469 CALL xios_add_child(group_handle, child, varname) 459 470 CALL xios_set_attr(child, name=varname, unit="kg m-2") … … 468 479 ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage: 469 480 DO iinit=1, iinitend 481 ! print *,'IFF iinit=', iinit, iinitend 470 482 #ifdef CPP_XIOS 471 483 !$OMP MASTER … … 1194 1206 #ifdef CPP_StratAer 1195 1207 IF (type_trac=='coag') THEN 1196 CALL histwrite_phy(o_sulf_convert, sulf_convert)1197 CALL histwrite_phy(o_sulf_nucl, sulf_nucl)1198 CALL histwrite_phy(o_sulf_cond_evap, sulf_cond_evap)1199 CALL histwrite_phy(o_ocs_convert, ocs_convert)1200 1208 CALL histwrite_phy(o_R2SO4, R2SO4) 1201 1209 CALL histwrite_phy(o_OCS_lifetime, OCS_lifetime) 1202 1210 CALL histwrite_phy(o_SO2_lifetime, SO2_lifetime) 1203 CALL histwrite_phy(o_OCS_backgr_tend, OCS_backgr_tend) 1204 CALL histwrite_phy(o_SO2_backgr_tend, SO2_backgr_tend) 1205 CALL histwrite_phy(o_sulf_dep_dry, sulf_dep_dry) 1206 CALL histwrite_phy(o_sulf_dep_wet, sulf_dep_wet) 1211 CALL histwrite_phy(o_budg_3D_backgr_ocs, budg_3D_backgr_ocs) 1212 CALL histwrite_phy(o_budg_3D_backgr_so2, budg_3D_backgr_so2) 1213 CALL histwrite_phy(o_budg_3D_ocs_to_so2, budg_3D_ocs_to_so2) 1214 CALL histwrite_phy(o_budg_3D_so2_to_h2so4, budg_3D_so2_to_h2so4) 1215 CALL histwrite_phy(o_budg_3D_nucl, budg_3D_nucl) 1216 CALL histwrite_phy(o_budg_3D_cond_evap, budg_3D_cond_evap) 1217 CALL histwrite_phy(o_budg_dep_dry_h2so4, budg_dep_dry_h2so4) 1218 CALL histwrite_phy(o_budg_dep_wet_h2so4, budg_dep_wet_h2so4) 1219 CALL histwrite_phy(o_budg_dep_dry_part, budg_dep_dry_part) 1220 CALL histwrite_phy(o_budg_dep_wet_part, budg_dep_wet_part) 1221 CALL histwrite_phy(o_budg_emi_ocs, budg_emi_ocs) 1222 CALL histwrite_phy(o_budg_emi_so2, budg_emi_so2) 1223 CALL histwrite_phy(o_budg_emi_h2so4, budg_emi_h2so4) 1224 CALL histwrite_phy(o_budg_emi_part, budg_emi_part) 1225 CALL histwrite_phy(o_budg_ocs_to_so2, budg_ocs_to_so2) 1226 CALL histwrite_phy(o_budg_so2_to_h2so4, budg_so2_to_h2so4) 1227 CALL histwrite_phy(o_budg_h2so4_to_part, budg_h2so4_to_part) 1228 CALL histwrite_phy(o_budg_sed_part, budg_sed_part) 1207 1229 CALL histwrite_phy(o_surf_PM25_sulf, surf_PM25_sulf) 1208 1230 CALL histwrite_phy(o_p_tropopause, p_tropopause) 1209 CALL histwrite_phy(o_sfluxaer, sfluxaer)1210 1231 CALL histwrite_phy(o_vsed_aer, vsed_aer) 1211 1232 CALL histwrite_phy(o_f_r_wet, f_r_wet) … … 1264 1285 IF (ok_aie) THEN 1265 1286 CALL histwrite_phy(o_topswai, topswai_aero*swradcorr) 1287 CALL histwrite_phy(o_toplwai, toplwai_aero*swradcorr) 1266 1288 CALL histwrite_phy(o_solswai, solswai_aero*swradcorr) 1289 CALL histwrite_phy(o_sollwai, sollwai_aero*swradcorr) 1267 1290 ENDIF 1268 1291 IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN … … 1726 1749 ! Champs interpolles sur des niveaux de pression 1727 1750 missing_val=missing_val_nf90 1728 DO iff=7, nfiles 1751 DO iff=7, nfiles-1 !--OB: here we deal with files 7,8,9 1729 1752 1730 1753 CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff) -
LMDZ5/branches/testing/libf/phylmd/phys_state_var_mod.F90
r2720 r2787 18 18 INTEGER, SAVE :: radpas 19 19 INTEGER, SAVE :: cvpas 20 INTEGER, SAVE :: wkpas 20 21 REAL, PARAMETER :: missing_val_nf90=nf90_fill_real 21 22 !$OMP THREADPRIVATE(radpas) 22 23 !$OMP THREADPRIVATE(cvpas) 24 !$OMP THREADPRIVATE(wkpas) 23 25 REAL, SAVE :: dtime, solaire_etat0 24 26 !$OMP THREADPRIVATE(dtime, solaire_etat0) -
LMDZ5/branches/testing/libf/phylmd/physiq_mod.F90
r2720 r2787 16 16 d_u, d_v, d_t, d_qx, d_ps) 17 17 18 use assert_m, only: assert 18 19 USE ioipsl, only: histbeg, histvert, histdef, histend, histsync, & 19 20 histwrite, ju2ymds, ymds2ju, getin 20 21 USE geometry_mod, ONLY: cell_area, latitude_deg, longitude_deg 21 22 USE phys_cal_mod, only: year_len, mth_len, days_elapsed, jh_1jan, & 22 year_cur, mth_cur,jD_cur, jH_cur, jD_ref 23 year_cur, mth_cur,jD_cur, jH_cur, jD_ref, day_cur, hour 23 24 USE write_field_phy 24 25 USE dimphy … … 29 30 USE print_control_mod, ONLY: mydebug=>debug , lunout, prt_level 30 31 USE phystokenc_mod, ONLY: offline, phystokenc 31 USE time_phylmdz_mod, only: raz_date, day_step_phy, update_time 32 USE time_phylmdz_mod, only: raz_date, day_step_phy, update_time,current_time 32 33 USE vampir 33 34 USE pbl_surface_mod, ONLY : pbl_surface … … 139 140 kh, kh_x, kh_w, & 140 141 ! 142 wake_k, & 141 143 ale_wake, alp_wake, & 142 144 wake_h, wake_omg, & … … 564 566 !pourquoi y'a pas de save?? 565 567 ! 566 INTEGER wake_k(klon) ! Wake sommet 568 !!! INTEGER, SAVE, DIMENSION(klon) :: wake_k 569 !!! !$OMP THREADPRIVATE(wake_k) 567 570 ! 568 571 !jyg< … … 782 785 !ym SAVE 783 786 ! 784 INTEGER itapcv 785 SAVE itapcv 786 !$OMP THREADPRIVATE(itapcv )787 INTEGER itapcv, itapwk 788 SAVE itapcv, itapwk 789 !$OMP THREADPRIVATE(itapcv, itapwk) 787 790 788 791 !KE43 … … 978 981 ! Parameters 979 982 LOGICAL ok_ade, ok_aie ! Apply aerosol (in)direct effects or not 983 LOGICAL ok_alw ! Apply aerosol LW effect or not 980 984 LOGICAL ok_cdnc ! ok cloud droplet number concentration (O. Boucher 01-2013) 981 985 REAL bl95_b0, bl95_b1 ! Parameter in Boucher and Lohmann (1995) 982 SAVE ok_ade, ok_aie, ok_ cdnc, bl95_b0, bl95_b1983 !$OMP THREADPRIVATE(ok_ade, ok_aie, ok_ cdnc, bl95_b0, bl95_b1)986 SAVE ok_ade, ok_aie, ok_alw, ok_cdnc, bl95_b0, bl95_b1 987 !$OMP THREADPRIVATE(ok_ade, ok_aie, ok_alw, ok_cdnc, bl95_b0, bl95_b1) 984 988 LOGICAL, SAVE :: aerosol_couple ! true : calcul des aerosols dans INCA 985 989 ! false : lecture des aerosol dans un fichier … … 1076 1080 INTEGER :: nbtr_tmp ! Number of tracer inside concvl 1077 1081 REAL, dimension(klon,klev) :: sh_in ! Specific humidity entering in phytrac 1082 REAL, dimension(klon,klev) :: ch_in ! Condensed humidity entering in phytrac (eau liquide) 1078 1083 integer iostat 1079 1084 … … 1122 1127 ENDIF 1123 1128 1124 !====================================================================== 1129 ! Quick check on pressure levels: 1130 call assert(paprs(:, nbp_lev + 1) < paprs(:, nbp_lev), & 1131 "physiq_mod paprs bad order") 1125 1132 1126 1133 IF (first) THEN … … 1140 1147 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1141 1148 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1142 ok_ade, ok_aie, ok_ cdnc, aerosol_couple, &1149 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, & 1143 1150 flag_aerosol, flag_aerosol_strat, new_aod, & 1144 1151 flag_bc_internal_mixture, bl95_b0, bl95_b1, & … … 1285 1292 itaprad = 0 1286 1293 itapcv = 0 1294 itapwk = 0 1287 1295 1288 1296 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 1300 1308 ! Il se peut qu'il faille prendre une valeur differente de nbapp_rad 1301 1309 ! pour obtenir le meme resultat. 1302 dtime=pdtphys 1303 IF (MOD(INT(86400./dtime),nbapp_rad).EQ.0) THEN 1304 radpas = NINT( 86400./dtime/nbapp_rad) 1310 !jyg for fh< 1311 !! dtime=pdtphys 1312 dtime=NINT(pdtphys) 1313 WRITE(lunout,*) 'Pas de temps dtime pdtphys ',dtime,pdtphys 1314 IF (abs(dtime-pdtphys)>1.e-10) THEN 1315 abort_message='pas de temps doit etre entier en seconde pour orchidee et XIOS' 1316 CALL abort_physic(modname,abort_message,1) 1317 ENDIF 1318 !>jyg 1319 IF (MOD(NINT(86400./dtime),nbapp_rad).EQ.0) THEN 1320 radpas = NINT( 86400./dtime)/nbapp_rad 1305 1321 ELSE 1306 1322 WRITE(lunout,*) 'le nombre de pas de temps physique doit etre un ', & … … 1313 1329 ENDIF 1314 1330 IF (nbapp_cv .EQ. 0) nbapp_cv=86400./dtime 1315 print *,'physiq, nbapp_cv ',nbapp_cv 1316 IF (MOD(INT(86400./dtime),nbapp_cv).EQ.0) THEN 1317 cvpas = NINT( 86400./dtime/nbapp_cv) 1331 IF (nbapp_wk .EQ. 0) nbapp_wk=86400./dtime 1332 print *,'physiq, nbapp_cv, nbapp_wk ',nbapp_cv,nbapp_wk 1333 IF (MOD(NINT(86400./dtime),nbapp_cv).EQ.0) THEN 1334 cvpas = NINT( 86400./dtime)/nbapp_cv 1318 1335 print *,'physiq, cvpas ',cvpas 1319 1336 ELSE … … 1324 1341 abort_message='nbre de pas de temps physique n est pas multiple ' & 1325 1342 // 'de nbapp_cv' 1343 call abort_physic(modname,abort_message,1) 1344 ENDIF 1345 IF (MOD(NINT(86400./dtime),nbapp_wk).EQ.0) THEN 1346 wkpas = NINT( 86400./dtime)/nbapp_wk 1347 print *,'physiq, wkpas ',wkpas 1348 ELSE 1349 WRITE(lunout,*) 'le nombre de pas de temps physique doit etre un ', & 1350 'multiple de nbapp_wk' 1351 WRITE(lunout,*) 'changer nbapp_wk ou alors commenter ce test ', & 1352 'mais 1+1<>2' 1353 abort_message='nbre de pas de temps physique n est pas multiple ' & 1354 // 'de nbapp_wk' 1326 1355 call abort_physic(modname,abort_message,1) 1327 1356 ENDIF … … 1563 1592 jjmp1,nlevSTD,clevSTD,rlevSTD, dtime,ok_veget, & 1564 1593 type_ocean,iflag_pbl,iflag_pbl_split,ok_mensuel,ok_journe, & 1565 ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, 1594 ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, & 1566 1595 read_climoz, phys_out_filestations, & 1567 1596 new_aod, aerosol_couple, & … … 1708 1737 ! 1709 1738 itap = itap + 1 1739 IF (is_mpi_root .AND. is_omp_root) THEN 1740 IF (prt_level > 5 .or. MOD(itap,5) == 0) THEN 1741 WRITE(LUNOUT,*)'Entering physics current time = ', current_time 1742 WRITE(LUNOUT,*)'Date = ',year_cur,'/',mth_cur,'/',day_cur,':',hour/3600 1743 ENDIF 1744 ENDIF 1710 1745 ! 1711 1746 ! … … 1923 1958 ! Update ozone if day change 1924 1959 IF (MOD(itap-1,lmt_pas) == 0) THEN 1925 IF (read_climoz == 0) THEN 1926 ! Once per day, update ozone from Royer: 1927 IF (solarlong0<-999.) then 1928 ! Generic case with evolvoing season 1929 zzz=real(days_elapsed+1) 1930 ELSE IF (abs(solarlong0-1000.)<1.e-4) then 1931 ! Particular case with annual mean insolation 1932 zzz=real(90) ! could be revisited 1933 IF (read_climoz/=-1) THEN 1934 abort_message ='read_climoz=-1 is recommended when ' & 1935 // 'solarlong0=1000.' 1936 CALL abort_physic (modname,abort_message,1) 1937 ENDIF 1938 ELSE 1939 ! Case where the season is imposed with solarlong0 1940 zzz=real(90) ! could be revisited 1941 ENDIF 1942 1943 wo(:,:,1)=ozonecm(latitude_deg, paprs,read_climoz,rjour=zzz) 1944 ELSE 1945 ro3i = int((days_elapsed + jh_cur - jh_1jan) / year_len * 360.) + 1 1946 IF (ro3i == 361) ro3i = 360 1947 IF (read_climoz == 1) THEN 1948 CALL regr_pr_av(ncid_climoz, (/"tro3"/), julien=ro3i, & 1949 press_in_edg=press_climoz, paprs=paprs, v3=wo) 1950 ELSE 1951 ! read_climoz == 2 1952 CALL regr_pr_av(ncid_climoz, (/"tro3 ", & 1953 "tro3_daylight"/), julien=ro3i, press_in_edg=press_climoz, & 1954 paprs=paprs, v3=wo) 1955 ENDIF 1956 ! Convert from mole fraction of ozone to column density of ozone in a 1957 ! cell, in kDU: 1958 FORALL (l = 1: read_climoz) wo(:, :, l) = wo(:, :, l) * rmo3 / rmd & 1959 * zmasse / dobson_u / 1e3 1960 ! (By regridding ozone values for LMDZ only once every 360th of 1961 ! year, we have already neglected the variation of pressure in one 1962 ! 360th of year. So do not recompute "wo" at each time step even if 1963 ! "zmasse" changes a little.) 1964 1965 ENDIF 1960 IF (read_climoz <= 0) THEN 1961 ! Once per day, update ozone from Royer: 1962 IF (solarlong0<-999.) then 1963 ! Generic case with evolvoing season 1964 zzz=real(days_elapsed+1) 1965 ELSE IF (abs(solarlong0-1000.)<1.e-4) then 1966 ! Particular case with annual mean insolation 1967 zzz=real(90) ! could be revisited 1968 IF (read_climoz/=-1) THEN 1969 abort_message ='read_climoz=-1 is recommended when ' & 1970 // 'solarlong0=1000.' 1971 CALL abort_physic (modname,abort_message,1) 1972 ENDIF 1973 ELSE 1974 ! Case where the season is imposed with solarlong0 1975 zzz=real(90) ! could be revisited 1976 ENDIF 1977 1978 wo(:,:,1)=ozonecm(latitude_deg, paprs,read_climoz,rjour=zzz) 1979 ELSE 1980 ro3i = int((days_elapsed + jh_cur - jh_1jan) / year_len * 360.) + 1 1981 1982 IF (ro3i == 361) ro3i = 360 1983 ! (This should never occur, except perhaps because of roundup 1984 ! error. See documentation.) 1985 1986 IF (read_climoz == 1) THEN 1987 CALL regr_pr_av(ncid_climoz, (/"tro3"/), julien=ro3i, & 1988 press_in_edg=press_climoz, paprs=paprs, v3=wo) 1989 ELSE 1990 ! read_climoz == 2 1991 CALL regr_pr_av(ncid_climoz, (/"tro3 ", & 1992 "tro3_daylight"/), julien=ro3i, press_in_edg=press_climoz, & 1993 paprs=paprs, v3=wo) 1994 ENDIF 1995 ! Convert from mole fraction of ozone to column density of ozone in a 1996 ! cell, in kDU: 1997 FORALL (l = 1: read_climoz) wo(:, :, l) = wo(:, :, l) * rmo3 / rmd & 1998 * zmasse / dobson_u / 1e3 1999 ! (By regridding ozone values for LMDZ only once per day, we 2000 ! have already neglected the variation of pressure in one 2001 ! day. So do not recompute "wo" at each time step even if 2002 ! "zmasse" changes a little.) 2003 ENDIF 1966 2004 ENDIF 1967 2005 ! … … 2317 2355 IF (prt_level.ge.1) write(lunout,*) 'omega(igout, :) = ', & 2318 2356 omega(igout, :) 2319 2320 2357 ! 2321 2358 ! Appel de la convection tous les "cvpas" … … 2574 2611 ! . d_u_con, d_v_con) 2575 2612 2613 !jyg Reinitialize proba_notrig and itapcv when convection has been called 2614 proba_notrig(:) = 1. 2576 2615 itapcv = 0 2577 2616 ENDIF ! (MOD(itapcv,cvpas).EQ.0) 2617 ! 2578 2618 itapcv = itapcv+1 2579 2619 … … 2640 2680 IF (iflag_wake>=1) THEN 2641 2681 ! 2642 ! Call wakes only when convection has been called 2643 IF (itapcv .EQ. 1) THEN 2644 ! 2645 DO k=1,klev 2646 DO i=1,klon 2647 dt_dwn(i,k) = ftd(i,k) 2648 dq_dwn(i,k) = fqd(i,k) 2649 M_dwn(i,k) = dnwd0(i,k) 2650 M_up(i,k) = upwd(i,k) 2651 dt_a(i,k) = d_t_con(i,k)/dtime - ftd(i,k) 2652 dq_a(i,k) = d_q_con(i,k)/dtime - fqd(i,k) 2653 ENDDO 2654 ENDDO 2655 2656 IF (iflag_wake==2) THEN 2657 ok_wk_lsp(:)=max(sign(1.,wake_s(:)-wake_s_min_lsp),0.) 2658 DO k = 1,klev 2659 dt_dwn(:,k)= dt_dwn(:,k)+ & 2660 ok_wk_lsp(:)*(d_t_eva(:,k)+d_t_lsc(:,k))/dtime 2661 dq_dwn(:,k)= dq_dwn(:,k)+ & 2662 ok_wk_lsp(:)*(d_q_eva(:,k)+d_q_lsc(:,k))/dtime 2663 ENDDO 2664 ELSEIF (iflag_wake==3) THEN 2665 ok_wk_lsp(:)=max(sign(1.,wake_s(:)-wake_s_min_lsp),0.) 2666 DO k = 1,klev 2682 ! 2683 ! Call wakes every "wkpas" step 2684 ! 2685 IF (MOD(itapwk,wkpas).EQ.0) THEN 2686 ! 2687 DO k=1,klev 2667 2688 DO i=1,klon 2668 IF (rneb(i,k)==0.) THEN 2669 ! On ne tient compte des tendances qu'en dehors des 2670 ! nuages (c'est-\`a-dire a priri dans une region ou 2671 ! l'eau se reevapore). 2672 dt_dwn(i,k)= dt_dwn(i,k)+ & 2673 ok_wk_lsp(i)*d_t_lsc(i,k)/dtime 2674 dq_dwn(i,k)= dq_dwn(i,k)+ & 2675 ok_wk_lsp(i)*d_q_lsc(i,k)/dtime 2676 ENDIF 2689 dt_dwn(i,k) = ftd(i,k) 2690 dq_dwn(i,k) = fqd(i,k) 2691 M_dwn(i,k) = dnwd0(i,k) 2692 M_up(i,k) = upwd(i,k) 2693 dt_a(i,k) = d_t_con(i,k)/dtime - ftd(i,k) 2694 dq_a(i,k) = d_q_con(i,k)/dtime - fqd(i,k) 2677 2695 ENDDO 2678 2696 ENDDO 2679 ENDIF 2680 2681 ! 2682 !calcul caracteristiques de la poche froide 2683 CALL calWAKE (iflag_wake_tend, paprs, pplay, dtime, & 2684 t_seri, q_seri, omega, & 2685 dt_dwn, dq_dwn, M_dwn, M_up, & 2686 dt_a, dq_a, & 2687 sigd, & 2688 wake_deltat, wake_deltaq, wake_s, wake_dens, & 2689 wake_dth, wake_h, & 2690 wake_pe, wake_fip, wake_gfl, & 2691 d_t_wake, d_q_wake, & 2692 wake_k, t_x, q_x, & 2693 wake_omgbdth, wake_dp_omgb, & 2694 wake_dtKE, wake_dqKE, & 2695 wake_omg, wake_dp_deltomg, & 2696 wake_spread, wake_Cstar, d_deltat_wk_gw, & 2697 d_deltat_wk, d_deltaq_wk, d_s_wk, d_dens_wk) 2698 ! 2699 ENDIF ! (mod(itapcv,cvpas) .EQ. 1) 2697 2698 IF (iflag_wake==2) THEN 2699 ok_wk_lsp(:)=max(sign(1.,wake_s(:)-wake_s_min_lsp),0.) 2700 DO k = 1,klev 2701 dt_dwn(:,k)= dt_dwn(:,k)+ & 2702 ok_wk_lsp(:)*(d_t_eva(:,k)+d_t_lsc(:,k))/dtime 2703 dq_dwn(:,k)= dq_dwn(:,k)+ & 2704 ok_wk_lsp(:)*(d_q_eva(:,k)+d_q_lsc(:,k))/dtime 2705 ENDDO 2706 ELSEIF (iflag_wake==3) THEN 2707 ok_wk_lsp(:)=max(sign(1.,wake_s(:)-wake_s_min_lsp),0.) 2708 DO k = 1,klev 2709 DO i=1,klon 2710 IF (rneb(i,k)==0.) THEN 2711 ! On ne tient compte des tendances qu'en dehors des 2712 ! nuages (c'est-\`a-dire a priri dans une region ou 2713 ! l'eau se reevapore). 2714 dt_dwn(i,k)= dt_dwn(i,k)+ & 2715 ok_wk_lsp(i)*d_t_lsc(i,k)/dtime 2716 dq_dwn(i,k)= dq_dwn(i,k)+ & 2717 ok_wk_lsp(i)*d_q_lsc(i,k)/dtime 2718 ENDIF 2719 ENDDO 2720 ENDDO 2721 ENDIF 2722 2723 ! 2724 !calcul caracteristiques de la poche froide 2725 CALL calWAKE (iflag_wake_tend, paprs, pplay, dtime, & 2726 t_seri, q_seri, omega, & 2727 dt_dwn, dq_dwn, M_dwn, M_up, & 2728 dt_a, dq_a, & 2729 sigd, & 2730 wake_deltat, wake_deltaq, wake_s, wake_dens, & 2731 wake_dth, wake_h, & 2732 wake_pe, wake_fip, wake_gfl, & 2733 d_t_wake, d_q_wake, & 2734 wake_k, t_x, q_x, & 2735 wake_omgbdth, wake_dp_omgb, & 2736 wake_dtKE, wake_dqKE, & 2737 wake_omg, wake_dp_deltomg, & 2738 wake_spread, wake_Cstar, d_deltat_wk_gw, & 2739 d_deltat_wk, d_deltaq_wk, d_s_wk, d_dens_wk) 2740 ! 2741 !jyg Reinitialize itapwk when wakes have been called 2742 itapwk = 0 2743 ENDIF ! (MOD(itapwk,wkpas).EQ.0) 2744 ! 2745 itapwk = itapwk+1 2700 2746 ! 2701 2747 !----------------------------------------------------------------------- … … 2705 2751 !------------------------------------------------------------------------ 2706 2752 2707 !Increment Wake state variables2753 ! Increment Wake state variables 2708 2754 IF (iflag_wake_tend .GT. 0.) THEN 2709 2755 … … 3261 3307 !jq - introduce the aerosol direct and first indirect radiative forcings 3262 3308 !jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) 3263 IF (flag_aerosol . gt. 0) THEN3309 IF (flag_aerosol .GT. 0) THEN 3264 3310 IF (iflag_rrtm .EQ. 0) THEN !--old radiation 3265 3311 IF (.NOT. aerosol_couple) THEN … … 3280 3326 #ifdef CPP_RRTM 3281 3327 IF (NSW.EQ.6) THEN 3282 !--new aerosol properties 3328 !--new aerosol properties SW and LW 3283 3329 ! 3284 CALL readaerosol_optic_rrtm( debut, aerosol_couple, & 3330 #ifdef CPP_Dust 3331 !--SPL aerosol model 3332 CALL splaerosol_optic_rrtm( ok_alw, pplay, paprs, t_seri, rhcl, & 3333 tr_seri, mass_solu_aero, mass_solu_aero_pi, & 3334 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & 3335 tausum_aero, tau3d_aero) 3336 #else 3337 !--climatologies or INCA aerosols 3338 CALL readaerosol_optic_rrtm( debut, aerosol_couple, ok_alw, & 3285 3339 new_aod, flag_aerosol, flag_bc_internal_mixture, itap, jD_cur-jD_ref, & 3286 3340 pdtphys, pplay, paprs, t_seri, rhcl, presnivs, & … … 3288 3342 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & 3289 3343 tausum_aero, tau3d_aero) 3290 3344 #endif 3345 ! 3291 3346 ELSE IF (NSW.EQ.2) THEN 3292 3347 !--for now we use the old aerosol properties … … 3307 3362 piz_aero_sw_rrtm(:,:,2,:)=piz_aero(:,:,2,:) 3308 3363 cg_aero_sw_rrtm (:,:,2,:)=cg_aero (:,:,2,:) 3364 ! 3365 !--no LW optics 3366 tau_aero_lw_rrtm(:,:,:,:) = 1.e-15 3367 ! 3309 3368 ELSE 3310 3369 abort_message='Only NSW=2 or 6 are possible with ' & … … 3312 3371 CALL abort_physic(modname,abort_message,1) 3313 3372 ENDIF 3314 3315 !--call LW optical properties for tropospheric aerosols3316 !--only works for INCA aerosol (aerosol_couple = TRUE)3317 CALL aeropt_lw_rrtm(aerosol_couple,paprs,tr_seri)3318 !3319 3373 #else 3320 3374 abort_message='You should compile with -rrtm if running ' & … … 3325 3379 ENDIF 3326 3380 ENDIF 3327 ELSE 3381 ELSE !--flag_aerosol = 0 3328 3382 tausum_aero(:,:,:) = 0. 3329 3383 mass_solu_aero(:,:) = 0. … … 4007 4061 ELSE 4008 4062 sh_in(:,:) = qx(:,:,ivap) 4063 ch_in(:,:) = qx(:,:,iliq) 4009 4064 ENDIF 4010 4065 … … 4039 4094 frac_impa,frac_nucl, beta_prec_fisrt,beta_prec, & 4040 4095 presnivs, pphis, pphi, albsol1, & 4041 sh_in, rhcl, cldfra, rneb, &4096 sh_in, ch_in, rhcl, cldfra, rneb, & 4042 4097 diafra, cldliq, itop_con, ibas_con, & 4043 4098 pmflxr, pmflxs, prfl, psfl, & -
LMDZ5/branches/testing/libf/phylmd/phytrac_mod.F90
r2720 r2787 66 66 frac_impa,frac_nucl,beta_fisrt,beta_v1, & 67 67 presnivs, pphis, pphi, albsol, & 68 sh, rh,cldfra, rneb, &68 sh, ch, rh, cldfra, rneb, & 69 69 diafra, cldliq, itop_con, ibas_con, & 70 70 pmflxr, pmflxs, prfl, psfl, & … … 103 103 #ifdef CPP_StratAer 104 104 USE traccoag_mod 105 USE phys_local_var_mod, ONLY: mdw, sulf_dep_dry, sulf_dep_wet 105 USE phys_local_var_mod, ONLY: mdw 106 USE phys_local_var_mod, ONLY: budg_dep_dry_h2so4, budg_dep_wet_h2so4 107 USE phys_local_var_mod, ONLY: budg_dep_dry_part, budg_dep_wet_part 106 108 USE infotrac, ONLY: nbtr_sulgas, id_SO2_strat, id_H2SO4_strat 107 109 USE aerophys … … 137 139 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique 138 140 REAL,DIMENSION(klon,klev),INTENT(IN) :: rh ! humidite relative 141 REAL,DIMENSION(klon,klev),INTENT(IN) :: ch ! eau liquide 139 142 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs ! pression pour chaque inter-couche (en Pa) 140 143 REAL,DIMENSION(klon,klev),INTENT(IN) :: pplay ! pression pour le mileu de chaque couche (en Pa) … … 571 574 write(lunout,*) 'flag_cvltr = ', flag_cvltr 572 575 573 IF (lessivage .AND.config_inca.EQ.'inca') THEN576 IF (lessivage .AND. type_trac .EQ. 'inca') THEN 574 577 CALL abort_physic('phytrac', 'lessivage=T config_inca=inca impossible',1) 575 578 STOP … … 698 701 IF (type_trac=='coag') THEN 699 702 ! initialize wet deposition flux of sulfur 700 sulf_dep_wet(:)=0.0 703 budg_dep_wet_h2so4(:)=0.0 704 budg_dep_wet_part(:)=0.0 701 705 ! compute wet deposition flux of sulfur (sum over gases and particles) 702 706 ! and convert to kg(S)/m2/s … … 706 710 !do not include SO2 because most of it comes trom the troposphere 707 711 IF (it==id_H2SO4_strat) THEN 708 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) &712 budg_dep_wet_h2so4(i)=budg_dep_wet_h2so4(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) & 709 713 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 710 714 ELSEIF (it.GT.nbtr_sulgas) THEN 711 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) &715 budg_dep_wet_part(i)=budg_dep_wet_part(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) & 712 716 & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 & 713 717 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys … … 766 770 767 771 ! initialize dry deposition flux of sulfur 768 sulf_dep_dry(:)=0.0 772 budg_dep_dry_h2so4(:)=0.0 773 budg_dep_dry_part(:)=0.0 769 774 770 775 ! compute dry deposition velocity as function of surface type (numbers … … 800 805 ! compute dry deposition flux of sulfur (sum over gases and particles) 801 806 IF (it==id_H2SO4_strat) THEN 802 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol)807 budg_dep_dry_h2so4(:)=budg_dep_dry_h2so4(:)-source(:,it)*(mSatom/mH2SO4mol) 803 808 ELSEIF (it.GT.nbtr_sulgas) THEN 804 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol)*dens_aer_dry &809 budg_dep_dry_part(:)=budg_dep_dry_part(:)-source(:,it)*(mSatom/mH2SO4mol)*dens_aer_dry & 805 810 & *4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 806 811 ENDIF … … 886 891 DO it = 1, nbtr 887 892 IF (it==id_H2SO4_strat) THEN 888 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) &893 budg_dep_wet_h2so4(i)=budg_dep_wet_h2so4(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) & 889 894 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 890 895 ELSEIF (it.GT.nbtr_sulgas) THEN 891 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) &896 budg_dep_wet_part(i)=budg_dep_wet_part(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) & 892 897 & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 & 893 898 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys … … 1018 1023 pdtphys, t_seri, paprs, pplay, & 1019 1024 pmfu, upwd, ftsol, pctsrf, pphis, & 1020 pphi, albsol, sh, 1025 pphi, albsol, sh, ch, rh, & 1021 1026 cldfra, rneb, diafra, cldliq, & 1022 1027 itop_con, ibas_con, pmflxr, pmflxs, & -
LMDZ5/branches/testing/libf/phylmd/readaerosolstrato.F90
r2594 r2787 33 33 real, pointer:: lev(:) 34 34 integer i, k, band, wave 35 integer, save :: mth_pre 35 integer, save :: mth_pre=1 36 36 !$OMP THREADPRIVATE(mth_pre) 37 37 -
LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_5wv_rrtm.F90
r2669 r2787 12 12 USE DIMPHY 13 13 USE aero_mod 14 USE phys_local_var_mod, only: od550aer,od865aer,ec550aer,od550lt1aer 14 USE phys_local_var_mod, ONLY: od550aer,od865aer,ec550aer,od550lt1aer 15 USE YOMCST, ONLY: RD,RG 15 16 16 17 ! … … 20 21 ! a partir d'une sous-routine de Johannes Quaas pour les sulfates 21 22 ! Olivier Boucher mars 2014 pour adaptation RRTM 23 ! 22 24 ! 23 25 ! Refractive indices for seasalt come from Shettle and Fenn (1979) … … 50 52 ! 51 53 IMPLICIT NONE 52 INCLUDE "YOMCST.h"53 54 ! 54 55 ! Input arguments: 55 56 ! 56 REAL, DIMENSION(klon,klev), INTENT( in) :: pdel57 REAL, DIMENSION(klon,klev,naero_tot), INTENT( in) :: m_allaer58 REAL, DIMENSION(klon,klev), INTENT( in) :: RHcl ! humidite relative ciel clair59 INTEGER,INTENT( in) :: flag_aerosol60 LOGICAL,INTENT( in) :: flag_bc_internal_mixture61 REAL, DIMENSION(klon,klev), INTENT( in) :: pplay62 REAL, DIMENSION(klon,klev), INTENT( in) :: t_seri57 REAL, DIMENSION(klon,klev), INTENT(IN) :: pdel 58 REAL, DIMENSION(klon,klev,naero_tot), INTENT(IN) :: m_allaer 59 REAL, DIMENSION(klon,klev), INTENT(IN) :: RHcl ! humidite relative ciel clair 60 INTEGER,INTENT(IN) :: flag_aerosol 61 LOGICAL,INTENT(IN) :: flag_bc_internal_mixture 62 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay 63 REAL, DIMENSION(klon,klev), INTENT(IN) :: t_seri 63 64 ! 64 65 ! Output arguments: 65 66 ! 66 REAL, DIMENSION(klon), INTENT( out) :: ai ! POLDER aerosol index67 REAL, DIMENSION(klon,nwave,naero_tot), INTENT( out) :: tausum68 REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT( out) :: tau67 REAL, DIMENSION(klon), INTENT(OUT) :: ai ! POLDER aerosol index 68 REAL, DIMENSION(klon,nwave,naero_tot), INTENT(OUT) :: tausum 69 REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(OUT) :: tau 69 70 70 71 ! … … 83 84 INTEGER, PARAMETER :: la865 = 5 84 85 INTEGER, PARAMETER :: nbre_RH=12 85 INTEGER, PARAMETER :: naero_soluble=7 ! 1- BC soluble; 2- POM soluble; 3- SO4 acc. 86 ! 4- SO4 coarse; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc. 87 INTEGER, PARAMETER :: naero_insoluble=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble 86 INTEGER, PARAMETER :: naero_soluble=9 ! 1- BC soluble; 2- POM soluble; 3- SO4 coarse 87 ! 4- SO4 acc; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc. 88 ! 8- NO3 coarse; 9- NO3 accumulation 89 INTEGER, PARAMETER :: naero_insoluble=4 ! 1- Dust; 2- BC insoluble; 3- POM insoluble; 4- NO3 insoluble 88 90 89 91 REAL :: zrho … … 101 103 REAL :: zdh(klon,klev) 102 104 103 ! Soluble components 1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-coarse; 6 seasalt coarse; 7 seasalt acc.104 105 REAL :: alpha_aers_5wv(nbre_RH,las,naero_soluble) ! Ext. coeff. ** m2/g 105 ! Insoluble components 1- Dust: 2- BC; 3- POM106 106 REAL :: alpha_aeri_5wv(las,naero_insoluble) ! Ext. coeff. ** m2/g 107 107 … … 109 109 ! BC internal mixture 110 110 ! 111 INTEGER, PARAMETER :: nbclassbc = 5! Added by Rong Wang/OB for the 5 fractions112 ! of BC in the soluble mode:113 ! bc_content/0.001, 0.01, 0.02, 0.05, !0.1/111 INTEGER, PARAMETER :: nbclassbc = 6 ! Added by Rong Wang/OB for the 5 fractions 112 ! of BC in the soluble mode: 113 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1/ 114 114 ! for Maxwell-Garnet internal mixture 115 115 ! Detailed theory can be found in R. Wang Estimation of global black carbon ! direct … … 124 124 INTEGER :: n, classbc 125 125 126 ! From here on we look at the optical parameters at 5 wavelengths: 127 ! 443nm, 550, 670, 765 and 865 nm 128 ! le 12 AVRIL 2006 129 ! 130 DATA alpha_aers_5wv/ & 131 ! bc soluble 132 7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, & 133 7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, & 134 7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994, & 135 6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687, & 136 6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501, & 137 ! pom soluble 138 6.676,6.676,6.676,6.676,6.710,6.934,7.141,7.569,8.034,8.529,9.456,10.511, & 139 5.109,5.109,5.109,5.109,5.189,5.535,5.960,6.852,8.008,9.712,12.897,19.676, & 140 3.718,3.718,3.718,3.718,3.779,4.042,4.364,5.052,5.956,7.314,9.896,15.688, & 141 2.849,2.849,2.849,2.849,2.897,3.107,3.365,3.916,4.649,5.760,7.900,12.863, & 142 2.229,2.229,2.229,2.229,2.268,2.437,2.645,3.095,3.692,4.608,6.391,10.633, & 143 ! Sulfate (Accumulation) 144 5.751,6.215,6.690,7.024,7.599,8.195,9.156,10.355,12.660,14.823,18.908,24.508, & 145 4.320,4.675,5.052,5.375,5.787,6.274,7.066,8.083,10.088,12.003,15.697,21.133, & 146 3.079,3.351,3.639,3.886,4.205,4.584,5.206,6.019,7.648,9.234,12.391,17.220, & 147 2.336,2.552,2.781,2.979,3.236,3.540,4.046,4.711,6.056,7.388,10.093,14.313, & 148 1.777,1.949,2.134,2.292,2.503,2.751,3.166,3.712,4.828,5.949,8.264,11.922, & 149 ! Sulfate (Coarse) 150 5.751,6.215,6.690,7.024,7.599,8.195,9.156,10.355,12.660,14.823,18.908,24.508, & 151 4.320,4.675,5.052,5.375,5.787,6.274,7.066,8.083,10.088,12.003,15.697,21.133, & 152 3.079,3.351,3.639,3.886,4.205,4.584,5.206,6.019,7.648,9.234,12.391,17.220, & 153 2.336,2.552,2.781,2.979,3.236,3.540,4.046,4.711,6.056,7.388,10.093,14.313, & 154 1.777,1.949,2.134,2.292,2.503,2.751,3.166,3.712,4.828,5.949,8.264,11.922, & 155 ! seasalt seasalt Super Coarse Soluble (SS) 156 0.218, 0.272, 0.293, 0.316, 0.343, 0.380, 0.429, 0.501, 0.636, 0.755, 0.967, 1.495, & 157 0.221, 0.275, 0.297, 0.320, 0.348, 0.383, 0.432, 0.509, 0.640, 0.759, 0.972, 1.510, & 158 0.224, 0.279, 0.301, 0.324, 0.352, 0.388, 0.438, 0.514, 0.647, 0.768, 0.985, 1.514, & 159 0.227, 0.282, 0.303, 0.327, 0.356, 0.392, 0.441, 0.518, 0.652, 0.770, 0.987, 1.529, & 160 0.230, 0.285, 0.306, 0.330, 0.359, 0.396, 0.446, 0.522, 0.656, 0.777, 0.993, 1.539, & 161 ! seasalt seasalt Coarse Soluble (CS) 162 0.578, 0.706, 0.756, 0.809, 0.876, 0.964, 1.081, 1.256, 1.577, 1.858, 2.366, 3.613, & 163 0.598, 0.725, 0.779, 0.833, 0.898, 0.990, 1.109, 1.290, 1.609, 1.889, 2.398, 3.682, & 164 0.619, 0.750, 0.802, 0.857, 0.927, 1.022, 1.141, 1.328, 1.648, 1.939, 2.455, 3.729, & 165 0.633, 0.767, 0.820, 0.879, 0.948, 1.044, 1.167, 1.353, 1.683, 1.969, 2.491, 3.785, & 166 0.648, 0.785, 0.838, 0.896, 0.967, 1.066, 1.192, 1.381, 1.714, 2.006, 2.531, 3.836, & 167 ! seasalt seasalt Accumulation Soluble (AS) 168 4.432, 5.899, 6.505, 7.166, 7.964, 7.962, 9.232,11.257,14.979,18.337,24.223,37.811, & 169 3.298, 4.569, 5.110, 5.709, 6.446, 6.268, 7.396, 9.246,12.787,16.113,22.197,37.136, & 170 2.340, 3.358, 3.803, 4.303, 4.928, 4.696, 5.629, 7.198,10.308,13.342,19.120,34.296, & 171 1.789, 2.626, 2.999, 3.422, 3.955, 3.730, 4.519, 5.864, 8.593,11.319,16.653,31.331, & 172 1.359, 2.037, 2.343, 2.693, 3.139, 2.940, 3.596, 4.729, 7.076, 9.469,14.266,28.043 / 173 174 DATA alpha_aeri_5wv/ & 175 ! dust insoluble 176 0.759, 0.770, 0.775, 0.775, 0.772, & 177 !!jb bc insoluble 178 11.536,10.033, 8.422, 7.234, 6.270, & 179 ! pom insoluble 180 5.042, 3.101, 1.890, 1.294, 0.934/ 181 182 ! internal mixture 183 DATA alpha_MG_5wv/ & 184 ! bc content = 0.001 185 7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, & 186 7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, & 187 7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994, & 188 6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687, & 189 6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501, & 190 ! bc content = 0.01 191 7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, & 192 7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, & 193 7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994, & 194 6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687, & 195 6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501, & 196 ! bc content = 0.02 197 7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, & 198 7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, & 199 7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994, & 200 6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687, & 201 6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501, & 202 ! bc content = 0.05 203 7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, & 204 7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, & 205 7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994, & 206 6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687, & 207 6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501, & 208 ! bc content = 0.10 209 7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, & 210 7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, & 211 7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994, & 212 6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687, & 213 6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501 / 214 126 ! From here on we look at the optical parameters at 5 wavelengths: 443, 550, 670, 765 and 865 nm 127 128 DATA alpha_aers_5wv/ & 129 ! BC Accumulation Soluble (AS) 130 5.342, 5.342, 5.342, 5.342, 5.342, 5.829, 6.344, 7.470, 8.603, 8.736, 8.870,10.149, & 131 5.159, 5.159, 5.159, 5.159, 5.159, 5.608, 6.083, 7.121, 8.169, 8.293, 8.418, 9.612, & 132 4.849, 4.849, 4.849, 4.849, 4.849, 5.251, 5.674, 6.598, 7.533, 7.644, 7.756, 8.829, & 133 4.573, 4.573, 4.573, 4.573, 4.573, 4.936, 5.318, 6.152, 6.996, 7.096, 7.198, 8.171, & 134 4.274, 4.274, 4.274, 4.274, 4.274, 4.600, 4.942, 5.686, 6.441, 6.530, 6.621, 7.495, & 135 ! POM Accumulation Soluble (AS) 136 5.300, 5.300, 5.300, 5.300, 5.300, 5.827, 6.392, 7.640, 8.898, 9.046, 9.195,10.606, & 137 4.569, 4.569, 4.569, 4.569, 4.569, 5.029, 5.528, 6.649, 7.802, 7.939, 8.077, 9.400, & 138 3.768, 3.768, 3.768, 3.768, 3.768, 4.152, 4.573, 5.533, 6.538, 6.658, 6.780, 7.955, & 139 3.210, 3.210, 3.210, 3.210, 3.210, 3.542, 3.909, 4.752, 5.644, 5.751, 5.860, 6.916, & 140 2.709, 2.709, 2.709, 2.709, 2.709, 2.994, 3.309, 4.041, 4.823, 4.917, 5.013, 5.949, & 141 ! Sulfate Coarse Soluble (CS) 142 0.702, 0.702, 0.702, 0.702, 0.947, 1.025, 1.127, 1.266, 1.490, 1.675, 2.003, 2.857, & 143 0.725, 0.725, 0.725, 0.725, 0.977, 1.057, 1.163, 1.304, 1.529, 1.718, 2.051, 2.914, & 144 0.751, 0.751, 0.751, 0.751, 1.011, 1.093, 1.200, 1.345, 1.576, 1.768, 2.110, 2.973, & 145 0.769, 0.769, 0.769, 0.769, 1.034, 1.120, 1.227, 1.375, 1.613, 1.811, 2.153, 3.032, & 146 0.786, 0.786, 0.786, 0.786, 1.056, 1.144, 1.254, 1.406, 1.646, 1.850, 2.202, 3.088, & 147 !-- Sulfate Accumulation (BC content=0) 148 4.639, 4.639, 4.639, 4.639, 6.244, 6.878, 7.684, 8.805,10.638,12.174,14.880,21.828, & 149 3.966, 3.966, 3.966, 3.966, 5.359, 5.950, 6.707, 7.771, 9.540,11.046,13.742,20.884, & 150 3.234, 3.234, 3.234, 3.234, 4.393, 4.914, 5.587, 6.543, 8.160, 9.556,12.101,19.072, & 151 2.721, 2.721, 2.721, 2.721, 3.712, 4.175, 4.774, 5.634, 7.101, 8.383,10.747,17.381, & 152 2.262, 2.262, 2.262, 2.262, 3.102, 3.505, 4.030, 4.789, 6.097, 7.251, 9.403,15.581, & 153 ! Seasalt Super Coarse Soluble (SS) 154 0.194, 0.237, 0.254, 0.275, 0.299, 0.327, 0.366, 0.432, 0.544, 0.642, 0.824, 1.265, & 155 0.196, 0.240, 0.257, 0.278, 0.303, 0.331, 0.371, 0.437, 0.550, 0.648, 0.831, 1.274, & 156 0.198, 0.243, 0.260, 0.283, 0.306, 0.335, 0.376, 0.442, 0.557, 0.654, 0.839, 1.285, & 157 0.201, 0.246, 0.263, 0.286, 0.308, 0.338, 0.380, 0.445, 0.559, 0.660, 0.846, 1.289, & 158 0.203, 0.249, 0.266, 0.289, 0.312, 0.341, 0.384, 0.449, 0.564, 0.665, 0.852, 1.297, & 159 ! Seasalt Coarse Soluble (CS) 160 0.576, 0.690, 0.738, 0.789, 0.855, 0.935, 1.046, 1.212, 1.512, 1.785, 2.258, 3.449, & 161 0.595, 0.713, 0.763, 0.814, 0.880, 0.963, 1.079, 1.248, 1.550, 1.826, 2.306, 3.507, & 162 0.617, 0.738, 0.789, 0.842, 0.911, 0.996, 1.113, 1.286, 1.592, 1.871, 2.369, 3.562, & 163 0.632, 0.755, 0.808, 0.862, 0.931, 1.018, 1.140, 1.316, 1.626, 1.909, 2.409, 3.622, & 164 0.645, 0.771, 0.825, 0.880, 0.951, 1.039, 1.164, 1.344, 1.661, 1.948, 2.455, 3.682, & 165 ! Seasalt Accumulation Soluble (AS) 166 3.684, 4.367, 4.711, 5.074, 5.438, 6.046, 6.793, 7.964,10.200,12.246,15.959,24.642, & 167 3.126, 3.717, 4.023, 4.349, 4.673, 5.229, 5.918, 7.018, 9.179,11.208,14.994,24.184, & 168 2.482, 2.973, 3.233, 3.511, 3.788, 4.272, 4.876, 5.858, 7.836, 9.739,13.393,22.658, & 169 2.086, 2.509, 2.735, 2.979, 3.220, 3.649, 4.186, 5.068, 6.874, 8.642,12.099,21.146, & 170 1.737, 2.097, 2.292, 2.503, 2.711, 3.086, 3.556, 4.337, 5.960, 7.571,10.779,19.427, & 171 ! Nitrate Coarse Soluble (CS) 172 0.726, 0.726, 0.726, 0.796, 0.868, 0.947, 1.041, 1.246, 1.563, 1.872, 2.328, 2.447, & 173 0.753, 0.753, 0.753, 0.825, 0.900, 0.979, 1.075, 1.285, 1.610, 1.922, 2.385, 2.503, & 174 0.780, 0.780, 0.780, 0.854, 0.932, 1.013, 1.113, 1.326, 1.656, 1.979, 2.447, 2.579, & 175 0.797, 0.797, 0.797, 0.874, 0.953, 1.035, 1.138, 1.356, 1.697, 2.020, 2.495, 2.621, & 176 0.811, 0.811, 0.811, 0.890, 0.971, 1.055, 1.160, 1.384, 1.733, 2.062, 2.547, 2.675, & 177 ! Nitrate Accumulation Soluble (AS) 178 4.208, 4.208, 4.208, 4.693, 5.217, 5.778, 6.502, 8.108,10.722,13.327,17.185,18.210, & 179 3.386, 3.386, 3.386, 3.808, 4.268, 4.768, 5.420, 6.897, 9.377,11.923,15.803,16.852, & 180 2.650, 2.650, 2.650, 2.997, 3.380, 3.801, 4.357, 5.638, 7.850,10.189,13.858,14.870, & 181 2.174, 2.174, 2.174, 2.471, 2.802, 3.167, 3.652, 4.784, 6.774, 8.917,12.345,13.302, & 182 1.776, 1.776, 1.776, 2.028, 2.309, 2.622, 3.040, 4.026, 5.787, 7.717,10.858,11.745 / 183 184 DATA alpha_aeri_5wv/ & 185 ! Dust insoluble 186 0.788, 0.818, 0.842, 0.851, 0.853, & 187 ! BC insoluble 188 5.342, 5.159, 4.849, 4.573, 4.274, & 189 ! POM insoluble 190 5.300, 4.569, 3.768, 3.210, 2.709, & 191 ! Nitrate insoluble 192 0.726, 0.753, 0.780, 0.797, 0.811 / 193 194 ! Added by R. Wang (July 31 2016) 195 ! properties for BC assuming Maxwell-Garnett rule and internal mixture 196 197 DATA alpha_MG_5wv/ & 198 !--BC content=0.001 199 4.293, 4.293, 4.293, 4.293, 4.320, 4.342, 4.271, 4.320, 4.476, 4.772, 5.310, 7.434, & 200 4.687, 4.687, 4.687, 4.687, 4.693, 4.602, 4.492, 4.413, 4.374, 4.462, 4.729, 6.274, & 201 4.802, 4.802, 4.802, 4.802, 4.776, 4.646, 4.516, 4.371, 4.231, 4.173, 4.217, 5.072, & 202 4.716, 4.716, 4.716, 4.716, 4.668, 4.548, 4.408, 4.249, 4.047, 3.951, 3.850, 4.259, & 203 4.520, 4.520, 4.520, 4.520, 4.461, 4.353, 4.230, 4.069, 3.850, 3.707, 3.524, 3.565, & 204 !--BC content=0.010 205 4.298, 4.298, 4.298, 4.298, 4.343, 4.333, 4.283, 4.325, 4.472, 4.751, 5.298, 7.402, & 206 4.692, 4.692, 4.692, 4.692, 4.695, 4.598, 4.499, 4.410, 4.383, 4.454, 4.739, 6.260, & 207 4.796, 4.796, 4.796, 4.796, 4.768, 4.644, 4.518, 4.376, 4.230, 4.172, 4.225, 5.048, & 208 4.708, 4.708, 4.708, 4.708, 4.659, 4.543, 4.411, 4.256, 4.053, 3.945, 3.855, 4.242, & 209 4.509, 4.509, 4.509, 4.509, 4.456, 4.351, 4.229, 4.072, 3.852, 3.707, 3.531, 3.560, & 210 !--BC content=0.020 211 4.301, 4.301, 4.301, 4.301, 4.353, 4.330, 4.291, 4.326, 4.478, 4.738, 5.288, 7.393, & 212 4.688, 4.688, 4.688, 4.688, 4.695, 4.596, 4.500, 4.412, 4.386, 4.454, 4.737, 6.248, & 213 4.787, 4.787, 4.787, 4.787, 4.761, 4.641, 4.516, 4.378, 4.231, 4.176, 4.226, 5.041, & 214 4.696, 4.696, 4.696, 4.696, 4.651, 4.538, 4.409, 4.256, 4.055, 3.948, 3.858, 4.240, & 215 4.497, 4.497, 4.497, 4.497, 4.448, 4.345, 4.225, 4.072, 3.854, 3.709, 3.535, 3.561, & 216 !--BC content=0.050 217 4.318, 4.318, 4.318, 4.318, 4.377, 4.337, 4.310, 4.334, 4.488, 4.724, 5.267, 7.342, & 218 4.678, 4.678, 4.678, 4.678, 4.693, 4.595, 4.506, 4.421, 4.396, 4.458, 4.734, 6.203, & 219 4.760, 4.760, 4.760, 4.760, 4.742, 4.631, 4.512, 4.381, 4.237, 4.185, 4.229, 5.015, & 220 4.662, 4.662, 4.662, 4.662, 4.629, 4.522, 4.401, 4.254, 4.062, 3.955, 3.867, 4.229, & 221 4.461, 4.461, 4.461, 4.461, 4.424, 4.328, 4.215, 4.068, 3.858, 3.718, 3.545, 3.562, & 222 !--BC content=0.100 223 4.348, 4.348, 4.348, 4.348, 4.404, 4.361, 4.337, 4.358, 4.503, 4.717, 5.240, 7.239, & 224 4.662, 4.662, 4.662, 4.662, 4.685, 4.596, 4.513, 4.437, 4.411, 4.468, 4.729, 6.123, & 225 4.716, 4.716, 4.716, 4.716, 4.713, 4.613, 4.505, 4.384, 4.249, 4.199, 4.235, 4.974, & 226 4.607, 4.607, 4.607, 4.607, 4.593, 4.497, 4.387, 4.252, 4.072, 3.969, 3.882, 4.212, & 227 4.403, 4.403, 4.403, 4.403, 4.385, 4.299, 4.196, 4.061, 3.865, 3.731, 3.564, 3.563, & 228 !--BC content=0.200 229 4.401, 4.401, 4.401, 4.401, 4.447, 4.409, 4.389, 4.405, 4.529, 4.715, 5.183, 7.007, & 230 4.631, 4.631, 4.631, 4.631, 4.666, 4.594, 4.526, 4.463, 4.439, 4.488, 4.714, 5.958, & 231 4.633, 4.633, 4.633, 4.633, 4.654, 4.575, 4.488, 4.387, 4.271, 4.224, 4.250, 4.894, & 232 4.505, 4.505, 4.505, 4.505, 4.520, 4.444, 4.356, 4.243, 4.089, 3.997, 3.912, 4.179, & 233 4.295, 4.295, 4.295, 4.295, 4.307, 4.239, 4.157, 4.045, 3.876, 3.757, 3.602, 3.569 / 215 234 ! 216 235 ! Initialisations … … 252 271 aerosol_name(1) = id_CIDUSTM_phy 253 272 ELSEIF (flag_aerosol .EQ. 6) THEN 254 nb_aer = 1 0273 nb_aer = 13 255 274 ALLOCATE (aerosol_name(nb_aer)) 256 275 aerosol_name(1) = id_ASSO4M_phy … … 264 283 aerosol_name(9) = id_CIDUSTM_phy 265 284 aerosol_name(10)= id_CSSO4M_phy 285 aerosol_name(11)= id_CSNO3M_phy 286 aerosol_name(12)= id_ASNO3M_phy 287 aerosol_name(13)= id_CINO3M_phy 266 288 ENDIF 267 289 … … 315 337 soluble=.TRUE. 316 338 spsol=7 339 ELSEIF (aerosol_name(m).EQ.id_CSNO3M_phy) THEN 340 soluble=.TRUE. 341 spsol=8 342 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 343 ELSEIF (aerosol_name(m).EQ.id_ASNO3M_phy) THEN 344 soluble=.TRUE. 345 spsol=9 346 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 317 347 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN 318 348 soluble=.FALSE. … … 324 354 soluble=.FALSE. 325 355 spinsol=3 356 ELSEIF (aerosol_name(m).EQ.id_CINO3M_phy) THEN 357 soluble=.FALSE. 358 spinsol=4 359 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 326 360 ELSE 327 361 CYCLE … … 345 379 BC_massfra = m_allaer(i,k,id_ASBCM_phy)/(m_allaer(i,k,id_ASBCM_phy)+m_allaer(i,k,id_ASSO4M_phy)) 346 380 347 IF (BC_massfra.GE.0.10) THEN 381 IF (BC_massfra.GE.0.20) THEN 382 classbc = 6 383 ELSEIF (BC_massfra.GE.0.10) THEN 348 384 classbc = 5 349 385 ELSEIF (BC_massfra.GE.0.05) THEN -
LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90
r2669 r2787 11 11 USE aero_mod 12 12 USE phys_local_var_mod, only: absvisaer 13 USE YOMCST, ONLY: RG 13 14 14 15 ! Yves Balkanski le 12 avril 2006 … … 20 21 ! 21 22 IMPLICIT NONE 22 23 INCLUDE "YOMCST.h" 23 ! 24 24 INCLUDE "clesphys.h" 25 26 25 ! 27 26 ! Input arguments: 28 27 ! 29 REAL, DIMENSION(klon,klev), INTENT( in) :: pdel30 REAL, DIMENSION(klon,klev,naero_tot), INTENT( in) :: m_allaer31 REAL, DIMENSION(klon,klev,naero_tot), INTENT( in) :: m_allaer_pi32 REAL, DIMENSION(klon,klev), INTENT( in) :: RHcl ! humidite relative ciel clair33 INTEGER, INTENT( in) :: flag_aerosol34 LOGICAL, INTENT( in) :: flag_bc_internal_mixture35 REAL, DIMENSION(klon,klev), INTENT( in) :: zrho28 REAL, DIMENSION(klon,klev), INTENT(IN) :: pdel 29 REAL, DIMENSION(klon,klev,naero_tot), INTENT(IN) :: m_allaer 30 REAL, DIMENSION(klon,klev,naero_tot), INTENT(IN) :: m_allaer_pi 31 REAL, DIMENSION(klon,klev), INTENT(IN) :: RHcl ! humidite relative ciel clair 32 INTEGER, INTENT(IN) :: flag_aerosol 33 LOGICAL, INTENT(IN) :: flag_bc_internal_mixture 34 REAL, DIMENSION(klon,klev), INTENT(IN) :: zrho 36 35 ! 37 36 ! Output arguments: … … 39 38 ! 1= natural aerosols 40 39 ! 41 REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(out) :: tau_allaer ! epaisseur optique aerosol 42 REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(out) :: piz_allaer ! single scattering albedo aerosol 43 REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(out) :: cg_allaer ! asymmetry parameter aerosol 44 40 REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(OUT) :: tau_allaer ! epaisseur optique aerosol 41 REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(OUT) :: piz_allaer ! single scattering albedo aerosol 42 REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(OUT) :: cg_allaer ! asymmetry parameter aerosol 45 43 ! 46 44 ! Local 47 45 ! 48 LOGICAL :: 46 LOGICAL :: soluble 49 47 INTEGER :: i, k,n, inu, m 50 48 INTEGER :: spsol, spinsol … … 53 51 INTEGER, PARAMETER :: nb_level=19 ! number of vertical levels in DATA 54 52 55 INTEGER, PARAMETER :: naero_soluble=7 ! 1- BC soluble; 2- POM soluble; 3- SO4. acc. 4- SO4 coarse 56 ! 5- seasalt super coarse 6- seasalt coarse 7- seasalt acc. 57 INTEGER, PARAMETER :: naero_insoluble=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble 53 INTEGER, PARAMETER :: naero_soluble=9 ! 1- BC soluble; 2- POM soluble; 3- SO4. acc. 4- SO4 coarse 54 ! 5- seasalt super coarse 6- seasalt 55 ! coarse 7- seasalt acc. 56 ! 8- NO3 coarse 9- NO3 acc. 57 INTEGER, PARAMETER :: naero_insoluble=4 ! 1- Dust; 2- BC insoluble; 3- POM insoluble; 4- NO3 insoluble 58 58 59 59 INTEGER, PARAMETER :: nbre_RH=12 … … 67 67 REAL :: fac 68 68 REAL :: zdh(klon,klev) 69 INTEGER, ALLOCATABLE, DIMENSION(:) 69 INTEGER, ALLOCATABLE, DIMENSION(:) :: aerosol_name 70 70 INTEGER :: nb_aer 71 71 72 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: 73 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: 74 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: 75 76 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: 72 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: tau_ae 73 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: piz_ae 74 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: cg_ae 75 76 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: tau_ae_pi 77 77 REAL, DIMENSION(klon,klev,id_ASBCM_phy:id_ASBCM_phy,nbands_sw_rrtm) :: piz_ae_pi 78 78 REAL, DIMENSION(klon,klev,id_ASBCM_phy:id_ASBCM_phy,nbands_sw_rrtm) :: cg_ae_pi … … 80 80 ! Proprietes optiques 81 81 ! 82 REAL:: alpha_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unit m2/g SO483 REAL:: alpha_aeri_6bands(nbands_sw_rrtm,naero_insoluble) 84 REAL:: cg_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unit 85 REAL:: cg_aeri_6bands(nbands_sw_rrtm,naero_insoluble) 86 REAL:: piz_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !-- unit87 REAL:: piz_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !-- unit82 REAL:: alpha_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unit m2/g 83 REAL:: alpha_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !--unit m2/g 84 REAL:: cg_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unitless 85 REAL:: cg_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !--unitless 86 REAL:: piz_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unitless 87 REAL:: piz_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !--unitless 88 88 ! 89 89 ! BC internal mixture 90 90 ! 91 INTEGER, PARAMETER :: nbclassbc = 5! Added by Rong Wang/OB for the 5 fractions92 ! of BC in the soluble mode:93 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1/91 INTEGER, PARAMETER :: nbclassbc = 6 ! Added by Rong Wang/OB for the 5 fractions 92 ! of BC in the soluble mode: 93 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1, 0.2/ 94 94 ! for Maxwell-Garnet internal mixture 95 95 ! Detailed theory can be found in R. Wang Estimation of global black carbon direct … … 100 100 REAL :: piz_MG_6bands(nbre_RH,nbands_sw_rrtm,nbclassbc) 101 101 ! 102 INTEGER :: id, classbc, classbc_pi102 INTEGER :: aerindex, classbc, classbc_pi 103 103 REAL :: tmp_var, tmp_var_pi, BC_massfra, BC_massfra_pi 104 105 ! 106 REAL, PARAMETER :: tau_min = 1.e-15 107 ! REAL, PARAMETER :: tau_min = 1.e-7 104 CHARACTER*20 :: modname 105 ! 106 REAL, PARAMETER :: tau_min = 1.e-7 108 107 109 108 !*************************************************************************** … … 112 111 113 112 DATA alpha_aers_6bands/ & 114 ! bc soluble AS 115 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 116 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 117 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 118 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 119 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 120 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 121 ! pom soluble AS 122 6.443, 6.443, 6.443, 6.443, 6.443, 7.100, 7.809, 9.277,10.721,10.882,11.056,12.628, & 123 6.443, 6.443, 6.443, 6.443, 6.443, 7.100, 7.809, 9.277,10.721,10.882,11.056,12.628, & 124 4.381, 4.381, 4.381, 4.381, 4.381, 4.828, 5.310, 6.309, 7.290, 7.400, 7.518, 8.587, & 125 1.846, 1.846, 1.846, 1.846, 1.846, 2.034, 2.237, 2.658, 3.072, 3.118, 3.168, 3.618, & 126 0.377, 0.377, 0.377, 0.377, 0.377, 0.415, 0.456, 0.542, 0.627, 0.636, 0.646, 0.738, & 127 0.052, 0.052, 0.052, 0.052, 0.052, 0.057, 0.063, 0.075, 0.087, 0.088, 0.089, 0.102, & 128 ! sulfate AS 129 6.554, 6.554, 6.554, 7.223, 7.931, 8.665, 9.438,10.736,14.275,17.755,17.755,31.722, & 130 6.554, 6.554, 6.554, 7.223, 7.931, 8.665, 9.438,10.736,14.275,17.755,17.755,31.722, & 131 4.381, 4.381, 4.381, 4.828, 5.301, 5.792, 6.309, 7.176, 9.542,11.868,11.868,21.204, & 132 1.727, 1.727, 1.727, 1.903, 2.090, 2.283, 2.487, 2.829, 3.762, 4.679, 4.679, 8.359, & 133 0.312, 0.312, 0.312, 0.344, 0.378, 0.413, 0.450, 0.511, 0.680, 0.846, 0.846, 1.511, & 134 0.121, 0.121, 0.121, 0.134, 0.147, 0.161, 0.175, 0.199, 0.264, 0.329, 0.329, 0.588, & 135 ! sulfate coarse CS 136 0.693, 0.693, 0.693, 0.764, 0.839, 0.917, 0.999, 1.136, 1.510, 1.879, 1.879, 3.356, & 137 0.693, 0.693, 0.693, 0.764, 0.839, 0.917, 0.999, 1.136, 1.510, 1.879, 1.879, 3.356, & 138 0.715, 0.715, 0.715, 0.788, 0.865, 0.945, 1.029, 1.171, 1.557, 1.936, 1.936, 3.459, & 139 0.736, 0.736, 0.736, 0.811, 0.891, 0.973, 1.060, 1.206, 1.603, 1.994, 1.994, 3.563, & 140 0.711, 0.711, 0.711, 0.783, 0.860, 0.939, 1.023, 1.164, 1.548, 1.925, 1.925, 3.439, & 141 0.602, 0.602, 0.602, 0.664, 0.729, 0.796, 0.867, 0.986, 1.312, 1.631, 1.631, 2.915, & 142 ! seasalt seasalt Super Coarse Soluble (SS) 143 0.214, 0.267, 0.287, 0.310, 0.337, 0.373, 0.421, 0.494, 0.625, 0.742, 0.956, 1.480, & 144 0.217, 0.270, 0.291, 0.314, 0.341, 0.377, 0.426, 0.499, 0.632, 0.751, 0.963, 1.490, & 145 0.221, 0.275, 0.297, 0.320, 0.348, 0.384, 0.434, 0.507, 0.642, 0.762, 0.976, 1.506, & 146 0.230, 0.285, 0.308, 0.331, 0.359, 0.396, 0.447, 0.522, 0.658, 0.780, 0.997, 1.536, & 147 0.250, 0.307, 0.330, 0.354, 0.384, 0.424, 0.477, 0.556, 0.696, 0.822, 1.044, 1.592, & 148 0.279, 0.347, 0.373, 0.401, 0.434, 0.478, 0.537, 0.625, 0.781, 0.918, 1.158, 1.744, & 149 ! seasalt seasalt Coarse Soluble (CS) 150 0.550, 0.676, 0.724, 0.779, 0.841, 0.925, 1.040, 1.213, 1.523, 1.803, 2.306, 3.535, & 151 0.568, 0.695, 0.744, 0.798, 0.863, 0.950, 1.066, 1.240, 1.556, 1.839, 2.342, 3.588, & 152 0.599, 0.727, 0.779, 0.834, 0.901, 0.993, 1.111, 1.290, 1.612, 1.899, 2.411, 3.669, & 153 0.647, 0.786, 0.841, 0.899, 0.969, 1.069, 1.193, 1.384, 1.717, 2.015, 2.543, 3.842, & 154 0.663, 0.825, 0.889, 0.957, 1.038, 1.126, 1.268, 1.483, 1.862, 2.196, 2.780, 4.183, & 155 0.479, 0.644, 0.711, 0.785, 0.873, 0.904, 1.048, 1.275, 1.692, 2.072, 2.753, 4.430, & 156 ! seasalt seasalt Accumulation Soluble (AS) 157 6.128, 7.564, 8.127, 8.723, 9.421,10.014,11.250,13.113,16.320,19.061,23.675,34.158, & 158 5.080, 6.586, 7.197, 7.856, 8.645, 8.820,10.115,12.140,15.775,18.983,24.499,36.993, & 159 3.290, 4.541, 5.073, 5.663, 6.387, 6.227, 7.339, 9.161,12.645,15.918,21.908,36.673, & 160 1.389, 2.066, 2.371, 2.719, 3.161, 2.970, 3.623, 4.747, 7.064, 9.419,14.120,27.565, & 161 0.309, 0.497, 0.587, 0.693, 0.832, 0.777, 0.986, 1.364, 2.207, 3.136, 5.174,12.065, & 162 0.021, 0.037, 0.045, 0.054, 0.067, 0.065, 0.087, 0.129, 0.230, 0.353, 0.654, 1.885 / 113 ! BC Accumulation Soluble (AS) 114 5.276, 5.276, 5.276, 5.276, 5.276, 5.797, 6.353, 7.568, 8.779, 8.920, 9.062,10.403, & 115 5.371, 5.371, 5.371, 5.371, 5.371, 5.870, 6.401, 7.559, 8.720, 8.857, 8.994,10.298, & 116 5.126, 5.126, 5.126, 5.126, 5.126, 5.572, 6.043, 7.073, 8.113, 8.235, 8.359, 9.544, & 117 4.225, 4.225, 4.225, 4.225, 4.225, 4.549, 4.887, 5.624, 6.370, 6.459, 6.548, 7.412, & 118 2.667, 2.667, 2.667, 2.667, 2.667, 2.840, 3.015, 3.382, 3.745, 3.788, 3.832, 4.251, & 119 1.113, 1.113, 1.113, 1.113, 1.113, 1.210, 1.307, 1.506, 1.699, 1.721, 1.744, 1.961, & 120 ! POM Accumulation Soluble (AS) 121 5.962, 5.962, 5.962, 5.962, 5.962, 6.544, 7.153, 8.460, 9.732, 9.877,10.026,11.398, & 122 5.609, 5.609, 5.609, 5.609, 5.609, 6.163, 6.752, 8.041, 9.324, 9.473, 9.624,11.044, & 123 4.527, 4.527, 4.527, 4.527, 4.527, 4.982, 5.476, 6.586, 7.726, 7.861, 7.998, 9.306, & 124 2.697, 2.697, 2.697, 2.697, 2.697, 2.980, 3.293, 4.017, 4.790, 4.884, 4.979, 5.902, & 125 0.918, 0.918, 0.918, 0.918, 0.918, 1.025, 1.146, 1.435, 1.754, 1.794, 1.834, 2.232, & 126 0.105, 0.105, 0.105, 0.105, 0.105, 0.154, 0.211, 0.344, 0.491, 0.509, 0.528, 0.710, & 127 ! Sulfate Coarse Soluble (CS) 128 0.670, 0.670, 0.670, 0.670, 0.905, 0.981, 1.081, 1.217, 1.434, 1.615, 1.940, 2.773, & 129 0.689, 0.689, 0.689, 0.689, 0.930, 1.009, 1.110, 1.247, 1.469, 1.655, 1.980, 2.825, & 130 0.726, 0.726, 0.726, 0.726, 0.978, 1.060, 1.164, 1.306, 1.533, 1.723, 2.056, 2.915, & 131 0.785, 0.785, 0.785, 0.785, 1.056, 1.144, 1.254, 1.406, 1.650, 1.852, 2.203, 3.103, & 132 0.795, 0.795, 0.795, 0.795, 1.064, 1.160, 1.282, 1.449, 1.720, 1.945, 2.340, 3.348, & 133 0.502, 0.502, 0.502, 0.502, 0.656, 0.728, 0.820, 0.950, 1.170, 1.360, 1.706, 2.666, & 134 !-- Sulfate Accumulation (BC content=0) 135 5.246, 5.246, 5.246, 5.246, 7.041, 7.658, 8.437, 9.503,11.204,12.608,15.030,21.080, & 136 4.924, 4.924, 4.924, 4.924, 6.619, 7.258, 8.067, 9.186,10.998,12.507,15.142,21.822, & 137 3.925, 3.925, 3.925, 3.925, 5.304, 5.888, 6.635, 7.686, 9.433,10.921,13.587,20.659, & 138 2.248, 2.248, 2.248, 2.248, 3.079, 3.477, 3.993, 4.738, 6.022, 7.153, 9.261,15.301, & 139 0.720, 0.720, 0.720, 0.720, 1.014, 1.169, 1.374, 1.678, 2.225, 2.726, 3.703, 6.779, & 140 0.069, 0.069, 0.069, 0.069, 0.102, 0.121, 0.146, 0.185, 0.258, 0.328, 0.472, 0.974, & 141 ! Seasalt Super Coarse Soluble (SS) 142 0.189, 0.232, 0.249, 0.270, 0.293, 0.322, 0.361, 0.425, 0.536, 0.634, 0.813, 1.250, & 143 0.192, 0.235, 0.252, 0.274, 0.296, 0.325, 0.365, 0.429, 0.542, 0.639, 0.821, 1.259, & 144 0.196, 0.240, 0.257, 0.279, 0.302, 0.331, 0.371, 0.437, 0.550, 0.649, 0.832, 1.274, & 145 0.204, 0.249, 0.267, 0.289, 0.313, 0.342, 0.384, 0.450, 0.565, 0.666, 0.851, 1.300, & 146 0.222, 0.270, 0.289, 0.313, 0.338, 0.369, 0.413, 0.482, 0.602, 0.705, 0.896, 1.355, & 147 0.244, 0.293, 0.313, 0.338, 0.364, 0.397, 0.443, 0.517, 0.646, 0.757, 0.960, 1.443, & 148 ! Seasalt Coarse Soluble (CS) 149 0.547, 0.657, 0.705, 0.754, 0.817, 0.896, 1.008, 1.169, 1.456, 1.724, 2.199, 3.358, & 150 0.566, 0.679, 0.727, 0.776, 0.840, 0.920, 1.032, 1.196, 1.492, 1.760, 2.238, 3.416, & 151 0.596, 0.714, 0.764, 0.816, 0.882, 0.965, 1.081, 1.250, 1.552, 1.828, 2.310, 3.509, & 152 0.644, 0.771, 0.825, 0.880, 0.951, 1.040, 1.164, 1.345, 1.666, 1.957, 2.462, 3.700, & 153 0.640, 0.772, 0.829, 0.887, 0.965, 1.061, 1.198, 1.398, 1.758, 2.085, 2.658, 4.031, & 154 0.452, 0.562, 0.609, 0.659, 0.728, 0.813, 0.938, 1.125, 1.471, 1.797, 2.384, 3.855, & 155 ! Seasalt Accumulation Soluble (AS) 156 4.270, 5.032, 5.395, 5.772, 6.158, 6.768, 7.510, 8.634,10.695,12.512,15.740,23.122, & 157 3.952, 4.673, 5.030, 5.403, 5.781, 6.399, 7.156, 8.328,10.533,12.524,16.091,24.329, & 158 3.090, 3.676, 3.979, 4.301, 4.622, 5.172, 5.853, 6.941, 9.077,11.083,14.830,23.951, & 159 1.710, 2.069, 2.262, 2.471, 2.678, 3.048, 3.513, 4.285, 5.882, 7.467,10.618,19.102, & 160 0.529, 0.663, 0.737, 0.819, 0.901, 1.050, 1.244, 1.575, 2.301, 3.067, 4.704, 9.712, & 161 0.073, 0.142, 0.177, 0.215, 0.259, 0.328, 0.422, 0.579, 0.913, 1.263, 2.011, 4.358, & 162 ! Nitrate Coarse Soluble (CS) 163 0.688, 0.688, 0.688, 0.755, 0.826, 0.900, 0.994, 1.190, 1.501, 1.804, 2.251, 2.374, & 164 0.712, 0.712, 0.712, 0.781, 0.853, 0.929, 1.023, 1.225, 1.540, 1.846, 2.299, 2.421, & 165 0.754, 0.754, 0.754, 0.826, 0.902, 0.980, 1.077, 1.286, 1.612, 1.925, 2.388, 2.509, & 166 0.809, 0.809, 0.809, 0.887, 0.969, 1.053, 1.160, 1.384, 1.732, 2.069, 2.557, 2.685, & 167 0.786, 0.786, 0.786, 0.867, 0.952, 1.043, 1.157, 1.403, 1.793, 2.171, 2.725, 2.871, & 168 0.703, 0.703, 0.703, 0.767, 0.836, 0.909, 1.002, 1.210, 1.552, 1.901, 2.434, 2.579, & 169 ! Nitrate Accumulation Soluble (AS) 170 5.251, 5.251, 5.251, 5.779, 6.336, 6.920, 7.655, 9.230,11.678,14.026,17.391,18.279, & 171 4.643, 4.643, 4.643, 5.152, 5.696, 6.276, 7.016, 8.640,11.238,13.787,17.511,18.494, & 172 3.373, 3.373, 3.373, 3.790, 4.245, 4.739, 5.383, 6.842, 9.289,11.804,15.637,16.675, & 173 1.779, 1.779, 1.779, 2.029, 2.309, 2.619, 3.033, 4.008, 5.746, 7.645,10.730,11.601, & 174 0.549, 0.549, 0.549, 0.639, 0.742, 0.859, 1.019, 1.412, 2.157, 3.029, 4.552, 5.002, & 175 0.367, 0.367, 0.367, 0.416, 0.471, 0.532, 0.614, 0.808, 1.166, 1.575, 2.281, 2.489 / 176 177 DATA piz_aers_6bands/& 178 ! BC Accumulation Soluble (AS) 179 0.480, 0.480, 0.480, 0.480, 0.480, 0.487, 0.495, 0.513, 0.530, 0.532, 0.534, 0.553, & 180 0.469, 0.469, 0.469, 0.469, 0.469, 0.474, 0.480, 0.497, 0.514, 0.517, 0.519, 0.538, & 181 0.456, 0.456, 0.456, 0.456, 0.456, 0.464, 0.473, 0.495, 0.519, 0.522, 0.524, 0.550, & 182 0.427, 0.427, 0.427, 0.427, 0.427, 0.437, 0.448, 0.476, 0.505, 0.509, 0.512, 0.543, & 183 0.349, 0.349, 0.349, 0.349, 0.349, 0.358, 0.369, 0.396, 0.425, 0.429, 0.432, 0.465, & 184 0.196, 0.196, 0.196, 0.196, 0.196, 0.198, 0.202, 0.213, 0.226, 0.227, 0.229, 0.243, & 185 ! POM Accumulation Soluble (AS) 186 0.956, 0.956, 0.956, 0.956, 0.956, 0.961, 0.964, 0.970, 0.974, 0.975, 0.975, 0.978, & 187 0.965, 0.965, 0.965, 0.965, 0.965, 0.969, 0.972, 0.977, 0.980, 0.980, 0.981, 0.983, & 188 0.969, 0.969, 0.969, 0.969, 0.969, 0.972, 0.975, 0.979, 0.983, 0.983, 0.983, 0.986, & 189 0.953, 0.953, 0.953, 0.953, 0.953, 0.958, 0.962, 0.969, 0.974, 0.975, 0.975, 0.979, & 190 0.892, 0.892, 0.892, 0.892, 0.892, 0.902, 0.912, 0.928, 0.940, 0.942, 0.943, 0.952, & 191 0.826, 0.826, 0.826, 0.826, 0.826, 0.658, 0.568, 0.479, 0.444, 0.442, 0.439, 0.426, & 192 ! Sulfate Coarse Soluble (CS) 193 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 194 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 195 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 196 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 197 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 198 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 199 !-- Sulfate Accumulation (BC content=0) 200 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 201 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 202 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 203 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 204 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 205 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 206 ! Seasalt Super Coarse Soluble (SS) 207 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 208 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 209 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 210 0.999, 0.999, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 211 0.983, 0.985, 0.986, 0.987, 0.987, 0.988, 0.988, 0.989, 0.989, 0.989, 0.989, 0.989, & 212 0.957, 0.792, 0.765, 0.740, 0.721, 0.704, 0.687, 0.670, 0.652, 0.643, 0.631, 0.617, & 213 ! Seasalt Coarse Soluble (CS) 214 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.001, 1.000, & 215 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 216 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 217 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 218 0.994, 0.994, 0.995, 0.995, 0.995, 0.995, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, & 219 0.976, 0.867, 0.837, 0.814, 0.796, 0.774, 0.754, 0.735, 0.713, 0.702, 0.690, 0.675, & 220 ! Seasalt Accumulation Soluble (AS) 221 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 222 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 223 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 224 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 225 0.995, 0.996, 0.996, 0.996, 0.997, 0.997, 0.997, 0.998, 0.998, 0.998, 0.998, 0.999, & 226 0.919, 0.607, 0.553, 0.515, 0.480, 0.455, 0.434, 0.421, 0.421, 0.429, 0.449, 0.492, & 227 ! Nitrate Coarse Soluble (CS) 228 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 229 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 230 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 231 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 232 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.998, 0.998, 0.998, 0.998, 0.998, 0.998, & 233 0.707, 0.707, 0.707, 0.705, 0.702, 0.699, 0.697, 0.692, 0.686, 0.683, 0.679, 0.678, & 234 ! Nitrate Accumulation Soluble (AS) 235 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 236 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 237 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 238 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 239 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, & 240 0.362, 0.362, 0.362, 0.362, 0.363, 0.365, 0.367, 0.375, 0.390, 0.406, 0.428, 0.434 / 241 242 DATA cg_aers_6bands/ & 243 ! BC Accumulation Soluble (AS) 244 0.820, 0.820, 0.820, 0.820, 0.820, 0.831, 0.840, 0.852, 0.859, 0.860, 0.860, 0.864, & 245 0.760, 0.760, 0.760, 0.760, 0.760, 0.777, 0.791, 0.812, 0.826, 0.827, 0.828, 0.837, & 246 0.695, 0.695, 0.695, 0.695, 0.695, 0.716, 0.734, 0.762, 0.780, 0.782, 0.784, 0.797, & 247 0.603, 0.603, 0.603, 0.603, 0.603, 0.628, 0.649, 0.685, 0.710, 0.712, 0.715, 0.734, & 248 0.469, 0.469, 0.469, 0.469, 0.469, 0.494, 0.518, 0.559, 0.590, 0.593, 0.597, 0.622, & 249 0.276, 0.276, 0.276, 0.276, 0.276, 0.292, 0.308, 0.337, 0.361, 0.364, 0.367, 0.389, & 250 ! POM Accumulation Soluble (AS) 251 0.687, 0.687, 0.687, 0.687, 0.687, 0.700, 0.711, 0.729, 0.740, 0.741, 0.742, 0.750, & 252 0.685, 0.685, 0.685, 0.685, 0.685, 0.699, 0.712, 0.731, 0.744, 0.745, 0.747, 0.756, & 253 0.673, 0.673, 0.673, 0.673, 0.673, 0.689, 0.702, 0.724, 0.739, 0.741, 0.742, 0.754, & 254 0.637, 0.637, 0.637, 0.637, 0.637, 0.653, 0.667, 0.691, 0.709, 0.711, 0.712, 0.726, & 255 0.553, 0.553, 0.553, 0.553, 0.553, 0.568, 0.582, 0.607, 0.628, 0.630, 0.632, 0.649, & 256 0.340, 0.340, 0.340, 0.340, 0.340, 0.350, 0.361, 0.382, 0.400, 0.402, 0.404, 0.422, & 257 ! Sulfate Coarse Soluble (CS) 258 0.746, 0.746, 0.746, 0.746, 0.779, 0.785, 0.790, 0.796, 0.804, 0.810, 0.816, 0.830, & 259 0.730, 0.730, 0.730, 0.730, 0.764, 0.770, 0.775, 0.782, 0.791, 0.797, 0.806, 0.819, & 260 0.707, 0.707, 0.707, 0.707, 0.746, 0.752, 0.758, 0.765, 0.775, 0.781, 0.790, 0.805, & 261 0.691, 0.691, 0.691, 0.691, 0.736, 0.741, 0.747, 0.754, 0.763, 0.769, 0.778, 0.791, & 262 0.696, 0.696, 0.696, 0.696, 0.748, 0.753, 0.759, 0.767, 0.776, 0.781, 0.789, 0.800, & 263 0.711, 0.711, 0.711, 0.711, 0.766, 0.773, 0.782, 0.791, 0.803, 0.811, 0.822, 0.838, & 264 !-- Sulfate Accumulation (BC content=0) 265 0.674, 0.674, 0.674, 0.674, 0.724, 0.729, 0.735, 0.741, 0.749, 0.753, 0.760, 0.769, & 266 0.677, 0.677, 0.677, 0.677, 0.729, 0.734, 0.740, 0.747, 0.756, 0.761, 0.768, 0.777, & 267 0.671, 0.671, 0.671, 0.671, 0.723, 0.730, 0.737, 0.746, 0.757, 0.764, 0.773, 0.786, & 268 0.638, 0.638, 0.638, 0.638, 0.691, 0.700, 0.710, 0.721, 0.736, 0.746, 0.760, 0.781, & 269 0.553, 0.553, 0.553, 0.553, 0.604, 0.616, 0.629, 0.644, 0.665, 0.680, 0.700, 0.736, & 270 0.344, 0.344, 0.344, 0.344, 0.388, 0.401, 0.416, 0.435, 0.462, 0.482, 0.512, 0.571, & 271 ! Seasalt Super Coarse Soluble (SS) 272 0.795, 0.810, 0.814, 0.819, 0.824, 0.829, 0.832, 0.840, 0.846, 0.849, 0.854, 0.860, & 273 0.788, 0.804, 0.808, 0.813, 0.818, 0.823, 0.828, 0.834, 0.842, 0.847, 0.851, 0.858, & 274 0.775, 0.792, 0.797, 0.803, 0.808, 0.813, 0.820, 0.826, 0.835, 0.840, 0.846, 0.854, & 275 0.754, 0.773, 0.779, 0.785, 0.791, 0.796, 0.803, 0.811, 0.821, 0.827, 0.834, 0.844, & 276 0.735, 0.755, 0.761, 0.768, 0.774, 0.779, 0.786, 0.794, 0.804, 0.810, 0.817, 0.829, & 277 0.712, 0.782, 0.795, 0.808, 0.819, 0.829, 0.840, 0.852, 0.865, 0.873, 0.882, 0.895, & 278 ! Seasalt Coarse Soluble (CS) 279 0.754, 0.770, 0.776, 0.781, 0.784, 0.791, 0.797, 0.805, 0.815, 0.822, 0.828, 0.840, & 280 0.736, 0.753, 0.759, 0.765, 0.771, 0.778, 0.785, 0.793, 0.804, 0.811, 0.820, 0.831, & 281 0.716, 0.735, 0.742, 0.748, 0.754, 0.762, 0.769, 0.778, 0.789, 0.796, 0.807, 0.819, & 282 0.704, 0.725, 0.733, 0.739, 0.745, 0.752, 0.759, 0.768, 0.778, 0.784, 0.792, 0.803, & 283 0.716, 0.737, 0.744, 0.751, 0.756, 0.763, 0.770, 0.777, 0.786, 0.790, 0.795, 0.800, & 284 0.688, 0.730, 0.741, 0.751, 0.761, 0.771, 0.782, 0.795, 0.810, 0.820, 0.833, 0.849, & 285 ! Seasalt Accumulation Soluble (AS) 286 0.686, 0.711, 0.719, 0.726, 0.733, 0.740, 0.748, 0.755, 0.763, 0.767, 0.770, 0.774, & 287 0.690, 0.716, 0.724, 0.731, 0.739, 0.747, 0.756, 0.764, 0.774, 0.778, 0.782, 0.784, & 288 0.683, 0.710, 0.719, 0.727, 0.735, 0.744, 0.754, 0.765, 0.777, 0.784, 0.791, 0.797, & 289 0.649, 0.676, 0.686, 0.695, 0.704, 0.714, 0.726, 0.739, 0.757, 0.768, 0.781, 0.797, & 290 0.559, 0.586, 0.596, 0.606, 0.616, 0.629, 0.643, 0.661, 0.686, 0.703, 0.726, 0.758, & 291 0.341, 0.358, 0.366, 0.375, 0.382, 0.395, 0.408, 0.428, 0.459, 0.484, 0.520, 0.581, & 292 ! Nitrate Coarse Soluble (CS) 293 0.765, 0.765, 0.765, 0.773, 0.779, 0.785, 0.791, 0.803, 0.813, 0.819, 0.827, 0.828, & 294 0.754, 0.754, 0.754, 0.762, 0.769, 0.774, 0.781, 0.790, 0.802, 0.810, 0.817, 0.818, & 295 0.743, 0.743, 0.743, 0.751, 0.758, 0.763, 0.770, 0.779, 0.789, 0.797, 0.804, 0.806, & 296 0.737, 0.737, 0.737, 0.745, 0.752, 0.758, 0.764, 0.773, 0.781, 0.786, 0.792, 0.793, & 297 0.739, 0.739, 0.739, 0.749, 0.757, 0.763, 0.770, 0.779, 0.788, 0.793, 0.797, 0.798, & 298 0.651, 0.651, 0.651, 0.672, 0.690, 0.707, 0.724, 0.751, 0.779, 0.796, 0.813, 0.817, & 299 ! Nitrate Accumulation Soluble (AS) 300 0.713, 0.713, 0.713, 0.723, 0.732, 0.739, 0.746, 0.756, 0.765, 0.769, 0.772, 0.772, & 301 0.724, 0.724, 0.724, 0.734, 0.742, 0.750, 0.757, 0.767, 0.777, 0.782, 0.785, 0.785, & 302 0.719, 0.719, 0.719, 0.729, 0.738, 0.746, 0.754, 0.767, 0.780, 0.787, 0.793, 0.794, & 303 0.673, 0.673, 0.673, 0.685, 0.696, 0.706, 0.717, 0.734, 0.753, 0.766, 0.778, 0.781, & 304 0.565, 0.565, 0.565, 0.580, 0.593, 0.605, 0.619, 0.644, 0.673, 0.693, 0.716, 0.720, & 305 0.328, 0.328, 0.328, 0.338, 0.348, 0.359, 0.371, 0.396, 0.431, 0.459, 0.494, 0.502 / 163 306 164 307 DATA alpha_aeri_6bands/ & 165 ! dust insoluble CI 166 0.751, 0.751, 0.769, 0.772, 0.672, 0.437, & 167 ! bc insoluble AI 168 6.497, 6.497, 5.900, 4.284, 2.163, 0.966, & 169 ! pom insoluble AI 170 6.443, 6.443, 4.381, 1.846, 0.377, 0.052 / 171 172 DATA cg_aers_6bands/ & 173 ! bc soluble AS 174 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 175 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 176 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 177 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 178 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 179 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 180 ! pom soluble AS 181 0.687, 0.687, 0.687, 0.687, 0.687, 0.700, 0.710, 0.726, 0.736, 0.737, 0.738, 0.745, & 182 0.687, 0.687, 0.687, 0.687, 0.687, 0.700, 0.710, 0.726, 0.736, 0.737, 0.738, 0.745, & 183 0.658, 0.658, 0.658, 0.658, 0.658, 0.667, 0.674, 0.685, 0.692, 0.692, 0.693, 0.698, & 184 0.564, 0.564, 0.564, 0.564, 0.564, 0.566, 0.568, 0.571, 0.573, 0.573, 0.573, 0.574, & 185 0.363, 0.363, 0.363, 0.363, 0.363, 0.360, 0.357, 0.352, 0.350, 0.349, 0.349, 0.347, & 186 0.142, 0.142, 0.142, 0.142, 0.142, 0.139, 0.137, 0.133, 0.131, 0.131, 0.130, 0.129, & 187 ! sulfate AS 188 0.675, 0.675, 0.675, 0.689, 0.701, 0.711, 0.720, 0.735, 0.748, 0.756, 0.760, 0.771, & 189 0.675, 0.675, 0.675, 0.689, 0.701, 0.711, 0.720, 0.735, 0.748, 0.756, 0.760, 0.771, & 190 0.653, 0.653, 0.653, 0.662, 0.670, 0.676, 0.683, 0.692, 0.701, 0.706, 0.709, 0.716, & 191 0.563, 0.563, 0.563, 0.565, 0.567, 0.569, 0.570, 0.573, 0.575, 0.576, 0.577, 0.579, & 192 0.362, 0.362, 0.362, 0.359, 0.356, 0.354, 0.352, 0.348, 0.345, 0.343, 0.342, 0.340, & 193 0.137, 0.137, 0.137, 0.135, 0.133, 0.132, 0.130, 0.128, 0.126, 0.125, 0.124, 0.122, & 194 ! sulfate coarse CS 195 0.803, 0.803, 0.803, 0.792, 0.783, 0.776, 0.769, 0.758, 0.747, 0.742, 0.738, 0.730, & 196 0.803, 0.803, 0.803, 0.792, 0.783, 0.776, 0.769, 0.758, 0.747, 0.742, 0.738, 0.730, & 197 0.799, 0.799, 0.799, 0.787, 0.777, 0.768, 0.760, 0.747, 0.736, 0.729, 0.725, 0.716, & 198 0.797, 0.797, 0.797, 0.782, 0.770, 0.760, 0.750, 0.735, 0.722, 0.714, 0.709, 0.698, & 199 0.810, 0.810, 0.810, 0.794, 0.781, 0.770, 0.759, 0.743, 0.728, 0.719, 0.714, 0.702, & 200 0.803, 0.803, 0.803, 0.790, 0.779, 0.770, 0.762, 0.748, 0.736, 0.729, 0.725, 0.715, & 201 ! seasalt seasalt Super Coarse Soluble (SS) 202 0.797, 0.800, 0.801, 0.802, 0.804, 0.822, 0.825, 0.828, 0.832, 0.835, 0.838, 0.843, & 203 0.788, 0.792, 0.794, 0.795, 0.796, 0.815, 0.818, 0.822, 0.827, 0.829, 0.833, 0.838, & 204 0.773, 0.778, 0.780, 0.782, 0.783, 0.802, 0.806, 0.811, 0.817, 0.820, 0.825, 0.832, & 205 0.746, 0.753, 0.755, 0.759, 0.760, 0.781, 0.787, 0.792, 0.800, 0.805, 0.811, 0.820, & 206 0.706, 0.714, 0.716, 0.720, 0.722, 0.749, 0.753, 0.761, 0.769, 0.774, 0.783, 0.797, & 207 0.681, 0.682, 0.682, 0.683, 0.684, 0.723, 0.727, 0.732, 0.738, 0.741, 0.748, 0.757, & 208 ! seasalt seasalt Coarse Soluble (CS) 209 0.756, 0.761, 0.764, 0.766, 0.769, 0.790, 0.793, 0.799, 0.805, 0.810, 0.815, 0.823, & 210 0.736, 0.743, 0.747, 0.749, 0.751, 0.773, 0.778, 0.784, 0.793, 0.797, 0.804, 0.815, & 211 0.712, 0.719, 0.721, 0.725, 0.726, 0.752, 0.758, 0.764, 0.773, 0.779, 0.786, 0.800, & 212 0.690, 0.694, 0.695, 0.698, 0.699, 0.731, 0.738, 0.742, 0.751, 0.756, 0.764, 0.776, & 213 0.682, 0.683, 0.683, 0.683, 0.684, 0.725, 0.729, 0.733, 0.737, 0.740, 0.744, 0.752, & 214 0.669, 0.673, 0.674, 0.675, 0.676, 0.718, 0.724, 0.730, 0.736, 0.739, 0.742, 0.746, & 215 ! seasalt seasalt Accumulation Soluble (AS) 216 0.694, 0.692, 0.692, 0.691, 0.689, 0.737, 0.740, 0.742, 0.742, 0.740, 0.737, 0.731, & 217 0.685, 0.690, 0.691, 0.692, 0.692, 0.735, 0.741, 0.746, 0.750, 0.751, 0.750, 0.744, & 218 0.650, 0.662, 0.666, 0.670, 0.673, 0.710, 0.719, 0.729, 0.741, 0.747, 0.754, 0.757, & 219 0.561, 0.585, 0.593, 0.601, 0.609, 0.637, 0.651, 0.669, 0.691, 0.705, 0.723, 0.745, & 220 0.392, 0.427, 0.439, 0.451, 0.464, 0.480, 0.500, 0.526, 0.563, 0.588, 0.621, 0.671, & 221 0.144, 0.170, 0.179, 0.189, 0.201, 0.207, 0.224, 0.248, 0.285, 0.315, 0.359, 0.439 / 308 ! Dust insoluble 309 0.735, 0.765, 0.817, 0.846, 0.718, 0.414, & 310 ! BC insoluble 311 5.276, 5.371, 5.126, 4.225, 2.667, 1.113, & 312 ! POM insoluble 313 5.962, 5.609, 4.527, 2.697, 0.918, 0.105, & 314 ! Nitrate insoluble 315 0.688, 0.712, 0.754, 0.809, 0.786, 0.703 / 316 317 DATA piz_aeri_6bands/ & 318 ! Dust insoluble 319 0.894, 0.902, 0.937, 0.980, 0.993, 0.967, & 320 ! BC insoluble 321 0.820, 0.760, 0.695, 0.603, 0.469, 0.276, & 322 ! POM insoluble 323 0.687, 0.685, 0.673, 0.637, 0.553, 0.340, & 324 ! Nitrate insoluble 325 1.000, 1.000, 1.000, 1.000, 0.999, 0.707 / 222 326 223 327 DATA cg_aeri_6bands/ & 224 ! dust insoluble CI 225 0.718, 0.718, 0.699, 0.661, 0.676, 0.670, & 226 ! bc insoluble AI 227 0.721, 0.721, 0.643, 0.513, 0.321, 0.153, & 228 ! pom insoluble AI 229 0.687, 0.687, 0.658, 0.564, 0.363, 0.142 / 230 231 DATA piz_aers_6bands/& 232 ! bc soluble AS 233 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 234 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 235 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 236 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 237 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 238 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 239 ! pom soluble AS 240 0.973, 0.973, 0.973, 0.973, 0.973, 0.977, 0.980, 0.984, 0.987, 0.988, 0.988, 0.990, & 241 0.973, 0.973, 0.973, 0.973, 0.973, 0.977, 0.980, 0.984, 0.987, 0.988, 0.988, 0.990, & 242 0.972, 0.972, 0.972, 0.972, 0.972, 0.976, 0.979, 0.984, 0.987, 0.987, 0.988, 0.990, & 243 0.940, 0.940, 0.940, 0.940, 0.940, 0.948, 0.955, 0.965, 0.972, 0.973, 0.973, 0.978, & 244 0.816, 0.816, 0.816, 0.816, 0.816, 0.839, 0.859, 0.888, 0.908, 0.910, 0.911, 0.925, & 245 0.663, 0.663, 0.663, 0.663, 0.663, 0.607, 0.562, 0.492, 0.446, 0.441, 0.437, 0.404, & 246 ! sulfate AS 247 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 248 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 249 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 250 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 251 0.988, 0.988, 0.988, 0.989, 0.990, 0.990, 0.991, 0.992, 0.993, 0.993, 0.994, 0.994, & 252 0.256, 0.256, 0.256, 0.263, 0.268, 0.273, 0.277, 0.284, 0.290, 0.294, 0.296, 0.301, & 253 ! sulfate coarse CS 254 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 255 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 256 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 257 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 258 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, & 259 0.877, 0.877, 0.877, 0.873, 0.870, 0.867, 0.864, 0.860, 0.856, 0.854, 0.852, 0.849, & 260 ! seasalt seasalt Super Coarse Soluble (SS) 261 0.983, 0.982, 0.982, 0.982, 0.982, 0.992, 0.993, 0.994, 0.995, 0.996, 0.997, 0.998, & 262 0.984, 0.983, 0.983, 0.983, 0.983, 0.993, 0.994, 0.995, 0.996, 0.996, 0.997, 0.998, & 263 0.986, 0.985, 0.985, 0.985, 0.984, 0.993, 0.994, 0.995, 0.996, 0.997, 0.997, 0.998, & 264 0.989, 0.988, 0.988, 0.988, 0.987, 0.995, 0.996, 0.996, 0.997, 0.997, 0.998, 0.999, & 265 0.994, 0.993, 0.992, 0.992, 0.992, 0.997, 0.997, 0.998, 0.998, 0.998, 0.999, 0.999, & 266 0.997, 0.997, 0.997, 0.996, 0.996, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 1.000, & 267 ! seasalt seasalt Coarse Soluble (CS) 268 0.988, 0.987, 0.987, 0.987, 0.986, 0.995, 0.995, 0.996, 0.997, 0.997, 0.998, 0.999, & 269 0.990, 0.989, 0.989, 0.989, 0.989, 0.995, 0.996, 0.997, 0.997, 0.998, 0.998, 0.999, & 270 0.993, 0.992, 0.992, 0.992, 0.991, 0.997, 0.997, 0.997, 0.998, 0.998, 0.998, 0.999, & 271 0.996, 0.995, 0.995, 0.995, 0.994, 0.998, 0.998, 0.998, 0.999, 0.999, 0.999, 0.999, & 272 0.998, 0.997, 0.997, 0.997, 0.997, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 1.000, & 273 0.999, 0.998, 0.998, 0.998, 0.998, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, 1.000, & 274 ! seasalt seasalt Accumulation Soluble (AS) 275 0.999, 0.998, 0.998, 0.998, 0.998, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, 1.000, & 276 0.999, 0.999, 0.999, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 277 0.999, 0.999, 0.999, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 278 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 279 0.997, 0.998, 0.998, 0.998, 0.998, 0.999, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, & 280 0.985, 0.989, 0.990, 0.990, 0.991, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1.000 / 281 282 DATA piz_aeri_6bands/ & 283 ! dust insoluble CI 284 0.954, 0.954, 0.965, 0.981, 0.996, 0.990, & 285 ! bc insoluble AI 286 0.460, 0.460, 0.445, 0.394, 0.267, 0.121, & 287 ! pom insoluble AI 288 0.973, 0.973, 0.972, 0.940, 0.816, 0.663 / 328 ! Dust insoluble 329 0.756, 0.737, 0.713, 0.701, 0.696, 0.672, & 330 ! BC insoluble 331 0.480, 0.469, 0.456, 0.427, 0.349, 0.196, & 332 ! POM insoluble 333 0.956, 0.965, 0.969, 0.953, 0.892, 0.826, & 334 ! Nitrate insoluble 335 0.765, 0.754, 0.743, 0.737, 0.739, 0.651 / 289 336 290 337 ! Added by R. Wang (July 31 2016) 291 338 ! properties for BC assuming Maxwell-Garnett rule and internal mixture 292 339 293 DATA alpha_MG_6bands/ & 294 ! bc content = 0.001 295 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 296 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 297 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 298 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 299 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 300 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 301 ! bc content = 0.01 302 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 303 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 304 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 305 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 306 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 307 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 308 ! bc content = 0.02 309 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 310 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 311 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 312 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 313 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 314 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 315 ! bc content = 0.05 316 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 317 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 318 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 319 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 320 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 321 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 322 ! bc content = 0.10 323 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 324 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 325 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 326 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 327 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 328 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894 / 329 330 DATA cg_MG_6bands/ & 331 ! bc content = 0.001 332 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 333 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 334 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 335 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 336 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 337 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 338 ! bc content = 0.01 339 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 340 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 341 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 342 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 343 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 344 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 345 ! bc content = 0.02 346 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 347 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 348 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 349 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 350 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 351 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 352 ! bc content = 0.05 353 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 354 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 355 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 356 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 357 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 358 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 359 ! bc content = 0.10 360 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 361 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 362 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 363 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 364 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 365 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123 / 366 367 DATA piz_MG_6bands/ & 368 ! bc content = 0.001 369 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 370 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 371 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 372 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 373 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 374 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 375 ! bc content = 0.01 376 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 377 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 378 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 379 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 380 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 381 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 382 ! bc content = 0.02 383 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 384 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 385 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 386 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 387 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 388 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 389 ! bc content = 0.05 390 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 391 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 392 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 393 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 394 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 395 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 396 ! bc content = 0.10 397 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 398 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 399 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 400 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 401 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 402 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207 / 340 DATA alpha_MG_6bands/ & 341 !--BC content=0.001 342 3.546, 3.546, 3.546, 3.546, 3.640, 3.891, 3.883, 4.354, 4.967, 5.424, 6.412, 9.049, & 343 3.995, 3.995, 3.995, 3.995, 4.073, 4.091, 4.111, 4.209, 4.502, 4.878, 5.591, 8.029, & 344 4.650, 4.650, 4.650, 4.650, 4.661, 4.561, 4.472, 4.386, 4.373, 4.451, 4.726, 6.248, & 345 4.445, 4.445, 4.445, 4.445, 4.393, 4.291, 4.171, 4.017, 3.812, 3.682, 3.514, 3.593, & 346 2.837, 2.837, 2.837, 2.837, 2.824, 2.798, 2.760, 2.696, 2.579, 2.471, 2.265, 1.735, & 347 1.087, 1.087, 1.087, 1.087, 1.095, 1.101, 1.107, 1.110, 1.109, 1.101, 1.074, 0.944, & 348 !--BC content=0.010 349 3.550, 3.550, 3.550, 3.550, 3.623, 3.852, 4.006, 4.342, 4.945, 5.381, 6.394, 8.972, & 350 3.995, 3.995, 3.995, 3.995, 4.082, 4.094, 4.133, 4.235, 4.517, 4.871, 5.601, 8.001, & 351 4.653, 4.653, 4.653, 4.653, 4.662, 4.564, 4.475, 4.393, 4.376, 4.447, 4.736, 6.221, & 352 4.434, 4.434, 4.434, 4.434, 4.386, 4.286, 4.170, 4.021, 3.815, 3.680, 3.524, 3.583, & 353 2.831, 2.831, 2.831, 2.831, 2.820, 2.795, 2.757, 2.695, 2.579, 2.472, 2.270, 1.734, & 354 1.086, 1.086, 1.086, 1.086, 1.095, 1.101, 1.106, 1.110, 1.108, 1.101, 1.075, 0.944, & 355 !--BC content=0.020 356 3.549, 3.549, 3.549, 3.549, 3.630, 3.842, 4.016, 4.335, 4.928, 5.383, 6.369, 8.937, & 357 4.004, 4.004, 4.004, 4.004, 4.096, 4.100, 4.145, 4.243, 4.529, 4.870, 5.595, 7.973, & 358 4.650, 4.650, 4.650, 4.650, 4.662, 4.564, 4.478, 4.397, 4.379, 4.449, 4.734, 6.207, & 359 4.422, 4.422, 4.422, 4.422, 4.378, 4.280, 4.167, 4.020, 3.817, 3.683, 3.527, 3.583, & 360 2.824, 2.824, 2.824, 2.824, 2.815, 2.791, 2.754, 2.693, 2.579, 2.472, 2.272, 1.740, & 361 1.085, 1.085, 1.085, 1.085, 1.094, 1.100, 1.105, 1.109, 1.108, 1.100, 1.075, 0.945, & 362 !--BC content=0.050 363 3.563, 3.563, 3.563, 3.563, 3.662, 3.834, 4.019, 4.318, 4.889, 5.360, 6.305, 8.842, & 364 4.039, 4.039, 4.039, 4.039, 4.130, 4.126, 4.166, 4.261, 4.544, 4.863, 5.573, 7.895, & 365 4.641, 4.641, 4.641, 4.641, 4.659, 4.565, 4.483, 4.407, 4.389, 4.455, 4.731, 6.161, & 366 4.388, 4.388, 4.388, 4.388, 4.356, 4.264, 4.157, 4.017, 3.821, 3.691, 3.537, 3.582, & 367 2.805, 2.805, 2.805, 2.805, 2.801, 2.779, 2.744, 2.687, 2.577, 2.474, 2.279, 1.757, & 368 1.081, 1.081, 1.081, 1.081, 1.091, 1.098, 1.103, 1.107, 1.106, 1.099, 1.074, 0.949, & 369 !--BC content=0.100 370 3.607, 3.607, 3.607, 3.607, 3.701, 3.843, 4.021, 4.302, 4.841, 5.306, 6.214, 8.689, & 371 4.098, 4.098, 4.098, 4.098, 4.175, 4.168, 4.201, 4.291, 4.554, 4.854, 5.529, 7.763, & 372 4.627, 4.627, 4.627, 4.627, 4.651, 4.567, 4.490, 4.421, 4.403, 4.464, 4.723, 6.082, & 373 4.333, 4.333, 4.333, 4.333, 4.319, 4.236, 4.139, 4.011, 3.828, 3.704, 3.554, 3.580, & 374 2.773, 2.773, 2.773, 2.773, 2.778, 2.758, 2.727, 2.675, 2.573, 2.476, 2.291, 1.786, & 375 1.076, 1.076, 1.076, 1.076, 1.087, 1.094, 1.099, 1.103, 1.103, 1.097, 1.073, 0.954, & 376 !--BC content=0.200 377 3.702, 3.702, 3.702, 3.702, 3.768, 3.878, 4.030, 4.278, 4.757, 5.190, 6.032, 8.370, & 378 4.204, 4.204, 4.204, 4.204, 4.255, 4.246, 4.270, 4.345, 4.571, 4.837, 5.440, 7.494, & 379 4.598, 4.598, 4.598, 4.598, 4.633, 4.565, 4.502, 4.445, 4.428, 4.481, 4.706, 5.923, & 380 4.230, 4.230, 4.230, 4.230, 4.244, 4.179, 4.101, 3.996, 3.838, 3.728, 3.588, 3.581, & 381 2.710, 2.710, 2.710, 2.710, 2.730, 2.716, 2.693, 2.651, 2.564, 2.480, 2.314, 1.846, & 382 1.064, 1.064, 1.064, 1.064, 1.078, 1.085, 1.091, 1.096, 1.097, 1.091, 1.072, 0.965 / 383 384 DATA piz_MG_6bands/ & 385 !--BC content=0.001 386 -3.984, -3.984, -3.984, -3.984, -3.395, -3.075, -3.051, -2.567, -2.053, -1.807, -1.308, -0.592, & 387 -3.014, -3.014, -3.014, -3.014, -2.520, -2.473, -2.411, -2.294, -2.027, -1.771, -1.368, -0.613, & 388 -1.142, -1.142, -1.142, -1.142, -0.930, -0.961, -0.981, -1.001, -0.981, -0.934, -0.798, -0.337, & 389 -0.202, -0.202, -0.202, -0.202, -0.129, -0.154, -0.183, -0.224, -0.284, -0.326, -0.383, -0.347, & 390 0.133, 0.133, 0.133, 0.133, 0.158, 0.146, 0.131, 0.107, 0.061, 0.015, -0.081, -0.433, & 391 0.137, 0.137, 0.137, 0.137, 0.148, 0.149, 0.149, 0.147, 0.139, 0.128, 0.098, -0.048, & 392 !--BC content=0.010 393 -3.640, -3.640, -3.640, -3.640, -3.219, -2.942, -2.761, -2.445, -1.983, -1.731, -1.262, -0.576, & 394 -2.791, -2.791, -2.791, -2.791, -2.383, -2.352, -2.290, -2.180, -1.943, -1.707, -1.321, -0.595, & 395 -1.069, -1.069, -1.069, -1.069, -0.889, -0.920, -0.945, -0.966, -0.954, -0.910, -0.775, -0.333, & 396 -0.185, -0.185, -0.185, -0.185, -0.119, -0.144, -0.173, -0.213, -0.275, -0.318, -0.372, -0.346, & 397 0.138, 0.138, 0.138, 0.138, 0.160, 0.149, 0.134, 0.110, 0.063, 0.018, -0.076, -0.430, & 398 0.137, 0.137, 0.137, 0.137, 0.148, 0.149, 0.150, 0.148, 0.140, 0.129, 0.099, -0.046, & 399 !--BC content=0.020 400 -3.369, -3.369, -3.369, -3.369, -3.033, -2.799, -2.619, -2.339, -1.913, -1.657, -1.223, -0.558, & 401 -2.592, -2.592, -2.592, -2.592, -2.254, -2.239, -2.185, -2.091, -1.869, -1.652, -1.284, -0.580, & 402 -1.004, -1.004, -1.004, -1.004, -0.849, -0.882, -0.909, -0.932, -0.926, -0.885, -0.758, -0.326, & 403 -0.168, -0.168, -0.168, -0.168, -0.108, -0.133, -0.163, -0.203, -0.265, -0.309, -0.364, -0.341, & 404 0.142, 0.142, 0.142, 0.142, 0.163, 0.152, 0.137, 0.113, 0.066, 0.022, -0.072, -0.422, & 405 0.138, 0.138, 0.138, 0.138, 0.149, 0.150, 0.150, 0.148, 0.140, 0.129, 0.100, -0.044, & 406 !--BC content=0.050 407 -2.743, -2.743, -2.743, -2.743, -2.582, -2.438, -2.292, -2.078, -1.729, -1.495, -1.123, -0.512, & 408 -2.121, -2.121, -2.121, -2.121, -1.939, -1.951, -1.926, -1.865, -1.688, -1.511, -1.188, -0.541, & 409 -0.839, -0.839, -0.839, -0.839, -0.742, -0.780, -0.812, -0.842, -0.848, -0.818, -0.707, -0.307, & 410 -0.121, -0.121, -0.121, -0.121, -0.078, -0.103, -0.133, -0.174, -0.236, -0.281, -0.337, -0.325, & 411 0.154, 0.154, 0.154, 0.154, 0.171, 0.160, 0.145, 0.121, 0.075, 0.032, -0.060, -0.399, & 412 0.141, 0.141, 0.141, 0.141, 0.150, 0.151, 0.152, 0.150, 0.142, 0.131, 0.103, -0.038, & 413 !--BC content=0.100 414 -2.025, -2.025, -2.025, -2.025, -2.035, -1.965, -1.875, -1.731, -1.475, -1.285, -0.980, -0.447, & 415 -1.569, -1.569, -1.569, -1.569, -1.540, -1.572, -1.580, -1.557, -1.444, -1.312, -1.052, -0.485, & 416 -0.628, -0.628, -0.628, -0.628, -0.593, -0.634, -0.672, -0.710, -0.732, -0.716, -0.631, -0.279, & 417 -0.054, -0.054, -0.054, -0.054, -0.032, -0.058, -0.088, -0.129, -0.191, -0.236, -0.295, -0.299, & 418 0.173, 0.173, 0.173, 0.173, 0.184, 0.173, 0.158, 0.135, 0.090, 0.048, -0.039, -0.361, & 419 0.145, 0.145, 0.145, 0.145, 0.153, 0.154, 0.154, 0.152, 0.144, 0.134, 0.107, -0.027, & 420 !--BC content=0.200 421 -1.155, -1.155, -1.155, -1.155, -1.300, -1.295, -1.272, -1.213, -1.077, -0.957, -0.747, -0.336, & 422 -0.884, -0.884, -0.884, -0.884, -0.979, -1.028, -1.065, -1.086, -1.054, -0.986, -0.820, -0.388, & 423 -0.332, -0.332, -0.332, -0.332, -0.360, -0.402, -0.444, -0.490, -0.531, -0.536, -0.492, -0.225, & 424 0.050, 0.050, 0.050, 0.050, 0.048, 0.022, -0.007, -0.047, -0.107, -0.152, -0.213, -0.245, & 425 0.204, 0.204, 0.204, 0.204, 0.208, 0.197, 0.182, 0.161, 0.120, 0.081, 0.002, -0.285, & 426 0.153, 0.153, 0.153, 0.153, 0.159, 0.159, 0.159, 0.157, 0.150, 0.140, 0.115, -0.005 / 427 428 DATA cg_MG_6bands/ & 429 !--BC content=0.001 430 0.290, 0.290, 0.290, 0.290, 0.378, 0.381, 0.377, 0.378, 0.373, 0.344, 0.317, 0.118, & 431 0.374, 0.374, 0.374, 0.374, 0.469, 0.474, 0.480, 0.480, 0.475, 0.462, 0.438, 0.242, & 432 0.375, 0.375, 0.375, 0.375, 0.491, 0.502, 0.517, 0.527, 0.534, 0.529, 0.508, 0.255, & 433 0.242, 0.242, 0.242, 0.242, 0.455, 0.516, 0.577, 0.631, 0.687, 0.715, 0.748, 0.772, & 434 0.559, 0.559, 0.559, 0.559, 0.487, 0.461, 0.410, 0.303, -0.181, -3.594, 1.814, 1.164, & 435 0.323, 0.323, 0.323, 0.323, 0.339, 0.339, 0.337, 0.328, 0.295, 0.243, 0.045, 2.778, & 436 !--BC content=0.010 437 0.300, 0.300, 0.300, 0.300, 0.385, 0.389, 0.390, 0.386, 0.377, 0.353, 0.319, 0.116, & 438 0.384, 0.384, 0.384, 0.384, 0.478, 0.482, 0.488, 0.488, 0.483, 0.471, 0.442, 0.246, & 439 0.380, 0.380, 0.380, 0.380, 0.496, 0.507, 0.520, 0.531, 0.538, 0.534, 0.512, 0.259, & 440 0.233, 0.233, 0.233, 0.233, 0.454, 0.520, 0.581, 0.636, 0.691, 0.719, 0.752, 0.778, & 441 0.553, 0.553, 0.553, 0.553, 0.487, 0.461, 0.414, 0.308, -0.144, -2.858, 1.889, 1.165, & 442 0.323, 0.323, 0.323, 0.323, 0.338, 0.339, 0.337, 0.328, 0.295, 0.244, 0.051, 2.847, & 443 !--BC content=0.020 444 0.305, 0.305, 0.305, 0.305, 0.391, 0.394, 0.395, 0.390, 0.380, 0.358, 0.321, 0.112, & 445 0.391, 0.391, 0.391, 0.391, 0.484, 0.488, 0.493, 0.493, 0.488, 0.476, 0.445, 0.246, & 446 0.384, 0.384, 0.384, 0.384, 0.499, 0.511, 0.524, 0.534, 0.541, 0.537, 0.514, 0.260, & 447 0.219, 0.219, 0.219, 0.219, 0.451, 0.523, 0.586, 0.642, 0.696, 0.724, 0.756, 0.783, & 448 0.547, 0.547, 0.547, 0.547, 0.487, 0.461, 0.416, 0.315, -0.108, -2.308, 1.954, 1.170, & 449 0.322, 0.322, 0.322, 0.322, 0.338, 0.339, 0.337, 0.328, 0.296, 0.245, 0.056, 2.949, & 450 !--BC content=0.050 451 0.312, 0.312, 0.312, 0.312, 0.400, 0.402, 0.403, 0.398, 0.385, 0.364, 0.321, 0.094, & 452 0.402, 0.402, 0.402, 0.402, 0.495, 0.498, 0.503, 0.503, 0.496, 0.484, 0.451, 0.242, & 453 0.388, 0.388, 0.388, 0.388, 0.506, 0.518, 0.530, 0.541, 0.548, 0.544, 0.521, 0.259, & 454 0.152, 0.152, 0.152, 0.152, 0.434, 0.527, 0.599, 0.658, 0.711, 0.738, 0.768, 0.794, & 455 0.534, 0.534, 0.534, 0.534, 0.486, 0.463, 0.423, 0.332, -0.018, -1.355, 2.203, 1.188, & 456 0.321, 0.321, 0.321, 0.321, 0.337, 0.338, 0.336, 0.328, 0.297, 0.249, 0.071, 3.311, & 457 !--BC content=0.100 458 0.309, 0.309, 0.309, 0.309, 0.404, 0.405, 0.406, 0.401, 0.385, 0.364, 0.316, 0.057, & 459 0.406, 0.406, 0.406, 0.406, 0.503, 0.507, 0.511, 0.512, 0.504, 0.491, 0.456, 0.232, & 460 0.382, 0.382, 0.382, 0.382, 0.510, 0.523, 0.537, 0.548, 0.555, 0.551, 0.528, 0.255, & 461 -0.178, -0.178, -0.178, -0.178, 0.312, 0.524, 0.626, 0.692, 0.741, 0.765, 0.791, 0.816, & 462 0.519, 0.519, 0.519, 0.519, 0.486, 0.466, 0.432, 0.357, 0.091, -0.650, 2.968, 1.221, & 463 0.319, 0.319, 0.319, 0.319, 0.336, 0.337, 0.335, 0.328, 0.300, 0.255, 0.094, 4.314, & 464 !--BC content=0.200 465 0.267, 0.267, 0.267, 0.267, 0.388, 0.391, 0.392, 0.387, 0.370, 0.345, 0.287, -0.053, & 466 0.381, 0.381, 0.381, 0.381, 0.499, 0.506, 0.512, 0.514, 0.507, 0.494, 0.455, 0.198, & 467 0.318, 0.318, 0.318, 0.318, 0.494, 0.515, 0.535, 0.551, 0.561, 0.559, 0.535, 0.237, & 468 1.151, 1.151, 1.151, 1.151, 0.703, 0.643, 1.248, 0.874, 0.846, 0.846, 0.853, 0.868, & 469 0.502, 0.502, 0.502, 0.502, 0.486, 0.472, 0.447, 0.393, 0.226, -0.108,-43.753, 1.313, & 470 0.315, 0.315, 0.315, 0.315, 0.332, 0.334, 0.333, 0.327, 0.304, 0.266, 0.135, 21.079 / 403 471 404 472 !----BEGINNING OF CALCULATIONS 473 474 modname='aeropt_6bands_rrtm' 405 475 406 476 spsol = 0 … … 408 478 409 479 IF (NSW.NE.nbands_sw_rrtm) THEN 410 print *,'Erreur NSW doit etre egal a 6 pour cette routine' 411 stop 480 CALL abort_physic(modname,'Erreur NSW doit etre egal a 6 pour cette routine',1) 412 481 ENDIF 413 482 … … 440 509 aerosol_name(1) = id_CIDUSTM_phy 441 510 ELSEIF (flag_aerosol .EQ. 6) THEN 442 nb_aer = 1 0511 nb_aer = 13 443 512 ALLOCATE (aerosol_name(nb_aer)) 444 513 aerosol_name(1) = id_ASSO4M_phy … … 452 521 aerosol_name(9) = id_CIDUSTM_phy 453 522 aerosol_name(10)= id_CSSO4M_phy 523 aerosol_name(11)= id_CSNO3M_phy 524 aerosol_name(12)= id_ASNO3M_phy 525 aerosol_name(13)= id_CINO3M_phy 454 526 ENDIF 455 527 … … 491 563 soluble=.TRUE. 492 564 spsol=2 493 ELSEIF (aerosol_name(m).EQ.id_ ASSO4M_phy) THEN565 ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN 494 566 soluble=.TRUE. 495 567 spsol=3 496 568 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD 497 ELSEIF (aerosol_name(m).EQ.id_ CSSO4M_phy) THEN569 ELSEIF (aerosol_name(m).EQ.id_ASSO4M_phy) THEN 498 570 soluble=.TRUE. 499 571 spsol=4 … … 508 580 soluble=.TRUE. 509 581 spsol=7 582 ELSEIF (aerosol_name(m).EQ.id_CSNO3M_phy) THEN 583 soluble=.TRUE. 584 spsol=8 585 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 586 ELSEIF (aerosol_name(m).EQ.id_ASNO3M_phy) THEN 587 soluble=.TRUE. 588 spsol=9 589 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 510 590 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN 511 591 soluble=.FALSE. … … 517 597 soluble=.FALSE. 518 598 spinsol=3 599 ELSEIF (aerosol_name(m).EQ.id_CINO3M_phy) THEN 600 soluble=.FALSE. 601 spinsol=4 602 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 519 603 ELSE 520 604 CYCLE … … 522 606 523 607 !--shortname for aerosol index 524 id=aerosol_name(m)608 aerindex=aerosol_name(m) 525 609 526 610 IF (soluble) THEN … … 532 616 DO i=1, klon 533 617 534 tmp_var=m_allaer(i,k, spsol)/1.e6*zdh(i,k)*fac535 tmp_var_pi=m_allaer_pi(i,k, spsol)/1.e6*zdh(i,k)*fac618 tmp_var=m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*fac 619 tmp_var_pi=m_allaer_pi(i,k,aerindex)/1.e6*zdh(i,k)*fac 536 620 537 621 ! Calculate the dry BC/(BC+SUL) mass ratio for all (natural+anthropogenic) aerosols 538 622 BC_massfra = m_allaer(i,k,id_ASBCM_phy)/(m_allaer(i,k,id_ASBCM_phy)+m_allaer(i,k,id_ASSO4M_phy)) 539 623 540 IF (BC_massfra.GE.0.10) THEN 624 IF (BC_massfra.GE.0.20) THEN 625 classbc = 6 626 ELSEIF (BC_massfra.GE.0.10) THEN 541 627 classbc = 5 542 628 ELSEIF (BC_massfra.GE.0.05) THEN … … 553 639 BC_massfra_pi = m_allaer_pi(i,k,id_ASBCM_phy)/(m_allaer_pi(i,k,id_ASBCM_phy)+m_allaer_pi(i,k,id_ASSO4M_phy)) 554 640 555 IF (BC_massfra_pi.GE.0.10) THEN 641 IF (BC_massfra_pi.GE.0.20) THEN 642 classbc_pi = 6 643 ELSEIF (BC_massfra_pi.GE.0.10) THEN 556 644 classbc_pi = 5 557 645 ELSEIF (BC_massfra_pi.GE.0.05) THEN … … 565 653 ENDIF 566 654 567 DO inu=1, NSW655 DO inu=1, NSW 568 656 569 657 !--all aerosols … … 580 668 cg_MG_6bands(RH_num(i,k),inu,classbc)) 581 669 582 tau_ae(i,k, id,inu) = tmp_var*tau_ae2b_int583 piz_ae(i,k, id,inu) = piz_ae2b_int584 cg_ae(i,k, id,inu) = cg_ae2b_int670 tau_ae(i,k,aerindex,inu) = tmp_var*tau_ae2b_int 671 piz_ae(i,k,aerindex,inu) = piz_ae2b_int 672 cg_ae(i,k,aerindex,inu) = cg_ae2b_int 585 673 586 674 !--natural aerosols … … 597 685 cg_MG_6bands(RH_num(i,k),inu,classbc_pi)) 598 686 599 tau_ae_pi(i,k, id,inu) = tmp_var_pi* tau_ae2b_int600 piz_ae_pi(i,k, id,inu) = piz_ae2b_int601 cg_ae_pi(i,k, id,inu) = cg_ae2b_int687 tau_ae_pi(i,k,aerindex,inu) = tmp_var_pi* tau_ae2b_int 688 piz_ae_pi(i,k,aerindex,inu) = piz_ae2b_int 689 cg_ae_pi(i,k,aerindex,inu) = cg_ae2b_int 602 690 603 691 ENDDO … … 610 698 DO k=1, klev 611 699 DO i=1, klon 612 tmp_var=m_allaer(i,k, spsol)/1.e6*zdh(i,k)*fac613 tmp_var_pi=m_allaer_pi(i,k, spsol)/1.e6*zdh(i,k)*fac614 615 DO inu=1, NSW700 tmp_var=m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*fac 701 tmp_var_pi=m_allaer_pi(i,k,aerindex)/1.e6*zdh(i,k)*fac 702 703 DO inu=1, NSW 616 704 617 705 tau_ae2b_int= alpha_aers_6bands(RH_num(i,k),inu,spsol)+ & … … 627 715 cg_aers_6bands(RH_num(i,k),inu,spsol)) 628 716 629 tau_ae(i,k, id,inu) = tmp_var*tau_ae2b_int630 tau_ae_pi(i,k, id,inu) = tmp_var_pi* tau_ae2b_int631 piz_ae(i,k, id,inu) = piz_ae2b_int632 cg_ae(i,k, id,inu) = cg_ae2b_int717 tau_ae(i,k,aerindex,inu) = tmp_var*tau_ae2b_int 718 tau_ae_pi(i,k,aerindex,inu) = tmp_var_pi* tau_ae2b_int 719 piz_ae(i,k,aerindex,inu) = piz_ae2b_int 720 cg_ae(i,k,aerindex,inu) = cg_ae2b_int 633 721 634 722 ENDDO … … 638 726 !--external mixture case for soluble BC 639 727 IF (spsol.EQ.1) THEN 640 piz_ae_pi(:,:, id,:) = piz_ae(:,:,id,:)641 cg_ae_pi(:,:, id,:) = cg_ae(:,:,id,:)728 piz_ae_pi(:,:,aerindex,:) = piz_ae(:,:,aerindex,:) 729 cg_ae_pi(:,:,aerindex,:) = cg_ae(:,:,aerindex,:) 642 730 ENDIF 643 731 … … 648 736 DO k=1, klev 649 737 DO i=1, klon 650 tmp_var=m_allaer(i,k, naero_soluble+spinsol)/1.e6*zdh(i,k)*fac651 tmp_var_pi=m_allaer_pi(i,k, naero_soluble+spinsol)/1.e6*zdh(i,k)*fac652 653 DO inu=1, NSW738 tmp_var=m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*fac 739 tmp_var_pi=m_allaer_pi(i,k,aerindex)/1.e6*zdh(i,k)*fac 740 741 DO inu=1, NSW 654 742 tau_ae2b_int = alpha_aeri_6bands(inu,spinsol) 655 743 piz_ae2b_int = piz_aeri_6bands(inu,spinsol) 656 744 cg_ae2b_int = cg_aeri_6bands(inu,spinsol) 657 745 658 tau_ae(i,k, id,inu) = tmp_var*tau_ae2b_int659 tau_ae_pi(i,k, id,inu) = tmp_var_pi*tau_ae2b_int660 piz_ae(i,k, id,inu) = piz_ae2b_int661 cg_ae(i,k, id,inu)= cg_ae2b_int746 tau_ae(i,k,aerindex,inu) = tmp_var*tau_ae2b_int 747 tau_ae_pi(i,k,aerindex,inu) = tmp_var_pi*tau_ae2b_int 748 piz_ae(i,k,aerindex,inu) = piz_ae2b_int 749 cg_ae(i,k,aerindex,inu)= cg_ae2b_int 662 750 ENDDO 663 751 ENDDO -
LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_lw_rrtm.F90
r2542 r2787 2 2 ! aeropt_lw_rrtm.F90 2014-05-13 C. Kleinschmitt 3 3 ! 2016-05-03 O. Boucher 4 ! 2016-12-17 O. Boucher 4 5 ! 5 6 ! This routine feeds aerosol LW properties to RRTM 6 7 ! we only consider absorption (not scattering) 8 ! we only consider dust for now 7 9 8 SUBROUTINE AEROPT_LW_RRTM( aerosol_couple,paprs,tr_seri)10 SUBROUTINE AEROPT_LW_RRTM(ok_alw, pdel, zrho, flag_aerosol, m_allaer, m_allaer_pi) 9 11 10 12 USE dimphy 11 13 USE aero_mod 12 USE infotrac_phy13 USE phys_state_var_mod, ONLY : tau_aero_lw_rrtm14 USE YO ERAD, ONLY : NLW14 USE phys_state_var_mod, ONLY: tau_aero_lw_rrtm 15 USE YOERAD, ONLY: NLW 16 USE YOMCST, ONLY: RG 15 17 16 18 IMPLICIT NONE 17 19 18 INCLUDE "YOMCST.h"19 20 INCLUDE "clesphys.h" 20 21 ! 21 22 ! Input arguments: 22 23 ! 23 LOGICAL, INTENT(IN) :: aerosol_couple 24 REAL, DIMENSION(klon,klev+1), INTENT(in) :: paprs 25 REAL, DIMENSION(klon,klev,nbtr), INTENT(in) :: tr_seri 26 ! 27 REAL, DIMENSION(klon,klev) :: zdp, mass_temp 28 ! 24 LOGICAL, INTENT(IN) :: ok_alw 25 INTEGER, INTENT(IN) :: flag_aerosol 26 REAL, DIMENSION(klon,klev), INTENT(IN) :: pdel, zrho 27 REAL, DIMENSION(klon,klev,naero_tot), INTENT(IN) :: m_allaer, m_allaer_pi 29 28 ! 30 29 INTEGER inu, i, k 31 INTEGER :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM32 INTEGER :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M33 30 REAL :: zdh(klon,klev) 31 REAL :: tmp_var, tmp_var_pi 32 CHARACTER*20 modname 34 33 ! 35 34 !--absorption coefficient for CIDUST 36 35 REAL:: alpha_abs_CIDUST_16bands(nbands_lw_rrtm) !--unit m2/g 37 DATA alpha_abs_CIDUST_16bands / & 38 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 39 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 36 DATA alpha_abs_CIDUST_16bands / & 37 0.001, 0.003, 0.005, 0.006, 0.012, 0.030, 0.148, 0.098, & 38 0.017, 0.053, 0.031, 0.008, 0.010, 0.011, 0.013, 0.015 / 39 ! 40 modname='aeropt_lw_rrtm' 40 41 ! 41 42 IF (NLW.NE.nbands_lw_rrtm) THEN 42 print *,'Erreur NLW doit etre egal a 16 pour cette routine' 43 stop 43 CALL abort_physic(modname,'Erreur NLW doit etre egal a 16 pour cette routine',1) 44 44 ENDIF 45 45 ! 46 IF (aerosol_couple) THEN 47 ! 48 do i=1,nbtr 49 select case(trim(solsym(i))) 50 case ("ASBCM") 51 id_ASBCM = i 52 case ("ASPOMM") 53 id_ASPOMM = i 54 case ("ASSO4M") 55 id_ASSO4M = i 56 case ("ASMSAM") 57 id_ASMSAM = i 58 case ("CSSO4M") 59 id_CSSO4M = i 60 case ("CSMSAM") 61 id_CSMSAM = i 62 case ("SSSSM") 63 id_SSSSM = i 64 case ("CSSSM") 65 id_CSSSM = i 66 case ("ASSSM") 67 id_ASSSM = i 68 case ("CIDUSTM") 69 id_CIDUSTM = i 70 case ("AIBCM") 71 id_AIBCM = i 72 case ("AIPOMM") 73 id_AIPOMM = i 74 case ("ASNO3M") 75 id_ASNO3M = i 76 case ("CSNO3M") 77 id_CSNO3M = i 78 case ("CINO3M") 79 id_CINO3M = i 80 end select 81 enddo 46 IF (ok_alw) THEN !--aerosol LW effects 47 ! 48 IF (flag_aerosol.EQ.5.OR.flag_aerosol.EQ.6) THEN !-Dust 49 ! 50 zdh(:,:)=pdel(:,:)/(RG*zrho(:,:)) ! m 82 51 ! 83 52 DO k=1, klev 84 zdp(:,k) = (paprs(:,k)-paprs(:,k+1))/RG !--kg/m2 85 ENDDO 86 ! 87 !--for now only consider dust 88 mass_temp(:,:)=tr_seri(:,:,id_CIDUSTM) !--kg/kg 89 ! 90 DO inu=1,NLW 91 ! 92 !--total aerosol 93 tau_aero_lw_rrtm(:,:,2,inu) = mass_temp(:,:)*zdp(:,:)*1000.*alpha_abs_CIDUST_16bands(inu) 94 !--no aerosol at all 95 tau_aero_lw_rrtm(:,:,1,inu) = 0.0 53 DO i=1, klon 54 ! 55 tmp_var =m_allaer(i,k,id_CIDUSTM_phy) /1.e6*zdh(i,k) !--g/m2 56 tmp_var_pi=m_allaer_pi(i,k,id_CIDUSTM_phy)/1.e6*zdh(i,k) !--g/m2 57 ! 58 DO inu=1, NLW 59 ! 60 !--total aerosol 61 tau_aero_lw_rrtm(i,k,2,inu) = MAX(1.e-15,tmp_var*alpha_abs_CIDUST_16bands(inu)) 62 !--natural aerosol 63 ! tau_aero_lw_rrtm(:,:,1,inu) = MAX(1.e-15,tmp_var_pi*alpha_abs_CIDUST_16bands(inu)) 64 tau_aero_lw_rrtm(i,k,1,inu) = 1.e-15 !--test 65 ! 66 ENDDO 67 ENDDO 96 68 ! 97 69 ENDDO 70 ! 71 ENDIF 72 ! 73 ELSE !--no aerosol LW effects 98 74 ! 99 !--avoid very small values100 tau_aero_lw_rrtm = MAX(tau_aero_lw_rrtm,1.e-15)101 !102 ELSE !--not aerosol_couple103 !104 !--no LW effects if not coupled to INCA105 75 tau_aero_lw_rrtm = 1.e-15 106 76 ENDIF -
LMDZ5/branches/testing/libf/phylmd/rrtm/read_rsun_rrtm.F90
r2729 r2787 16 16 USE mod_phys_lmdz_para 17 17 18 USE YOESW 18 USE YOESW, ONLY : RSUN 19 19 20 20 IMPLICIT NONE … … 33 33 !$OMP THREADPRIVATE(TSI) 34 34 35 INTEGER, SAVE :: day_pre 35 INTEGER, SAVE :: day_pre=1 36 !$OMP THREADPRIVATE(day_pre) 36 37 37 38 !--only one processor reads -
LMDZ5/branches/testing/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90
r2720 r2787 1 1 ! $Id$ 2 2 ! 3 SUBROUTINE readaerosol_optic_rrtm(debut, aerosol_couple, &3 SUBROUTINE readaerosol_optic_rrtm(debut, aerosol_couple, ok_alw, & 4 4 new_aod, flag_aerosol, flag_bc_internal_mixture, itap, rjourvrai, & 5 5 pdtphys, pplay, paprs, t_seri, rhcl, presnivs, & … … 30 30 LOGICAL, INTENT(IN) :: debut 31 31 LOGICAL, INTENT(IN) :: aerosol_couple 32 LOGICAL, INTENT(IN) :: ok_alw 32 33 LOGICAL, INTENT(IN) :: new_aod 33 34 INTEGER, INTENT(IN) :: flag_aerosol … … 281 282 ! Calculate the total mass of all soluble aersosols 282 283 ! to be revisited for AR6 283 mass_solu_aero(:,:) = sulfacc(:,:) + bcsol(:,:) + pomsol(:,:) + nitracc(:,:)+ ssacu(:,:)284 mass_solu_aero_pi(:,:) = sulfacc_pi(:,:) + bcsol_pi(:,:) + pomsol_pi(:,:) + nitracc_pi(:,:) + ssacu_pi(:,:) 284 mass_solu_aero(:,:) = sulfacc(:,:) + bcsol(:,:) + pomsol(:,:) + nitracc(:,:) + ssacu(:,:) 285 mass_solu_aero_pi(:,:) = sulfacc_pi(:,:) + bcsol_pi(:,:) + pomsol_pi(:,:) + nitracc_pi(:,:) + ssacu_pi(:,:) 285 286 286 287 !**************************************************************************************** … … 310 311 pplay, t_seri, & 311 312 tausum_aero, tau3d_aero ) 313 314 !--call LW optical properties for tropospheric aerosols 315 CALL aeropt_lw_rrtm(ok_alw, pdel, zrho, flag_aerosol, m_allaer, m_allaer_pi) 312 316 313 317 ! Diagnostics calculation for CMIP5 protocol -
LMDZ5/branches/testing/libf/phylmd/rrtm/readaerosolstrato1_rrtm.F90
r2720 r2787 35 35 REAL, POINTER:: lev(:) 36 36 INTEGER k, band, wave, i 37 INTEGER, SAVE :: mth_pre 37 INTEGER, SAVE :: mth_pre=1 38 !$OMP THREADPRIVATE(mth_pre) 38 39 39 40 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: tau_aer_strat … … 44 45 REAL, ALLOCATABLE:: tauaerstrat_mois(:, :, :) 45 46 REAL, ALLOCATABLE:: tauaerstrat_mois_glo(:, :) 46 47 REAL, ALLOCATABLE:: sum_tau_aer_strat(:)48 47 49 48 ! For NetCDF: … … 77 76 78 77 IF (.not.ALLOCATED(tau_aer_strat)) ALLOCATE(tau_aer_strat(klon,klev)) 79 IF (.not.ALLOCATED(sum_tau_aer_strat)) ALLOCATE(sum_tau_aer_strat(klon))80 78 81 79 !--we only read monthly strat aerosol data -
LMDZ5/branches/testing/libf/phylmd/rrtm/readaerosolstrato2_rrtm.F90
r2729 r2787 41 41 REAL, POINTER:: wav(:) 42 42 INTEGER i,k,wave,band 43 INTEGER, SAVE :: mth_pre 43 INTEGER, SAVE :: mth_pre=1 44 !$OMP THREADPRIVATE(mth_pre) 44 45 45 46 REAL, ALLOCATABLE, DIMENSION(:,:,:), SAVE :: tau_aer_strat -
LMDZ5/branches/testing/libf/phylmd/stratosphere_mask.F90
-
Property
svn:keywords
set to
Id
r2720 r2787 1 ! 2 ! $Id$ 3 ! 1 4 SUBROUTINE stratosphere_mask(t_seri, pplay, xlat) 2 5 … … 31 34 USE phys_local_var_mod, ONLY: p_tropopause 32 35 #endif 36 USE print_control_mod, ONLY: lunout, prt_level 33 37 34 38 IMPLICIT NONE … … 98 102 #endif 99 103 100 IF (ifil.gt.0 ) THEN101 print *,'Tropopause: number of undetermined values =', ifil104 IF (ifil.gt.0 .and. prt_level >5) THEN 105 write(lunout,*)'Tropopause: number of undetermined values =', ifil 102 106 ENDIF 103 107 -
Property
svn:keywords
set to
-
LMDZ5/branches/testing/libf/phylmd/surf_landice_mod.F90
r2408 r2787 30 30 USE calcul_fluxs_mod 31 31 USE phys_output_var_mod 32 !FC 33 USE ioipsl_getin_p_mod, ONLY : getin_p 34 32 35 #ifdef CPP_SISVAT 33 36 USE surf_sisvat_mod, ONLY : surf_sisvat … … 121 124 CHARACTER (len = 80) :: abort_message 122 125 126 123 127 !albedo SB >>> 124 128 real,dimension(klon) :: alb1,alb2 … … 127 131 ! End definition 128 132 !**************************************************************************************** 133 !FC 134 !FC 135 REAL,SAVE :: alb_vis_sno_lic 136 !$OMP THREADPRIVATE(alb_vis_sno_lic) 137 REAL,SAVE :: alb_nir_sno_lic 138 !$OMP THREADPRIVATE(alb_nir_sno_lic) 139 LOGICAL, SAVE :: firstcall = .TRUE. 140 !$OMP THREADPRIVATE(firstcall) 141 !FC 142 143 144 IF (firstcall) THEN 145 alb_vis_sno_lic=0.77 146 CALL getin_p('alb_vis_sno_lic',alb_vis_sno_lic) 147 PRINT*, 'alb_vis_sno_lic',alb_vis_sno_lic 148 alb_nir_sno_lic=0.77 149 CALL getin_p('alb_nir_sno_lic',alb_nir_sno_lic) 150 PRINT*, 'alb_nir_sno_lic',alb_nir_sno_lic 151 firstcall=.false. 152 ENDIF 129 153 ! 130 154 ! Initialize output variables … … 280 304 281 305 ! Attantion: alb1 and alb2 are the same! 282 alb1(1:knon) = 0.77283 alb2(1:knon) = alb 1(1:knon)306 alb1(1:knon) = alb_vis_sno_lic 307 alb2(1:knon) = alb_nir_sno_lic 284 308 285 309 -
LMDZ5/branches/testing/libf/phylmd/tracinca_mod.F90
r2641 r2787 36 36 pdtphys, t_seri, paprs, pplay, & 37 37 pmfu, upwd, ftsol, pctsrf, pphis, & 38 pphi, albsol, sh, rh,&38 pphi, albsol, sh, ch, rh, & 39 39 cldfra, rneb, diafra, cldliq, & 40 40 itop_con, ibas_con, pmflxr, pmflxs, & … … 76 76 REAL,DIMENSION(klon,klev),INTENT(IN) :: t_seri ! Temperature 77 77 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique 78 REAL,DIMENSION(klon,klev),INTENT(IN) :: ch ! eau liquide 78 79 REAL,DIMENSION(klon,klev),INTENT(IN) :: rh ! humidite relative 79 80 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs ! pression pour chaque inter-couche (en Pa) … … 185 186 t_seri, & !tfld 186 187 sh, & !sh 188 ch, & !ql 187 189 rh, & !rh 188 190 nbp_lon, & !nx -
LMDZ5/branches/testing/libf/phylmd/wake.F90
r2720 r2787 2 2 ! $Id$ 3 3 4 SUBROUTINE wake( p, ph, pi, dtime, &4 SUBROUTINE wake(znatsurf, p, ph, pi, dtime, & 5 5 te0, qe0, omgb, & 6 6 dtdwn, dqdwn, amdwn, amup, dta, dqa, & … … 124 124 ! -------------------- 125 125 126 INTEGER, DIMENSION (klon), INTENT(IN) :: znatsurf 126 127 REAL, DIMENSION (klon, klev), INTENT(IN) :: p, pi 127 128 REAL, DIMENSION (klon, klev+1), INTENT(IN) :: ph … … 167 168 LOGICAL, SAVE :: first = .TRUE. 168 169 !$OMP THREADPRIVATE(first) 169 REAL, SAVE :: stark, wdens_ref, coefgw, alpk 170 !jyg< 171 !! REAL, SAVE :: stark, wdens_ref, coefgw, alpk 172 REAL, SAVE, DIMENSION(2) :: wdens_ref 173 REAL, SAVE :: stark, coefgw, alpk 174 !>jyg 170 175 REAL, SAVE :: crep_upper, crep_sol 171 176 !$OMP THREADPRIVATE(stark, wdens_ref, coefgw, alpk, crep_upper, crep_sol) 177 178 LOGICAL, SAVE :: flag_wk_check_trgl 179 !$OMP THREADPRIVATE(flag_wk_check_trgl) 172 180 173 181 REAL :: delta_t_min … … 200 208 REAL, DIMENSION (klon) :: z, dz, hw0 201 209 INTEGER, DIMENSION (klon) :: ktop, kupper 210 211 ! Variables liées au test de la forme triangulaire du profil de Delta_theta 212 REAL, DIMENSION (klon) :: sum_half_dth 213 REAL, DIMENSION (klon) :: dz_half 202 214 203 215 ! Sub-timestep tendencies and related variables … … 312 324 alpk=0.25 313 325 CALL getin_p('alpk',alpk) 314 wdens_ref=8.E-12 315 CALL getin_p('wdens_ref',wdens_ref) 326 !jyg< 327 !! wdens_ref=8.E-12 328 !! CALL getin_p('wdens_ref',wdens_ref) 329 wdens_ref(1)=8.E-12 330 wdens_ref(2)=8.E-12 331 CALL getin_p('wdens_ref_o',wdens_ref(1)) !wake number per unit area ; ocean 332 CALL getin_p('wdens_ref_l',wdens_ref(2)) !wake number per unit area ; land 333 !>jyg 316 334 coefgw=4. 317 335 CALL getin_p('coefgw',coefgw) … … 319 337 WRITE(*,*) 'stark=', stark 320 338 WRITE(*,*) 'alpk=', alpk 321 WRITE(*,*) 'wdens_ref=', wdens_ref 339 !jyg< 340 !! WRITE(*,*) 'wdens_ref=', wdens_ref 341 WRITE(*,*) 'wdens_ref_o=', wdens_ref(1) 342 WRITE(*,*) 'wdens_ref_l=', wdens_ref(2) 343 !>jyg 322 344 WRITE(*,*) 'coefgw=', coefgw 345 346 flag_wk_check_trgl=.false. 347 CALL getin_p('flag_wk_check_trgl ', flag_wk_check_trgl) 348 WRITE(*,*) 'flag_wk_check_trgl=', flag_wk_check_trgl 323 349 324 350 first=.false. … … 328 354 ! Les densites peuvent evoluer si les poches debordent 329 355 ! (voir au tout debut de la boucle sur les substeps) 330 wdens(:) = wdens_ref 356 !jyg< 357 !! wdens(:) = wdens_ref 358 DO i = 1,klon 359 wdens(i) = wdens_ref(znatsurf(i)+1) 360 ENDDO 361 !>jyg 331 362 332 363 ! print*,'stark',stark … … 824 855 825 856 IF (prt_level>=10) THEN 826 PRINT *, 'wake-4, sigmaw(igout), cstar(igout), wape(igout) ', &827 sigmaw(igout), cstar(igout), wape(igout) 857 PRINT *, 'wake-4, sigmaw(igout), cstar(igout), wape(igout), ktop(igout) ', & 858 sigmaw(igout), cstar(igout), wape(igout), ktop(igout) 828 859 ENDIF 829 860 … … 846 877 END DO 847 878 IF (prt_level>=10) THEN 848 PRINT *, 'wake-4.1, isubstep,wk_adv(igout),cstar(igout),wape(igout) ', &849 isubstep,wk_adv(igout),cstar(igout),wape(igout) 879 PRINT *, 'wake-4.1, isubstep,wk_adv(igout),cstar(igout),wape(igout), ptop(igout) ', & 880 isubstep,wk_adv(igout),cstar(igout),wape(igout), ptop(igout) 850 881 ENDIF 851 882 … … 962 993 IF (prt_level>=10) THEN 963 994 PRINT *, 'wake-4.2, omg(igout,k) ', (k,omg(igout,k), k=1,klev) 964 PRINT *, 'wake-4.2, omgtop(igout) ', omgtop(igout) 995 PRINT *, 'wake-4.2, omgtop(igout), ptop(igout), ktop(igout) ', & 996 omgtop(igout), ptop(igout), ktop(igout) 965 997 ENDIF 966 998 … … 1609 1641 1610 1642 IF (prt_level>=10) THEN 1611 PRINT *, 'wake-5, sigmaw(igout), cstar(igout), wape(igout) ', &1612 sigmaw(igout), cstar(igout), wape(igout) 1643 PRINT *, 'wake-5, sigmaw(igout), cstar(igout), wape(igout), ptop(igout) ', & 1644 sigmaw(igout), cstar(igout), wape(igout), ptop(igout) 1613 1645 ENDIF 1614 1646 … … 1632 1664 sum_thvu(i) = 0. 1633 1665 sum_dth(i) = 0. 1666 sum_half_dth(i) = 0. 1634 1667 sum_dq(i) = 0. 1635 1668 sum_rho(i) = 0. … … 1646 1679 av_dtdwn(i) = 0. 1647 1680 av_dqdwn(i) = 0. 1681 1682 dthmin(i) = -delta_t_min 1648 1683 END IF 1649 1684 END DO … … 1685 1720 z(i) = 1. 1686 1721 dz(i) = 1. 1722 dz_half(i) = 1. 1687 1723 sum_thvu(i) = thu(i, 1)*(1.+epsim1*qu(i,1))*dz(i) 1688 1724 sum_dth(i) = 0. … … 1696 1732 ! cc 1697 1733 dz(i) = -(amax1(ph(i,k+1),ptop(i))-ph(i,k))/(rho(i,k)*rg) 1734 dz_half(i) = -(amax1(ph(i,k+1),0.5*(ptop(i)+ph(i,1)))-ph(i,k))/(rho(i,k)*rg) 1698 1735 IF (dz(i)>0) THEN 1699 1736 z(i) = z(i) + dz(i) … … 1707 1744 sum_dtdwn(i) = sum_dtdwn(i) + dtdwn(i, k)*dz(i) 1708 1745 sum_dqdwn(i) = sum_dqdwn(i) + dqdwn(i, k)*dz(i) 1746 ! 1747 dthmin(i) = min(dthmin(i), dth(i,k)) 1748 END IF 1749 IF (dz_half(i)>0) THEN 1750 sum_half_dth(i) = sum_half_dth(i) + dth(i, k)*dz_half(i) 1709 1751 END IF 1710 1752 END IF … … 1750 1792 1751 1793 ! Filter out bad wakes 1794 1795 IF (flag_wk_check_trgl) THEN 1796 ! Check triangular shape of dth profile 1797 DO i = 1, klon 1798 IF (ok_qx_qw(i)) THEN 1799 !! print *,'wake, hw0(i), dthmin(i) ', hw0(i), dthmin(i) 1800 !! print *,'wake, 2.*sum_dth(i)/(hw0(i)*dthmin(i)) ', & 1801 !! 2.*sum_dth(i)/(hw0(i)*dthmin(i)) 1802 !! print *,'wake, sum_half_dth(i), sum_dth(i) ', & 1803 !! sum_half_dth(i), sum_dth(i) 1804 IF ((hw0(i) < 1.) .or. (dthmin(i) >= -delta_t_min) ) THEN 1805 wape2(i) = -1. 1806 !! print *,'wake, rej 1' 1807 ELSE IF (abs(2.*sum_dth(i)/(hw0(i)*dthmin(i)) - 1.) > 0.5) THEN 1808 wape2(i) = -1. 1809 !! print *,'wake, rej 2' 1810 ELSE IF (abs(sum_half_dth(i)) < 0.5*abs(sum_dth(i)) ) THEN 1811 wape2(i) = -1. 1812 !! print *,'wake, rej 3' 1813 END IF 1814 END IF 1815 END DO 1816 END IF 1817 1752 1818 1753 1819 DO k = 1, klev … … 1882 1948 1883 1949 ! cc nrlmd IF ( wk_adv(i) .AND. k .LE. kupper(i)) THEN 1884 IF (ok_qx_qw(i) .AND. k<=kupper(i)) THEN 1950 !jyg< 1951 !! IF (ok_qx_qw(i) .AND. k<=kupper(i)) THEN 1952 IF (ok_qx_qw(i)) THEN 1953 !>jyg 1885 1954 ! cc 1886 1955 dtls(i, k) = dtls(i, k)/dtime -
LMDZ5/branches/testing/makelmdz
r2720 r2787 32 32 full="" 33 33 34 arch_defined="FALSE" 35 arch_path="arch" 36 arch_default_path="arch" 37 34 38 # guess a default 'arch' 35 39 arch="local" # start with assuming we're on a local machine with local arch file 40 arch_defined="TRUE" # and thus also set arch_defined to true 36 41 ## try to recognise machine and infer arch from it 37 42 machine=`hostname` … … 127 132 [-fcm_path path] : path to the fcm tool (default: tools/fcm/bin) 128 133 [-ext_src path] : path to an additional set of routines to compile with the model 134 [-arch_path path] : path to architecture files (default: $arch_default_path) 129 135 -arch nom_arch : target architecture 130 136 exec : executable to build … … 204 210 205 211 "-arch") 206 arch=$2 ; shift ; shift ;; 212 arch=$2 ; arch_defined="TRUE" ; shift ; shift ;; 213 214 "-arch_path") 215 arch_path=$2 ; arch_path_defined="TRUE"; shift ; shift ;; 207 216 208 217 *) … … 218 227 rm -rf .void_dir 219 228 mkdir .void_dir 220 rm -f arch.path 221 if [[ -r arch/arch-${arch}.path ]] 222 then 223 ln -s arch/arch-${arch}.path ./arch.path 229 230 if [[ "$arch_defined" == "TRUE" ]] 231 then 232 rm -f arch.path 233 rm -f arch.fcm 234 rm -f arch.env 235 236 if test -f $arch_path/arch-${arch}.path 237 then 238 ln -s $arch_path/arch-${arch}.path arch.path 239 elif test -f $arch_default_path/arch-${arch}.path 240 then 241 ln -s $arch_default_path/arch-${arch}.path arch.path 242 fi 243 244 if test -f $arch_path/arch-${arch}.fcm 245 then 246 ln -s $arch_path/arch-${arch}.fcm arch.fcm 247 elif test -f $arch_default_path/arch-${arch}.fcm 248 then 249 ln -s $arch_default_path/arch-${arch}.fcm arch.fcm 250 fi 251 252 if test -f $arch_path/arch-${arch}.env 253 then 254 ln -s $arch_path/arch-${arch}.env arch.env 255 elif test -f $arch_default_path/arch-${arch}.env 256 then 257 ln -s $arch_default_path/arch-${arch}.env arch.env 258 else 259 ln -s .void_file arch.env 260 fi 261 # source architecture PATH and ENV files 262 source arch.env 224 263 source arch.path 225 264 else 226 echo "Error: missing arch/arch-${arch}.path file !" 227 exit 228 fi 229 rm -f arch.fcm 230 if [[ -r arch/arch-${arch}.fcm ]] 231 then 232 ln -s arch/arch-${arch}.fcm arch.fcm 233 else 234 echo "Error: missing arch/arch-${arch}.fcm file !" 235 exit 236 fi 265 echo "You must define a target architecture" 266 exit 1 267 fi 268 237 269 ######################################################################## 238 270 # Definition des clefs CPP, des chemins des includes et modules -
LMDZ5/branches/testing/makelmdz_fcm
r2720 r2787 37 37 full='' 38 38 libphy=false 39 40 arch_defined="FALSE" 41 arch_path="arch" 42 arch_default_path="arch" 39 43 40 44 LMDGCM=`/bin/pwd` … … 107 111 [-fcm_path path] : path to the fcm tool (default: tools/fcm/bin) 108 112 [-ext_src path] : path to an additional set of routines to compile with the model 113 [-arch_path path] : path to architecture files (default: $arch_default_path) 109 114 -arch nom_arch : target architecture 110 115 exec : executable to build … … 196 201 197 202 "-arch") 198 arch=$2 ; shift ; shift ;; 203 arch=$2 ; arch_defined="TRUE" ; shift ; shift ;; 204 205 "-arch_path") 206 arch_path=$2 ; arch_path_defined="TRUE"; shift ; shift ;; 199 207 200 208 *) … … 226 234 rm -rf .void_dir 227 235 mkdir .void_dir 228 rm -f arch.path 229 ln -s arch/arch-${arch}.path ./arch.path 230 source arch.path 236 237 if [[ "$arch_defined" == "TRUE" ]] 238 then 239 rm -f arch.path 240 rm -f arch.fcm 241 rm -f arch.env 242 243 if test -f $arch_path/arch-${arch}.path 244 then 245 ln -s $arch_path/arch-${arch}.path arch.path 246 elif test -f $arch_default_path/arch-${arch}.path 247 then 248 ln -s $arch_default_path/arch-${arch}.path arch.path 249 fi 250 251 if test -f $arch_path/arch-${arch}.fcm 252 then 253 ln -s $arch_path/arch-${arch}.fcm arch.fcm 254 elif test -f $arch_default_path/arch-${arch}.fcm 255 then 256 ln -s $arch_default_path/arch-${arch}.fcm arch.fcm 257 fi 258 259 if test -f $arch_path/arch-${arch}.env 260 then 261 ln -s $arch_path/arch-${arch}.env arch.env 262 elif test -f $arch_default_path/arch-${arch}.env 263 then 264 ln -s $arch_default_path/arch-${arch}.env arch.env 265 else 266 ln -s .void_file arch.env 267 fi 268 # source architecture PATH and ENV files 269 source arch.env 270 source arch.path 271 else 272 echo "You must define a target architecture" 273 exit 1 274 fi 231 275 232 276 ########################################################################
Note: See TracChangeset
for help on using the changeset viewer.