Ignore:
Timestamp:
Oct 30, 2016, 4:35:25 PM (8 years ago)
Author:
oboucher
Message:

Adding a module for stratospheric aerosols with a bin scheme.
The module gets activated with -strataer true compiling option.
May not quite work yet, more testing needed, but should not affect
the rest of LMDz as everything is under a CPP_StratAer key.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2670 r2690  
    182182         o_alt_tropo
    183183
     184#ifdef CPP_StratAer
     185    USE phys_output_ctrlout_mod, only:  &
     186         o_sulf_convert, o_sulf_nucl, o_sulf_cond_evap, o_ocs_convert, &
     187         o_sfluxaer, o_R2SO4, o_OCS_lifetime, o_SO2_lifetime, &
     188         o_OCS_backgr_tend, o_SO2_backgr_tend, o_sulf_dep_dry, o_sulf_dep_wet, &
     189         o_surf_PM25_sulf, o_ext_strat_550, o_tau_strat_550, &
     190         o_p_tropopause, o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet
     191#endif
    184192
    185193    USE phys_state_var_mod, only: pctsrf, paire_ter, rain_fall, snow_fall, &
     
    273281         ep, epmax_diag ! epmax_cape
    274282
     283#ifdef CPP_StratAer
     284    USE phys_local_var_mod, only:  &
     285         sulf_convert, sulf_nucl, sulf_cond_evap, ocs_convert, &
     286         sfluxaer, R2SO4, OCS_lifetime, SO2_lifetime, &
     287         OCS_backgr_tend, SO2_backgr_tend, sulf_dep_dry, sulf_dep_wet, &
     288         surf_PM25_sulf, tau_strat_550, p_tropopause, tausum_strat, &
     289         vsed_aer, tau_strat_1020, f_r_wet
     290#endif
     291
    275292    USE phys_output_var_mod, only: vars_defined, snow_o, zfra_o, bils_diss, &
    276293         bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, &
     
    292309         alt_tropo
    293310
    294  
    295 
    296311    USE ocean_slab_mod, only: nslay, tslab, slab_bils, slab_bilg, tice, &
    297312        seaice, slab_ekman,slab_hdiff, dt_ekman, dt_hdiff
     
    370385    CALL set_itau_iophy(itau_w)
    371386
    372     IF(.NOT.vars_defined) THEN
     387    IF (.NOT.vars_defined) THEN
    373388       iinitend = 2
    374389    ELSE
     
    381396       !$OMP MASTER
    382397       IF (vars_defined) THEN
    383           if (prt_level >= 10) then
     398          IF (prt_level >= 10) then
    384399             write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w
    385           endif
     400          ENDIF
    386401!          CALL xios_update_calendar(itau_w)
    387402          CALL xios_update_calendar(itap)
    388        END IF
     403       ENDIF
    389404       !$OMP END MASTER
    390405       !$OMP BARRIER
     
    395410
    396411       zx_tmp_fi2d = cell_area
    397        if (is_north_pole_phy) then
     412       IF (is_north_pole_phy) then
    398413         zx_tmp_fi2d(1) = cell_area(1)/nbp_lon
    399        endif
    400        if (is_south_pole_phy) then
     414       ENDIF
     415       IF (is_south_pole_phy) then
    401416         zx_tmp_fi2d(klon) = cell_area(klon)/nbp_lon
    402        endif
     417       ENDIf
    403418       CALL histwrite_phy(o_aire, zx_tmp_fi2d)
    404419
     
    779794       CALL histwrite_phy(o_uq, uq)
    780795       CALL histwrite_phy(o_vq, vq)
    781        IF(iflag_con.GE.3) THEN ! sb
     796       IF (iflag_con.GE.3) THEN ! sb
    782797          CALL histwrite_phy(o_cape, cape)
    783798          CALL histwrite_phy(o_pbase, ema_pcb)
    784799          CALL histwrite_phy(o_ptop, ema_pct)
    785800          CALL histwrite_phy(o_fbase, ema_cbmf)
    786           if (iflag_con /= 30) then
     801          IF (iflag_con /= 30) THEN
    787802             CALL histwrite_phy(o_plcl, plcl)
    788803             CALL histwrite_phy(o_plfc, plfc)
    789804             CALL histwrite_phy(o_wbeff, wbeff)
    790           end if
     805          ENDIF
    791806
    792807          CALL histwrite_phy(o_cape_max, cape)
     
    799814          CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
    800815          IF (vars_defined) THEN
    801              IF(iflag_thermals>=1)THEN
     816             IF (iflag_thermals>=1)THEN
    802817                zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
    803818             ELSE
     
    850865          DO k=1, nlevSTD
    851866             bb2=clevSTD(k)
    852              IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
     867             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
    853868                  bb2.EQ."500".OR.bb2.EQ."200".OR. &
    854869                  bb2.EQ."100".OR. &
     
    871886#endif
    872887#ifdef CPP_XIOS
    873   IF(ok_all_xml) THEN
     888  IF (ok_all_xml) THEN
    874889!XIOS  CALL xios_get_field_attr("u850",default_value=missing_val)
    875890!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    877892          DO k=1, nlevSTD
    878893             bb2=clevSTD(k)
    879              IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
     894             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
    880895                bb2.EQ."500".OR.bb2.EQ."200".OR. &
    881896                bb2.EQ."100".OR. &
     
    9941009          ELSE
    9951010              CALL histwrite_phy(o_tslab, tslab(:,1:nslay))
    996           END IF
     1011          ENDIF
    9971012          IF (version_ocean=='sicINT') THEN
    9981013              CALL histwrite_phy(o_slab_bilg, slab_bilg)
    9991014              CALL histwrite_phy(o_slab_tice, tice)
    10001015              CALL histwrite_phy(o_slab_sic, seaice)
    1001           END IF
     1016          ENDIF
    10021017          IF (slab_hdiff) THEN
    10031018            IF (nslay.EQ.1) THEN
     
    10061021            ELSE
    10071022                CALL histwrite_phy(o_slab_hdiff, dt_hdiff(:,1:nslay))
    1008             END IF
    1009           END IF
     1023            ENDIF
     1024          ENDIF
    10101025          IF (slab_ekman.GT.0) THEN
    10111026            IF (nslay.EQ.1) THEN
     
    10141029            ELSE
    10151030                CALL histwrite_phy(o_slab_ekman, dt_ekman(:,1:nslay))
    1016             END IF
    1017           END IF
     1031            ENDIF
     1032          ENDIF
    10181033       ENDIF !type_ocean == force/slab
    10191034       CALL histwrite_phy(o_weakinv, weak_inversion)
     
    10941109          ENDIF
    10951110          IF (flag_aerosol.GT.0.OR.flag_aerosol_strat.GT.0) THEN
    1096 !             DO naero = 1, naero_spc
    1097 !--correction mini bug OB
    10981111             DO naero = 1, naero_tot
    1099                 CALL histwrite_phy(o_tausumaero(naero), &
    1100                      tausum_aero(:,2,naero) )
     1112                CALL histwrite_phy(o_tausumaero(naero),tausum_aero(:,2,naero))
    11011113             END DO
    11021114          ENDIF
    11031115          IF (flag_aerosol_strat.GT.0) THEN
    1104              CALL histwrite_phy(o_tausumaero_lw, &
    1105                   tausum_aero(:,6,id_STRAT_phy) )
    1106           ENDIF
    1107        ENDIF
     1116             CALL histwrite_phy(o_tausumaero_lw,tausum_aero(:,6,id_STRAT_phy))
     1117          ENDIF
     1118       ENDIF
     1119#ifdef CPP_StratAer
     1120       IF (type_trac=='coag') THEN
     1121          CALL histwrite_phy(o_sulf_convert, sulf_convert)
     1122          CALL histwrite_phy(o_sulf_nucl, sulf_nucl)
     1123          CALL histwrite_phy(o_sulf_cond_evap, sulf_cond_evap)
     1124          CALL histwrite_phy(o_ocs_convert, ocs_convert)
     1125          CALL histwrite_phy(o_R2SO4, R2SO4)
     1126          CALL histwrite_phy(o_OCS_lifetime, OCS_lifetime)
     1127          CALL histwrite_phy(o_SO2_lifetime, SO2_lifetime)
     1128          CALL histwrite_phy(o_OCS_backgr_tend, OCS_backgr_tend)
     1129          CALL histwrite_phy(o_SO2_backgr_tend, SO2_backgr_tend)
     1130          CALL histwrite_phy(o_sulf_dep_dry, sulf_dep_dry)
     1131          CALL histwrite_phy(o_sulf_dep_wet, sulf_dep_wet)
     1132          CALL histwrite_phy(o_surf_PM25_sulf, surf_PM25_sulf)
     1133          CALL histwrite_phy(o_p_tropopause, p_tropopause)
     1134          CALL histwrite_phy(o_sfluxaer, sfluxaer)
     1135          CALL histwrite_phy(o_vsed_aer, vsed_aer)
     1136          CALL histwrite_phy(o_f_r_wet, f_r_wet)
     1137          CALL histwrite_phy(o_ext_strat_550, tau_strat_550)
     1138          CALL histwrite_phy(o_ext_strat_1020, tau_strat_1020)
     1139          CALL histwrite_phy(o_tau_strat_550, tausum_strat(:,1))
     1140          CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,2))
     1141       ENDIF
     1142#endif
    11081143       IF (ok_ade) THEN
    11091144          CALL histwrite_phy(o_topswad, topswad_aero*swradcorr)
     
    11161151          CALL histwrite_phy(o_sollwad0, sollwad0_aero)
    11171152          !====MS forcing diagnostics
    1118           if (new_aod) then
     1153          IF (new_aod) THEN
    11191154             zx_tmp_fi2d(:)=topsw_aero(:,1)*swradcorr(:)
    11201155             CALL histwrite_phy(o_swtoaas_nat,zx_tmp_fi2d)
     
    11351170             CALL histwrite_phy(o_swsrfcs_ant,zx_tmp_fi2d)
    11361171             !cf
    1137              if (.not. aerosol_couple) then
     1172             IF (.not. aerosol_couple) THEN
    11381173                zx_tmp_fi2d(:)=topswcf_aero(:,1)*swradcorr(:)
    11391174                CALL histwrite_phy(o_swtoacf_nat,zx_tmp_fi2d)
     
    11481183                zx_tmp_fi2d(:)=solswcf_aero(:,3)*swradcorr(:)
    11491184                CALL histwrite_phy(o_swsrfcf_zero,zx_tmp_fi2d)
    1150              endif
    1151           endif ! new_aod
     1185             ENDIF
     1186          ENDIF ! new_aod
    11521187          !====MS forcing diagnostics
    11531188       ENDIF
     
    12611296       CALL histwrite_phy(o_alb2, albsol2)
    12621297       !FH Sorties pour la couche limite
    1263        if (iflag_pbl>1) then
     1298       IF (iflag_pbl>1) THEN
    12641299          zx_tmp_fi3d=0.
    12651300          IF (vars_defined) THEN
    1266              do nsrf=1,nbsrf
    1267                 do k=1,klev
     1301             DO nsrf=1,nbsrf
     1302                DO k=1,klev
    12681303                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
    12691304                        +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
    1270                 enddo
    1271              enddo
     1305                ENDDO
     1306             ENDDO
    12721307          ENDIF
    12731308          CALL histwrite_phy(o_tke, zx_tmp_fi3d)
     
    13251360       CALL histwrite_phy(o_dqcon2d, zx_tmp_fi2d)
    13261361
    1327        IF(iflag_thermals.EQ.0) THEN
     1362       IF (iflag_thermals.EQ.0) THEN
    13281363          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    13291364          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
    1330        ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
     1365       ELSE IF (iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
    13311366          IF (vars_defined) THEN
    13321367             zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
     
    13501385!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    13511386       ! Sorties specifiques a la separation thermiques/non thermiques
    1352        if (iflag_thermals>=1) then
    1353           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
     1387       IF (iflag_thermals>=1) THEN
     1388          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
    13541389          CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d)
    1355           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
     1390          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
    13561391          CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d)
    1357           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
     1392          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
    13581393          CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
    13591394          CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
    13601395          CALL histwrite_phy(o_dqlscth2d, zx_tmp_fi2d)
    1361           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
     1396          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
    13621397          CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
    13631398          CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
     
    13661401          CALL histwrite_phy(o_plulst, plul_st)
    13671402          IF (vars_defined) THEN
    1368              do k=1,klev
    1369                 do i=1,klon
    1370                    if (ptconvth(i,k)) then
     1403             DO k=1,klev
     1404                DO i=1,klon
     1405                   IF (ptconvth(i,k)) THEN
    13711406                      zx_tmp_fi3d(i,k)=1.
    1372                    else
     1407                   ELSE
    13731408                      zx_tmp_fi3d(i,k)=0.
    1374                    endif
    1375                 enddo
    1376              enddo
     1409                   ENDIF
     1410                ENDDO
     1411             ENDDO
    13771412          ENDIF
    13781413          CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
     
    13831418          ENDIF
    13841419          CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
    1385        endif ! iflag_thermals>=1
     1420       ENDIF ! iflag_thermals>=1
    13861421!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    13871422       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
    13881423       CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d)
    1389        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
     1424       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
    13901425       CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
    13911426       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
     
    14371472          CALL histwrite_phy(o_dqthe2d, zx_tmp_fi2d)
    14381473       ENDIF !iflag_thermals
    1439        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
     1474       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
    14401475       CALL histwrite_phy(o_dtajs, zx_tmp_fi3d)
    1441        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
     1476       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
    14421477       CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
    14431478       CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
    14441479       CALL histwrite_phy(o_dqajs2d, zx_tmp_fi2d)
    1445        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
     1480       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
    14461481       CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
    1447        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys
     1482       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys
    14481483       CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d)
    1449        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys
     1484       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys
    14501485       CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d)
    1451        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys
     1486       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys
    14521487       CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d)
    1453        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
     1488       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
    14541489       CALL histwrite_phy(o_dtec, zx_tmp_fi3d)
    1455        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
     1490       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
    14561491       CALL histwrite_phy(o_duvdf, zx_tmp_fi3d)
    1457        IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
     1492       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
    14581493       CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
    14591494       IF (ok_orodr) THEN
    1460           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
     1495          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
    14611496          CALL histwrite_phy(o_duoro, zx_tmp_fi3d)
    1462           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
     1497          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
    14631498          CALL histwrite_phy(o_dvoro, zx_tmp_fi3d)
    1464           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
     1499          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
    14651500          CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
    14661501       ENDIF
    14671502       IF (ok_orolf) THEN
    1468           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
     1503          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
    14691504          CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
    14701505
    1471           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
     1506          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
    14721507          CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
    14731508
    1474           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
     1509          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
    14751510          CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
    14761511       ENDIF
     
    14791514          CALL histwrite_phy(o_du_gwd_hines, du_gwd_hines/pdtphys)
    14801515          CALL histwrite_phy(o_dv_gwd_hines, dv_gwd_hines/pdtphys)
    1481           IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
     1516          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
    14821517          CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
    14831518          CALL histwrite_phy(o_ustr_gwd_hines, zustr_gwd_hines)
    14841519          CALL histwrite_phy(o_vstr_gwd_hines, zvstr_gwd_hines)
    1485        end IF
    1486 
    1487        if (.not. ok_hines .and. ok_gwd_rando) then
     1520       ENDIF
     1521
     1522       IF (.not. ok_hines .and. ok_gwd_rando) THEN
    14881523          CALL histwrite_phy(o_du_gwd_front, du_gwd_front / pdtphys)
    14891524          CALL histwrite_phy(o_dv_gwd_front, dv_gwd_front / pdtphys)
     
    14921527       ENDIF
    14931528
    1494        IF (ok_gwd_rando) then
     1529       IF (ok_gwd_rando) THEN
    14951530          CALL histwrite_phy(o_du_gwd_rando, du_gwd_rando / pdtphys)
    14961531          CALL histwrite_phy(o_dv_gwd_rando, dv_gwd_rando / pdtphys)
     
    14991534          CALL histwrite_phy(o_east_gwstress, east_gwstress )
    15001535          CALL histwrite_phy(o_west_gwstress, west_gwstress )
    1501        end IF
    1502 
    1503        IF (ok_qch4) then
     1536       ENDIF
     1537
     1538       IF (ok_qch4) THEN
    15041539          CALL histwrite_phy(o_dqch4, d_q_ch4 / pdtphys)
    15051540       ENDIF
     
    15271562       CALL histwrite_phy(o_rldcs, lwdn0)
    15281563
    1529        IF(vars_defined) THEN
     1564       IF (vars_defined) THEN
    15301565          zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
    15311566               d_t_dyn(1:klon,1:klev)
     
    15331568       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
    15341569
    1535        IF(vars_defined) THEN
     1570       IF (vars_defined) THEN
    15361571          zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
    15371572               d_t_lwr(1:klon,1:klev)/pdtphys
    15381573       ENDIF
    15391574       CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
    1540        IF(vars_defined) THEN
     1575       IF (vars_defined) THEN
    15411576          zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
    15421577               d_t_eva(1:klon,1:klev)+ &
     
    15441579       ENDIF
    15451580       CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
    1546        IF(vars_defined) THEN
     1581       IF (vars_defined) THEN
    15471582          zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
    15481583               d_q_dyn(1:klon,1:klev)
    15491584       ENDIF
    15501585       CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
    1551        IF(vars_defined) THEN
     1586       IF (vars_defined) THEN
    15521587          zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
    15531588               d_q_eva(1:klon,1:klev)/pdtphys
     
    15551590       CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
    15561591       CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
    1557        IF(vars_defined) THEN
     1592       IF (vars_defined) THEN
    15581593          zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
    15591594               ql_seri(1:klon,1:klev)
    15601595       ENDIF
    15611596       CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
    1562        if (iflag_con >= 3) then
    1563           IF(vars_defined) THEN
     1597       IF (iflag_con >= 3) THEN
     1598          IF (vars_defined) THEN
    15641599             zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ &
    15651600                  dnwd0(1:klon,1:klev))
    15661601          ENDIF
    15671602          CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
    1568           IF(vars_defined) THEN
     1603          IF (vars_defined) THEN
    15691604             zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + &
    15701605                  dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev)
    15711606          ENDIF
    15721607          CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
    1573        else if (iflag_con == 2) then
     1608       ELSE IF (iflag_con == 2) THEN
    15741609          CALL histwrite_phy(o_mcd,  pmfd)
    15751610          CALL histwrite_phy(o_dmc,  pmfu + pmfd)
    1576        end if
     1611       ENDIF
    15771612       CALL histwrite_phy(o_ref_liq, ref_liq)
    15781613       CALL histwrite_phy(o_ref_ice, ref_ice)
    1579        if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. &
     1614       IF (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. &
    15801615            RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. &
    15811616            RCFC12_per.NE.RCFC12_act) THEN
    1582           IF(vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
     1617          IF (vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
    15831618          CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
    1584           IF(vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
     1619          IF (vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
    15851620          CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
    1586           IF(vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
     1621          IF (vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
    15871622          CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
    1588           IF(vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
     1623          IF (vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
    15891624          CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
    15901625          DO k=1, klevp1
     
    16261661          CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff)
    16271662          CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff)
    1628           IF(vars_defined) THEN
     1663          IF (vars_defined) THEN
    16291664             DO k=1, nlevSTD
    16301665                DO i=1, klon
    1631                    IF(tnondef(i,k,iff-6).NE.missing_val) THEN
    1632                       IF(freq_outNMC(iff-6).LT.0) THEN
     1666                   IF (tnondef(i,k,iff-6).NE.missing_val) THEN
     1667                      IF (freq_outNMC(iff-6).LT.0) THEN
    16331668                         freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
    16341669                      ELSE
     
    16431678          ENDIF
    16441679          CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD,iff)
    1645           IF(vars_defined) THEN
     1680          IF (vars_defined) THEN
    16461681             DO k=1, nlevSTD
    16471682                DO i=1, klon
    1648                    IF(O3sumSTD(i,k,iff-6).NE.missing_val) THEN
     1683                   IF (O3sumSTD(i,k,iff-6).NE.missing_val) THEN
    16491684                      zx_tmp_fi3d_STD(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
    16501685                   ELSE
     
    16551690          ENDIF
    16561691          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD,iff)
    1657           if (read_climoz == 2) THEN
    1658              IF(vars_defined) THEN
     1692          IF (read_climoz == 2) THEN
     1693             IF (vars_defined) THEN
    16591694                DO k=1, nlevSTD
    16601695                   DO i=1, klon
    1661                       IF(O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
     1696                      IF (O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
    16621697                         zx_tmp_fi3d_STD(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
    16631698                      ELSE
     
    16831718#endif
    16841719#ifdef CPP_XIOS
    1685   IF(ok_all_xml) THEN
     1720  IF (ok_all_xml) THEN
    16861721!      DO iff=7, nfiles
    16871722
     
    16941729          CALL histwrite_phy(o_va,vlevSTD(:,:))
    16951730          CALL histwrite_phy(o_wap,wlevSTD(:,:))
    1696 !         IF(vars_defined) THEN
     1731!         IF (vars_defined) THEN
    16971732!            DO k=1, nlevSTD
    16981733!               DO i=1, klon
    1699 !                  IF(tnondef(i,k,3).NE.missing_val) THEN
    1700 !                     IF(freq_outNMC(iff-6).LT.0) THEN
     1734!                  IF (tnondef(i,k,3).NE.missing_val) THEN
     1735!                     IF (freq_outNMC(iff-6).LT.0) THEN
    17011736!                        freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
    17021737!                     ELSE
     
    17111746!         ENDIF
    17121747!         CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD)
    1713           IF(vars_defined) THEN
     1748          IF (vars_defined) THEN
    17141749             DO k=1, nlevSTD
    17151750                DO i=1, klon
    1716                    IF(O3STD(i,k).NE.missing_val) THEN
     1751                   IF (O3STD(i,k).NE.missing_val) THEN
    17171752                      zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9
    17181753                   ELSE
     
    17231758          ENDIF
    17241759          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD)
    1725           if (read_climoz == 2) THEN
    1726              IF(vars_defined) THEN
     1760          IF (read_climoz == 2) THEN
     1761             IF (vars_defined) THEN
    17271762                DO k=1, nlevSTD
    17281763                   DO i=1, klon
    1729                       IF(O3daySTD(i,k).NE.missing_val) THEN
     1764                      IF (O3daySTD(i,k).NE.missing_val) THEN
    17301765                         zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9
    17311766                      ELSE
     
    17361771             ENDIF
    17371772             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD)
    1738           endif
     1773          ENDIF
    17391774          CALL histwrite_phy(o_uxv,uvSTD(:,:))
    17401775          CALL histwrite_phy(o_vxq,vqSTD(:,:))
     
    17511786!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    17521787        IF (nqtot.GE.nqo+1) THEN
    1753             DO iq=nqo+1,nqtot
    1754               IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
    1755 
    1756 !jyg<
    1757 !!             CALL histwrite_phy(o_trac(iq-nqo), qx(:,:,iq))
     1788          DO iq=nqo+1,nqtot
     1789            IF (type_trac == 'lmdz' .OR. type_trac == 'repr' .OR. type_trac == 'coag') THEN
    17581790             CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
    1759 !>jyg
    17601791             CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
    17611792             CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo))
     
    17721803             CALL histwrite_phy(o_dtr_uscav(iq-nqo),d_tr_uscav(:,:,iq-nqo))
    17731804             zx_tmp_fi2d=0.
    1774              IF(vars_defined) THEN
     1805             IF (vars_defined) THEN
    17751806                DO k=1,klev
    1776 !jyg<
    1777 !!                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
    17781807                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo)
    1779 !>jyg
    17801808                ENDDO
    17811809             ENDIF
    17821810             CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
    1783              endif
    1784           ENDDO
    1785        ENDIF
    1786 
    1787        IF(.NOT.vars_defined) THEN
     1811            ENDIF
     1812          ENDDO
     1813       ENDIF
     1814
     1815       IF (.NOT.vars_defined) THEN
    17881816          !$OMP MASTER
    17891817#ifndef CPP_IOIPSL_NO_OUTPUT
     
    18011829          CALL wxios_closedef()
    18021830#endif
    1803 
    18041831          !$OMP END MASTER
    18051832          !$OMP BARRIER
    18061833          vars_defined = .TRUE.
    1807 
    1808        END IF
    1809 
    1810     END DO
    1811 
    1812     IF(vars_defined) THEN
     1834       ENDIF
     1835
     1836    ENDDO
     1837
     1838    IF (vars_defined) THEN
    18131839       ! On synchronise les fichiers pour IOIPSL
    18141840#ifndef CPP_IOIPSL_NO_OUTPUT
     
    18231849    ENDIF
    18241850
    1825 
    18261851  END SUBROUTINE phys_output_write
    18271852
Note: See TracChangeset for help on using the changeset viewer.