Changeset 2787


Ignore:
Timestamp:
Jan 30, 2017, 5:54:45 PM (8 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2727:2785 into testing branch

Location:
LMDZ5/branches/testing
Files:
1 deleted
61 edited
7 copied

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/DefLists/context_lmdz.xml

    r2720 r2787  
    2121<!--  <file_definition src="./file_def_histdayCOSP_lmdz.xml"/> -->
    2222<!--  <file_definition src="./file_def_histhfCOSP_lmdz.xml"/> -->
     23  <file_definition src="./file_def_histstrataer_lmdz.xml"/>
    2324 
    2425  <!-- Define domains and groups of domains -->
  • LMDZ5/branches/testing/DefLists/field_def_lmdz.xml

    r2729 r2787  
    315315        <field id="toplwad"    long_name="LW-ADE at TOA" unit="W/m2" />
    316316        <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" />
    317318        <field id="sollwad"    long_name="LW-ADE at SRF" unit="W/m2" />
    318319        <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" />
    319321        <field id="OD550_ASBCM"    long_name="Aerosol Optical depth at 550 nm "    unit="1" />
    320322        <field id="OD550_ASPOMM"    long_name="Aerosol Optical depth at 550 nm "    unit="1" />
     
    618620
    619621    <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="-" />
    633635    </field_group>
    634636
     
    636638        <field id="OD550_strat_only"   long_name="Stratospheric Aerosol Optical depth at 550 nm "        unit="1" />
    637639        <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" />
    640640        <field id="surf_PM25_sulf"     long_name="Sulfate PM2.5 concentration at the surface"            unit="ug/m3" />
    641641        <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" />
    643654    </field_group>
    644655   
     
    926937    </field_group>
    927938
    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">
    929940      <field id="R_ecc" long_name="R_ecc" unit="-" />
    930941      <field id="R_peri" long_name="R_peri" unit="-" />
  • LMDZ5/branches/testing/DefLists/file_def_histday_lmdz.xml

    r2720 r2787  
    321321                <field field_ref="solswad0" level="10" />
    322322                <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" />
    323329                <field field_ref="OD550_ASBCM" level="6" />
    324330                <field field_ref="OD550_ASPOMM" level="6" />
  • LMDZ5/branches/testing/DefLists/file_def_histmthCOSP_lmdz.xml

    r2720 r2787  
    11<file_definition>
    22     <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_">
    44
    55            <!-- VARS Calipso and PARASOL -->
  • LMDZ5/branches/testing/DefLists/file_def_histmth_lmdz.xml

    r2720 r2787  
    1010<!--            </field_group>  -->
    1111
    12             <field_group operation="instant" freq_op="30d">
     12            <field_group operation="instant">
    1313                <field field_ref="R_ecc" level="1" name="R_ecc" />
    1414                <field field_ref="R_peri" level="1" name="R_peri" />
     
    4343                <field field_ref="tsol"         level="1" />
    4444                <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>
    4747                <field field_ref="t2m_ter" level="10" />
    4848                <field field_ref="t2m_lic" level="10" />
     
    341341                <field field_ref="solswad0" level="5" />
    342342                <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" />
    343349                <field field_ref="OD550_ASBCM" level="2" />
    344350                <field field_ref="OD550_ASPOMM" level="2" />
     
    600606            </field_group>
    601607
    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 
    607608        </file>
    608609
  • LMDZ5/branches/testing/arch/arch-X64_ADA.fcm

    r2471 r2787  
    88%PROD_FFLAGS         -O2 -ip -fp-model strict -axAVX,SSE4.2
    99%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
    1111#%DEBUG_FFLAGS        -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -debug
    1212%MPI_FFLAGS
  • LMDZ5/branches/testing/bld.cfg

    r2720 r2787  
    108108bld::outfile_ext::mod .mod
    109109bld::tool::SHELL   /bin/bash
    110 bld::tool::SHELL   /bin/ksh
    111 bld::tool::SHELL   /bin/ksh
  • LMDZ5/branches/testing/libf/dyn3d/guide_mod.F90

    r2641 r2787  
    3838
    3939  REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE     :: alpha_u,alpha_v
    40   REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE     :: alpha_T,alpha_Q
     40  REAL, ALLOCATABLE, DIMENSION(:, :), PRIVATE, SAVE     :: alpha_T,alpha_Q
    4141  REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE     :: alpha_P,alpha_pcor
    4242 
     
    222222    ALLOCATE(alpha_v(ip1jm), stat = error)
    223223    IF (error /= 0) CALL abort_gcm(modname,abort_message,1)
    224     ALLOCATE(alpha_T(ip1jmp1), stat = error)
     224    ALLOCATE(alpha_T(iip1, jjp1), stat = error)
    225225    IF (error /= 0) CALL abort_gcm(modname,abort_message,1)
    226     ALLOCATE(alpha_Q(ip1jmp1), stat = error)
     226    ALLOCATE(alpha_Q(iip1, jjp1), stat = error)
    227227    IF (error /= 0) CALL abort_gcm(modname,abort_message,1)
    228228    ALLOCATE(alpha_P(ip1jmp1), stat = error)
     
    15181518    USE comconst_mod, ONLY: pi
    15191519    USE comvert_mod, ONLY: presnivs
     1520    use netcdf95, only: nf95_def_var, nf95_put_var
     1521    use netcdf, only: nf90_float
    15201522   
    15211523    IMPLICIT NONE
     
    15361538    INTEGER       :: nid, id_lonu, id_lonv, id_latu, id_latv, id_tim, id_lev
    15371539    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
    15391541    INTEGER, DIMENSION (3) :: dim3
    15401542    INTEGER, DIMENSION (4) :: dim4,count,start
     
    15671569        ierr=NF_DEF_VAR(nid,"cv",NF_FLOAT,2,(/id_lonv,id_latv/),vid_cv)
    15681570        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)
    15691575       
    15701576        ierr=NF_ENDDEF(nid)
     
    15921598        ierr = NF_PUT_VAR_REAL(nid,vid_av,alpha_v)
    15931599#endif
     1600        call nf95_put_var(nid, varid_alpha_t, alpha_t)
     1601        call nf95_put_var(nid, varid_alpha_q, alpha_q)
    15941602! --------------------------------------------------------------------
    15951603! Cr�ation des variables sauvegard�es
  • LMDZ5/branches/testing/libf/dyn3dmem/bands.F90

    r2408 r2787  
    219219        minvalue=value(i)
    220220        min_proc=index(i)
    221         if (jj_nb_caldyn(max_proc)>3) then
     221        if (jj_nb_caldyn(max_proc)>2) then
    222222          if (timer_iteration(jj_nb_caldyn(min_proc)+1,timer_caldyn,min_proc)<=1 ) then
    223223             jj_nb_caldyn(min_proc)=jj_nb_caldyn(min_proc)+1
     
    287287        min_proc=index(i)
    288288
    289         if (jj_nb_vanleer(max_proc)>3) then
     289        if (jj_nb_vanleer(max_proc)>2) then
    290290          if (timer_average(jj_nb_vanleer(min_proc)+1,timer_vanleer,min_proc)==0. .or. &
    291291             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  
    21302130    USE comconst_mod, ONLY: pi
    21312131    USE comvert_mod, ONLY: presnivs
     2132    use netcdf95, only: nf95_def_var, nf95_put_var
     2133    use netcdf, only: nf90_float
     2134
    21322135    IMPLICIT NONE
    21332136
     
    21492152    INTEGER       :: nid, id_lonu, id_lonv, id_latu, id_latv, id_tim, id_lev
    21502153    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
    21522155    INTEGER, DIMENSION (3) :: dim3
    21532156    INTEGER, DIMENSION (4) :: dim4,count,start
    21542157    INTEGER                :: ierr, varid,l
    2155     REAL zu(ip1jmp1),zv(ip1jm)
     2158    REAL zu(ip1jmp1),zv(ip1jm), zt(iip1, jjp1), zq(iip1, jjp1)
    21562159    REAL, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: field_glo
    21572160   
     
    21712174    print*,'guide_out apres gather '
    21722175    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)
    21732178    CALL Gather_field_v(alpha_v,zv,1)
    21742179
     
    22072212        ierr=NF_DEF_VAR(nid,"au",NF_FLOAT,2,(/id_lonu,id_latu/),vid_au)
    22082213        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       
    22102219        ierr=NF_ENDDEF(nid)
    22112220
     
    22322241        ierr = NF_PUT_VAR_REAL(nid,vid_av,alpha_v)
    22332242#endif
     2243        call nf95_put_var(nid, varid_alpha_t, zt)
     2244        call nf95_put_var(nid, varid_alpha_q, zq)
    22342245! --------------------------------------------------------------------
    22352246! Cr�ation des variables sauvegard�es
  • LMDZ5/branches/testing/libf/dyn3dmem/parallel_lmdz.F90

    r2641 r2787  
    154154        if ( i < MOD((jjm+1),mpi_size) ) jj_nb_para(i)=jj_nb_para(i)+1
    155155       
    156         if (jj_nb_para(i) <= 2 ) then
     156        if (jj_nb_para(i) <= 1 ) then
    157157         
    158158         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  
    885885c
    886886      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)
    887892c
    888893      REAL newmasse
     
    911916      ! vlz_loc si on veut qu'elles soient vues par tous les threads. 
    912917      INTEGER ifils,iq2 ! CRisi
     918
    913919
    914920      IF (first) THEN
     
    968974      ENDIF
    969975#endif
     976
     977!--------------------------------------------------------
     978! On repere les points qui violent le CFL (|w| > masse)
     979!--------------------------------------------------------
     980
     981      countcfl=0
     982!     print*,'vlz nouveau'
     983c$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
     991c$OMP END DO NOWAIT   
     992
     993c ---------------------------------------------------------------
     994c  Identification des mailles ou on viole le CFL : w > masse
     995c ---------------------------------------------------------------
     996
     997      IF (countcfl==0) THEN
     998
    970999c ---------------------------------------------------------------
    9711000c   .... calcul des termes d'advection verticale  .......
     1001c     Dans le cas où le  |w| < masse partout.
     1002c     Version d'origine
     1003c     Pourrait etre enleve si on voit que le code plus general
     1004c     est aussi rapide
    9721005c ---------------------------------------------------------------
    9731006
     
    9911024c$OMP END DO NOWAIT   
    9921025       !write(*,*) 'vlz 1001'   
     1026
     1027      ELSE ! countcfl>=1
     1028
     1029      PRINT*,'vlz passage dans le non local'
     1030c ---------------------------------------------------------------
     1031c  Debut du traitement du cas ou on viole le CFL : w > masse
     1032c ---------------------------------------------------------------
     1033
     1034c Initialisation
     1035
     1036c$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
     1054c$OMP END DO NO WAIT
     1055
     1056c Reindicage vertical en accumulant les flux sur
     1057c  les mailles qui viollent le CFL
     1058c  on itère jusqu'à ce que tous les poins satisfassent
     1059c  le critère
     1060      DO WHILE (countcfl>=1)
     1061      print*,'On viole le CFL Vertical sur ',countcfl,' pts'
     1062      countcfl=0
     1063
     1064c$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
     1086c$OMP END DO NO WAIT
     1087
     1088      ENDDO ! WHILE (countcfl>=1)
     1089
     1090c$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
     1103c$OMP END DO NOWAIT   
     1104
     1105
     1106       ENDIF ! councfl=0
     1107
     1108
    9931109
    9941110c$OMP MASTER
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90

    r2720 r2787  
    109109  INTEGER :: iflag_radia, iflag_cldcon, iflag_ratqs
    110110  REAL    :: ratqsbas, ratqshaut, tau_ratqs
    111   LOGICAL :: ok_ade, ok_aie, ok_cdnc, aerosol_couple
     111  LOGICAL :: ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple
    112112  INTEGER :: flag_aerosol
    113113  INTEGER :: flag_aerosol_strat
     
    131131                   iflag_cldcon,                                        &
    132132                   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,     &
    134134                   flag_aerosol, flag_aerosol_strat, new_aod,           &
    135135                   flag_bc_internal_mixture, bl95_b0, bl95_b1,          &
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/limit_netcdf.F90

    r2720 r2787  
    1717!-------------------------------------------------------------------------------
    1818
    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
    2120  USE assert_eq_m,        ONLY: assert_eq
     21  USE cal_tools_m,        ONLY: year_len, mid_month
    2222  USE conf_dat_m,         ONLY: conf_dat2d, conf_dat3d
    2323  USE dimphy,             ONLY: klon, zmasq
    24   USE geometry_mod, ONLY: longitude_deg, latitude_deg
     24  USE geometry_mod,       ONLY: longitude_deg, latitude_deg
    2525  USE phys_state_var_mod, ONLY: pctsrf
    26   USE control_mod, ONLY: anneeref
     26  USE control_mod,        ONLY: anneeref
    2727  USE init_ssrf_m,        ONLY: start_init_subsurf
    2828
     
    123123
    124124!--- Beware: anneeref (from gcm.def) is used to determine output time sampling
    125   ndays=ioget_year_len(anneeref)
     125  ndays=year_len(anneeref)
    126126
    127127!--- RUGOSITY TREATMENT --------------------------------------------------------
     
    375375!--- Read unit for sea-ice variable only
    376376  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
    378379      CALL msg(5,'No unit in sea-ice file. Take percentage as default value')
    379380      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))
    380383    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)
    382386    END IF
    383387  END IF
     
    418422!--- Rebuilding input time vector (field from input file might be unreliable)
    419423  IF(lmdep==12) THEN
    420     timeyear=mid_month(anneeref, cal_in, ndays_in)
     424    timeyear=mid_month(anneeref, cal_in)
    421425    CALL msg(0,'Monthly input file(s) for '//TRIM(title)//'.')
    422426  ELSE IF(lmdep==ndays_in) THEN
     
    426430    WRITE(mess,'(a,i3,a,i3,a)')'Mismatching input file: found',lmdep,        &
    427431      ' records, 12/',ndays_in,' (monthly/daily needed).'
    428     CALL abort_physic('mid_months',TRIM(mess),1)
     432    CALL abort_physic('mid_month',TRIM(mess),1)
    429433  END IF
    430434
     
    433437  IF(extrp) ALLOCATE(work(imdep, jmdep))
    434438  CALL msg(5,'')
    435   CALL msg(5,'LECTURE ET INTERPOLATION HORIZ. DE ', lmdep, ' CHAMPS.')
     439  CALL msg(5,'READ AND INTERPOLATE HORIZONTALLY ', lmdep, ' FIELDS.')
    436440  CALL ncerr(NF90_INQ_VARID(ncid, varname, varid), fnam)
    437441  DO l=1, lmdep
    438442    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
    439455    CALL conf_dat2d(title, dlon_ini, dlat_ini, dlon, dlat, champ, .TRUE.)
    440456    IF(extrp) CALL extrapol(champ,imdep,jmdep,999999.,.TRUE.,.TRUE.,2,work)
    441457    IF(l==1) THEN
    442458      CALL msg(5,"----------------------------------------------------------")
    443       CALL msg(5,"$$$ Interpolation barycentrique pour "//TRIM(title)//" $$$")
     459      CALL msg(5,"$$$ Barycentrique interpolation for "//TRIM(title)//" $$$")
    444460      CALL msg(5,"----------------------------------------------------------")
    445461    END IF
     
    504520     IF(ndays/=ndays_in) THEN
    505521        WRITE(lunout, *)
    506         WRITE(lunout,*)'DIFFERENTES LONGEURS D ANNEES:'
    507         WRITE(lunout,*)' Dans le fichier d entree: ',ndays_in
    508         WRITE(lunout,*)' Dans le fichier de sortie: ',ndays
     522        WRITE(lunout,*)'DIFFERENT YEAR LENGTHS:'
     523        WRITE(lunout,*)' In the input file: ',ndays_in
     524        WRITE(lunout,*)' In the output file: ',ndays
    509525     END IF
    510526     IF(lmdep==ndays_in) THEN
    511527        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.'
    514530     ELSE
    515         WRITE(lunout, *)'INTERPOLATION TEMPORELLE.'
    516         WRITE(lunout, *)' Vecteur temps en entree: ', timeyear
    517         WRITE(lunout, *)' Vecteur temps en sortie de 0 a ', ndays-1
     531        WRITE(lunout, *)'TIME INTERPOLATION.'
     532        WRITE(lunout, *)' Input time vector: ', timeyear
     533        WRITE(lunout, *)' Output time vector from 0 to ', ndays-1
    518534     END IF
    519535  END IF
     
    542558  DO j=1, jjp1
    543559    CALL minmax(iip1, champan(1, j, 10), chmin, chmax)
    544     IF (prt_level>5) WRITE(lunout, *)' ',TRIM(title),' au temps 10 ', chmin, chmax, j
     560    IF (prt_level>5) WRITE(lunout, *)' ',TRIM(title),' at time 10 ', chmin, chmax, j
    545561  END DO
    546562
    547563!--- SPECIAL FILTER FOR SST: SST>271.38 --------------------------------------
    548564  IF(mode=='SST') THEN
    549     CALL msg(5,'Filtrage de la SST: SST >= 271.38')
     565    CALL msg(0,'Filtering SST: SST >= 271.38')
    550566    WHERE(champan<271.38) champan=271.38
    551567  END IF
     
    553569!--- SPECIAL FILTER FOR SIC: 0.0<SIC<1.0 -------------------------------------
    554570  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
    558573       ! Nothing to be done for sea-ice field is already in fraction of 1
    559574       ! 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')
    561576    ELSE
    562577       ! 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.')
    564579       champan(:, :, :)=champan(:, :, :)/100.
    565580    END IF
    566 
    567581    champan(iip1, :, :)=champan(1, :, :)
    568582    WHERE(champan>1.0) champan=1.0
     
    647661!-------------------------------------------------------------------------------
    648662!
    649 FUNCTION year_len(y,cal_in)
    650 !
    651 !-------------------------------------------------------------------------------
    652   IMPLICIT NONE
    653 !-------------------------------------------------------------------------------
    654 ! Arguments:
    655   INTEGER                       :: year_len
    656   INTEGER,           INTENT(IN) :: y
    657   CHARACTER(LEN=*),  INTENT(IN) :: cal_in
    658 !-------------------------------------------------------------------------------
    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 function
    663   CALL ioget_calendar(cal_out)
    664 
    665 !--- Unlocking calendar and setting it to wanted one
    666   CALL lock_calendar(.FALSE.); CALL ioconf_calendar(TRIM(cal_in))
    667 
    668 !--- Getting the number of days in this year
    669   year_len=ioget_year_len(y)
    670 
    671 !--- Back to original calendar
    672   CALL lock_calendar(.FALSE.); CALL ioconf_calendar(TRIM(cal_out))
    673 
    674 END FUNCTION year_len
    675 !
    676 !-------------------------------------------------------------------------------
    677 
    678 
    679 !-------------------------------------------------------------------------------
    680 !
    681 FUNCTION mid_month(y,cal_in,ndays_out)
    682 !
    683 !-------------------------------------------------------------------------------
    684   IMPLICIT NONE
    685 !-------------------------------------------------------------------------------
    686 ! Arguments:
    687   INTEGER,          INTENT(IN) :: y           ! year
    688   CHARACTER(LEN=*), INTENT(IN) :: cal_in      ! calendar
    689   INTEGER,          INTENT(IN) :: ndays_out   ! days   number
    690   REAL,          DIMENSION(14) :: mid_month   ! mid-bins times
    691 !-------------------------------------------------------------------------------
    692 ! Local variables:
    693   CHARACTER(LEN=99)      :: mess              ! error message
    694   CHARACTER(LEN=20)      :: cal_out           ! output calendar
    695   INTEGER, DIMENSION(14) :: tlen              ! months lengths (days)
    696   INTEGER                :: m                 ! months counter
    697   INTEGER                :: nd                ! number of days
    698 !-------------------------------------------------------------------------------
    699   !--- Save the input calendar to reset it at the end of the function
    700   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 month
    706   tlen(1 )=ioget_mon_len(y-1,12)
    707   DO m=1,12; tlen(m+1)=ioget_mon_len(y,m); END DO
    708   tlen(14)=ioget_mon_len(y+1, 1)
    709 
    710   !--- Mid-bins times
    711   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 DO
    713 
    714   !--- Back to original calendar
    715   CALL lock_calendar(.FALSE.); CALL ioconf_calendar(TRIM(cal_out))
    716 
    717 END FUNCTION mid_month
    718 !
    719 !-------------------------------------------------------------------------------
    720 
    721 
    722 
    723 !-------------------------------------------------------------------------------
    724 !
    725663SUBROUTINE msg(lev,str1,i,str2)
    726664!
  • LMDZ5/branches/testing/libf/misc/wxios.F90

    r2542 r2787  
    2525!$OMP THREADPRIVATE(missing_val)
    2626
     27#ifdef XIOS1
     28#error "XIOS v1 no longer supported, use XIOS v2."
     29#endif
     30
    2731    CONTAINS
    2832   
     
    3337    SUBROUTINE reformadate(odate, ndate)
    3438        CHARACTER(len=*), INTENT(IN) :: odate
    35 #ifdef XIOS1
    36         CHARACTER(len=100), INTENT(OUT) :: ndate
    37 #else
    3839        TYPE(xios_duration) :: ndate
    39 #endif
    4040       
    4141        INTEGER :: i = 0
     
    5252        i = INDEX(odate, "day")
    5353        IF (i > 0) THEN
    54 #ifdef XIOS1
    55             ndate = odate(1:i-1)//"d"
    56 #else
    5754            read(odate(1:i-1),*) ndate%day
    58 #endif
    5955        END IF
    6056
    6157        i = INDEX(odate, "hr")
    6258        IF (i > 0) THEN
    63 #ifdef XIOS1
    64             ndate = odate(1:i-1)//"h"
    65 #else
    6659            read(odate(1:i-1),*) ndate%hour
    67 #endif
    6860        END IF
    6961
    7062        i = INDEX(odate, "mth")
    7163        IF (i > 0) THEN
    72 #ifdef XIOS1
    73             ndate = odate(1:i-1)//"mo"
    74 #else
    7564            read(odate(1:i-1),*) ndate%month
    76 #endif
    7765        END IF
    7866       
     
    197185     
    198186     !Variables pour xios:
    199 #ifdef XIOS1
    200      TYPE(xios_time) :: mdtime
    201 #else
    202187     TYPE(xios_duration) :: mdtime
    203 #endif
    204188     !REAL(kind = 8) :: year=0, month=0, day=0, hour=0, minute=0, second=0
    205189     
    206 #ifdef XIOS1
    207         mdtime = xios_time(0, 0, 0, 0, 0, pasdetemps)
    208 #else
    209190        mdtime%second=pasdetemps
    210 #endif
    211191
    212192        !Réglage du calendrier:
    213 #ifdef XIOS1
    214         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 DEFAULT
    225                 abort_message = 'wxios_set_cal: Mauvais choix de calendrier'
    226                 CALL abort_gcm('Gcm:Xios',abort_message,1)
    227         END SELECT
    228 #else
    229193        SELECT CASE (calendrier)
    230194            CASE('earth_360d')
     
    241205                CALL abort_gcm('Gcm:Xios',abort_message,1)
    242206        END SELECT
    243 #endif
    244207       
    245208        !Formatage de la date d'origine:
     
    247210       
    248211        IF (prt_level >= 10) WRITE(lunout,*) "wxios_set_cal: Time origin: ", date
    249 #ifdef XIOS1
    250         CALL xios_set_context_attr_hdl(g_ctx, time_origin = date)
    251 #else
    252212        CALL xios_set_time_origin(xios_date(annee,mois,jour,int(heure),0,0))
    253 #endif
    254213
    255214        !Formatage de la date de debut:
     
    259218        IF (prt_level >= 10) WRITE(lunout,*) "wxios_set_cal: Start date: ", date
    260219       
    261 #ifdef XIOS1
    262         CALL xios_set_context_attr_hdl(g_ctx, start_date = date)
    263 #else
    264220        CALL xios_set_start_date(xios_date(ini_an,ini_mois,ini_jour,int(ini_heure),0,0))
    265 #endif
    266221       
    267222        !Et enfin,le pas de temps:
     
    272227    SUBROUTINE wxios_set_timestep(ts)
    273228        REAL, INTENT(IN) :: ts
    274 #ifdef XIOS1
    275         TYPE(xios_time) :: mdtime     
    276 
    277         mdtime = xios_time(0, 0, 0, 0, 0, ts)
    278 #else
    279229        TYPE(xios_duration) :: mdtime     
    280230
    281231        mdtime%timestep = ts
    282 #endif
    283232
    284233        CALL xios_set_timestep(mdtime)
     
    334283       
    335284        !On parametrise le domaine:
    336 #ifdef XIOS1
    337         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 #else
    341285        CALL xios_set_domain_attr_hdl(dom, ni_glo=ni_glo, ibegin=ibegin-1, ni=ni, type="rectilinear")
    342286        CALL xios_set_domain_attr_hdl(dom, nj_glo=nj_glo, jbegin=jbegin-1, nj=nj, data_dim=2)
    343287        CALL xios_set_domain_attr_hdl(dom, lonvalue_1d=io_lon(ibegin:iend), latvalue_1d=io_lat(jbegin:jend))
    344 #endif
    345288        IF (.NOT.is_sequential) THEN
    346289            mask(:,:)=.TRUE.
     
    353296              WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," mask(:,nj)=",mask(:,nj)
    354297            ENDIF
    355 #ifdef XIOS1
    356             CALL xios_set_domain_attr_hdl(dom, mask=mask)
    357 #else
    358298            CALL xios_set_domain_attr_hdl(dom, mask_2d=mask)
    359 #endif
    360299        END IF
    361300
     
    401340       
    402341        ! Ehouarn: New way to declare axis, without axis_group:
    403 #ifdef XIOS1
    404         CALL xios_set_axis_attr(trim(axis_id),size=axis_size,value=axis_value)
    405 #else
    406342        CALL xios_set_axis_attr(trim(axis_id),n_glo=axis_size,value=axis_value)
    407 #endif       
     343
    408344        !Vérification:
    409345        IF (xios_is_valid_axis(TRIM(ADJUSTL(axis_id)))) THEN
     
    429365        TYPE(xios_file) :: x_file
    430366        TYPE(xios_filegroup) :: x_fg
    431 #ifdef XIOS1
    432         CHARACTER(len=100) :: nffreq
    433 #else
    434367        TYPE(xios_duration) :: nffreq
    435 #endif
    436368       
    437369        !On regarde si le fichier n'est pas défini par XML:
     
    445377       
    446378            !On configure:
    447 #ifdef XIOS1
    448             CALL xios_set_file_attr_hdl(x_file, name="X"//fname,&
    449                 output_freq=TRIM(ADJUSTL(nffreq)), output_level=flvl, enabled=.TRUE.)
    450 #else
    451379            CALL xios_set_file_attr_hdl(x_file, name="X"//fname,&
    452380                output_freq=nffreq, output_level=flvl, enabled=.TRUE.)
    453 #endif
    454381       
    455382            IF (xios_is_valid_file("X"//fname)) THEN
    456383                IF (prt_level >= 10) THEN
    457384                  WRITE(lunout,*) "wxios_add_file: New file: ", "X"//fname
    458 #ifdef XIOS1
    459                   WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl
    460 #else
    461385                  WRITE(lunout,*) "wxios_add_file: output_freq=",nffreq,"; output_lvl=",flvl
    462 #endif
    463386                ENDIF
    464387            ELSE
    465388                WRITE(lunout,*) "wxios_add_file: Error, invalid file: ", "X"//trim(fname)
    466 #ifdef XIOS1
    467                 WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl
    468 #else
    469389                WRITE(lunout,*) "wxios_add_file: output_freq=",nffreq,"; output_lvl=",flvl
    470 #endif
    471390            END IF
    472391        ELSE
     
    538457        TYPE(xios_field) :: field
    539458        TYPE(xios_fieldgroup) :: fieldgroup
    540 #ifndef XIOS1
    541459        TYPE(xios_duration) :: freq_op
    542 #endif
     460
    543461        LOGICAL :: bool=.FALSE.
    544462        INTEGER :: lvl =0
     
    599517           
    600518            !L'operation, sa frequence:
    601 #ifdef XIOS1
    602             CALL xios_set_field_attr_hdl(field, field_ref=fieldname, operation=TRIM(ADJUSTL(operation)), freq_op="1ts", prec=4)
    603 #else
    604519            freq_op%timestep=1
    605520            CALL xios_set_field_attr_hdl(field, field_ref=fieldname, operation=TRIM(ADJUSTL(operation)), freq_op=freq_op, prec=4)
    606 #endif
    607521
    608522           
  • LMDZ5/branches/testing/libf/phylmd/Dust/phys_output_write_spl_mod.F90

    r2641 r2787  
    66!JE20150620<<
    77!JE20150620>>
    8 
    98!JE20150620<<
    109
    11     USE time_phylmdz_mod, only: day_step_phy, start_time, itau_phy
     10  USE time_phylmdz_mod, ONLY: day_step_phy, start_time, itau_phy
    1211
    1312  USE phytracr_spl_mod, ONLY : ok_chimeredust, id_prec, id_fine, id_coss, &
     
    9392    ! defined and initialised in phys_output_mod.F90
    9493
    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, &
    9898         is_ave, is_sic, o_contfracATM, o_contfracOR, &
    9999         o_aireTER, o_flat, o_slp, o_tsol, &
     
    287287!JE20150620>>
    288288
    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, &
    290290         qsol, z0m, z0h, fevap, agesno, &
    291291         nday_rain, rain_con, snow_con, &
     
    314314         vphiSTD, wTSTD, u2STD, v2STD, T2STD, missing_val_nf90
    315315
    316     USE phys_local_var_mod, only: zxfluxlat, slp, zxtsol, zt2m, &
     316    USE phys_local_var_mod, ONLY: zxfluxlat, slp, zxtsol, zt2m, &
    317317         t2m_min_mon, t2m_max_mon, evap, &
    318318         zu10m, zv10m, zq2m, zustar, zxqsurf, &
     
    369369         d_q_ch4, pmfd, pmfu, ref_liq, ref_ice, rhwriteSTD
    370370
    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, &
    372372         bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, &
    373373         itau_con, nfiles, clef_files, nid_files, zvstr_gwd_rando
    374     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
     374    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
    385385
    386386#ifdef CPP_XIOS
    387387    ! ug Pour les sorties XIOS
    388388    USE xios, ONLY: xios_update_calendar
    389     USE wxios, only: wxios_closedef, missing_val
     389    USE wxios, ONLY: wxios_closedef, missing_val
    390390#endif
    391     USE phys_cal_mod, only : mth_len
    392 
     391    USE phys_cal_mod, ONLY : mth_len
    393392
    394393    IMPLICIT NONE
    395 
    396394
    397395!   INCLUDE "temps.h"
     
    445443    CALL set_itau_iophy(itau_w)
    446444
    447     IF(.NOT.vars_defined) THEN
     445    IF (.NOT.vars_defined) THEN
    448446       iinitend = 2
    449447    ELSE
     
    456454       !$OMP MASTER
    457455       IF (vars_defined) THEN
    458           if (prt_level >= 10) then
     456          IF (prt_level >= 10) THEN
    459457             write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w
    460           endif
     458          ENDIF
    461459!          CALL xios_update_calendar(itau_w)
    462460          CALL xios_update_calendar(itap)
    463        END IF
     461       ENDIF
    464462       !$OMP END MASTER
    465463       !$OMP BARRIER
     
    751749       CALL histwrite_phy(o_uq, uq)
    752750       CALL histwrite_phy(o_vq, vq)
    753        IF(iflag_con.GE.3) THEN ! sb
     751       IF (iflag_con.GE.3) THEN ! sb
    754752          CALL histwrite_phy(o_cape, cape)
    755753          CALL histwrite_phy(o_pbase, ema_pcb)
    756754          CALL histwrite_phy(o_ptop, ema_pct)
    757755          CALL histwrite_phy(o_fbase, ema_cbmf)
    758           if (iflag_con /= 30) then
     756          IF (iflag_con /= 30) THEN
    759757             CALL histwrite_phy(o_plcl, plcl)
    760758             CALL histwrite_phy(o_plfc, plfc)
    761759             CALL histwrite_phy(o_wbeff, wbeff)
    762           end if
     760          ENDIF
    763761
    764762          CALL histwrite_phy(o_cape_max, cape)
     
    771769          CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
    772770          IF (vars_defined) THEN
    773              IF(iflag_thermals>=1)THEN
     771             IF (iflag_thermals>=1)THEN
    774772                zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
    775773             ELSE
     
    820818          DO k=1, nlevSTD
    821819             bb2=clevSTD(k)
    822              IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
     820             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
    823821                  bb2.EQ."500".OR.bb2.EQ."200".OR. &
    824822                  bb2.EQ."100".OR. &
     
    840838#endif
    841839#endif
     840
    842841#ifdef CPP_XIOS
    843   IF(ok_all_xml) THEN
     842  IF (ok_all_xml) THEN
    844843!XIOS  CALL xios_get_field_attr("u850",default_value=missing_val)
    845844!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    847846          DO k=1, nlevSTD
    848847             bb2=clevSTD(k)
    849              IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
     848             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
    850849                bb2.EQ."500".OR.bb2.EQ."200".OR. &
    851850                bb2.EQ."100".OR. &
     
    940939          ELSE
    941940              CALL histwrite_phy(o_tslab, tslab)
    942           END IF
     941          ENDIF
    943942          IF (version_ocean=='sicINT') THEN
    944943              CALL histwrite_phy(o_slab_bilg, slab_bilg)
    945944              CALL histwrite_phy(o_slab_tice, tice)
    946945              CALL histwrite_phy(o_slab_sic, seaice)
    947           END IF
     946          ENDIF
    948947       ENDIF !type_ocean == force/slab
    949948       CALL histwrite_phy(o_weakinv, weak_inversion)
     
    10291028                CALL histwrite_phy(o_tausumaero(naero), &
    10301029                     tausum_aero(:,2,naero) )
    1031              END DO
     1030             ENDDO
    10321031          ENDIF
    10331032          IF (flag_aerosol_strat>=1) THEN
     
    10461045          CALL histwrite_phy(o_sollwad0, sollwad0_aero)
    10471046          !====MS forcing diagnostics
    1048           if (new_aod) then
     1047          IF (new_aod) THEN
    10491048             CALL histwrite_phy(o_swtoaas_nat, topsw_aero(:,1))
    10501049             CALL histwrite_phy(o_swsrfas_nat, solsw_aero(:,1))
     
    10571056             CALL histwrite_phy(o_swsrfcs_ant, solsw0_aero(:,2))
    10581057             !cf
    1059              if (.not. aerosol_couple) then
     1058             IF (.not. aerosol_couple) THEN
    10601059                CALL histwrite_phy(o_swtoacf_nat, topswcf_aero(:,1))
    10611060                CALL histwrite_phy(o_swsrfcf_nat, solswcf_aero(:,1))
     
    10641063                CALL histwrite_phy(o_swtoacf_zero,topswcf_aero(:,3))
    10651064                CALL histwrite_phy(o_swsrfcf_zero,solswcf_aero(:,3))
    1066              endif
    1067           endif ! new_aod
     1065             ENDIF
     1066          ENDIF ! new_aod
    10681067          !====MS forcing diagnostics
    10691068       ENDIF
     
    10851084       ENDIF
    10861085       ! Champs 3D:
    1087        IF (ok_ade .OR. ok_aie) then
     1086       IF (ok_ade .OR. ok_aie) THEN
    10881087          CALL histwrite_phy(o_ec550aer, ec550aer)
    10891088       ENDIF
     
    11701169       CALL histwrite_phy(o_alb2, albsol2)
    11711170       !FH Sorties pour la couche limite
    1172        if (iflag_pbl>1) then
     1171       IF (iflag_pbl>1) THEN
    11731172          zx_tmp_fi3d=0.
    11741173          IF (vars_defined) THEN
    1175              do nsrf=1,nbsrf
    1176                 do k=1,klev
     1174             DO nsrf=1,nbsrf
     1175                DO k=1,klev
    11771176                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
    11781177                        +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
     
    11991198       ENDIF
    12001199       CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
    1201        if(iflag_thermals.eq.0)then
     1200       IF (iflag_thermals.eq.0)THEN
    12021201          IF (vars_defined) THEN
    12031202             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
     
    12051204          ENDIF
    12061205          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
    1207        else if(iflag_thermals.ge.1.and.iflag_wake.EQ.1)then
     1206       ELSEIF (iflag_thermals.ge.1.and.iflag_wake.EQ.1)THEN
    12081207          IF (vars_defined) THEN
    12091208             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
     
    12121211          ENDIF
    12131212          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
    1214        endif
     1213       ENDIF
    12151214       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
    12161215       CALL histwrite_phy(o_ducon, zx_tmp_fi3d)
     
    12201219       CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
    12211220
    1222        IF(iflag_thermals.EQ.0) THEN
     1221       IF (iflag_thermals.EQ.0) THEN
    12231222          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    12241223          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
    1225        ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
     1224       ELSEIF (iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
    12261225          IF (vars_defined) THEN
    12271226             zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
     
    12431242!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    12441243       ! Sorties specifiques a la separation thermiques/non thermiques
    1245        if (iflag_thermals>=1) then
    1246           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
     1244       IF (iflag_thermals>=1) THEN
     1245          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
    12471246          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)/pdtphys
     1247          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
    12491248          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)/pdtphys
     1249          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
    12511250          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)/pdtphys
     1251          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
    12531252          CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
    12541253          CALL histwrite_phy(o_plulth, plul_th)
    12551254          CALL histwrite_phy(o_plulst, plul_st)
    12561255          IF (vars_defined) THEN
    1257              do k=1,klev
    1258                 do i=1,klon
    1259                    if (ptconvth(i,k)) then
     1256             DO k=1,klev
     1257                DO i=1,klon
     1258                   IF (ptconvth(i,k)) THEN
    12601259                      zx_tmp_fi3d(i,k)=1.
    1261                    else
     1260                   ELSE
    12621261                      zx_tmp_fi3d(i,k)=0.
    1263                    endif
     1262                   ENDIF
    12641263                enddo
    12651264             enddo
     
    12671266          CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
    12681267          IF (vars_defined) THEN
    1269              do i=1,klon
     1268             DO i=1,klon
    12701269                zx_tmp_fi2d(1:klon)=lmax_th(:)
    12711270             enddo
    12721271          ENDIF
    12731272          CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
    1274        endif ! iflag_thermals>=1
     1273       ENDIF ! iflag_thermals>=1
    12751274!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    12761275       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
    12771276       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)/pdtphys
     1277       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
    12791278       CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
    12801279       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
     
    13201319          CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
    13211320       ENDIF !iflag_thermals
    1322        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
     1321       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
    13231322       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)/pdtphys
     1323       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
    13251324       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)/pdtphys
     1325       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
    13271326       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)/pdtphys
     1327       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys
    13291328       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)/pdtphys
     1329       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys
    13311330       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)/pdtphys
     1331       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys
    13331332       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)/pdtphys
     1333       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
    13351334       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)/pdtphys
     1335       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
    13371336       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)/pdtphys
     1337       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
    13391338       CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
    13401339       IF (ok_orodr) THEN
    1341           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
     1340          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
    13421341          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)/pdtphys
     1342          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
    13441343          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)/pdtphys
     1344          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
    13461345          CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
    13471346       ENDIF
    13481347       IF (ok_orolf) THEN
    1349           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
     1348          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lIF (1:klon,1:klev)/pdtphys
    13501349          CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
    13511350
    1352           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
     1351          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lIF (1:klon,1:klev)/pdtphys
    13531352          CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
    13541353
    1355           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
     1354          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lIF (1:klon,1:klev)/pdtphys
    13561355          CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
    13571356       ENDIF
    13581357
    13591358!      IF (ok_hines) THEN
    1360 !         IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys
     1359!         IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys
    13611360!         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)/pdtphys
     1361!         IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_hin(1:klon,1:klev)/pdtphys
    13631362!         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)/pdtphys
     1363!         IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
    13651364!         CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
    13661365!      ENDIF
    13671366
    1368 !      IF (ok_gwd_rando) then
    1369 !         CALL histwrite_phy(o_du_gwd_rando, du_gwd_rando / pdtphys)
    1370 !         CALL histwrite_phy(o_dv_gwd_rando, dv_gwd_rando / 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)
    13711370!         CALL histwrite_phy(o_vstr_gwd_rando, zvstr_gwd_rando)
    1372 !      end IF
    1373 
    1374        IF (ok_qch4) then
     1371!      ENDIF
     1372
     1373       IF (ok_qch4) THEN
    13751374          CALL histwrite_phy(o_dqch4, d_q_ch4 / pdtphys)
    13761375       ENDIF
     
    13841383       CALL histwrite_phy(o_rlucs, lwup0)
    13851384       CALL histwrite_phy(o_rldcs, lwdn0)
    1386        IF(vars_defined) THEN
     1385       IF (vars_defined) THEN
    13871386          zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
    13881387               d_t_dyn(1:klon,1:klev)
    13891388       ENDIF
    13901389       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
    1391        IF(vars_defined) THEN
     1390       IF (vars_defined) THEN
    13921391          zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
    13931392               d_t_lwr(1:klon,1:klev)/pdtphys
    13941393       ENDIF
    13951394       CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
    1396        IF(vars_defined) THEN
     1395       IF (vars_defined) THEN
    13971396          zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
    13981397               d_t_eva(1:klon,1:klev)+ &
     
    14001399       ENDIF
    14011400       CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
    1402        IF(vars_defined) THEN
     1401       IF (vars_defined) THEN
    14031402          zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
    14041403               d_q_dyn(1:klon,1:klev)
    14051404       ENDIF
    14061405       CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
    1407        IF(vars_defined) THEN
     1406       IF (vars_defined) THEN
    14081407          zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
    14091408               d_q_eva(1:klon,1:klev)/pdtphys
     
    14111410       CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
    14121411       CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
    1413        IF(vars_defined) THEN
     1412       IF (vars_defined) THEN
    14141413          zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
    14151414               ql_seri(1:klon,1:klev)
    14161415       ENDIF
    14171416       CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
    1418        if (iflag_con >= 3) then
    1419           IF(vars_defined) THEN
     1417       IF (iflag_con >= 3) THEN
     1418          IF (vars_defined) THEN
    14201419             zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ &
    14211420                  dnwd0(1:klon,1:klev))
    14221421          ENDIF
    14231422          CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
    1424           IF(vars_defined) THEN
     1423          IF (vars_defined) THEN
    14251424             zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + &
    14261425                  dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev)
    14271426          ENDIF
    14281427          CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
    1429        else if (iflag_con == 2) then
     1428       ELSEIF (iflag_con == 2) THEN
    14301429          CALL histwrite_phy(o_mcd,  pmfd)
    14311430          CALL histwrite_phy(o_dmc,  pmfu + pmfd)
    1432        end if
     1431       ENDIF
    14331432       CALL histwrite_phy(o_ref_liq, ref_liq)
    14341433       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. &
    14361435            RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. &
    14371436            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 )
    14391438          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 )
    14411440          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 )
    14431442          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 )
    14451444          CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
    14461445          CALL histwrite_phy(o_rsu4co2, swupp)
     
    14601459       ! Champs interpolles sur des niveaux de pression
    14611460       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
    14631462
    14641463          CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
     
    14701469          CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff)
    14711470          CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff)
    1472           IF(vars_defined) THEN
     1471          IF (vars_defined) THEN
    14731472             DO k=1, nlevSTD
    14741473                DO i=1, klon
    1475                    IF(tnondef(i,k,iff-6).NE.missing_val) THEN
    1476                       IF(freq_outNMC(iff-6).LT.0) THEN
     1474                   IF (tnondef(i,k,iff-6).NE.missing_val) THEN
     1475                      IF (freq_outNMC(iff-6).LT.0) THEN
    14771476                         freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
    14781477                      ELSE
     
    14871486          ENDIF
    14881487          CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD,iff)
    1489           IF(vars_defined) THEN
     1488          IF (vars_defined) THEN
    14901489             DO k=1, nlevSTD
    14911490                DO i=1, klon
    1492                    IF(O3sumSTD(i,k,iff-6).NE.missing_val) THEN
     1491                   IF (O3sumSTD(i,k,iff-6).NE.missing_val) THEN
    14931492                      zx_tmp_fi3d_STD(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
    14941493                   ELSE
     
    14991498          ENDIF
    15001499          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD,iff)
    1501           if (read_climoz == 2) THEN
    1502              IF(vars_defined) THEN
     1500          IF (read_climoz == 2) THEN
     1501             IF (vars_defined) THEN
    15031502                DO k=1, nlevSTD
    15041503                   DO i=1, klon
    1505                       IF(O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
     1504                      IF (O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
    15061505                         zx_tmp_fi3d_STD(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
    15071506                      ELSE
     
    15121511             ENDIF
    15131512             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD,iff)
    1514           endif
     1513          ENDIF
    15151514          CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff)
    15161515          CALL histwrite_phy(o_vxq,vqsumSTD(:,:,iff-6),iff)
     
    15271526#endif
    15281527#ifdef CPP_XIOS
    1529   IF(ok_all_xml) THEN
     1528  IF (ok_all_xml) THEN
    15301529!      DO iff=7, nfiles
    15311530
     
    15381537          CALL histwrite_phy(o_va,vlevSTD(:,:))
    15391538          CALL histwrite_phy(o_wap,wlevSTD(:,:))
    1540 !         IF(vars_defined) THEN
     1539!         IF (vars_defined) THEN
    15411540!            DO k=1, nlevSTD
    15421541!               DO i=1, klon
    1543 !                  IF(tnondef(i,k,3).NE.missing_val) THEN
    1544 !                     IF(freq_outNMC(iff-6).LT.0) THEN
     1542!                  IF (tnondef(i,k,3).NE.missing_val) THEN
     1543!                     IF (freq_outNMC(iff-6).LT.0) THEN
    15451544!                        freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
    15461545!                     ELSE
     
    15551554!         ENDIF
    15561555!         CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD)
    1557           IF(vars_defined) THEN
     1556          IF (vars_defined) THEN
    15581557             DO k=1, nlevSTD
    15591558                DO i=1, klon
    1560                    IF(O3STD(i,k).NE.missing_val) THEN
     1559                   IF (O3STD(i,k).NE.missing_val) THEN
    15611560                      zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9
    15621561                   ELSE
     
    15671566          ENDIF
    15681567          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD)
    1569           if (read_climoz == 2) THEN
    1570              IF(vars_defined) THEN
     1568          IF (read_climoz == 2) THEN
     1569             IF (vars_defined) THEN
    15711570                DO k=1, nlevSTD
    15721571                   DO i=1, klon
    1573                       IF(O3daySTD(i,k).NE.missing_val) THEN
     1572                      IF (O3daySTD(i,k).NE.missing_val) THEN
    15741573                         zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9
    15751574                      ELSE
     
    15801579             ENDIF
    15811580             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD)
    1582           endif
     1581          ENDIF
    15831582          CALL histwrite_phy(o_uxv,uvSTD(:,:))
    15841583          CALL histwrite_phy(o_vxq,vqSTD(:,:))
     
    15981597              IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
    15991598
    1600 !jyg<
    1601 !!             CALL histwrite_phy(o_trac(iq-nqo), qx(:,:,iq))
    16021599             CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
    1603 !>jyg
    16041600             CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
    16051601             CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo))
     
    16121608             CALL histwrite_phy(o_dtr_ls(iq-nqo),d_tr_ls(:,:,iq-nqo))
    16131609!            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))
    16151611             CALL histwrite_phy(o_dtr_trsp(iq-nqo),d_tr_trsp(:,:,iq-nqo))
    16161612             CALL histwrite_phy(o_dtr_sscav(iq-nqo),d_tr_sscav(:,:,iq-nqo))
     
    16181614             CALL histwrite_phy(o_dtr_uscav(iq-nqo),d_tr_uscav(:,:,iq-nqo))
    16191615             zx_tmp_fi2d=0.
    1620              IF(vars_defined) THEN
     1616             IF (vars_defined) THEN
    16211617                DO k=1,klev
    1622 !jyg<
    1623 !!                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
    16241618                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo)
    1625 !>jyg
    16261619                ENDDO
    16271620             ENDIF
    16281621             CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
    1629              endif
    1630           ENDDO
    1631        ENDIF
    1632 
    1633        IF(.NOT.vars_defined) THEN
     1622             ENDIF
     1623          ENDDO
     1624       ENDIF
     1625
     1626       IF (.NOT.vars_defined) THEN
    16341627          !$OMP MASTER
    16351628#ifndef CPP_IOIPSL_NO_OUTPUT
     
    16521645          vars_defined = .TRUE.
    16531646
    1654        END IF
    1655 
    1656     END DO
    1657 
    1658     IF(vars_defined) THEN
     1647       ENDIF
     1648
     1649    ENDDO
     1650
     1651    IF (vars_defined) THEN
    16591652       ! On synchronise les fichiers pour IOIPSL
    16601653#ifndef CPP_IOIPSL_NO_OUTPUT
     
    16641657             CALL histsync(nid_files(iff))
    16651658          ENDIF
    1666        END DO
     1659       ENDDO
    16671660       !$OMP END MASTER
    16681661#endif
  • LMDZ5/branches/testing/libf/phylmd/Dust/spla_output_dat.h

    r2641 r2787  
    33
    44!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) /))
    1111
    1212! 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 /), &
    4645  '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 /), &
    5049  '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 /), &
    5453  '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 /), &
    5857  '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 /), &
    6261  '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 /), &
    6766  '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 /), &
    7170  '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 /), &
    7574  '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 /), &
    7978  '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 /), &
    8382  '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 /), &
    8887  '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 /), &
    9291  '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 /), &
    9695  '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 /), &
    10099  '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 /), &
    104103  '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 /), &
    109108  '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 /), &
    113112  '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 /), &
    117116  '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 /), &
    121120  '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 /), &
    125124  '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 /), &
    130129  '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 /), &
    134133  '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 /), &
    138137  '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 /), &
    142141  '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 /), &
    146145  '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 /), &
    151150  '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 /), &
    155154  '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 /), &
    159158  '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 /), &
    163162  '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 /), &
    167166  '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 /), &
    174171!  '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)',  &
    176173!         't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /))
    177174!
    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 /), &
    179176!  '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)',  &
    181178!         't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /))
    182179!
    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 /), &
    184181!  '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)',  &
    186183!         't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /))
    187184!
    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 /), &
    189186!  '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)',  &
    191188!         't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /))
    192189!
    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 /), &
    194191!  '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)',  &
    196193!         't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)', 't_max(X)' /))
    197 
    198194       
    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) /))
    223216
    224217!lessivage
    225218
    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) /))
    292284
    293285!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    304296!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    305297
    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) /))
    374363
    375364!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     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) /))
    376375                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    387386                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    398397                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    409408                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    420419                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    423430                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    459441!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    466448!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    479459!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    480460! histrac
    481461
    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 /), &
    628604!       '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  
    66! traceur
    77
    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  )
    1010      CALL histwrite_phy( o_taue865          , diag_aod865_tot  )
    1111      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  )
    1313      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   )
    1515      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 )
    1818      IF(id_codu>0) CALL histwrite_phy( o_taue670_dust     , diag_aod670_dust )
    1919      IF(id_codu>0) CALL histwrite_phy( o_taue865_dust     , diag_aod865_dust )
     
    2222      IF(id_scdu>0) CALL histwrite_phy( o_taue865_dustsco  , diag_aod865_dustsco )
    2323      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 )
    2929
    3030      IF(id_fine>0) CALL histwrite_phy( o_taue550_fine_aqua     ,aod550_tr2_aqua   )
    3131      IF(id_fine>0) CALL histwrite_phy( o_taue670_fine_aqua     ,aod670_tr2_aqua   )
    3232      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   )
    4242     
    4343      IF(id_fine>0) CALL histwrite_phy( o_taue550_fine_terra     ,aod550_tr2_terra   )
    4444      IF(id_fine>0) CALL histwrite_phy( o_taue670_fine_terra     ,aod670_tr2_terra   )
    4545      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   )
    5555
    5656
     
    133133      IF(id_codu>0) CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 )
    134134      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 )
    136136      IF(id_fine>0) CALL histwrite_phy( o_d_tr_insc02 , d_tr_insc02 )
    137137      IF(id_coss>0) CALL histwrite_phy( o_d_tr_insc03 , d_tr_insc03 )
     
    152152      IF(id_coss>0) CALL histwrite_phy( o_d_tr_ls03 , d_tr_ls03 )
    153153      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 )
    156155
    157156      IF(id_prec>0) CALL histwrite_phy( o_d_tr_dyn01 , d_tr_dyn01 )
     
    159158      IF(id_coss>0) CALL histwrite_phy( o_d_tr_dyn03 , d_tr_dyn03 )
    160159      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 )
    162161     
    163162      IF(id_prec>0) CALL histwrite_phy( o_d_tr_cl01 , d_tr_cl01 )
     
    165164      IF(id_coss>0) CALL histwrite_phy( o_d_tr_cl03 , d_tr_cl03 )
    166165      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 )
    168167      IF(id_prec>0) CALL histwrite_phy( o_d_tr_th01 , d_tr_th01 )
    169168      IF(id_fine>0) CALL histwrite_phy( o_d_tr_th02 , d_tr_th02 )
    170169      IF(id_coss>0) CALL histwrite_phy( o_d_tr_th03 , d_tr_th03 )
    171170      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 )
    174172
    175173      IF(id_coss>0) CALL histwrite_phy( o_sed_ss , sed_ss)
     
    232230      CALL histwrite_phy( o_u10m_ss             , u10m_ss              )
    233231      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  
    1414!-----------------------------------------------------------------------
    1515
    16   USE phys_local_var_mod, ONLY: mdw, sfluxaer, DENSO4, f_r_wet, vsed_aer
     16  USE phys_local_var_mod, ONLY: mdw, budg_sed_part, DENSO4, f_r_wet, vsed_aer
    1717  USE dimphy, ONLY : klon,klev
    1818  USE infotrac
     
    106106!---ZAERONWM1 now contains the surface concentration at the new timestep
    107107!---PFLUXAER in unit of xx m-2 s-1
    108 sfluxaer(:)=0.0
     108budg_sed_part(:)=0.0
    109109DO JL=1,klon
    110110  ZRHO=pplay(JL,1)/(RD*t_seri(JL,1))
    111111  DO nb=1,nbtr_bin
    112     !compute sfluxaer as sum over bins in kg(S)/m2/s
    113     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) &
    114114                & *dens_aer_dry*4./3.*RPI*(mdw(nb)/2.)**3
    115115  ENDDO
  • LMDZ5/branches/testing/libf/phylmd/StratAer/aerophys.F90

    r2720 r2787  
    66  REAL,PARAMETER                         :: dens_aer_dry=1848.682308 ! dry aerosol particle mass density at T_0=293K[kg/m3]
    77  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
    910  REAL,PARAMETER                         :: V_rat=2.0                ! volume ratio of neighboring size bins
    1011  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  
    88  USE mod_phys_lmdz_mpi_data, ONLY :  is_mpi_root
    99  USE mod_phys_lmdz_omp_data, ONLY :  is_omp_root
    10   USE phys_local_var_mod, ONLY : OCS_backgr_tend, SO2_backgr_tend
     10  USE phys_local_var_mod, ONLY : budg_3D_backgr_ocs, budg_3D_backgr_so2
    1111  USE phys_local_var_mod, ONLY : OCS_lifetime, SO2_lifetime
    1212  USE mod_phys_lmdz_para
     
    3434  REAL OCS_tmp, SO2_tmp
    3535  INTEGER, SAVE :: mth_pre
     36!$OMP THREADPRIVATE(mth_pre)
    3637
    3738! Champs reconstitues
     
    244245        tr_seri(i,k,id_SO2_strat)=SO2_clim(i,k)
    245246      ENDIF
    246       OCS_backgr_tend(i,k)=tr_seri(i,k,id_OCS_strat)-OCS_tmp
    247       SO2_backgr_tend(i,k)=tr_seri(i,k,id_SO2_strat)-SO2_tmp
     247      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
    248249    ENDDO
    249250  ENDDO
     
    252253  DO i=1, klon
    253254    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/pdtphys
    255       OCS_backgr_tend(i,k)=OCS_backgr_tend(i,k)*mSatom/mOCSmol*(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
     255      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
    256257    ENDDO
    257258  ENDDO
  • LMDZ5/branches/testing/libf/phylmd/StratAer/micphy_tstep.F90

    r2720 r2787  
    44  USE aerophys
    55  USE infotrac
    6   USE phys_local_var_mod, ONLY: mdw, sulf_nucl, sulf_cond_evap, R2SO4, DENSO4, f_r_wet
     6  USE phys_local_var_mod, ONLY: mdw, budg_3D_nucl, budg_3D_cond_evap, R2SO4, DENSO4, f_r_wet
    77  USE nucleation_tstep_mod
    88  USE cond_evap_tstep_mod
     
    6868  IF (is_strato(ilon,ilev)) THEN
    6969    ! initialize sulfur fluxes
    70     sulf_nucl(ilon,ilev)=0.0
    71     sulf_cond_evap(ilon,ilev)=0.0
     70    budg_3D_nucl(ilon,ilev)=0.0
     71    budg_3D_cond_evap(ilon,ilev)=0.0
    7272    H2SO4_init=tr_seri(ilon,ilev,id_H2SO4_strat)
    7373    ! adaptive timestep for nucleation and condensation
     
    109109      CALL nucleation_part(nucl_rate,ntot,x,dt,Vbin,tr_seri(ilon,ilev,:))
    110110      ! 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 &
    112112               & *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 &
    114114               & *nucl_rate*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG*dt/pdtphys
    115115      ! update time step
     
    139139    CALL cond_evap_part(pdtphys,FL,ASO4,f_r_wet(ilon,ilev),RRSI,Vbin,tr_seri(ilon,ilev,:))
    140140    ! 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 &
    142142             & *evap_rate*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG
    143143  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)
     1SUBROUTINE ocs_to_so2(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato)
    22
    33  USE dimphy, ONLY : klon,klev
     
    55  USE infotrac
    66  USE YOMCST, ONLY : RG
    7   USE phys_local_var_mod, ONLY : OCS_lifetime, ocs_convert
     7  USE phys_local_var_mod, ONLY : OCS_lifetime, budg_3D_ocs_to_so2, budg_ocs_to_so2
    88
    99  IMPLICIT NONE
     
    1616  REAL,DIMENSION(klon,klev),INTENT(IN)          :: pplay   ! pression pour le mileu de chaque couche (en Pa)
    1717  REAL,DIMENSION(klon,klev+1),INTENT(IN)        :: paprs   ! pression pour chaque inter-couche (en Pa)
    18   REAL,DIMENSION(klon,klev),INTENT(IN)          :: sh      ! humidite specifique   
    1918  LOGICAL,DIMENSION(klon,klev),INTENT(IN)       :: is_strato
    2019
     
    2322
    2423!--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
    2627  DO ilon=1, klon
    2728  DO ilev=1, klev
     
    2930  IF (is_strato(ilon,ilev)) THEN
    3031    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)))
    3233    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)
    3739  ENDIF
    3840  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)
     1SUBROUTINE SO2_TO_H2SO4(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato)
    22
    33  USE dimphy, ONLY : klon,klev
     
    55  USE infotrac
    66  USE YOMCST, ONLY : RG
    7   USE phys_local_var_mod, ONLY : SO2_lifetime, sulf_convert
     7  USE phys_local_var_mod, ONLY : SO2_lifetime, budg_3D_so2_to_h2so4, budg_so2_to_h2so4
    88
    99  IMPLICIT NONE
     
    1717  REAL,DIMENSION(klon,klev),INTENT(IN)          :: pplay   ! pression pour le mileu de chaque couche (en Pa)
    1818  REAL,DIMENSION(klon,klev+1),INTENT(IN)        :: paprs   ! pression pour chaque inter-couche (en Pa)
    19   REAL,DIMENSION(klon,klev),INTENT(IN)          :: sh      ! humidite specifique   
    2019  LOGICAL,DIMENSION(klon,klev),INTENT(IN)       :: is_strato ! stratospheric flag
    2120
     
    2423
    2524!--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
    2728  DO ilon=1, klon
    2829  DO ilev=1, klev
     
    3031  IF (is_strato(ilon,ilev)) THEN
    3132    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)))
    3334    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)
    3840  ENDIF
    3941  ENDDO
  • LMDZ5/branches/testing/libf/phylmd/StratAer/traccoag_mod.F90

    r2720 r2787  
    88  SUBROUTINE traccoag(pdtphys, gmtime, debutphy, julien, &
    99       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
    1614
    1715    USE dimphy
     
    7169    REAL,PARAMETER    :: altemiss_sai=17.e3     ! emission altitude in m
    7270    REAL,PARAMETER    :: sigma_alt_sai=1.e3     ! standard deviation of emission altitude in m
    73     REAL,PARAMETER    :: xlat_sai=0.0           ! latitude of SAI in degree
     71    REAL,PARAMETER    :: xlat_sai=0.01          ! latitude of SAI in degree
    7472    REAL,PARAMETER    :: xlon_sai=120.35        ! longitude of SAI in degree
    7573
     
    9088    REAL                                   :: zrho                ! Density of air [kg/m3]
    9189    REAL                                   :: zdz                 ! thickness of atm. model layer in m
     90    REAL,DIMENSION(klev)                   :: zdm                 ! mass of atm. model layer in kg
    9291    REAL,DIMENSION(klon,klev)              :: dens_aer            ! density of aerosol particles [kg/m3 aerosol] with default H2SO4 mass fraction
    9392    REAL                                   :: dlat, dlon          ! d latitude and d longitude of grid in degree
     93    REAL                                   :: emission            ! emission
    9494
    9595    IF (is_mpi_root) THEN
     
    141141    DO ilon=1, klon
    142142    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) THEN
    148       CALL gather(tr_seri, tr_seri_glo)
    149       IF (MAXVAL(tr_seri_glo).LT.1.e-30) THEN
     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) THEN
     148!      CALL gather(tr_seri, tr_seri_glo)
     149!      IF (MAXVAL(tr_seri_glo).LT.1.e-30) THEN
    150150!--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
    156162
    157163!--sulfur emission, depending on chosen scenario (flag_sulf_emit)
     
    170176          IF  ( xlat(i).GE.xlat_vol-dlat .AND. xlat(i).LT.xlat_vol+dlat .AND. &
    171177                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
    172180!         compute altLMDz
    173181            altLMDz(:)=0.0
    174182            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
    178187            ENDDO
    179188            !compute distribution of emission to vertical model layers (based on Gaussian peak in altitude)
     
    194203            !vertically distributed emission
    195204            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
    199209            ENDDO
    200210          ENDIF ! emission grid cell
     
    211221        IF  ( xlat(i).GE.xlat_sai-dlat .AND. xlat(i).LT.xlat_sai+dlat .AND. &
    212222          &   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
    213225!         compute altLMDz
    214226          altLMDz(:)=0.0
    215227          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
    219232          ENDDO
    220233          !compute distribution of emission to vertical model layers (based on Gaussian peak in altitude)
     
    235248          !vertically distributed emission
    236249          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
    242254          ENDDO
    243255!          !emission as monodisperse particles with 0.1um dry radius (BIN21)
    244256!          !vertically distributed emission
    245257!          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 points
     258!            ! 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
    250262!          ENDDO
    251263        ENDIF ! emission grid cell
     
    259271
    260272!--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)
    262274
    263275!--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)
    265277
    266278!--common routine for nucleation and condensation/evaporation with adaptive timestep
     
    282294          surf_PM25_sulf(i)=surf_PM25_sulf(i)+tr_seri(i,1,it+nbtr_sulgas) &
    283295                           & *132./98.*dens_aer_dry*4./3.*RPI*(mdw(it)/2.)**3 &
    284                            & *pplay(i,1)/t_seri(i,1)/RD*1e9
     296                           & *pplay(i,1)/t_seri(i,1)/RD*1.e9
    285297        ENDIF
    286298      ENDDO
  • LMDZ5/branches/testing/libf/phylmd/alpale_th.F90

    r2594 r2787  
    3838  REAL, DIMENSION(klon), INTENT(INOUT)                       :: alp_bl
    3939  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
    4243
    4344  include "thermcell.h"
     
    7374!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    7475!
     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!!
    7586!---------------------------------------
    7687  IF (iflag_clos_bl .LT. 3) THEN
     
    97108             !----Initialisations
    98109             do i=1,klon
    99                 proba_notrig(i)=1.
     110!!jyg                proba_notrig(i)=1.
    100111                random_notrig(i)=1e6*ale_bl_stat(i)-int(1e6*ale_bl_stat(i))
    101112                if ( random_notrig(i) > random_notrig_max ) random_notrig(i)=0.
     
    120131                do i=1,klon
    121132                   if ( (ale_bl_stat(i) .gt. abs(cin(i))+1.e-10) )  then
    122                       proba_notrig(i)=(1.-exp(-s_trig/s2(i)))** &
    123                            (n2(i)*dtime/tau_trig(i))
     133                      proba_notrig(i)=proba_notrig(i)* &
     134                         (1.-exp(-s_trig/s2(i)))**(n2(i)*dtime/tau_trig(i))
    124135                      !        print *, 'proba_notrig(i) ',proba_notrig(i)
    125136                      if (random_notrig(i) .ge. proba_notrig(i)) then
     
    129140                      endif
    130141                   else
    131                       proba_notrig(i)=1.
     142!!jyg                      proba_notrig(i)=1.
    132143                      random_notrig(i)=0.
    133144                      ale_bl_trig(i)=0.
     
    139150                do i=1,klon
    140151                   if ( (Ale_bl(i) .gt. abs(cin(i))+1.e-10) )  then
    141                       proba_notrig(i)=(1.-exp(-s_trig/s2(i)))** &
    142                            (n2(i)*dtime/tau_trig(i))
     152                      proba_notrig(i)=proba_notrig(i)* &
     153                         (1.-exp(-s_trig/s2(i)))**(n2(i)*dtime/tau_trig(i))
    143154                      !        print *, 'proba_notrig(i) ',proba_notrig(i)
    144155                      if (random_notrig(i) .ge. proba_notrig(i)) then
     
    148159                      endif
    149160                   else
    150                       proba_notrig(i)=1.
     161!!jyg                      proba_notrig(i)=1.
    151162                      random_notrig(i)=0.
    152163                      ale_bl_trig(i)=0.
     
    223234        !----Initializations and random number generation
    224235        do i=1,klon
    225            proba_notrig(i)=1.
     236!!jyg           proba_notrig(i)=1.
    226237           random_notrig(i)=1e6*ale_bl_stat(i)-int(1e6*ale_bl_stat(i))
    227238           if ( ale_bl_trig(i) .lt. abs(cin(i))+1.e-10 ) then
     
    244255              birth_number = n2(i)*exp(-s_trig/s2(i))
    245256              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))
    247258              Alp_bl(i) = Alp_bl(i)* &
    248259                          umexp(-birth_number*cv_feed_area/cell_area(i))/ &
     
    250261                          tau_trig(i)*cv_feed_area/(dtime*cell_area(i))
    251262          else
    252               proba_notrig(i)=1.
     263!!jyg              proba_notrig(i)=1.
    253264              random_notrig(i)=0.
    254265              alp_bl(i)=0.
  • LMDZ5/branches/testing/libf/phylmd/calwake.F90

    r2720 r2787  
    2626
    2727  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
    2831  IMPLICIT NONE
    2932  ! ======================================================================
     
    5154  ! ------
    5255  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: dt_wake, dq_wake
    53   INTEGER, DIMENSION(klon),      INTENT (OUT)        :: wake_k
     56  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_k
    5457  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_d_deltat_gw
    5558  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_h
     
    6972  ! -----------------
    7073  INTEGER                                            :: i, l
     74  INTEGER, DIMENSION(klon)                           :: znatsurf    ! 0 if pctsrf(is_oce)>0.1; 1 else.
    7175  REAL                                               :: aire
    7276  REAL, DIMENSION(klon, klev)                        :: p,  pi
     
    97101
    98102
    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
    100106
    101107  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
    102113
    103114
     
    124135  END DO
    125136
     137!----------------------------------------------------------------
     138!         Initialize tendencies to zero
     139!----------------------------------------------------------------
     140dtls(:,:) = 0.
     141dqls(:,:) = 0.
     142d_deltat_gw(:,:) = 0.
     143d_deltatw(:,:) = 0.
     144d_deltaqw(:,:) = 0.
     145d_sigmaw(:) = 0.
     146d_wdens(:) = 0.
     147!
     148
    126149  DO i = 1, klon
    127150    sigd0(i) = sigd(i)
     
    132155  END DO
    133156
    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                         
    137160
    138161  DO i = 1, klon
     
    178201  END DO
    179202
    180   CALL wake(p, ph, pi, dtime, &
     203  CALL wake(znatsurf, p, ph, pi, dtime, &
    181204    te, qe, omgbe, &
    182205    dtdwn, dqdwn, amdwn, amup, dta, dqa, &
     
    254277    END IF
    255278  END DO
     279!
    256280
    257281!jyg< 
  • LMDZ5/branches/testing/libf/phylmd/cdrag.F90

    • Property svn:keywords set to Id
    r2488 r2787  
    11!
    2 !$Id: cdrag.F90 ???? 2015-??-?? ??:??:??Z ? $
     2!$Id$
    33!
    44 SUBROUTINE cdrag( knon,  nsrf,   &
     
    99  USE dimphy
    1010  USE indice_sol_mod
    11   USE print_control_mod, ONLY: lunout
     11  USE print_control_mod, ONLY: lunout, prt_level
    1212  IMPLICIT NONE
    1313! ================================================================= c
     
    139139     IF (qsurf(i).LT.0.0)  ng_qsurf = ng_qsurf + 1
    140140  ENDDO
    141   IF (ng_q1.GT.0) THEN
     141  IF (ng_q1.GT.0 .and. prt_level > 5) THEN
    142142      WRITE(lunout,*)" *** Warning: Negative q1(humidity at 1st level) values in cdrag.F90 !"
    143143      WRITE(lunout,*)" The total number of the grids is: ", ng_q1
     
    146146!      CALL abort_physic(modname,abort_message,1)
    147147  ENDIF
    148   IF (ng_qsurf.GT.0) THEN
     148  IF (ng_qsurf.GT.0 .and. prt_level > 5) THEN
    149149      WRITE(lunout,*)" *** Warning: Negative qsurf(humidity at surface) values in cdrag.F90 !"
    150150      WRITE(lunout,*)" The total number of the grids is: ", ng_qsurf
     
    172172! the negative qsurf and q1 are set to zero (as in coefcdrag)
    173173     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))) &
    175175          *(1.+RETV*max(q1(i),0.0)) ! negative q1 set to zero
    176176     zri(i) = zgeop1(i)*(ztvd-ztsolv)/(zdu2*ztvd)
  • LMDZ5/branches/testing/libf/phylmd/clesphys.h

    r2720 r2787  
    1313       LOGICAL ok_limitvrai
    1414       LOGICAL ok_all_xml
    15        INTEGER nbapp_rad, iflag_con, nbapp_cv, iflag_ener_conserv
     15       INTEGER nbapp_rad, iflag_con, nbapp_cv, nbapp_wk, iflag_ener_conserv
    1616       REAL co2_ppm, co2_ppm0, solaire
    1717       LOGICAL ok_suntime_rrtm
     
    114114     &     , cycle_diurne, soil_model, new_oliq                         &
    115115     &     , ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad                &
    116      &     , iflag_con, nbapp_cv                                        &
     116     &     , iflag_con, nbapp_cv, nbapp_wk                              &
    117117     &     , iflag_ener_conserv                                         &
    118118     &     , ok_4xCO2atm                                                &
  • LMDZ5/branches/testing/libf/phylmd/conf_phys_m.F90

    r2720 r2787  
    1717       iflag_cld_th, &
    1818       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, &
    2020       flag_aerosol, flag_aerosol_strat, new_aod, &
    2121       flag_bc_internal_mixture, bl95_b0, bl95_b1,&
     
    6161    ! ok_instan:  sorties instantanees
    6262    ! ok_ade, ok_aie: apply or not aerosol direct and indirect effects
     63    ! ok_alw: activate aerosol LW effect
    6364    ! ok_cdnc, ok cloud droplet number concentration
    6465    ! flag_aerosol_strat : flag pour les aerosols stratos
     
    7475    LOGICAL              :: ok_LES
    7576    LOGICAL              :: callstats
    76     LOGICAL              :: ok_ade, ok_aie, ok_cdnc, aerosol_couple
     77    LOGICAL              :: ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple
    7778    INTEGER              :: flag_aerosol
    7879    INTEGER              :: flag_aerosol_strat
     
    9394    LOGICAL, SAVE       :: ok_LES_omp   
    9495    LOGICAL, SAVE       :: callstats_omp
    95     LOGICAL, SAVE       :: ok_ade_omp, ok_aie_omp, ok_cdnc_omp, aerosol_couple_omp
     96    LOGICAL, SAVE       :: ok_ade_omp, ok_aie_omp, ok_alw_omp, ok_cdnc_omp, aerosol_couple_omp
    9697    INTEGER, SAVE       :: flag_aerosol_omp
    9798    INTEGER, SAVE       :: flag_aerosol_strat_omp
     
    207208    LOGICAL,SAVE  :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp
    208209    INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp
    209     INTEGER, SAVE :: nbapp_cv_omp
     210    INTEGER, SAVE :: nbapp_cv_omp, nbapp_wk_omp
    210211    INTEGER, SAVE :: iflag_ener_conserv_omp
    211212    LOGICAL, SAVE :: ok_conserv_q_omp
     
    348349    CALL getin('ok_ade', ok_ade_omp)
    349350
     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
    350359    !
    351360    !Config Key  = ok_aie
     
    389398    flag_aerosol_omp = 0
    390399    CALL getin('flag_aerosol',flag_aerosol_omp)
    391     !
    392     !Config Key  = flag_aerosol_strat
    393     !Config Desc = use stratospheric aerosols 0, 1, 2
    394     ! - 0 = no stratospheric aerosols
    395     ! - 1 = stratospheric aerosols scaled from 550 nm AOD
    396     ! - 2 = stratospheric aerosol properties from CMIP6
    397     !Config Def  = 0
    398     !Config Help = Used in physiq.F
    399     !
    400     !
    401     flag_aerosol_strat_omp = 0
    402     CALL getin('flag_aerosol_strat',flag_aerosol_strat_omp)
    403400
    404401    !
     
    547544    solaire_omp = 1365.
    548545    CALL getin('solaire', solaire_omp)
    549     !
    550     !Config Key  = ok_sun_time
    551     !Config Desc = oui ou non variabilite solaire
    552     !Config Def  = .FALSE.
    553     !Config Help =
    554     !
    555     !
    556     !valeur AMIP II
    557     ok_suntime_rrtm_omp = .FALSE.
    558     CALL getin('ok_suntime_rrtm',ok_suntime_rrtm_omp)
    559546    !
    560547    !Config Key  = co2_ppm
     
    790777    CALL getin('nbapp_cv',nbapp_cv_omp)
    791778
     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
    792787    !Config  Key  = iflag_ener_conserv
    793788    !Config  Desc = Flag de convection
     
    989984    CALL getin('ok_chlorophyll',ok_chlorophyll_omp)
    990985    !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
    9911012
    9921013    !
     
    20662087    iflag_con = iflag_con_omp
    20672088    nbapp_cv = nbapp_cv_omp
     2089    nbapp_wk = nbapp_wk_omp
    20682090    iflag_ener_conserv = iflag_ener_conserv_omp
    20692091    ok_conserv_q = ok_conserv_q_omp
     
    21522174    ok_ade = ok_ade_omp
    21532175    ok_aie = ok_aie_omp
     2176    ok_alw = ok_alw_omp
    21542177    ok_cdnc = ok_cdnc_omp
    21552178    aerosol_couple = aerosol_couple_omp
     
    24002423    write(lunout,*)'iflag_con=',iflag_con
    24012424    write(lunout,*)'nbapp_cv=',nbapp_cv
     2425    write(lunout,*)'nbapp_wk=',nbapp_wk
    24022426    write(lunout,*)'iflag_ener_conserv=',iflag_ener_conserv
    24032427    write(lunout,*)'ok_conserv_q=',ok_conserv_q
     
    24582482    write(lunout,*)' ok_ade = ',ok_ade
    24592483    write(lunout,*)' ok_aie = ',ok_aie
     2484    write(lunout,*)' ok_alw = ',ok_alw
    24602485    write(lunout,*)' aerosol_couple = ', aerosol_couple
    24612486    write(lunout,*)' flag_aerosol = ', flag_aerosol
  • LMDZ5/branches/testing/libf/phylmd/cosp/cosp_output_write_mod.F90

    r2720 r2787  
    370370     modis%Optical_Thickness_vs_Cloud_Top_Pressure(:,icl,:),nvertisccp,icl)           
    371371   enddo
    372  endif
    373372
    374373    where(modis%Optical_Thickness_vs_ReffIce == R_UNDEF) &
     
    384383     modis%Optical_Thickness_vs_ReffLiq(:,icl,:),nvertReffLiq,icl)
    385384    enddo
     385 endif
    386386
    387387 IF(.NOT.cosp_varsdefined) THEN
  • LMDZ5/branches/testing/libf/phylmd/cv3_routines.F90

    r2720 r2787  
    8383
    8484! 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)
    8589     dpbase=-40.
    8690     CALL getin_p('dpbase',dpbase)
     
    117121     CALL getin_p('tlcrit',tlcrit)
    118122
     123    WRITE (*, *) 't_top_max=', t_top_max
    119124    WRITE (*, *) 'dpbase=', dpbase
    120125    WRITE (*, *) 'pbcrit=', pbcrit
     
    453458    END DO
    454459  END DO !  iter
     460
    455461  DO i = 1, len
    456462    p2feed(i) = pfeed(i)
     
    467473! --- are reasonable
    468474! -------------------------------------------------------------------
    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
    472490
    473491! -------------------------------------------------------------------
     
    10561074END SUBROUTINE icefrac
    10571075
    1058 SUBROUTINE cv3_undilute2(nloc, ncum, nd, icb, icbs, nk, &
     1076SUBROUTINE cv3_undilute2(nloc, ncum, nd, iflag, icb, icbs, nk, &
    10591077                         tnk, qnk, gznk, hnk, t, q, qs, gz, &
    10601078                         p, ph, h, tv, lv, lf, pbase, buoybase, plcl, &
     
    11011119  REAL, DIMENSION (nloc, nd), INTENT (INOUT)         :: tp, tvp, clw   ! Input for k = 1, icb+1 (computed in cv3_undilute1)
    11021120                                                                       ! Output above
     1121  INTEGER, DIMENSION (nloc), INTENT (INOUT)          :: iflag
    11031122
    11041123!outputs:
     
    15791598! ori          frac(i)=max(frac(i),0.0)
    15801599! 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
    15811607
    15821608! =====================================================================
     
    28202846        END IF !(amp2.gt.(0.1*amfac))
    28212847
    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
    28282856
    28292857! ***      force mp to decrease linearly to zero                 ***
     
    28372865          mp(il, i) = mp(il, i)*(ph(il,1)-ph(il,i))/(ph(il,1)-0.9*plcl(il))
    28382866        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
    28392876
    28402877      END IF ! (i.le.inb(il) .and. lwork(il) .and. i.ne.1)
  • LMDZ5/branches/testing/libf/phylmd/cv3param.h

    r2542 r2787  
    1111      logical ok_intermittent
    1212      integer noff, minorig, nl, nlp, nlm
     13      integer cv_flag_feed
     14      integer flag_epKEorig,flag_wb
    1315      real sigdz, spfac
    14       integer flag_epKEorig,flag_wb
    1516      real pbcrit, ptcrit
    1617      real elcrit, tlcrit
     
    1920      real dtovsh, dpbase, dttrig
    2021      real dtcrit, tau, beta, alpha, alpha1
     22      real T_top_max
    2123      real tau_stop, noconv_stop
    2224      real wbmax
     
    3133                      ,dtovsh, dpbase, dttrig &
    3234                      ,dtcrit, tau, beta, alpha, alpha1 &
     35                      ,T_top_max &
    3336                      ,tau_stop, noconv_stop &
    3437                      ,wbmax &
    3538                      ,delta, betad  &
    3639                      ,flag_epKEorig &
    37                       ,flag_wb &
     40                      ,flag_wb, cv_flag_feed &
    3841                      ,noff, minorig, nl, nlp, nlm  &
    3942                      ,ok_convstop, ok_intermittent &
  • LMDZ5/branches/testing/libf/phylmd/cva_driver.F90

    r2669 r2787  
    353353!         9     No moist convection: cloud base is higher
    354354!               then the level NL-1.
     355!        10     No moist convection: cloud top is too warm.
     356!
    355357
    356358! ft:   Array of temperature tendency (K/s) of dimension ND, defined at same
     
    907909        if (prt_level >= 9) &
    908910             PRINT *, 'cva_driver -> cv3_undilute2'
    909       CALL cv3_undilute2(nloc, ncum, nd, icb, icbs, nk, &              !na->nd
     911      CALL cv3_undilute2(nloc, ncum, nd, iflag, icb, icbs, nk, &        !na->nd
    910912                         tnk, qnk, gznk, hnk, t, q, qs, gz, &
    911913                         p, ph, h, tv, lv, lf, pbase, buoybase, plcl, &
  • LMDZ5/branches/testing/libf/phylmd/dyn1d/mod_1D_cases_read2.F90

    r2720 r2787  
    178178
    179179        print*,'Allocations OK'
    180         call read_cas(nid,nlev_cas,nt_cas                                       &
     180        call read_cas2(nid,nlev_cas,nt_cas                                       &
    181181     &     ,z_cas,plev_cas,t_cas,q_cas,rh_cas,th_cas,rv_cas,u_cas,v_cas         &
    182182     &     ,ug_cas,vg_cas,vitw_cas,du_cas,hu_cas,vu_cas,dv_cas,hv_cas,vv_cas    &
     
    241241        allocate(z_cas(nlev_cas,nt_cas),zh_cas(nlev_cas+1))
    242242        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))
    244245        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))
    245246        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))
     
    382383END MODULE mod_1D_cases_read2
    383384!=====================================================================
    384       subroutine read_cas(nid,nlevel,ntime                          &
     385      subroutine read_cas2(nid,nlevel,ntime                          &
    385386     &     ,zz,pp,temp,qv,rh,theta,rv,u,v,ug,vg,w,                   &
    386387     &     du,hu,vu,dv,hv,vv,dt,dtrad,ht,vt,dq,hq,vq,                     &
     
    423424
    424425       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)
    426427       enddo
    427428       do i=1,nbvar3d
     
    433434       enddo
    434435       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)
    436437         if(i.LE.35) then
    437438#ifdef NC_DOUBLE
     
    440441         ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul)
    441442#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)
    443444         if(ierr/=NF_NOERR) then
    444445            print *,'Pb a la lecture de cas.nc: ',name_var(i)
     
    451452         ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul1)
    452453#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)
    454455         if(ierr/=NF_NOERR) then
    455456            print *,'Pb a la lecture de cas.nc: ',name_var(i)
     
    501502
    502503         return
    503          end subroutine read_cas
     504         end subroutine read_cas2
    504505!======================================================================
    505506      subroutine read2_cas(nid,nlevel,ntime,                                       &
     
    545546      data name_var/'coor_par_a','coor_par_b','height_h','pressure_h',&
    546547     &'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',&
    548550     &'height_f','pressure_f','temp','theta','thv','thl','qv','ql','qi','rv','u','v',&
    549551     &'sfc_sens_flx','sfc_lat_flx','ts','ps','ustar','tke',&
     
    686688         end subroutine read2_cas
    687689!======================================================================
    688         SUBROUTINE interp_case_time(day,day1,annee_ref                &
     690        SUBROUTINE interp_case_time2(day,day1,annee_ref                &
    689691!    &         ,year_cas,day_cas,nt_cas,pdt_forc,nlev_cas      &
    690692     &         ,nt_cas,nlev_cas                                       &
     
    887889
    888890        return
    889         END SUBROUTINE interp_case_time
     891        END SUBROUTINE interp_case_time2
    890892
    891893!**********************************************************************************************
  • LMDZ5/branches/testing/libf/phylmd/iophys.F90

    r2669 r2787  
    11      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
    56      IMPLICIT NONE
    67
     
    3940!=================================================================
    4041
    41 #include "dimensions.h"
    42 #include "paramet.h"
    43 #include "netcdf.inc"
    44 #include "iotd.h"
    45 
    4642
    4743! Arguments on input:
     
    5248      real px(klon_omp,lllm)
    5349      real xglo(klon_glo,lllm)
    54       real zx(iim,jjp1,lllm)
     50      real zx(nbp_lon,nbp_lat,lllm)
    5551
    5652
     
    6864!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    6965      SUBROUTINE iophys_ini
    70       USE mod_phys_lmdz_para
     66      USE mod_phys_lmdz_para, ONLY: is_mpi_root
    7167      USE vertical_layers_mod, ONLY: presnivs
    7268      USE regular_lonlat_mod, ONLY: lon_reg, lat_reg
  • LMDZ5/branches/testing/libf/phylmd/limit_read_mod.F90

    r2720 r2787  
    190190!****************************************************************************************
    191191    IF (first_call) THEN
     192       first_call=.FALSE.
    192193       ! calculate number of time steps for one day
    193194       lmt_pas = NINT(86400./dtime * 1.0)
     
    204205       END IF
    205206
    206        first_call=.FALSE.
    207     ENDIF
    208  
    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 read
    218        jour_lu = jour
    219        is_modified = .TRUE.
    220207!$OMP MASTER  ! Only master thread
    221208       IF (is_mpi_root) THEN ! Only master processus
    222 
    223209          ierr = NF90_OPEN ('limit.nc', NF90_NOWRITE, nid)
    224210          IF (ierr /= NF90_NOERR) CALL abort_physic(modname,&
     
    237223          ierr=NF90_INQUIRE(nid, UnlimitedDimID=ndimid)
    238224          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,')'
    244227          IF(nn/=year_len) CALL abort_physic(modname,abort_message,1)
    245228
     
    247230          ierr=NF90_INQ_DIMID(nid, 'points_physiques', ndimid)
    248231          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,')'
    254234          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)
    255260
    256261          ! La tranche de donnees a lire:
     
    370375  END SUBROUTINE limit_read_tot
    371376
    372   !--------------------------------------------------------------------------------------
    373   SUBROUTINE num2str(n,str)
    374   !--------------------------------------------------------------------------------------
    375   ! Arguments:
    376     INTEGER,           INTENT(IN)  :: n
    377     CHARACTER(LEN=99), INTENT(OUT) :: str
    378   !--------------------------------------------------------------------------------------
    379   ! Local variables:
    380     INTEGER :: nn
    381   !--------------------------------------------------------------------------------------
    382     nn=n; str=''; DO WHILE(nn>0); str=CHAR(nn-10*(nn/10)-48)//TRIM(str); nn=nn/10; END DO
    383   END SUBROUTINE num2str
    384   !--------------------------------------------------------------------------------------
    385 
    386377END MODULE limit_read_mod
  • LMDZ5/branches/testing/libf/phylmd/ocean_albedo.F90

    r2720 r2787  
    203203  ! Use Morel 91 formula to compute the diffuse
    204204  ! 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)
    206208  ZRWDF(1:knon)=ZR00(1:knon)*(1.-ZR22(1:knon))*(1.-ZR11DF(1:knon))/(1.-ZR00(1:knon)*ZR22(1:knon))
    207209   
  • LMDZ5/branches/testing/libf/phylmd/phys_local_var_mod.F90

    r2720 r2787  
    255255      REAL,ALLOCATABLE,SAVE,DIMENSION(:)            :: ale_wake, alp_wake
    256256!$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)                       
    259259    REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)            :: wake_omg
    260260!$OMP THREADPRIVATE(wake_omg)                     
     
    419419
    420420#ifdef CPP_StratAer
    421 ! variables for strat. aerosol CK
     421!
     422! variables for stratospheric aerosol
    422423      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: R2SO4
    423424!$OMP THREADPRIVATE(R2SO4)
     
    426427      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: f_r_wet
    427428!$OMP THREADPRIVATE(f_r_wet)
    428       REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sfluxaer
    429 !$OMP THREADPRIVATE(sfluxaer)
    430429      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: decfluxaer
    431430!$OMP THREADPRIVATE(decfluxaer)
    432431      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: mdw
    433432!$OMP THREADPRIVATE(mdw)
    434       REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sulf_convert
    435 !$OMP THREADPRIVATE(sulf_convert)
    436       REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sulf_nucl
    437 !$OMP THREADPRIVATE(sulf_nucl)
    438       REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sulf_cond_evap
    439 !$OMP THREADPRIVATE(sulf_cond_evap)
    440       REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ocs_convert
    441 !$OMP THREADPRIVATE(ocs_convert)
    442       REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: SO2_backgr_tend
    443 !$OMP THREADPRIVATE(SO2_backgr_tend)
    444       REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: OCS_backgr_tend
    445 !$OMP THREADPRIVATE(OCS_backgr_tend)
    446433      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: OCS_lifetime
    447434!$OMP THREADPRIVATE(OCS_lifetime)
     
    456443      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_550
    457444!$OMP THREADPRIVATE(tau_strat_550)
    458       REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_550_lay
    459 !$OMP THREADPRIVATE(tau_strat_550_lay)
    460445      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_1020
    461446!$OMP THREADPRIVATE(tau_strat_1020)
    462447      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tausum_strat
    463448!$OMP THREADPRIVATE(tausum_strat)
    464       REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sulf_dep_dry
    465 !$OMP THREADPRIVATE(sulf_dep_dry)
    466       REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: sulf_dep_wet
    467 !$OMP THREADPRIVATE(sulf_dep_wet)
    468449      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: surf_PM25_sulf
    469450!$OMP THREADPRIVATE(surf_PM25_sulf)
     
    472453      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vsed_aer
    473454!$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)
    474488#endif
    475489
     
    614628!!          Wake variables
    615629      ALLOCATE(ale_wake(klon), alp_wake(klon))
    616       ALLOCATE(wake_h(klon))
     630      ALLOCATE(wake_h(klon),wake_k(klon))
    617631      ALLOCATE(wake_omg(klon, klev))
    618632      ALLOCATE(d_deltat_wk(klon, klev), d_deltaq_wk(klon, klev))
     
    718732      ALLOCATE (DENSO4(klon,klev))
    719733      ALLOCATE (f_r_wet(klon,klev))
    720       ALLOCATE (sfluxaer(klon))
    721734      ALLOCATE (decfluxaer(klon,nbtr))
    722735      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))
    729742      ALLOCATE (OCS_lifetime(klon,klev))
    730743      ALLOCATE (SO2_lifetime(klon,klev))
     
    733746      ALLOCATE (cg_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave+nwave_lw,nbtr))
    734747      ALLOCATE (tau_strat_550(klon,klev))
    735       ALLOCATE (tau_strat_550_lay(klon,klev))
    736748      ALLOCATE (tau_strat_1020(klon,klev))
    737749      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))
    740762      ALLOCATE (surf_PM25_sulf(klon))
    741763      ALLOCATE (p_tropopause(klon))
     
    867889!
    868890      DEALLOCATE(ale_wake, alp_wake)
    869       DEALLOCATE(wake_h)
     891      DEALLOCATE(wake_h,wake_k)
    870892      DEALLOCATE(wake_omg)
    871893      DEALLOCATE(d_deltat_wk, d_deltaq_wk)
     
    964986      DEALLOCATE (DENSO4)
    965987      DEALLOCATE (f_r_wet)
    966       DEALLOCATE (sfluxaer)
    967988      DEALLOCATE (decfluxaer)
    968989      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)
    975990      DEALLOCATE (SO2_lifetime)
    976991      DEALLOCATE (OCS_lifetime)
     
    979994      DEALLOCATE (cg_bin)
    980995      DEALLOCATE (tau_strat_550)
    981       DEALLOCATE (tau_strat_550_lay)
    982996      DEALLOCATE (tau_strat_1020)
    983997      DEALLOCATE (tausum_strat)
    984       DEALLOCATE (sulf_dep_dry)
    985       DEALLOCATE (sulf_dep_wet)
    986998      DEALLOCATE (surf_PM25_sulf)
    987999      DEALLOCATE (p_tropopause)
    9881000      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)
    9891019#endif
    9901020
  • LMDZ5/branches/testing/libf/phylmd/phys_output_ctrlout_mod.F90

    r2720 r2787  
    1919!!! Comosantes de la coordonnee sigma-hybride
    2020!!! 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) /))
    2727
    2828!!! 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/), &
    3232    'aire', 'Grid area', '-', (/ 'once', 'once', 'once', 'once', 'once', 'once', &
    33                                      'once', 'once', 'once' /))
    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/), &
    3535    '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) /))
    4141
    4242!!! 2D
     
    4444! Marine
    4545
    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/),&
    4747  'alt_tropo','Tropopause pressure','hPa',&
    4848   (/ "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/),&
    5252  'map_prop_hc','Proportion of high clouds',' ',&
    5353   (/ "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)" /))
    5555
    5656  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/),&
    5858  'map_prop_hist','Proportion of high ice semi-transp clouds',' ',&
    5959   (/ "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)" /))
    6161
    6262  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/),&
    6464  'map_emis_hc','Emissivity of high clouds',' ',&
    6565   (/ "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)" /))
    6767
    6868  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/),&
    7070  'map_iwp_hc','Ice water path of high clouds','g/m2',&
    7171   (/ "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)" /))
    7373
    7474  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/),&
    7676  'map_deltaz_hc','geom thickness of high clouds','m',&
    7777   (/ "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)" /))
    7979
    8080  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/),&
    8282  'map_pcld_hc','cloud pressure of high clouds','hPa',&
    8383   (/ "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)" /))
    8585
    8686   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/),&
    8888  'map_tcld_hc','cloud temperature of high clouds','K',&
    8989   (/ "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)" /))
    9291
    9392  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/),&
    9594  'map_emis_hist','Emissivity of high ice st clouds',' ',&
    9695   (/ "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)" /))
    9897
    9998  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/),&
    101100  'map_iwp_hist','Ice water path of high ice st clouds','g/m2',&
    102101   (/ "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)" /))
    104103
    105104  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/),&
    107106  'map_deltaz_hist','geom thickness of high ice st clouds','m',&
    108107   (/ "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)" /))
    110109
    111110  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/),&
    113112  'map_rad_hist','ice crystals radius in high ice st clouds','µm',&
    114113   (/ "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)" /))
    116115
    117116
    118117 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/),&
    120119  'map_emis_Cb','Emissivity of high Cb clouds',' ',&
    121120   (/ "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)" /))
    123122
    124123 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/),&
    126125  'map_pcld_Cb','cloud pressure of high Cb clouds','hPa',&
    127126   (/ "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)" /))
    129128
    130129 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/),&
    132131  'map_tcld_Cb','cloud temperature of high Cb clouds','K',&
    133132   (/ "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)" /))
    135134
    136135
    137136 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/),&
    139138  'map_emis_Anv','Emissivity of high Anv clouds',' ',&
    140139   (/ "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)" /))
    142141
    143142 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/),&
    145144  'map_pcld_Anv','cloud pressure of high Anv clouds','hPa',&
    146145   (/ "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)" /))
    148147
    149148  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/),&
    151150  'map_tcld_Anv','cloud temperature of high Anv clouds','K',&
    152151   (/ "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)" /))
    154153
    155154  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/),&
    157156  'map_emis_ThCi','Emissivity of high ThCi clouds',' ',&
    158157   (/ "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)" /))
    160159
    161160  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/),&
    163162  'map_pcld_ThCi','cloud pressure of high ThCi clouds','hPa',&
    164163   (/ "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)" /))
    166165
    167166  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/),&
    169168  'map_tcld_ThCi','cloud temperature of high ThCi clouds','K',&
    170169   (/ "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)" /))
    172171
    173172   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/),&
    175174  'map_ntot','total AIRS cloud fraction',' ',&
    176175   (/ "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)" /))
    178177
    179178  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/),&
    181180  'map_hc','high clouds AIRS cloud fraction',' ',&
    182181   (/ "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)" /))
    184183
    185184  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/),&
    187186  'map_hist','high clouds ice st AIRS cloud fraction',' ',&
    188187   (/ "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)" /))
    190189
    191190  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/),&
    193192  'map_Cb','high clouds Cb AIRS cloud fraction',' ',&
    194193   (/ "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)" /))
    196195
    197196 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/),&
    199198  'map_ThCi','high clouds ThCi AIRS cloud fraction',' ',&
    200199   (/ "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)" /))
    202201
    203202 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/),&
    205204  'map_Anv','high clouds Anv AIRS cloud fraction',' ',&
    206205   (/ "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)" /))
    209207
    210208! Fin Marine
    211209
    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/), &
    225223    '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/), &
    228227    't2m_max', 'Temp 2m max', 'K', &
    229228      (/ "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 /), &
    233232    '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 /), &
    236236    't2m_max_mon', 'Monthly average max 2m temperature', 'K', &
    237237      (/ "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)" /))
    239239
    240240  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/), &
    256256    'wind10max', '10m wind speed max', 'm/s', &
    257257    (/ "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) /))
    273274
    274275  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_ustar_srf     = (/ &
    275       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'ustar_ter', &
    276       "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &
    277       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'ustar_lic', &
    278       "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &
    279       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'ustar_oce', &
    280       "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &
    281       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'ustar_sic', &
    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) /)) /)
    283284
    284285  TYPE(ctrl_out), SAVE, DIMENSION(5) :: o_wstar         = (/ &
    285       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'wstar_ter', &
    286       "Friction velocity "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &
    287       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'wstar_lic', &
    288       "Friction velocity "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &
    289       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'wstar_oce', &
    290       "Friction velocity "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &
    291       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'wstar_sic', &
    292       "Friction velocity "//clnsurf(4),"m/s", (/ ('', i=1, 9) /)), &
    293       ctrl_out((/ 5, 5, 10, 10, 10, 10, 11, 11, 11 /),'wstar', &
    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) /)) /)
    295296
    296297  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_u10m_srf     = (/ &
    297       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'u10m_ter', &
    298       "Vent Zonal 10m "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &
    299       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'u10m_lic', &
    300       "Vent Zonal 10m "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &
    301       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'u10m_oce', &
    302       "Vent Zonal 10m "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &
    303       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'u10m_sic', &
    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) /)) /)
    305306
    306307  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_v10m_srf     = (/ &
    307       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'v10m_ter', &
    308       "Vent meredien 10m "//clnsurf(1),"m/s", (/ ('', i=1, 9) /)), &
    309       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'v10m_lic', &
    310       "Vent meredien 10m "//clnsurf(2),"m/s", (/ ('', i=1, 9) /)), &
    311       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'v10m_oce', &
    312       "Vent meredien 10m "//clnsurf(3),"m/s", (/ ('', i=1, 9) /)), &
    313       ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /),'v10m_sic', &
    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/), &
    319320    '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) /))
    350351
    351352
    352353  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evap_srf     = (/ &
    353       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'evap_ter', &
    354       "evaporation at surface "//clnsurf(1),"kg/(s*m2)", (/ ('', i=1, 9) /)), &
    355       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'evap_lic', &
    356       "evaporation at surface "//clnsurf(2),"kg/(s*m2)", (/ ('', i=1, 9) /)), &
    357       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'evap_oce', &
    358       "evaporation at surface "//clnsurf(3),"kg/(s*m2)", (/ ('', i=1, 9) /)), &
    359       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'evap_sic', &
    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) /))
    392393
    393394  ! arajouter
    394   !  type(ctrl_out),save :: o_LWupTOA     = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 /),'LWupTOA', &
    395   !    (/ ('', i=1, 9) /))
    396   !  type(ctrl_out),save :: o_LWupTOAclr  = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 /),'LWupTOAclr', &
    397   !    (/ ('', i=1, 9) /))
    398   !  type(ctrl_out),save :: o_LWdnTOA     = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 /),'LWdnTOA', &
    399   !    (/ ('', i=1, 9) /))
    400   !  type(ctrl_out),save :: o_LWdnTOAclr  = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 /),'LWdnTOAclr', &
    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) /))
    468469
    469470  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_taux_srf = (/           &
    470       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'taux_ter',             &
    471       "Zonal wind stress"//clnsurf(1), "Pa", (/ ('', i=1, 9) /)), &
    472       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'taux_lic',             &
    473       "Zonal wind stress"//clnsurf(2), "Pa", (/ ('', i=1, 9) /)), &
    474       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'taux_oce',             &
    475       "Zonal wind stress"//clnsurf(3), "Pa", (/ ('', i=1, 9) /)), &
    476       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'taux_sic',             &
    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) /)) /)
    478479
    479480  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tauy_srf     = (/             &
    480       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tauy_ter',                   &
    481       "Meridional wind stress "//clnsurf(1),"Pa", (/ ('', i=1, 9) /)),  &
    482       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tauy_lic',                   &
    483       "Meridional wind stress "//clnsurf(2),"Pa", (/ ('', i=1, 9) /)),  &
    484       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tauy_oce',                   &
    485       "Meridional wind stress "//clnsurf(3),"Pa", (/ ('', i=1, 9) /)),  &
    486       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tauy_sic',                   &
    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) /)) /)
    488489
    489490  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_pourc_srf    = (/ &
    490       ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 /),'pourc_ter',      &
    491       "% "//clnsurf(1),"%", (/ ('', i=1, 9) /)),            &
    492       ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 /),'pourc_lic',      &
    493       "% "//clnsurf(2),"%", (/ ('', i=1, 9) /)),            &
    494       ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 /),'pourc_oce',      &
    495       "% "//clnsurf(3),"%", (/ ('', i=1, 9) /)),            &
    496       ctrl_out((/ 1, 7, 10, 10, 10, 10, 11, 11, 11 /),'pourc_sic',      &
    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) /)) /)
    498499
    499500  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fract_srf    = (/ &
    500       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'fract_ter',      &
    501       "Fraction "//clnsurf(1),"1", (/ ('', i=1, 9) /)),     &
    502       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'fract_lic',      &
    503       "Fraction "//clnsurf(2),"1", (/ ('', i=1, 9) /)),     &
    504       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'fract_oce',      &
    505       "Fraction "//clnsurf(3),"1", (/ ('', i=1, 9) /)),     &
    506       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'fract_sic',      &
    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) /)) /)
    508509
    509510  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tsol_srf     = (/ &
    510       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tsol_ter',       &
    511       "Temperature "//clnsurf(1),"K", (/ ('', i=1, 9) /)),  &
    512       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tsol_lic',       &
    513       "Temperature "//clnsurf(2),"K", (/ ('', i=1, 9) /)),  &
    514       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tsol_oce',       &
    515       "Temperature "//clnsurf(3),"K", (/ ('', i=1, 9) /)),  &
    516       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'tsol_sic',       &
    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) /)) /)
    518519
    519520  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evappot_srf  = (/ &
    520       ctrl_out((/ 1, 6, 10, 10, 10, 10, 11, 11, 11 /),'evappot_ter',    &
    521       "Temperature"//clnsurf(1),"K", (/ ('', i=1, 9) /)),   &
    522       ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 /),'evappot_lic',    &
    523       "Temperature"//clnsurf(2),"K", (/ ('', i=1, 9) /)),   &
    524       ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 /),'evappot_oce',    &
    525       "Temperature"//clnsurf(3),"K", (/ ('', i=1, 9) /)),   &
    526       ctrl_out((/ 4, 6, 10, 10, 10, 10, 11, 11, 11 /),'evappot_sic',    &
    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) /)) /)
    528529
    529530  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_sens_srf     = (/          &
    530       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'sens_ter',                 &
    531       "Sensible heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &
    532       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'sens_lic',                 &
    533       "Sensible heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &
    534       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'sens_oce',                 &
    535       "Sensible heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &
    536       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'sens_sic',                 &
    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) /)) /)
    538539
    539540  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_lat_srf      = (/        &
    540       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'lat_ter',                &
    541       "Latent heat flux "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &
    542       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'lat_lic',                &
    543       "Latent heat flux "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &
    544       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'lat_oce',                &
    545       "Latent heat flux "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &
    546       ctrl_out((/ 1, 6, 10, 7, 10, 10, 11, 11, 11 /),'lat_sic',                &
    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) /)) /)
    548549
    549550  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_flw_srf      = (/ &
    550       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'flw_ter',       &
    551       "LW "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)),        &
    552       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'flw_lic',       &
    553       "LW "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)),        &
    554       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'flw_oce',       &
    555       "LW "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)),        &
    556       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'flw_sic',       &
    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) /)) /)
    558559
    559560  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_fsw_srf      = (/ &
    560       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'fsw_ter',       &
    561       "SW "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)),        &
    562       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'fsw_lic',       &
    563       "SW "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)),        &
    564       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'fsw_oce',       &
    565       "SW "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)),        &
    566       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'fsw_sic',       &
    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) /)) /)
    568569
    569570  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbils_srf    = (/ &
    570       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbils_ter',     &
    571       "Bilan sol "//clnsurf(1),"W/m2", (/ ('', i=1, 9) /)), &
    572       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbils_lic',     &
    573       "Bilan sol "//clnsurf(2),"W/m2", (/ ('', i=1, 9) /)), &
    574       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbils_oce',     &
    575       "Bilan sol "//clnsurf(3),"W/m2", (/ ('', i=1, 9) /)), &
    576       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbils_sic',     &
    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) /)) /)
    578579
    579580  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wbilo_srf    = (/      &
    580       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbilo_ter',          &
    581       "Bilan eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    582       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbilo_lic',          &
    583       "Bilan eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    584       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbilo_oce',          &
    585       "Bilan eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    586       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbilo_sic',          &
    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) /)) /)
    588589
    589590  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wevap_srf    = (/      &
    590       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_ter',          &
    591       "Evap eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    592       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_lic',          &
    593       "Evap eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    594       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_oce',          &
    595       "Evap eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    596       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_sic',          &
    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) /)) /)
    598599
    599600  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wrain_srf    = (/      &
    600       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_ter',          &
    601       "Pluie eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    602       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_lic',          &
    603       "Pluie eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    604       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_oce',          &
    605       "Pluie eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    606       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_sic',          &
    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) /)) /)
    608609
    609610  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wsnow_srf    = (/      &
    610       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_ter',          &
    611       "Neige eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    612       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_lic',          &
    613       "Neige eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    614       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_oce',          &
    615       "Neige eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
    616       ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_sic',          &
    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) /))
    684685  !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 /),'s_capCL', &
    686 !    (/ ('', i=1, 9) /))
    687   ! type(ctrl_out),save :: o_s_oliqCL     = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'s_oliqCL', &
    688 !    (/ ('', i=1, 9) /))
    689   ! type(ctrl_out),save :: o_s_cteiCL     = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'s_cteiCL', &
    690 !    (/ ('', i=1, 9) /))
    691   ! type(ctrl_out),save :: o_s_trmb1      = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'s_trmb1', &
    692 !    (/ ('', i=1, 9) /))
    693   ! type(ctrl_out),save :: o_s_trmb2      = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'s_trmb2', &
    694 !    (/ ('', i=1, 9) /))
    695   ! type(ctrl_out),save :: o_s_trmb3      = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'s_trmb3', &
    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) /))
    721722!!!
    722723!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) /))
    731732!!
    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) /))
    740741!!
    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) /))
    757758!>nrlmd+jyg
    758759!!!
    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) /))
    767768
    768769!!! nrlmd le 10/04/2012
    769770
    770771!-------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) /))
    789786
    790787!-------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) /))
    801798
    802799!!! fin nrlmd le 10/04/2012
     
    805802
    806803  TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_uSTDlevs     = (/                    &
    807       ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u850', "Zonal wind 850hPa", "m/s",     &
    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 /),'u700', "Zonal wind 700hPa", "m/s",     &
    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 /),'u500', "Zonal wind 500hPa", "m/s",     &
    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 /),'u200', "Zonal wind 200hPa", "m/s",     &
    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 /),'u100', "Zonal wind 100hPa", "m/s",     &
    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 /),'u50', "Zonal wind 50hPa", "m/s",     &
    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 /),'u10', "Zonal wind 10hPa", "m/s",     &
    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)' /)) /)
    821818
    822819  TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_vSTDlevs     = (/                     &
    823       ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v850', "Meridional wind 850hPa", "m/s", &
    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 /),'v700', "Meridional wind 700hPa", "m/s", &
    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 /),'v500', "Meridional wind 500hPa", "m/s", &
    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 /),'v200', "Meridional wind 200hPa", "m/s", &
    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 /),'v100', "Meridional wind 100hPa", "m/s", &
    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 /),'v50', "Meridional wind 50hPa", "m/s",  &
    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 /),'v10', "Meridional wind 10hPa", "m/s",  &
    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)' /)) /)
    837834
    838835  TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_wSTDlevs     = (/                    &
    839       ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w850', "Vertical wind 850hPa", "Pa/s", &
    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 /),'w700', "Vertical wind 700hPa", "Pa/s", &
    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 /),'w500', "Vertical wind 500hPa", "Pa/s", &
    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 /),'w200', "Vertical wind 200hPa", "Pa/s", &
    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 /),'w100', "Vertical wind 100hPa", "Pa/s", &
    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 /),'w50', "Vertical wind 50hPa", "Pa/s",  &
    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 /),'w10', "Vertical wind 10hPa", "Pa/s",  &
    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)' /)) /)
    853850
    854851  TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_tSTDlevs     = (/                    &
    855       ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t850', "Temperature 850hPa", "K",      &
    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 /),'t700', "Temperature 700hPa", "K",      &
    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 /),'t500', "Temperature 500hPa", "K",      &
    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 /),'t200', "Temperature 200hPa", "K",      &
    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 /),'t100', "Temperature 100hPa", "K",      &
    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 /),'t50',  "Temperature 50hPa", "K",      &
    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 /),'t10',  "Temperature 10hPa", "K",      &
    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)' /)) /)
    869866
    870867  TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_qSTDlevs     = (/                             &
    871       ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q850', "Specific humidity 850hPa", &
    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 /),'q700', "Specific humidity 700hPa", &
    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 /),'q500', "Specific humidity 500hPa", &
    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 /),'q200', "Specific humidity 200hPa", &
    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 /),'q100', "Specific humidity 100hPa", &
    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 /),'q50', "Specific humidity 50hPa",  &
    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 /),'q10', "Specific humidity 10hPa", &
    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)' /)) /)
    885882
    886883  TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_zSTDlevs   = (/                           &
    887       ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z850', "Geopotential height 850hPa",        &
    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 /),'z700', "Geopotential height 700hPa",        &
    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 /),'z500', "Geopotential height 500hPa",        &
    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 /),'z200', "Geopotential height 200hPa",        &
    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 /),'z100', "Geopotential height 100hPa",        &
    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 /),'z50', "Geopotential height 50hPa",         &
    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 /),'z10', "Geopotential height 10hPa",         &
    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) /))
    908905
    909906  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) /)) /)
    914911
    915912  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/), &
    928925    '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)', &
    933931         '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',                                  &
    945942      (/ '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)' /))
    947944
    948945  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_srf      = (/             &
    949       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'tke_ter',       &
    950       "Max Turb. Kinetic Energy "//clnsurf(1),"m2/s2", (/ ('', i=1, 9) /)), &
    951       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'tke_lic',       &
    952       "Max Turb. Kinetic Energy "//clnsurf(2),"m2/s2", (/ ('', i=1, 9) /)), &
    953       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'tke_oce',       &
    954       "Max Turb. Kinetic Energy "//clnsurf(3),"m2/s2", (/ ('', i=1, 9) /)), &
    955       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'tke_sic',       &
    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) /)) /)
    957954
    958955  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mixmin      = (/             &
    959       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mixmin_ter',       &
    960       "PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 9) /)), &
    961       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mixmin_lic',       &
    962       "PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 9) /)), &
    963       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mixmin_oce',       &
    964       "PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 9) /)), &
    965       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mixmin_sic',       &
    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) /)) /)
    967964
    968965  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mix      = (/             &
    969       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mix_ter',       &
    970       "min PBL mixing length "//clnsurf(1),"m", (/ ('', i=1, 9) /)), &
    971       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mix_lic',       &
    972       "min PBL mixing length "//clnsurf(2),"m", (/ ('', i=1, 9) /)), &
    973       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mix_oce',       &
    974       "min PBL mixing length "//clnsurf(3),"m", (/ ('', i=1, 9) /)), &
    975       ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11 /),'l_mix_sic',       &
    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) /)) /)
    977974
    978975  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_tke_max_srf  = (/                          &
    979       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'tke_max_ter',                &
     976      ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_max_ter',                &
    980977      "Max Turb. Kinetic Energy "//clnsurf(1),"-",                                   &
    981978      (/ "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 /),'tke_max_lic',                &
     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',                &
    984981      "Max Turb. Kinetic Energy "//clnsurf(2),"-",                                   &
    985982      (/ "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 /),'tke_max_oce',                &
     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',                &
    988985      "Max Turb. Kinetic Energy "//clnsurf(3),"-",                                   &
    989986      (/ "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 /),'tke_max_sic',                &
     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',                &
    992989      "Max Turb. Kinetic Energy "//clnsurf(4),"-",                                   &
    993990      (/ "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)" /)) /)
    995992
    996993  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_dltpbltke_srf      = (/             &
    997       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'dltpbltke_ter',       &
    998       "TKE difference (w - x) "//clnsurf(1),"-", (/ ('', i=1, 9) /)), &
    999       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'dltpbltke_lic',       &
    1000       "TKE difference (w - x) "//clnsurf(2),"-", (/ ('', i=1, 9) /)), &
    1001       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'dltpbltke_oce',       &
    1002       "TKE difference (w - x) "//clnsurf(3),"-", (/ ('', i=1, 9) /)), &
    1003       ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11 /),'dltpbltke_sic',       &
    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/), &
    10091006    'kz_max', 'Kz melange max', 'm2/s',                                  &
    10101007      (/ '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/), &
    10211018    'cape_max', 'CAPE max.', 'J/kg',                                       &
    10221019      (/ "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) /))
    10621059
    10631060
    10641061  TYPE(ctrl_out),SAVE,DIMENSION(naero_tot) :: o_tausumaero =                              &
    1065        (/ ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 /),'OD550_'//name_aero_tau(1),     &
    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 /),'OD550_'//name_aero_tau(2),        &
    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 /),'OD550_'//name_aero_tau(3),        &
    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 /),'OD550_'//name_aero_tau(4),        &
    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 /),'OD550_'//name_aero_tau(5),        &
    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 /),'OD550_'//name_aero_tau(6),        &
    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 /),'OD550_'//name_aero_tau(7),        &
    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 /),'OD550_'//name_aero_tau(8),        &
    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 /),'OD550_'//name_aero_tau(9),        &
    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 /),'OD550_'//name_aero_tau(10),       &
    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 /),'OD550_'//name_aero_tau(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 /),'OD550_'//name_aero_tau(12),       &
    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 /),'OD550_'//name_aero_tau(13),       &
    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 /),'OD550_'//name_aero_tau(14),       &
    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) /)) /)
    10931090!
    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) /))
    10961093!
    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) /))
    11751172
    11761173#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) /))
    12171239#endif
    12181240
    12191241!!!!!!!!!!!!!!!!!!!!!! 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) /))
    13201342!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    13211343
    13221344  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) /)) /)
    13271349
    13281350  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) /)) /)
    13331355
    13341356  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) /)) /)
    13391361
    13401362  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) /)) /)
    13451367
    13461368  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/), &
    13671389    '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) /))
    14471470
    14481471!!!!!!!!!!!!!!!! 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) /))
    14691492!!!!!!!!!!!!!!!!!!!!!!!!
    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) /))
    15521575
    15531576  type(ctrl_out), save:: o_du_gwd_rando &
    1554        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'du_gwd_rando', &
    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) /))
    15561579  type(ctrl_out), save:: o_dv_gwd_rando &
    1557        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'dv_gwd_rando', &
    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) /))
    15591582  type(ctrl_out), save:: o_ustr_gwd_hines &
    1560        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'ustr_gwd_hines', &
    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) /))
    15621585  type(ctrl_out), save:: o_vstr_gwd_hines &
    1563        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'vstr_gwd_hines', &
    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) /))
    15651588  type(ctrl_out), save:: o_ustr_gwd_front &
    1566        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'ustr_gwd_front', &
    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) /))
    15681591  type(ctrl_out), save:: o_vstr_gwd_front &
    1569        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'vstr_gwd_front', &
    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) /))
    15711594  type(ctrl_out), save:: o_ustr_gwd_rando &
    1572        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'ustr_gwd_rando', &
    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) /))
    15741597  type(ctrl_out), save:: o_vstr_gwd_rando &
    1575        = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11 /), 'vstr_gwd_rando', &
    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) /))
    15771600
    15781601  TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_trac(:)
     
    15931616  TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dtr_dry(:)
    15941617
    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/),                  &
    16181641    '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) /))
    16761699
    16771700!!!!!!!!!!!!! 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/), &
    16791702       '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/), &
    16821705       '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/), &
    16851708       '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/), &
    16881711       '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/), &
    16911714       '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/), &
    16941717       '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/), &
    16991722       '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/), &
    17021725       '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/), &
    17051728       '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/), &
    17081731       '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/), &
    17111734       '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/), &
    17141737       '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/), &
    17171740       '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/), &
    17201743       '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/), &
    17231746       '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/), &
    17261749       '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/), &
    17291752       '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/), &
    17321755       '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/), &
    17351758       '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)"  /))
    17371760
    17381761#ifdef CPP_Dust
  • LMDZ5/branches/testing/libf/phylmd/phys_output_mod.F90

    r2720 r2787  
    113113    INTEGER, DIMENSION(nfiles)            :: phys_out_filelevels
    114114    CHARACTER(LEN=20), DIMENSION(nfiles)  :: chtimestep = (/ 'Default', 'Default', 'Default', 'Default', 'Default', &
    115                                                              'Default', 'Default', 'Default', 'Default' /)
     115                                                             'Default', 'Default', 'Default', 'Default', 'Default' /)
    116116    LOGICAL, DIMENSION(nfiles)            :: phys_out_filekeys
    117117    LOGICAL, DIMENSION(nfiles)            :: phys_out_filestations
     
    120120    !                 entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax]
    121121
    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. /)                       
    132132#ifdef CPP_XIOS
    133133    ! ug Variables utilis\'ees pour r\'ecup\'erer le calendrier pour xios
     
    149149    ALLOCATE(o_dtr_dry(nqtot),o_dtr_vdf(nqtot))
    150150
    151 
    152     levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD /)
     151    levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev /)
    153152
    154153    phys_out_filenames(1) = 'histmth'
     
    160159    phys_out_filenames(7) = 'histmthNMC'
    161160    phys_out_filenames(8) = 'histdayNMC'
    162     phys_out_filenames(9) = 'histhfNMC.nc'
     161    phys_out_filenames(9) = 'histhfNMC'
     162    phys_out_filenames(10)= 'histstrataer'
    163163
    164164    type_ecri(1) = 'ave(X)'
     
    171171    type_ecri(8) = 'inst(X)'
    172172    type_ecri(9) = 'inst(X)'
     173    type_ecri(10)= 'ave(X)'
    173174
    174175    clef_files(1) = ok_mensuel
     
    181182    clef_files(8) = ok_histNMC(2)
    182183    clef_files(9) = ok_histNMC(3)
     184#ifdef CPP_StratAer
     185    clef_files(10)= .TRUE.
     186#else
     187    clef_files(10)= .FALSE.
     188#endif
    183189
    184190    !sortir des fichiers "stations" si clef_stations(:)=.TRUE.
     
    192198    clef_stations(8) = .FALSE.
    193199    clef_stations(9) = .FALSE.
     200    clef_stations(10)= .FALSE.
    194201
    195202    lev_files(1) = lev_histmth
     
    202209    lev_files(8) = levout_histNMC(2)
    203210    lev_files(9) = levout_histNMC(3)
     211    lev_files(10)= 5
    204212
    205213    ecrit_files(1) = ecrit_mth
     
    212220    ecrit_files(8) = freq_outNMC(2)
    213221    ecrit_files(9) = freq_outNMC(3)
     222    ecrit_files(10)= ecrit_mth
    214223
    215224    !! Lectures des parametres de sorties dans physiq.def
     
    248257    WRITE(lunout,*)'phys_out_filestations=',clef_stations
    249258    WRITE(lunout,*)'phys_out_filelevels=',lev_files
     259    WRITE(lunout,*)'phys_out_regfkey=',phys_out_regfkey
    250260
    251261! A noter pour
     
    331341      print*,'phys_output_open: Declare vertical axes for each file'
    332342    ENDIF
    333    IF (iff.le.6) THEN
     343   IF (iff.LE.6.OR.iff.EQ.10) THEN
    334344    CALL wxios_add_vaxis("presnivs", &
    335345            levmax(iff) - levmin(iff) + 1, presnivs(levmin(iff):levmax(iff)))
     
    392402                  itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff))
    393403          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
    394409             CALL histbeg_phy_all(phys_out_filenames(iff),itau_phy,zjulian,&
    395410                 dtime,nhorim(iff),nid_files(iff))
     
    397412
    398413#ifndef CPP_IOIPSL_NO_OUTPUT
    399           IF (iff.le.6) THEN
     414          IF (iff.LE.6.OR.iff.EQ.10) THEN
    400415             CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "Pa", & 
    401416               levmax(iff) - levmin(iff) + 1, &
     
    412427
    413428          ELSE
     429          ! NMC files
    414430             CALL histvert(nid_files(iff), "plev", "pressure", "Pa", &
    415431               levmax(iff) - levmin(iff) + 1, &
     
    424440            DO iq=nqo+1,nqtot
    425441            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 /), &
    427443                           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 /), &
    430446                              'd'//trim(tname(iq))//'_vdf',  &
    431447                              '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 /), &
    435451                              'd'//trim(tname(iq))//'_the', &
    436452                              '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 /), &
    440456                              'd'//trim(tname(iq))//'_con', &
    441457                              '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 /), &
    445461                                     'd'//trim(tname(iq))//'_lessi_impa', &
    446462                                     '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 /), &
    450466                                     'd'//trim(tname(iq))//'_lessi_nucl', &
    451467                                     '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 /), &
    455471                               'd'//trim(tname(iq))//'_insc', &
    456472                               '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 /), &
    460476                                 'd'//trim(tname(iq))//'_bcscav', &
    461477                                 '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 /), &
    465481                                 'd'//trim(tname(iq))//'_evapls', &
    466482                                 '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 /), &
    470486                             'd'//trim(tname(iq))//'_ls', &
    471487                             '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 /), &
    475491                               'd'//trim(tname(iq))//'_trsp', &
    476492                               '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 /), &
    480496                                'd'//trim(tname(iq))//'_sscav', &
    481497                                '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 /), &
    485501                               'd'//trim(tname(iq))//'_sat', &
    486502                               '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 /), &
    490506                                'd'//trim(tname(iq))//'_uscav', &
    491507                                '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 /), &
    495511                              'cum'//'d'//trim(tname(iq))//'_dry', &
    496512                              '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 /), &
    500516                               'cum'//tname(iiq),&
    501517                               'Cumulated tracer '//ttext(iiq), "-", &
    502                                (/ '', '', '', '', '', '', '', '', '' /))
     518                               (/ '', '', '', '', '', '', '', '', '', '' /))
    503519            ENDDO
    504520      ENDIF
     
    547563    type=str(ipos+1:il)
    548564
    549 
    550565    IF ( il == ipos ) THEN
    551566       type='day'
  • LMDZ5/branches/testing/libf/phylmd/phys_output_var_mod.F90

    r2594 r2787  
    4646
    4747  ! ug Plein de variables venues de phys_output_mod
    48   INTEGER, PARAMETER                           :: nfiles = 9
     48  INTEGER, PARAMETER                           :: nfiles = 10
    4949  LOGICAL, DIMENSION(nfiles), SAVE             :: clef_files
    5050  LOGICAL, DIMENSION(nfiles), SAVE             :: clef_stations
  • LMDZ5/branches/testing/libf/phylmd/phys_output_write_mod.F90

    r2720 r2787  
    2525
    2626    USE dimphy, ONLY: klon, klev, klevp1
    27     USE infotrac, ONLY: nbtr
     27    USE infotrac_phy, ONLY: nbtr
    2828    USE mod_phys_lmdz_para, ONLY: is_north_pole_phy,is_south_pole_phy
    2929    USE mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat
     
    115115         o_swsrfcs_nat, o_swsrfcf_ant, &
    116116         o_swtoacf_zero, o_swsrfcf_zero, &
    117          o_topswai, o_solswai, o_scdnc, &
     117         o_topswai, o_solswai, o_toplwai, o_sollwai, o_scdnc, &
    118118         o_cldncl, o_reffclws, o_reffclwc, o_stratomask,&
    119119         o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
     
    185185#ifdef CPP_StratAer
    186186    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, &
    190194         o_surf_PM25_sulf, o_ext_strat_550, o_tau_strat_550, &
    191195         o_p_tropopause, o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet
     
    284288#ifdef CPP_StratAer
    285289    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, &
    289297         surf_PM25_sulf, tau_strat_550, p_tropopause, tausum_strat, &
    290298         vsed_aer, tau_strat_1020, f_r_wet
     
    385393    TYPE(xios_field) :: child
    386394#endif
     395#ifdef CPP_StratAer
     396    LOGICAL, PARAMETER :: debug_strataer=.FALSE.
     397#endif
    387398
    388399    ! On calcul le nouveau tau:
     
    406417            iiq=niadv(iq)
    407418            varname=trim(tname(iiq))
    408             WRITE (lunout,*) 'XIOS var=', nqo, iq, varname
     419            WRITE (lunout,*) 'XIOS var=', nqo, iq, nqtot, varname
    409420            CALL xios_add_child(group_handle, child, varname)
    410421            CALL xios_set_attr(child, name=varname, unit="kg kg-1")
     
    455466            iiq=niadv(iq)
    456467            varname='cum'//trim(tname(iiq))
    457             WRITE (lunout,*) 'XIOS var=', iq, varname
     468            WRITE (lunout,*) 'XIOS var=', iq, nqtot, varname
    458469            CALL xios_add_child(group_handle, child, varname)
    459470            CALL xios_set_attr(child, name=varname, unit="kg m-2")
     
    468479    ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
    469480    DO iinit=1, iinitend
     481!      print *,'IFF iinit=', iinit, iinitend
    470482#ifdef CPP_XIOS
    471483       !$OMP MASTER
     
    11941206#ifdef CPP_StratAer
    11951207       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)
    12001208          CALL histwrite_phy(o_R2SO4, R2SO4)
    12011209          CALL histwrite_phy(o_OCS_lifetime, OCS_lifetime)
    12021210          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)
    12071229          CALL histwrite_phy(o_surf_PM25_sulf, surf_PM25_sulf)
    12081230          CALL histwrite_phy(o_p_tropopause, p_tropopause)
    1209           CALL histwrite_phy(o_sfluxaer, sfluxaer)
    12101231          CALL histwrite_phy(o_vsed_aer, vsed_aer)
    12111232          CALL histwrite_phy(o_f_r_wet, f_r_wet)
     
    12641285       IF (ok_aie) THEN
    12651286          CALL histwrite_phy(o_topswai, topswai_aero*swradcorr)
     1287          CALL histwrite_phy(o_toplwai, toplwai_aero*swradcorr)
    12661288          CALL histwrite_phy(o_solswai, solswai_aero*swradcorr)
     1289          CALL histwrite_phy(o_sollwai, sollwai_aero*swradcorr)
    12671290       ENDIF
    12681291       IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
     
    17261749       ! Champs interpolles sur des niveaux de pression
    17271750       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
    17291752
    17301753          CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
  • LMDZ5/branches/testing/libf/phylmd/phys_state_var_mod.F90

    r2720 r2787  
    1818      INTEGER, SAVE :: radpas
    1919      INTEGER, SAVE :: cvpas
     20      INTEGER, SAVE :: wkpas
    2021      REAL, PARAMETER :: missing_val_nf90=nf90_fill_real
    2122!$OMP THREADPRIVATE(radpas)
    2223!$OMP THREADPRIVATE(cvpas)
     24!$OMP THREADPRIVATE(wkpas)
    2325      REAL, SAVE :: dtime, solaire_etat0
    2426!$OMP THREADPRIVATE(dtime, solaire_etat0)
  • LMDZ5/branches/testing/libf/phylmd/physiq_mod.F90

    r2720 r2787  
    1616       d_u, d_v, d_t, d_qx, d_ps)
    1717
     18    use assert_m, only: assert
    1819    USE ioipsl, only: histbeg, histvert, histdef, histend, histsync, &
    1920         histwrite, ju2ymds, ymds2ju, getin
    2021    USE geometry_mod, ONLY: cell_area, latitude_deg, longitude_deg
    2122    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
    2324    USE write_field_phy
    2425    USE dimphy
     
    2930    USE print_control_mod, ONLY: mydebug=>debug , lunout, prt_level
    3031    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
    3233    USE vampir
    3334    USE pbl_surface_mod, ONLY : pbl_surface
     
    139140       kh, kh_x, kh_w, &
    140141       !
     142       wake_k, &
    141143       ale_wake, alp_wake, &
    142144       wake_h, wake_omg, &
     
    564566    !pourquoi y'a pas de save??
    565567    !
    566     INTEGER wake_k(klon)            ! Wake sommet
     568!!!    INTEGER, SAVE, DIMENSION(klon)   :: wake_k
     569!!!    !$OMP THREADPRIVATE(wake_k)
    567570    !
    568571    !jyg<
     
    782785    !ym      SAVE 
    783786    !
    784     INTEGER itapcv
    785     SAVE itapcv
    786     !$OMP THREADPRIVATE(itapcv)
     787    INTEGER itapcv, itapwk
     788    SAVE itapcv, itapwk
     789    !$OMP THREADPRIVATE(itapcv, itapwk)
    787790
    788791    !KE43
     
    978981    ! Parameters
    979982    LOGICAL ok_ade, ok_aie    ! Apply aerosol (in)direct effects or not
     983    LOGICAL ok_alw            ! Apply aerosol LW effect or not
    980984    LOGICAL ok_cdnc ! ok cloud droplet number concentration (O. Boucher 01-2013)
    981985    REAL bl95_b0, bl95_b1   ! Parameter in Boucher and Lohmann (1995)
    982     SAVE ok_ade, ok_aie, ok_cdnc, bl95_b0, bl95_b1
    983     !$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)
    984988    LOGICAL, SAVE :: aerosol_couple ! true  : calcul des aerosols dans INCA
    985989    ! false : lecture des aerosol dans un fichier
     
    10761080    INTEGER :: nbtr_tmp ! Number of tracer inside concvl
    10771081    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)
    10781083    integer iostat
    10791084
     
    11221127    ENDIF
    11231128
    1124     !======================================================================
     1129    ! Quick check on pressure levels:
     1130    call assert(paprs(:, nbp_lev + 1) < paprs(:, nbp_lev), &
     1131            "physiq_mod paprs bad order")
    11251132
    11261133    IF (first) THEN
     
    11401147            fact_cldcon, facttemps,ok_newmicro,iflag_radia, &
    11411148            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,  &
    11431150            flag_aerosol, flag_aerosol_strat, new_aod, &
    11441151            flag_bc_internal_mixture, bl95_b0, bl95_b1, &
     
    12851292       itaprad = 0
    12861293       itapcv = 0
     1294       itapwk = 0
    12871295
    12881296       ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    13001308       ! Il se peut qu'il faille prendre une valeur differente de nbapp_rad
    13011309       ! 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
    13051321       ELSE
    13061322          WRITE(lunout,*) 'le nombre de pas de temps physique doit etre un ', &
     
    13131329       ENDIF
    13141330       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
    13181335       print *,'physiq, cvpas ',cvpas
    13191336       ELSE
     
    13241341          abort_message='nbre de pas de temps physique n est pas multiple ' &
    13251342               // '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'
    13261355          call abort_physic(modname,abort_message,1)
    13271356       ENDIF
     
    15631592            jjmp1,nlevSTD,clevSTD,rlevSTD, dtime,ok_veget, &
    15641593            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, &
    15661595            read_climoz, phys_out_filestations, &
    15671596            new_aod, aerosol_couple, &
     
    17081737    !
    17091738    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
    17101745    !
    17111746    !
     
    19231958    ! Update ozone if day change
    19241959    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
    19662004    ENDIF
    19672005    !
     
    23172355    IF (prt_level.ge.1) write(lunout,*) 'omega(igout, :) = ', &
    23182356         omega(igout, :)
    2319 
    23202357    !
    23212358    ! Appel de la convection tous les "cvpas"
     
    25742611    !    .              d_u_con, d_v_con)
    25752612
     2613!jyg    Reinitialize proba_notrig and itapcv when convection has been called
     2614    proba_notrig(:) = 1.
    25762615    itapcv = 0
    25772616    ENDIF !  (MOD(itapcv,cvpas).EQ.0)
     2617!
    25782618    itapcv = itapcv+1
    25792619
     
    26402680    IF (iflag_wake>=1) THEN
    26412681       !
    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
    26672688             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)
    26772695             ENDDO
    26782696          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
    27002746       !
    27012747       !-----------------------------------------------------------------------
     
    27052751       !------------------------------------------------------------------------
    27062752
    2707 !      Increment Wake state variables
     2753       ! Increment Wake state variables
    27082754       IF (iflag_wake_tend .GT. 0.) THEN
    27092755
     
    32613307       !jq - introduce the aerosol direct and first indirect radiative forcings
    32623308       !jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
    3263        IF (flag_aerosol .gt. 0) THEN
     3309       IF (flag_aerosol .GT. 0) THEN
    32643310          IF (iflag_rrtm .EQ. 0) THEN !--old radiation
    32653311             IF (.NOT. aerosol_couple) THEN
     
    32803326#ifdef CPP_RRTM
    32813327                IF (NSW.EQ.6) THEN
    3282                    !--new aerosol properties
     3328                   !--new aerosol properties SW and LW
    32833329                   !
    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, &
    32853339                        new_aod, flag_aerosol, flag_bc_internal_mixture, itap, jD_cur-jD_ref, &
    32863340                        pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
     
    32883342                        tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm,  &
    32893343                        tausum_aero, tau3d_aero)
    3290 
     3344#endif
     3345                   !
    32913346                ELSE IF (NSW.EQ.2) THEN
    32923347                   !--for now we use the old aerosol properties
     
    33073362                   piz_aero_sw_rrtm(:,:,2,:)=piz_aero(:,:,2,:)
    33083363                   cg_aero_sw_rrtm (:,:,2,:)=cg_aero (:,:,2,:)
     3364                   !
     3365                   !--no LW optics
     3366                   tau_aero_lw_rrtm(:,:,:,:) = 1.e-15
     3367                   !
    33093368                ELSE
    33103369                   abort_message='Only NSW=2 or 6 are possible with ' &
     
    33123371                   CALL abort_physic(modname,abort_message,1)
    33133372                ENDIF
    3314 
    3315                 !--call LW optical properties for tropospheric aerosols
    3316                 !--only works for INCA aerosol (aerosol_couple = TRUE)
    3317                 CALL aeropt_lw_rrtm(aerosol_couple,paprs,tr_seri)
    3318                 !
    33193373#else
    33203374                abort_message='You should compile with -rrtm if running ' &
     
    33253379             ENDIF
    33263380          ENDIF
    3327        ELSE
     3381       ELSE   !--flag_aerosol = 0
    33283382          tausum_aero(:,:,:) = 0.
    33293383          mass_solu_aero(:,:) = 0.
     
    40074061    ELSE
    40084062       sh_in(:,:) = qx(:,:,ivap)
     4063       ch_in(:,:) = qx(:,:,iliq)
    40094064    ENDIF
    40104065
     
    40394094         frac_impa,frac_nucl, beta_prec_fisrt,beta_prec, &
    40404095         presnivs, pphis,     pphi,     albsol1, &
    4041          sh_in,    rhcl,      cldfra,   rneb, &
     4096         sh_in,   ch_in,    rhcl,      cldfra,   rneb, &
    40424097         diafra,   cldliq,    itop_con, ibas_con, &
    40434098         pmflxr,   pmflxs,    prfl,     psfl, &
  • LMDZ5/branches/testing/libf/phylmd/phytrac_mod.F90

    r2720 r2787  
    6666       frac_impa,frac_nucl,beta_fisrt,beta_v1,        &
    6767       presnivs,  pphis,    pphi,     albsol,         &
    68        sh,        rh,       cldfra,   rneb,           &
     68       sh,        ch, rh,   cldfra,   rneb,           &
    6969       diafra,    cldliq,   itop_con, ibas_con,       &
    7070       pmflxr,    pmflxs,   prfl,     psfl,           &
     
    103103#ifdef CPP_StratAer
    104104    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
    106108    USE infotrac, ONLY: nbtr_sulgas, id_SO2_strat, id_H2SO4_strat
    107109    USE aerophys
     
    137139    REAL,DIMENSION(klon,klev),INTENT(IN)   :: sh      ! humidite specifique
    138140    REAL,DIMENSION(klon,klev),INTENT(IN)   :: rh      ! humidite relative
     141    REAL,DIMENSION(klon,klev),INTENT(IN)   :: ch      ! eau liquide
    139142    REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs   ! pression pour chaque inter-couche (en Pa)
    140143    REAL,DIMENSION(klon,klev),INTENT(IN)   :: pplay   ! pression pour le mileu de chaque couche (en Pa)
     
    571574       write(lunout,*)  'flag_cvltr    = ', flag_cvltr
    572575
    573        IF (lessivage.AND.config_inca.EQ.'inca') THEN
     576       IF (lessivage .AND. type_trac .EQ. 'inca') THEN
    574577          CALL abort_physic('phytrac', 'lessivage=T config_inca=inca impossible',1)
    575578          STOP
     
    698701       IF (type_trac=='coag') THEN
    699702         ! 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
    701705         ! compute wet deposition flux of sulfur (sum over gases and particles)
    702706         ! and convert to kg(S)/m2/s
     
    706710         !do not include SO2 because most of it comes trom the troposphere
    707711           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) &
    709713                            & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
    710714           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)  &
    712716                            & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 &
    713717                            & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
     
    766770
    767771         ! 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
    769774
    770775         ! compute dry deposition velocity as function of surface type (numbers
     
    800805               ! compute dry deposition flux of sulfur (sum over gases and particles)
    801806               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)
    803808               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 &
    805810                                & *4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3
    806811               ENDIF
     
    886891           DO it = 1, nbtr
    887892             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) &
    889894                              & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
    890895             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)  &
    892897                              & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 &
    893898                              & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
     
    10181023            pdtphys,  t_seri,   paprs,          pplay,     &
    10191024            pmfu,     upwd,     ftsol,  pctsrf, pphis,     &
    1020             pphi,     albsol,   sh,             rh,        &
     1025            pphi,     albsol,   sh,    ch,     rh,        &
    10211026            cldfra,   rneb,     diafra,         cldliq,    &
    10221027            itop_con, ibas_con, pmflxr,         pmflxs,    &
  • LMDZ5/branches/testing/libf/phylmd/readaerosolstrato.F90

    r2594 r2787  
    3333    real, pointer:: lev(:)
    3434    integer i, k, band, wave
    35     integer, save :: mth_pre
     35    integer, save :: mth_pre=1
    3636!$OMP THREADPRIVATE(mth_pre)
    3737
  • LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_5wv_rrtm.F90

    r2669 r2787  
    1212  USE DIMPHY
    1313  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
    1516
    1617  !
     
    2021  !    a partir d'une sous-routine de Johannes Quaas pour les sulfates
    2122  !    Olivier Boucher mars 2014 pour adaptation RRTM
     23  !   
    2224  !
    2325  ! Refractive indices for seasalt come from Shettle and Fenn (1979)
     
    5052  !
    5153  IMPLICIT NONE
    52   INCLUDE "YOMCST.h"
    5354  !
    5455  ! Input arguments:
    5556  !
    56   REAL, DIMENSION(klon,klev), INTENT(in)   :: pdel
    57   REAL, DIMENSION(klon,klev,naero_tot), INTENT(in) :: m_allaer
    58   REAL, DIMENSION(klon,klev), INTENT(in)   :: RHcl     ! humidite relative ciel clair
    59   INTEGER,INTENT(in)                       :: flag_aerosol
    60   LOGICAL,INTENT(in)                       :: flag_bc_internal_mixture
    61   REAL, DIMENSION(klon,klev), INTENT(in)   :: pplay
    62   REAL, DIMENSION(klon,klev), INTENT(in)   :: t_seri
     57  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
    6364  !
    6465  ! Output arguments:
    6566  !
    66   REAL, DIMENSION(klon), INTENT(out)                      :: ai      ! POLDER aerosol index
    67   REAL, DIMENSION(klon,nwave,naero_tot), INTENT(out)      :: tausum
    68   REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(out) :: tau
     67  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
    6970
    7071  !
     
    8384  INTEGER, PARAMETER :: la865 = 5
    8485  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
    8890
    8991  REAL :: zrho
     
    101103  REAL :: zdh(klon,klev)
    102104 
    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.
    104105  REAL :: alpha_aers_5wv(nbre_RH,las,naero_soluble)   ! Ext. coeff. ** m2/g
    105    ! Insoluble components 1- Dust: 2- BC; 3- POM
    106106  REAL :: alpha_aeri_5wv(las,naero_insoluble)         ! Ext. coeff. ** m2/g
    107107
     
    109109  ! BC internal mixture
    110110  !
    111   INTEGER, PARAMETER ::  nbclassbc = 5  ! 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/
     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/
    114114  ! for Maxwell-Garnet internal mixture
    115115  ! Detailed theory can be found in R. Wang Estimation of global black carbon ! direct
     
    124124  INTEGER :: n, classbc
    125125
    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  /
    215234  !
    216235  ! Initialisations
     
    252271     aerosol_name(1) = id_CIDUSTM_phy
    253272  ELSEIF (flag_aerosol .EQ. 6) THEN
    254      nb_aer = 10
     273     nb_aer = 13
    255274     ALLOCATE (aerosol_name(nb_aer))
    256275     aerosol_name(1) = id_ASSO4M_phy     
     
    264283     aerosol_name(9) = id_CIDUSTM_phy
    265284     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
    266288  ENDIF
    267289
     
    315337        soluble=.TRUE.
    316338        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
    317347    ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN
    318348        soluble=.FALSE.
     
    324354        soluble=.FALSE.
    325355        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
    326360    ELSE
    327361        CYCLE
     
    345379             BC_massfra = m_allaer(i,k,id_ASBCM_phy)/(m_allaer(i,k,id_ASBCM_phy)+m_allaer(i,k,id_ASSO4M_phy))
    346380
    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
    348384               classbc = 5
    349385             ELSEIF  (BC_massfra.GE.0.05) THEN
  • LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90

    r2669 r2787  
    1111  USE aero_mod
    1212  USE phys_local_var_mod, only: absvisaer
     13  USE YOMCST, ONLY: RG
    1314
    1415  !    Yves Balkanski le 12 avril 2006
     
    2021  !
    2122  IMPLICIT NONE
    22 
    23   INCLUDE "YOMCST.h"
     23  !
    2424  INCLUDE "clesphys.h"
    25 
    2625  !
    2726  ! Input arguments:
    2827  !
    29   REAL, DIMENSION(klon,klev),     INTENT(in)  :: pdel
    30   REAL, DIMENSION(klon,klev,naero_tot),   INTENT(in)  :: m_allaer
    31   REAL, DIMENSION(klon,klev,naero_tot),   INTENT(in)  :: m_allaer_pi
    32   REAL, DIMENSION(klon,klev),     INTENT(in)  :: RHcl       ! humidite relative ciel clair
    33   INTEGER,                        INTENT(in)  :: flag_aerosol
    34   LOGICAL,                        INTENT(in)  :: flag_bc_internal_mixture
    35   REAL, DIMENSION(klon,klev),     INTENT(in)  :: zrho
     28  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
    3635  !
    3736  ! Output arguments:
     
    3938  ! 1= natural aerosols
    4039  !
    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
    4543  !
    4644  ! Local
    4745  !
    48   LOGICAL ::  soluble
     46  LOGICAL :: soluble
    4947  INTEGER :: i, k,n, inu, m
    5048  INTEGER :: spsol, spinsol
     
    5351  INTEGER, PARAMETER :: nb_level=19 ! number of vertical levels in DATA
    5452
    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
    5858
    5959  INTEGER, PARAMETER :: nbre_RH=12
     
    6767  REAL :: fac
    6868  REAL :: zdh(klon,klev)
    69   INTEGER, ALLOCATABLE, DIMENSION(:)   :: aerosol_name
     69  INTEGER, ALLOCATABLE, DIMENSION(:) :: aerosol_name
    7070  INTEGER :: nb_aer
    7171
    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
     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
    7777  REAL, DIMENSION(klon,klev,id_ASBCM_phy:id_ASBCM_phy,nbands_sw_rrtm) :: piz_ae_pi
    7878  REAL, DIMENSION(klon,klev,id_ASBCM_phy:id_ASBCM_phy,nbands_sw_rrtm) :: cg_ae_pi
     
    8080  ! Proprietes optiques
    8181  !
    82   REAL:: alpha_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble)   !--unit m2/g SO4
    83   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)     !-- unit
    87   REAL:: piz_aeri_6bands(nbands_sw_rrtm,naero_insoluble)        !-- unit
     82  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
    8888  !
    8989  ! BC internal mixture
    9090  !
    91   INTEGER, PARAMETER ::  nbclassbc = 5  ! 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/
     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/
    9494  ! for Maxwell-Garnet internal mixture
    9595  ! Detailed theory can be found in R. Wang Estimation of global black carbon direct
     
    100100  REAL :: piz_MG_6bands(nbre_RH,nbands_sw_rrtm,nbclassbc)
    101101  !
    102   INTEGER :: id, classbc, classbc_pi
     102  INTEGER :: aerindex, classbc, classbc_pi
    103103  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
    108107
    109108!***************************************************************************
     
    112111
    113112  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  /
    163306
    164307  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 /
    222326
    223327  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 /
    289336
    290337! Added by R. Wang (July 31 2016)
    291338! properties for BC assuming Maxwell-Garnett rule and internal mixture
    292339
    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  /
    403471
    404472!----BEGINNING OF CALCULATIONS
     473
     474  modname='aeropt_6bands_rrtm'
    405475
    406476  spsol = 0
     
    408478
    409479  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)
    412481  ENDIF
    413482
     
    440509     aerosol_name(1) = id_CIDUSTM_phy
    441510  ELSEIF (flag_aerosol .EQ. 6) THEN
    442      nb_aer = 10
     511     nb_aer = 13
    443512     ALLOCATE (aerosol_name(nb_aer))
    444513     aerosol_name(1) = id_ASSO4M_phy     
     
    452521     aerosol_name(9) = id_CIDUSTM_phy
    453522     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
    454526  ENDIF
    455527
     
    491563        soluble=.TRUE.
    492564        spsol=2
    493      ELSEIF (aerosol_name(m).EQ.id_ASSO4M_phy) THEN
     565     ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN
    494566        soluble=.TRUE.
    495567        spsol=3
    496568        fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD
    497      ELSEIF  (aerosol_name(m).EQ.id_CSSO4M_phy) THEN
     569     ELSEIF  (aerosol_name(m).EQ.id_ASSO4M_phy) THEN
    498570        soluble=.TRUE.
    499571        spsol=4
     
    508580         soluble=.TRUE.
    509581         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
    510590     ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN
    511591         soluble=.FALSE.
     
    517597         soluble=.FALSE.
    518598         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
    519603     ELSE
    520604         CYCLE
     
    522606
    523607    !--shortname for aerosol index
    524     id=aerosol_name(m)
     608    aerindex=aerosol_name(m)
    525609
    526610    IF (soluble) THEN
     
    532616           DO i=1, klon
    533617
    534              tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac
    535              tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac
     618             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
    536620
    537621             ! Calculate the dry BC/(BC+SUL) mass ratio for all (natural+anthropogenic) aerosols
    538622             BC_massfra = m_allaer(i,k,id_ASBCM_phy)/(m_allaer(i,k,id_ASBCM_phy)+m_allaer(i,k,id_ASSO4M_phy))
    539623
    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
    541627               classbc = 5
    542628             ELSEIF  (BC_massfra.GE.0.05) THEN
     
    553639             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))
    554640
    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
    556644               classbc_pi = 5
    557645             ELSEIF  (BC_massfra_pi.GE.0.05) THEN
     
    565653             ENDIF
    566654
    567              DO inu=1,NSW
     655             DO inu=1, NSW
    568656
    569657               !--all aerosols
     
    580668                             cg_MG_6bands(RH_num(i,k),inu,classbc))
    581669
    582                tau_ae(i,k,id,inu)    = tmp_var*tau_ae2b_int
    583                piz_ae(i,k,id,inu)    = piz_ae2b_int
    584                cg_ae(i,k,id,inu)     = cg_ae2b_int
     670               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
    585673
    586674               !--natural aerosols
     
    597685                             cg_MG_6bands(RH_num(i,k),inu,classbc_pi))
    598686
    599                tau_ae_pi(i,k,id,inu) = tmp_var_pi* tau_ae2b_int
    600                piz_ae_pi(i,k,id,inu) = piz_ae2b_int
    601                cg_ae_pi(i,k,id,inu)  = cg_ae2b_int
     687               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
    602690                       
    603691             ENDDO
     
    610698         DO k=1, klev
    611699           DO i=1, klon
    612              tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac
    613              tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac
    614 
    615              DO inu=1,NSW
     700             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
    616704
    617705               tau_ae2b_int= alpha_aers_6bands(RH_num(i,k),inu,spsol)+ &
     
    627715                             cg_aers_6bands(RH_num(i,k),inu,spsol))
    628716
    629                tau_ae(i,k,id,inu)    = tmp_var*tau_ae2b_int
    630                tau_ae_pi(i,k,id,inu) = tmp_var_pi* tau_ae2b_int
    631                piz_ae(i,k,id,inu)    = piz_ae2b_int
    632                cg_ae(i,k,id,inu)     = cg_ae2b_int
     717               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
    633721                       
    634722             ENDDO
     
    638726         !--external mixture case for soluble BC
    639727         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,:)
    642730         ENDIF
    643731
     
    648736       DO k=1, klev
    649737         DO i=1, klon
    650            tmp_var=m_allaer(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac
    651            tmp_var_pi=m_allaer_pi(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac
    652 
    653            DO inu=1,NSW
     738           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
    654742             tau_ae2b_int = alpha_aeri_6bands(inu,spinsol)
    655743             piz_ae2b_int = piz_aeri_6bands(inu,spinsol)
    656744             cg_ae2b_int = cg_aeri_6bands(inu,spinsol)
    657745
    658              tau_ae(i,k,id,inu) = tmp_var*tau_ae2b_int
    659              tau_ae_pi(i,k,id,inu) = tmp_var_pi*tau_ae2b_int
    660              piz_ae(i,k,id,inu) = piz_ae2b_int
    661              cg_ae(i,k,id,inu)= cg_ae2b_int
     746             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
    662750           ENDDO
    663751         ENDDO
  • LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_lw_rrtm.F90

    r2542 r2787  
    22! aeropt_lw_rrtm.F90 2014-05-13 C. Kleinschmitt
    33!                    2016-05-03 O. Boucher
     4!                    2016-12-17 O. Boucher
    45!
    56! This routine feeds aerosol LW properties to RRTM
    67! we only consider absorption (not scattering)
     8! we only consider dust for now
    79
    8 SUBROUTINE AEROPT_LW_RRTM(aerosol_couple,paprs,tr_seri)
     10SUBROUTINE AEROPT_LW_RRTM(ok_alw, pdel, zrho, flag_aerosol, m_allaer, m_allaer_pi)
    911
    1012  USE dimphy
    1113  USE aero_mod
    12   USE infotrac_phy
    13   USE phys_state_var_mod, ONLY : tau_aero_lw_rrtm
    14   USE YOERAD, ONLY : NLW
     14  USE phys_state_var_mod, ONLY: tau_aero_lw_rrtm
     15  USE YOERAD, ONLY: NLW
     16  USE YOMCST, ONLY: RG
    1517
    1618  IMPLICIT NONE
    1719
    18   INCLUDE "YOMCST.h"
    1920  INCLUDE "clesphys.h"
    2021  !
    2122  ! Input arguments:
    2223  !
    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
    2928  !
    3029  INTEGER inu, i, k
    31   INTEGER :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM
    32   INTEGER :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M
    33 
     30  REAL :: zdh(klon,klev)
     31  REAL :: tmp_var, tmp_var_pi
     32  CHARACTER*20 modname
    3433  !
    3534  !--absorption coefficient for CIDUST
    3635  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'
    4041  !
    4142  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)
    4444  ENDIF
    4545  !
    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
    8251    !
    8352    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
    9668      !
    9769    ENDDO
     70    !
     71   ENDIF
     72   !
     73  ELSE !--no aerosol LW effects
    9874    !
    99     !--avoid very small values
    100     tau_aero_lw_rrtm = MAX(tau_aero_lw_rrtm,1.e-15)
    101     !
    102   ELSE !--not aerosol_couple
    103     !
    104     !--no LW effects if not coupled to INCA
    10575    tau_aero_lw_rrtm = 1.e-15
    10676  ENDIF
  • LMDZ5/branches/testing/libf/phylmd/rrtm/read_rsun_rrtm.F90

    r2729 r2787  
    1616  USE mod_phys_lmdz_para
    1717
    18   USE YOESW    , ONLY : RSUN
     18  USE YOESW, ONLY : RSUN
    1919
    2020  IMPLICIT NONE
     
    3333!$OMP THREADPRIVATE(TSI)
    3434
    35   INTEGER, SAVE :: day_pre
     35  INTEGER, SAVE :: day_pre=1
     36!$OMP THREADPRIVATE(day_pre)
    3637
    3738!--only one processor reads
  • LMDZ5/branches/testing/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90

    r2720 r2787  
    11! $Id$
    22!
    3 SUBROUTINE readaerosol_optic_rrtm(debut, aerosol_couple, &
     3SUBROUTINE readaerosol_optic_rrtm(debut, aerosol_couple, ok_alw, &
    44     new_aod, flag_aerosol, flag_bc_internal_mixture, itap, rjourvrai, &
    55     pdtphys, pplay, paprs, t_seri, rhcl, presnivs, &
     
    3030  LOGICAL, INTENT(IN)                      :: debut
    3131  LOGICAL, INTENT(IN)                      :: aerosol_couple
     32  LOGICAL, INTENT(IN)                      :: ok_alw
    3233  LOGICAL, INTENT(IN)                      :: new_aod
    3334  INTEGER, INTENT(IN)                      :: flag_aerosol
     
    281282  ! Calculate the total mass of all soluble aersosols
    282283  ! 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(:,:)
    285286
    286287  !****************************************************************************************
     
    310311       pplay, t_seri,                &
    311312       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)
    312316
    313317  ! Diagnostics calculation for CMIP5 protocol
  • LMDZ5/branches/testing/libf/phylmd/rrtm/readaerosolstrato1_rrtm.F90

    r2720 r2787  
    3535    REAL, POINTER:: lev(:)
    3636    INTEGER k, band, wave, i
    37     INTEGER, SAVE :: mth_pre
     37    INTEGER, SAVE :: mth_pre=1
     38!$OMP THREADPRIVATE(mth_pre)
    3839
    3940    REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: tau_aer_strat
     
    4445    REAL, ALLOCATABLE:: tauaerstrat_mois(:, :, :)
    4546    REAL, ALLOCATABLE:: tauaerstrat_mois_glo(:, :)
    46 
    47     REAL, ALLOCATABLE:: sum_tau_aer_strat(:)
    4847
    4948! For NetCDF:
     
    7776
    7877    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))
    8078
    8179!--we only read monthly strat aerosol data
  • LMDZ5/branches/testing/libf/phylmd/rrtm/readaerosolstrato2_rrtm.F90

    r2729 r2787  
    4141    REAL, POINTER:: wav(:)
    4242    INTEGER i,k,wave,band
    43     INTEGER, SAVE :: mth_pre
     43    INTEGER, SAVE :: mth_pre=1
     44!$OMP THREADPRIVATE(mth_pre)
    4445
    4546    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!
    14SUBROUTINE stratosphere_mask(t_seri, pplay, xlat)
    25
     
    3134USE phys_local_var_mod, ONLY: p_tropopause
    3235#endif
     36USE print_control_mod, ONLY: lunout, prt_level
    3337
    3438IMPLICIT NONE
     
    98102#endif
    99103
    100 IF (ifil.gt.0) THEN
    101   print *,'Tropopause: number of undetermined values =', ifil
     104IF (ifil.gt.0 .and. prt_level >5) THEN
     105  write(lunout,*)'Tropopause: number of undetermined values =', ifil
    102106ENDIF
    103107
  • LMDZ5/branches/testing/libf/phylmd/surf_landice_mod.F90

    r2408 r2787  
    3030    USE calcul_fluxs_mod
    3131    USE phys_output_var_mod
     32!FC
     33    USE ioipsl_getin_p_mod, ONLY : getin_p
     34
    3235#ifdef CPP_SISVAT
    3336    USE surf_sisvat_mod,  ONLY : surf_sisvat
     
    121124    CHARACTER (len = 80)                      :: abort_message
    122125
     126
    123127!albedo SB >>>
    124128    real,dimension(klon) :: alb1,alb2
     
    127131! End definition
    128132!****************************************************************************************
     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
    129153!
    130154! Initialize output variables
     
    280304
    281305! Attantion: alb1 and alb2 are the same!
    282     alb1(1:knon)  = 0.77
    283     alb2(1:knon)  = alb1(1:knon)
     306    alb1(1:knon)  = alb_vis_sno_lic
     307    alb2(1:knon)  = alb_nir_sno_lic
    284308
    285309
  • LMDZ5/branches/testing/libf/phylmd/tracinca_mod.F90

    r2641 r2787  
    3636       pdtphys,  t_seri,   paprs,          pplay,     &
    3737       pmfu,     upwd,     ftsol,  pctsrf, pphis,     &
    38        pphi,     albsol,   sh,             rh,        &
     38       pphi,     albsol,   sh,             ch, rh,    &
    3939       cldfra,   rneb,     diafra,         cldliq,    &
    4040       itop_con, ibas_con, pmflxr,         pmflxs,    &
     
    7676    REAL,DIMENSION(klon,klev),INTENT(IN)   :: t_seri  ! Temperature
    7777    REAL,DIMENSION(klon,klev),INTENT(IN)   :: sh      ! humidite specifique
     78    REAL,DIMENSION(klon,klev),INTENT(IN)   :: ch      ! eau liquide
    7879    REAL,DIMENSION(klon,klev),INTENT(IN)   :: rh      ! humidite relative
    7980    REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs   ! pression pour chaque inter-couche (en Pa)
     
    185186         t_seri,     & !tfld
    186187         sh,         & !sh
     188         ch,         & !ql
    187189         rh,         & !rh
    188190         nbp_lon,    & !nx
  • LMDZ5/branches/testing/libf/phylmd/wake.F90

    r2720 r2787  
    22! $Id$
    33
    4 SUBROUTINE wake(p, ph, pi, dtime, &
     4SUBROUTINE wake(znatsurf, p, ph, pi, dtime, &
    55                te0, qe0, omgb, &
    66                dtdwn, dqdwn, amdwn, amup, dta, dqa, &
     
    124124  ! --------------------
    125125
     126  INTEGER, DIMENSION (klon),        INTENT(IN)          :: znatsurf
    126127  REAL, DIMENSION (klon, klev),     INTENT(IN)          :: p, pi
    127128  REAL, DIMENSION (klon, klev+1),   INTENT(IN)          :: ph
     
    167168  LOGICAL, SAVE                                         :: first = .TRUE.
    168169  !$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
    170175  REAL, SAVE                                            :: crep_upper, crep_sol 
    171176  !$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)
    172180
    173181  REAL                                                  :: delta_t_min
     
    200208  REAL, DIMENSION (klon)                                :: z, dz, hw0
    201209  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
    202214
    203215  ! Sub-timestep tendencies and related variables
     
    312324  alpk=0.25
    313325  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
    316334  coefgw=4.
    317335  CALL getin_p('coefgw',coefgw)
     
    319337  WRITE(*,*) 'stark=', stark
    320338  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
    322344  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
    323349
    324350  first=.false.
     
    328354  ! Les densites peuvent evoluer si les poches debordent
    329355  ! (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
    331362
    332363  ! print*,'stark',stark
     
    824855
    825856  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)
    828859  ENDIF
    829860
     
    846877    END DO
    847878    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)
    850881    ENDIF
    851882
     
    962993    IF (prt_level>=10) THEN
    963994      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)
    965997    ENDIF
    966998
     
    16091641
    16101642  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)
    16131645  ENDIF
    16141646
     
    16321664      sum_thvu(i) = 0.
    16331665      sum_dth(i) = 0.
     1666      sum_half_dth(i) = 0.
    16341667      sum_dq(i) = 0.
    16351668      sum_rho(i) = 0.
     
    16461679      av_dtdwn(i) = 0.
    16471680      av_dqdwn(i) = 0.
     1681
     1682      dthmin(i) = -delta_t_min
    16481683    END IF
    16491684  END DO
     
    16851720      z(i) = 1.
    16861721      dz(i) = 1.
     1722      dz_half(i) = 1.
    16871723      sum_thvu(i) = thu(i, 1)*(1.+epsim1*qu(i,1))*dz(i)
    16881724      sum_dth(i) = 0.
     
    16961732        ! cc
    16971733        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)
    16981735        IF (dz(i)>0) THEN
    16991736          z(i) = z(i) + dz(i)
     
    17071744          sum_dtdwn(i) = sum_dtdwn(i) + dtdwn(i, k)*dz(i)
    17081745          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)
    17091751        END IF
    17101752      END IF
     
    17501792
    17511793  ! 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
    17521818
    17531819  DO k = 1, klev
     
    18821948
    18831949      ! 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
    18851954        ! cc
    18861955        dtls(i, k) = dtls(i, k)/dtime
  • LMDZ5/branches/testing/makelmdz

    r2720 r2787  
    3232full=""
    3333
     34arch_defined="FALSE"
     35arch_path="arch"
     36arch_default_path="arch"
     37
    3438# guess a default 'arch'
    3539arch="local" # start with assuming we're on a local machine with local arch file
     40arch_defined="TRUE" # and thus also set arch_defined to true
    3641## try to recognise machine and infer arch from it
    3742machine=`hostname`
     
    127132[-fcm_path path]           : path to the fcm tool (default: tools/fcm/bin)
    128133[-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)
    129135 -arch nom_arch            : target architecture
    130136 exec                      : executable to build
     
    204210
    205211      "-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 ;;
    207216
    208217      *)
     
    218227rm -rf .void_dir
    219228mkdir .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
     230if [[ "$arch_defined" == "TRUE" ]]
     231then
     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
    224263  source arch.path
    225264else
    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
     267fi
     268
    237269########################################################################
    238270# Definition des clefs CPP, des chemins des includes et modules
  • LMDZ5/branches/testing/makelmdz_fcm

    r2720 r2787  
    3737full=''
    3838libphy=false
     39
     40arch_defined="FALSE"
     41arch_path="arch"
     42arch_default_path="arch"
    3943
    4044LMDGCM=`/bin/pwd`
     
    107111[-fcm_path path]           : path to the fcm tool (default: tools/fcm/bin)
    108112[-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)
    109114 -arch nom_arch            : target architecture
    110115 exec                      : executable to build
     
    196201
    197202      "-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 ;;
    199207
    200208      *)
     
    226234rm -rf .void_dir
    227235mkdir .void_dir
    228 rm -f arch.path
    229 ln -s arch/arch-${arch}.path ./arch.path
    230 source arch.path
     236
     237if [[ "$arch_defined" == "TRUE" ]]
     238then
     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
     271else
     272  echo "You must define a target architecture"
     273  exit 1
     274fi
    231275
    232276########################################################################
Note: See TracChangeset for help on using the changeset viewer.