Changeset 5128 for LMDZ6/branches/Amaury_dev/libf/phylmd
- Timestamp:
- Jul 25, 2024, 5:47:25 PM (4 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd
- Files:
-
- 34 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/checknanqfi.F90
r5082 r5128 1 1 SUBROUTINE checknanqfi(zq,qmin,qmax,comment) 2 2 USE dimphy 3 3 4 IMPLICIT NONE 4 5 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/phytracr_spl_mod.F90
r5117 r5128 3 3 4 4 MODULE phytracr_spl_mod 5 5 6 6 7 ! Recuperation des morceaux de la physique de Jeronimo specifiques -
LMDZ6/branches/Amaury_dev/libf/phylmd/FCTTRE.h
r5099 r5128 22 22 23 23 FOEEW ( PTARG,PDELARG ) = EXP ( & 24 &(R3LES*(1.-PDELARG)+R3IES*PDELARG) * (PTARG-RTT) &25 &/ (PTARG-(R4LES*(1.-PDELARG)+R4IES*PDELARG)) )24 (R3LES*(1.-PDELARG)+R3IES*PDELARG) * (PTARG-RTT) & 25 / (PTARG-(R4LES*(1.-PDELARG)+R4IES*PDELARG)) ) 26 26 27 27 FOEDE ( PTARG,PDELARG,P5ARG,PQSARG,PCOARG ) = PQSARG*PCOARG*P5ARG & 28 &/ (PTARG-(R4LES*(1.-PDELARG)+R4IES*PDELARG))**228 / (PTARG-(R4LES*(1.-PDELARG)+R4IES*PDELARG))**2 29 29 30 30 qsats(ptarg) = 100.0 * 0.622 * 10.0 & 31 &** (2.07023 - 0.00320991 * ptarg &32 &- 2484.896 / ptarg + 3.56654 * LOG10(ptarg))31 ** (2.07023 - 0.00320991 * ptarg & 32 - 2484.896 / ptarg + 3.56654 * LOG10(ptarg)) 33 33 qsatl(ptarg) = 100.0 * 0.622 * 10.0 & 34 &** (23.8319 - 2948.964 / ptarg &35 &- 5.028 * LOG10(ptarg) &36 &- 29810.16 * EXP( - 0.0699382 * ptarg) &37 &+ 25.21935 * EXP( - 2999.924 / ptarg))34 ** (23.8319 - 2948.964 / ptarg & 35 - 5.028 * LOG10(ptarg) & 36 - 29810.16 * EXP( - 0.0699382 * ptarg) & 37 + 25.21935 * EXP( - 2999.924 / ptarg)) 38 38 39 39 dqsats(ptarg,pqsarg) = RLVTT/RCPD*pqsarg * (3.56654/ptarg & 40 &+2484.896*LOG(10.)/ptarg**2 &41 &-0.00320991*LOG(10.))40 +2484.896*LOG(10.)/ptarg**2 & 41 -0.00320991*LOG(10.)) 42 42 dqsatl(ptarg,pqsarg) = RLVTT/RCPD*pqsarg*LOG(10.)* & 43 &(2948.964/ptarg**2-5.028/LOG(10.)/ptarg &44 &+25.21935*2999.924/ptarg**2*EXP(-2999.924/ptarg) &45 &+29810.16*0.0699382*EXP(-0.0699382*ptarg))43 (2948.964/ptarg**2-5.028/LOG(10.)/ptarg & 44 +25.21935*2999.924/ptarg**2*EXP(-2999.924/ptarg) & 45 +29810.16*0.0699382*EXP(-0.0699382*ptarg)) -
LMDZ6/branches/Amaury_dev/libf/phylmd/YOECUMF.h
r5099 r5128 12 12 13 13 COMMON /YOECUMF/ & 14 &ENTRPEN,ENTRSCV,ENTRMID,ENTRDD,CMFCTOP, &15 &CMFCMAX,CMFCMIN,CMFDEPS,RHCDD,CPRCON, &16 &LMFPEN,LMFSCV,LMFMID,LMFDD,LMFDUDV14 ENTRPEN,ENTRSCV,ENTRMID,ENTRDD,CMFCTOP, & 15 CMFCMAX,CMFCMIN,CMFDEPS,RHCDD,CPRCON, & 16 LMFPEN,LMFSCV,LMFMID,LMFDD,LMFDUDV 17 17 18 18 -
LMDZ6/branches/Amaury_dev/libf/phylmd/YOEGWD.h
r5117 r5128 25 25 26 26 COMMON/YOEGWD/ GFRCRIT,GKWAKE,GRCRIT,GVCRIT,GKDRAG,GKLIFT, & 27 &GHMAX,GRAHILO,GSIGCR,NKTOPG,NSTRA,GSSEC,GTSEC,GVSEC, &28 &GWD_RANDO_RUWMAX, gwd_rando_sat, &29 &GWD_FRONT_RUWMAX, gwd_front_sat27 GHMAX,GRAHILO,GSIGCR,NKTOPG,NSTRA,GSSEC,GTSEC,GVSEC, & 28 GWD_RANDO_RUWMAX, gwd_rando_sat, & 29 GWD_FRONT_RUWMAX, gwd_front_sat 30 30 31 31 save /YOEGWD/ -
LMDZ6/branches/Amaury_dev/libf/phylmd/YOETHF.h
r5099 r5128 22 22 ! If FALSE, then variables set by suphel.F90 23 23 COMMON /YOETHF/R2ES, R3LES, R3IES, R4LES, R4IES, R5LES, R5IES, & 24 &RVTMP2, RHOH2O, &25 &R5ALVCP,R5ALSCP,RALVDCP,RALSDCP, &26 &RALFDCP,RTWAT,RTBER,RTBERCU, &27 &RTICE,RTICECU,RTWAT_RTICE_R,RTWAT_RTICECU_R,RKOOP1,&28 &RKOOP2, &29 &OK_BAD_ECMWF_THERMO24 RVTMP2, RHOH2O, & 25 R5ALVCP,R5ALSCP,RALVDCP,RALSDCP, & 26 RALFDCP,RTWAT,RTBER,RTBERCU, & 27 RTICE,RTICECU,RTWAT_RTICE_R,RTWAT_RTICECU_R,RKOOP1,& 28 RKOOP2, & 29 OK_BAD_ECMWF_THERMO 30 30 31 31 !$OMP THREADPRIVATE(/YOETHF/) -
LMDZ6/branches/Amaury_dev/libf/phylmd/YOMCST.h
r5099 r5128 32 32 33 33 COMMON/YOMCST/RPI ,RCLUM ,RHPLA ,RKBOL ,RNAVO & 34 &,RDAY ,REA ,REPSM ,RSIYEA,RSIDAY,ROMEGA &35 &,R_ecc, R_peri, R_incl &36 &,RA ,RG ,R1SA &37 &,RSIGMA &38 &,R ,RMD ,RMV ,RD ,RV ,RCPD &39 &,RMO3 ,RMCO2 ,RMC ,RMCH4 ,RMN2O ,RMCFC11 ,RMCFC12 &40 &,RCPV ,RCVD ,RCVV ,RKAPPA,RETV, eps_w &41 &,RCW ,RCS &42 &,RLVTT ,RLSTT ,RLMLT ,RTT ,RATM &43 &,RESTT ,RALPW ,RBETW ,RGAMW ,RALPS ,RBETS ,RGAMS &44 &,RALPD ,RBETD ,RGAMD34 ,RDAY ,REA ,REPSM ,RSIYEA,RSIDAY,ROMEGA & 35 ,R_ecc, R_peri, R_incl & 36 ,RA ,RG ,R1SA & 37 ,RSIGMA & 38 ,R ,RMD ,RMV ,RD ,RV ,RCPD & 39 ,RMO3 ,RMCO2 ,RMC ,RMCH4 ,RMN2O ,RMCFC11 ,RMCFC12 & 40 ,RCPV ,RCVD ,RCVV ,RKAPPA,RETV, eps_w & 41 ,RCW ,RCS & 42 ,RLVTT ,RLSTT ,RLMLT ,RTT ,RATM & 43 ,RESTT ,RALPW ,RBETW ,RGAMW ,RALPS ,RBETS ,RGAMS & 44 ,RALPD ,RBETD ,RGAMD 45 45 ! ------------------------------------------------------------------ 46 46 !$OMP THREADPRIVATE(/YOMCST/) -
LMDZ6/branches/Amaury_dev/libf/phylmd/YOMCST2.h
r5099 r5128 6 6 7 7 COMMON/YOMCST2/gammas, alphas, betas, Fmax, scut, & 8 &qqa1, qqa2, qqa3, &9 &Qcoef1max,Qcoef2max, &10 &Supcrit1, Supcrit2, &11 &choice,iflag_mix,coef_clos_ls,iflag_mix_adiab8 qqa1, qqa2, qqa3, & 9 Qcoef1max,Qcoef2max, & 10 Supcrit1, Supcrit2, & 11 choice,iflag_mix,coef_clos_ls,iflag_mix_adiab 12 12 !$OMP THREADPRIVATE(/YOMCST2/) 13 13 ! -------------------------------------------------------------------- -
LMDZ6/branches/Amaury_dev/libf/phylmd/calcul_REGDYN.h
r1907 r5128 1 c 2 c$Header$3 c 4 c calculs statistiques distribution nuage ftion du regime dynamique 5 c 6 cCe calcul doit etre fait a partir de valeurs mensuelles ??7 CALL histo_o500_pctau(nbregdyn,pct_ocean,o500,fq_isccp, 8 &histoW,nhistoW)9 c 10 cnhistoWt = somme de toutes les nhistoW1 ! 2 ! $Header$ 3 ! 4 ! calculs statistiques distribution nuage ftion du regime dynamique 5 ! 6 ! Ce calcul doit etre fait a partir de valeurs mensuelles ?? 7 CALL histo_o500_pctau(nbregdyn,pct_ocean,o500,fq_isccp, & 8 histoW,nhistoW) 9 ! 10 ! nhistoWt = somme de toutes les nhistoW 11 11 DO nreg=1, nbregdyn 12 12 DO k = 1, kmaxm1 13 13 DO l = 1, lmaxm1 14 14 DO iw = 1, iwmax 15 nhistoWt(k,l,iw,nreg)=nhistoWt(k,l,iw,nreg)+ 16 &nhistoW(k,l,iw,nreg)15 nhistoWt(k,l,iw,nreg)=nhistoWt(k,l,iw,nreg)+& 16 nhistoW(k,l,iw,nreg) 17 17 ENDDO 18 18 ENDDO 19 19 ENDDO 20 20 ENDDO 21 c 22 cIM 190504 END21 ! 22 !IM 190504 END -
LMDZ6/branches/Amaury_dev/libf/phylmd/calltherm.F90
r5119 r5128 33 33 USE lmdz_thermcell_old, ONLY: thermcell, thermcell_2002, thermcell_eau, calcul_sec, thermcell_sec 34 34 USE lmdz_abort_physic, ONLY: abort_physic 35 35 36 #ifdef ISO 36 37 USE infotrac_phy, ONLY: ntiso -
LMDZ6/branches/Amaury_dev/libf/phylmd/clesphys.h
r5099 r5128 116 116 ! REAL FIRST 117 117 ! rajout choix_bulk et nit_bulk kz0 par Olivier Torres 118 &co2_ppm, solaire &119 &, RCO2, RCH4, RN2O, RCFC11, RCFC12 &120 &, RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act &121 &, RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per &122 &, CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt &123 &, CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per &124 &, cdmmax,cdhmax,ksta,ksta_ter,f_ri_cd_min &125 &, fmagic, pmagic &126 &, f_cdrag_ter,f_cdrag_oce,f_rugoro,z0min,tau_gl &127 &, min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce,f_z0qh_oce &128 &, z0m_seaice,z0h_seaice,z0m_landice,z0h_landice &129 &, freq_outNMC, freq_calNMC &130 &, lonmin_ins, lonmax_ins, latmin_ins, latmax_ins &131 &, freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS &132 &, cvl_corr &133 &, qsol0,albsno0,evap0 &134 &, co2_ppm0 &135 &, tau_thermals &118 co2_ppm, solaire & 119 , RCO2, RCH4, RN2O, RCFC11, RCFC12 & 120 , RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act & 121 , RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per & 122 , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 123 , CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per & 124 , cdmmax,cdhmax,ksta,ksta_ter,f_ri_cd_min & 125 , fmagic, pmagic & 126 , f_cdrag_ter,f_cdrag_oce,f_rugoro,z0min,tau_gl & 127 , min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce,f_z0qh_oce & 128 , z0m_seaice,z0h_seaice,z0m_landice,z0h_landice & 129 , freq_outNMC, freq_calNMC & 130 , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins & 131 , freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS & 132 , cvl_corr & 133 , qsol0,albsno0,evap0 & 134 , co2_ppm0 & 135 , tau_thermals & 136 136 !FC 137 &, Cd_frein,zrel_oro_t,zpmm_orodr_t,zpmm_orolf_t,zstd_orodr_t &138 &, ecrit_LES &139 &, ecrit_ins, ecrit_hf, ecrit_day &140 &, ecrit_mth, ecrit_tra, ecrit_reg &137 , Cd_frein,zrel_oro_t,zpmm_orodr_t,zpmm_orolf_t,zstd_orodr_t & 138 , ecrit_LES & 139 , ecrit_ins, ecrit_hf, ecrit_day & 140 , ecrit_mth, ecrit_tra, ecrit_reg & 141 141 ! THEN INTEGER AND LOGICALS 142 &, top_height &143 &, iflag_cycle_diurne, soil_model, new_oliq &144 &, ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad &145 &, iflag_con, nbapp_cv, nbapp_wk &146 &, choix_bulk, nit_bulk, kz0 &147 &, iflag_ener_conserv &148 & , ok_suntime_rrtm &149 &, overlap &150 &, ok_kzmin &151 &, lev_histhf, lev_histday, lev_histmth &152 &, lev_histins, lev_histLES, lev_histdayNMC, levout_histNMC &153 &, ok_histNMC &154 &, type_run, ok_regdyn, ok_cosp, ok_airs &155 &, ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP &156 &, ip_ebil_phy &157 &, iflag_gusts ,iflag_z0_oce &158 &, ok_lic_melt, ok_lic_cond, aer_type &159 &, iflag_rrtm, ok_strato,ok_hines, ok_qch4 &160 & , iflag_ice_thermo, ok_ice_sursat &161 & , ok_plane_h2o, ok_plane_contrail &162 &, ok_gwd_rando, NSW, iflag_albedo &163 &, ok_chlorophyll,ok_conserv_q, adjust_tropopause &164 &, ok_daily_climoz, ok_all_xml, ok_lwoff &165 &, iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs &166 &, iflag_thermals,nsplit_thermals &167 &, iflag_physiq, ok_3Deffect, ok_water_mass_fixer142 , top_height & 143 , iflag_cycle_diurne, soil_model, new_oliq & 144 , ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad & 145 , iflag_con, nbapp_cv, nbapp_wk & 146 , choix_bulk, nit_bulk, kz0 & 147 , iflag_ener_conserv & 148 , ok_suntime_rrtm & 149 , overlap & 150 , ok_kzmin & 151 , lev_histhf, lev_histday, lev_histmth & 152 , lev_histins, lev_histLES, lev_histdayNMC, levout_histNMC & 153 , ok_histNMC & 154 , type_run, ok_regdyn, ok_cosp, ok_airs & 155 , ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP & 156 , ip_ebil_phy & 157 , iflag_gusts ,iflag_z0_oce & 158 , ok_lic_melt, ok_lic_cond, aer_type & 159 , iflag_rrtm, ok_strato,ok_hines, ok_qch4 & 160 , iflag_ice_thermo, ok_ice_sursat & 161 , ok_plane_h2o, ok_plane_contrail & 162 , ok_gwd_rando, NSW, iflag_albedo & 163 , ok_chlorophyll,ok_conserv_q, adjust_tropopause & 164 , ok_daily_climoz, ok_all_xml, ok_lwoff & 165 , iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs & 166 , iflag_thermals,nsplit_thermals & 167 , iflag_physiq, ok_3Deffect, ok_water_mass_fixer 168 168 save /clesphys/ 169 169 !$OMP THREADPRIVATE(/clesphys/) -
LMDZ6/branches/Amaury_dev/libf/phylmd/comsoil.h
r5117 r5128 3 3 4 4 common /comsoil/inertie_sol,inertie_sno,inertie_sic,inertie_lic, & 5 &iflag_sic,iflag_inertie5 iflag_sic,iflag_inertie 6 6 REAL inertie_sol,inertie_sno,inertie_sic,inertie_lic 7 7 INTEGER iflag_sic,iflag_inertie -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/1D_decl_cases.h
r5117 r5128 190 190 191 191 common /turb_forcing/ & 192 &dtime_frcg,hthturb_gcssold, hqturb_gcssold,Turb_fcg_gcssold192 dtime_frcg,hthturb_gcssold, hqturb_gcssold,Turb_fcg_gcssold 193 193 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 194 194 ! Declarations specifiques au cas Arm_cu -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/1D_interp_cases.h
r5117 r5128 9 9 CALL interp_case_time_std(daytime,day1,annee_ref & 10 10 ! & ,year_ini_cas,day_ju_ini_cas,nt_cas,pdt_cas,nlev_cas & 11 &,nt_cas,nlev_cas &12 &,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas &13 &,u_cas,v_cas,ug_cas,vg_cas &14 &,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas &15 &,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas &16 &,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas &17 &,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas &18 &,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas &19 &,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas &11 ,nt_cas,nlev_cas & 12 ,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas & 13 ,u_cas,v_cas,ug_cas,vg_cas & 14 ,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 15 ,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas & 16 ,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas & 17 ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 18 ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas & 19 ,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas & 20 20 21 &,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas &22 &,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas &23 &,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas &24 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &25 & ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &26 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &27 &,du_prof_cas,hu_prof_cas,vu_prof_cas &28 &,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas &29 &,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &30 &,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas &31 &,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas)21 ,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas & 22 ,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 23 ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 24 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 25 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 26 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 27 ,du_prof_cas,hu_prof_cas,vu_prof_cas & 28 ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & 29 ,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 30 ,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas & 31 ,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas) 32 32 ! EV tg instead of ts_cur 33 33 tg = ts_prof_cas … … 41 41 ! vertical interpolation: 42 42 CALL interp2_case_vertical_std(play,plev,nlev_cas,plev_prof_cas & 43 &,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas &44 &,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas &45 &,ug_prof_cas,vg_prof_cas &46 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &47 &,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &43 ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 44 ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 45 ,ug_prof_cas,vg_prof_cas & 46 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 47 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 48 48 49 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &50 &,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas &51 &,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &52 &,dth_prof_cas,hth_prof_cas,vth_prof_cas &49 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 50 ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 51 ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 52 ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 53 53 54 &,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas &55 &,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas &56 &,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas &57 & ,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas &58 &,w_mod_cas,omega_mod_cas,tke_mod_cas &59 &,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas &60 &,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas &61 &,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc)54 ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 55 ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 56 ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 57 ,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas & 58 ,w_mod_cas,omega_mod_cas,tke_mod_cas & 59 ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 60 ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 61 ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 62 62 63 63 -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/1D_read_forc_cases.h
r5117 r5128 22 22 CALL interp_case_time_std(daytime,day1,annee_ref & 23 23 ! & ,year_ini_cas,day_ju_ini_cas,nt_cas,pdt_cas,nlev_cas & 24 &,nt_cas,nlev_cas &25 &,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas &26 &,u_cas,v_cas,ug_cas,vg_cas &27 &,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas &28 &,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas &29 &,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas &30 &,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas &31 &,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas &32 &,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas &24 ,nt_cas,nlev_cas & 25 ,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas & 26 ,u_cas,v_cas,ug_cas,vg_cas & 27 ,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 28 ,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas & 29 ,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas & 30 ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 31 ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas & 32 ,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas & 33 33 34 &,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas &35 &,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas &36 &,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas &37 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &38 &,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &39 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &40 &,du_prof_cas,hu_prof_cas,vu_prof_cas &41 &,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas &42 &,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &43 &,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas &44 &,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas)34 ,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas & 35 ,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 36 ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 37 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 38 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 39 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 40 ,du_prof_cas,hu_prof_cas,vu_prof_cas & 41 ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & 42 ,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 43 ,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas & 44 ,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas) 45 45 46 46 do l = 1, nlev_cas … … 51 51 ! WRITE(*,*)'avant interp vert', t_prof 52 52 CALL interp2_case_vertical_std(play,plev,nlev_cas,plev_prof_cas & 53 &,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas &54 &,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas &55 &,ug_prof_cas,vg_prof_cas &56 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &57 &,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &58 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &59 &,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas &60 &,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &61 &,dth_prof_cas,hth_prof_cas,vth_prof_cas &53 ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 54 ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 55 ,ug_prof_cas,vg_prof_cas & 56 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 57 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 58 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 59 ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 60 ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 61 ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 62 62 63 &,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas &64 &,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas &65 &,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas &66 &,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas &67 &,w_mod_cas,omega_mod_cas,tke_mod_cas &68 &,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas &69 &,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas &70 &,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc)63 ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 64 ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 65 ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 66 ,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas & 67 ,w_mod_cas,omega_mod_cas,tke_mod_cas & 68 ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 69 ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 70 ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 71 71 72 72 -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/compar1d.h
r5117 r5128 46 46 real :: p_nudging_u, p_nudging_v, p_nudging_w, p_nudging_t, p_nudging_qv 47 47 common/com_par1d/ & 48 &nat_surf,tsurf,beta_surf,rugos,rugosh, &49 &xqsol,qsurf,psurf,zsurf,albedo,time,time_ini,xlat,xlon,airefi, &50 &wtsurf,wqsurf,restart_runoff,xagesno,qsolinp,zpicinp, &51 &forcing_type,tend_u,tend_v,tend_w,tend_t,tend_q,tend_rayo, &52 &nudge_u,nudge_v,nudge_w,nudge_t,nudge_q, &53 &iflag_nudge,snowmass, &54 &restart,ok_old_disvert, &55 &tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, &56 &trad, forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar, &57 &nudging_u, nudging_v, nudging_t, nudging_qv, nudging_w, &58 &p_nudging_u, p_nudging_v, p_nudging_t, p_nudging_qv, p_nudging_w48 nat_surf,tsurf,beta_surf,rugos,rugosh, & 49 xqsol,qsurf,psurf,zsurf,albedo,time,time_ini,xlat,xlon,airefi, & 50 wtsurf,wqsurf,restart_runoff,xagesno,qsolinp,zpicinp, & 51 forcing_type,tend_u,tend_v,tend_w,tend_t,tend_q,tend_rayo, & 52 nudge_u,nudge_v,nudge_w,nudge_t,nudge_q, & 53 iflag_nudge,snowmass, & 54 restart,ok_old_disvert, & 55 tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, & 56 trad, forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar, & 57 nudging_u, nudging_v, nudging_t, nudging_qv, nudging_w, & 58 p_nudging_u, p_nudging_v, p_nudging_t, p_nudging_qv, p_nudging_w 59 59 60 60 !$OMP THREADPRIVATE(/com_par1d/) -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_1dutils.f90
r5119 r5128 1 1 MODULE lmdz_1dutils 2 2 IMPLICIT NONE; PRIVATE 3 PUBLIC fq_sat, conf_unicol, dyn1deta0, dyn1dredem, gr_fi_dyn, abort_gcm, gr_dyn_fi,&3 PUBLIC fq_sat, conf_unicol, dyn1deta0, dyn1dredem, & 4 4 disvert0, advect_vert, advect_va, lstendh, nudge_rht_init, nudge_uv_init, & 5 5 nudge_rht, nudge_uv, interp2_case_vertical … … 981 981 982 982 983 SUBROUTINE gr_fi_dyn(nfield, ngrid, im, jm, pfi, pdyn)984 USE lmdz_ssum_scopy, ONLY: scopy985 986 IMPLICIT NONE987 !=======================================================================988 ! passage d'un champ de la grille scalaire a la grille physique989 !=======================================================================990 991 !-----------------------------------------------------------------------992 ! declarations:993 ! -------------994 995 INTEGER im, jm, ngrid, nfield996 REAL pdyn(im, jm, nfield)997 REAL pfi(ngrid, nfield)998 999 INTEGER i, j, ifield, ig1000 1001 !-----------------------------------------------------------------------1002 ! calcul:1003 ! -------1004 1005 DO ifield = 1, nfield1006 ! traitement des poles1007 DO i = 1, im1008 pdyn(i, 1, ifield) = pfi(1, ifield)1009 pdyn(i, jm, ifield) = pfi(ngrid, ifield)1010 ENDDO1011 1012 ! traitement des point normaux1013 DO j = 2, jm - 11014 ig = 2 + (j - 2) * (im - 1)1015 CALL SCOPY(im - 1, pfi(ig, ifield), 1, pdyn(1, j, ifield), 1)1016 pdyn(im, j, ifield) = pdyn(1, j, ifield)1017 ENDDO1018 ENDDO1019 1020 END SUBROUTINE gr_fi_dyn1021 1022 1023 SUBROUTINE abort_gcm(modname, message, ierr)1024 USE IOIPSL1025 1026 ! Stops the simulation cleanly, closing files and printing various1027 ! comments1028 1029 ! Input: modname = name of calling program1030 ! message = stuff to print1031 ! ierr = severity of situation ( = 0 normal )1032 1033 CHARACTER(LEN = *) modname1034 INTEGER ierr1035 CHARACTER(LEN = *) message1036 1037 WRITE(*, *) 'in abort_gcm'1038 CALL histclo1039 ! CALL histclo(2)1040 ! CALL histclo(3)1041 ! CALL histclo(4)1042 ! CALL histclo(5)1043 WRITE(*, *) 'out of histclo'1044 WRITE(*, *) 'Stopping in ', modname1045 WRITE(*, *) 'Reason = ', message1046 CALL getin_dump1047 1048 IF (ierr == 0) THEN1049 WRITE(*, *) 'Everything is cool'1050 else1051 WRITE(*, *) 'Houston, we have a problem ', ierr1052 endif1053 STOP1054 END SUBROUTINE abort_gcm1055 1056 1057 SUBROUTINE gr_dyn_fi(nfield, im, jm, ngrid, pdyn, pfi)1058 IMPLICIT NONE1059 !=======================================================================1060 ! passage d'un champ de la grille scalaire a la grille physique1061 !=======================================================================1062 1063 !-----------------------------------------------------------------------1064 ! declarations:1065 ! -------------1066 1067 INTEGER im, jm, ngrid, nfield1068 REAL pdyn(im, jm, nfield)1069 REAL pfi(ngrid, nfield)1070 1071 INTEGER j, ifield, ig1072 1073 !-----------------------------------------------------------------------1074 ! calcul:1075 ! -------1076 1077 IF(ngrid/=2 + (jm - 2) * (im - 1).AND.ngrid/=1) &1078 & STOP 'probleme de dim'1079 ! traitement des poles1080 CALL SCOPY(nfield, pdyn, im * jm, pfi, ngrid)1081 CALL SCOPY(nfield, pdyn(1, jm, 1), im * jm, pfi(ngrid, 1), ngrid)1082 1083 ! traitement des point normaux1084 DO ifield = 1, nfield1085 DO j = 2, jm - 11086 ig = 2 + (j - 2) * (im - 1)1087 CALL SCOPY(im - 1, pdyn(1, j, ifield), 1, pfi(ig, ifield), 1)1088 ENDDO1089 ENDDO1090 END SUBROUTINE gr_dyn_fi1091 1092 1093 983 SUBROUTINE disvert0(pa, preff, ap, bp, dpres, presnivs, nivsigs, nivsig) 1094 984 … … 1852 1742 1853 1743 END MODULE lmdz_1dutils 1744 1745 SUBROUTINE gr_fi_dyn(nfield, ngrid, im, jm, pfi, pdyn) 1746 USE lmdz_ssum_scopy, ONLY: scopy 1747 1748 IMPLICIT NONE 1749 !======================================================================= 1750 ! passage d'un champ de la grille scalaire a la grille physique 1751 !======================================================================= 1752 1753 !----------------------------------------------------------------------- 1754 ! declarations: 1755 ! ------------- 1756 1757 INTEGER im, jm, ngrid, nfield 1758 REAL pdyn(im, jm, nfield) 1759 REAL pfi(ngrid, nfield) 1760 1761 INTEGER i, j, ifield, ig 1762 1763 !----------------------------------------------------------------------- 1764 ! calcul: 1765 ! ------- 1766 1767 DO ifield = 1, nfield 1768 ! traitement des poles 1769 DO i = 1, im 1770 pdyn(i, 1, ifield) = pfi(1, ifield) 1771 pdyn(i, jm, ifield) = pfi(ngrid, ifield) 1772 ENDDO 1773 1774 ! traitement des point normaux 1775 DO j = 2, jm - 1 1776 ig = 2 + (j - 2) * (im - 1) 1777 CALL SCOPY(im - 1, pfi(ig, ifield), 1, pdyn(1, j, ifield), 1) 1778 pdyn(im, j, ifield) = pdyn(1, j, ifield) 1779 ENDDO 1780 ENDDO 1781 1782 END SUBROUTINE gr_fi_dyn 1783 1784 SUBROUTINE gr_dyn_fi(nfield, im, jm, ngrid, pdyn, pfi) 1785 USE lmdz_ssum_scopy, ONLY: scopy 1786 1787 IMPLICIT NONE 1788 !======================================================================= 1789 ! passage d'un champ de la grille scalaire a la grille physique 1790 !======================================================================= 1791 1792 !----------------------------------------------------------------------- 1793 ! declarations: 1794 ! ------------- 1795 1796 INTEGER im, jm, ngrid, nfield 1797 REAL pdyn(im, jm, nfield) 1798 REAL pfi(ngrid, nfield) 1799 1800 INTEGER j, ifield, ig 1801 1802 !----------------------------------------------------------------------- 1803 ! calcul: 1804 ! ------- 1805 1806 IF(ngrid/=2 + (jm - 2) * (im - 1).AND.ngrid/=1) & 1807 & STOP 'probleme de dim' 1808 ! traitement des poles 1809 CALL SCOPY(nfield, pdyn, im * jm, pfi, ngrid) 1810 CALL SCOPY(nfield, pdyn(1, jm, 1), im * jm, pfi(ngrid, 1), ngrid) 1811 1812 ! traitement des point normaux 1813 DO ifield = 1, nfield 1814 DO j = 2, jm - 1 1815 ig = 2 + (j - 2) * (im - 1) 1816 CALL SCOPY(im - 1, pdyn(1, j, ifield), 1, pfi(ig, ifield), 1) 1817 ENDDO 1818 ENDDO 1819 END SUBROUTINE gr_dyn_fi -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_old_1dconv.f90
r5119 r5128 1 1 MODULE lmdz_old_1dconv 2 IMPLICIT NONE; PRIVATE3 PUBLIC get_uvd, copie 2 PRIVATE ! -- We'd love to put IMPLICIT NONE; here... 3 PUBLIC get_uvd, copie, get_uvd2, rdgrads, spaces 4 4 CONTAINS 5 5 … … 67 67 INTEGER itap 68 68 REAL dtime 69 REAL ht( 100)70 REAL hq( 100)71 REAL hu( 100)72 REAL hv( 100)73 REAL hw( 100)74 REAL hthturb( 100)75 REAL hqturb( 100)69 REAL ht(:) 70 REAL hq(:) 71 REAL hu(:) 72 REAL hv(:) 73 REAL hw(:) 74 REAL hthturb(:) 75 REAL hqturb(:) 76 76 REAL Ts, Ts_subr 77 77 LOGICAL imp_fcg … … 142 142 ! variables destinees a la lecture du pas de temps du fichier de donnees 143 143 !--------------------------------------------------------------------- 144 character*80 aaa, atemps, spaces,apasmax144 character*80 aaa, atemps, apasmax 145 145 INTEGER nch, imn, ipa 146 !---------------------------------------------------------------------147 ! procedures appelees148 external rdgrads !lire en iterant dans forcing.dat149 146 !--------------------------------------------------------------------- 150 147 PRINT*, 'le pas itap est:', itap … … 583 580 584 581 character*4 a 585 character*80 aaa, anblvl , spaces582 character*80 aaa, anblvl 586 583 INTEGER nch 587 584 … … 812 809 ENDIF 813 810 END 814 CHARACTER*( *) FUNCTION SPACES(STR, NSPACE)811 CHARACTER*(80) FUNCTION SPACES(STR, NSPACE) 815 812 816 813 ! CERN PROGLIB# M433 SPACES .VERSION KERNFOR 4.14 860211 … … 821 818 !- replaced by NSPACE blanks inside the string STR 822 819 823 CHARACTER*( *) STR824 INTEGER nspace 820 CHARACTER*(80) STR 821 INTEGER nspace, IBLANK, ISPACE, INONBL, LENSPA 825 822 826 823 LENSPA = LEN(SPACES) … … 854 851 855 852 CHARACTER*(*) STR, SSTR 856 INTEGER I 853 INTEGER I, LENS, LENSS 857 854 858 855 LENS = LEN(STR) -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_old_lmdz1d.F90
r5117 r5128 2 2 3 3 MODULE lmdz_old_lmdz1d 4 IMPLICIT NONE; PRIVATE 4 USE lmdz_old_1dconv, ONLY: copie, get_uvd2, get_uvd, rdgrads, spaces 5 USE lmdz_1dutils, ONLY: interp2_case_vertical, nudge_uv, nudge_rht, lstendh, nudge_uv_init, & 6 nudge_rht_init, disvert0 7 PRIVATE ! -- We'd love to put IMPLICIT NONE; here... 5 8 PUBLIC old_lmdz1d 6 9 CONTAINS -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_scm.F90
r5117 r5128 1 1 MODULE lmdz_scm 2 ; PRIVATE2 PRIVATE ! -- We'd love to put IMPLICIT NONE; here... 3 3 PUBLIC scm 4 4 CONTAINS … … 41 41 itau_dyn, itau_phy, start_time, year_len 42 42 USE phys_cal_mod, ONLY: year_len_phys_cal_mod => year_len 43 USE lmdz_1dutils, ONLY: fq_sat, conf_unicol, dyn1deta0, dyn1dredem 43 USE lmdz_1dutils, ONLY: fq_sat, conf_unicol, dyn1deta0, dyn1dredem, disvert0 44 44 45 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_OUTPUTPHYSSCM 45 END SUBROUTINE scm 46 46 47 47 INCLUDE "dimensions.h" 48 48 INCLUDE "YOMCST.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/replay1d.F90
r5119 r5128 88 88 89 89 !======================================================================= 90 SUBROUTINE abort_gcm(modname, message, ierr)91 USE IOIPSL92 ! Stops the simulation cleanly, closing files and printing various93 ! comments94 !=======================================================================95 96 ! Input: modname = name of calling program97 ! message = stuff to print98 ! ierr = severity of situation ( = 0 normal )99 100 CHARACTER(LEN = *) modname101 INTEGER ierr102 CHARACTER(LEN = *) message103 104 WRITE(*, *) 'in abort_gcm'105 CALL histclo106 WRITE(*, *) 'out of histclo'107 WRITE(*, *) 'Stopping in ', modname108 WRITE(*, *) 'Reason = ', message109 CALL getin_dump110 111 IF (ierr == 0) THEN112 WRITE(*, *) 'Everything is cool'113 else114 WRITE(*, *) 'Houston, we have a problem ', ierr115 endif116 STOP117 END118 119 !=======================================================================120 90 SUBROUTINE gr_dyn_fi(nfield, im, jm, ngrid, pdyn, pfi) 121 91 USE lmdz_ssum_scopy, ONLY: scopy -
LMDZ6/branches/Amaury_dev/libf/phylmd/fcg_gcssold.h
r5117 r5128 7 7 8 8 common /fcg_gcssold/imp_fcg_gcssold,ts_fcg_gcssold,Tp_fcg_gcssold, & 9 &Tp_ini_gcssold, &10 &xTurb_fcg_gcssold9 Tp_ini_gcssold, & 10 xTurb_fcg_gcssold 11 11 12 12 !$OMP THREADPRIVATE(/fcg_gcssold/) -
LMDZ6/branches/Amaury_dev/libf/phylmd/fonte_neige_mod.F90
r5117 r5128 10 10 USE dimphy, ONLY: klon 11 11 USE indice_sol_mod 12 12 13 13 14 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/phylmd/infotrac_phy.F90
r5118 r5128 135 135 USE lmdz_abort_physic, ONLY: abort_physic 136 136 USE lmdz_iniprint, ONLY: lunout, prt_level 137 138 137 139 IMPLICIT NONE 138 140 !============================================================================================================================== -
LMDZ6/branches/Amaury_dev/libf/phylmd/ini_histREGDYN.h
r5117 r5128 49 49 c TROP 50 50 CALL histdef(nid_regdyn, "hw1", "Tropics Histogram ", "%", 51 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,52 &"ave(X)", zstophy,zout)51 kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 52 "ave(X)", zstophy,zout) 53 53 54 54 CALL histdef(nid_regdyn, "nh1", "Nb of pixels Tropics Histo", 55 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,56 &32,"ave(X)", zstophy,zout)55 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 56 32,"ave(X)", zstophy,zout) 57 57 c 58 58 59 59 CALL histdef(nid_regdyn, "nht1", 60 &"Total Nb pixels Tropics Histo",61 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,62 &32,"ave(X)", zstophy,zout)60 "Total Nb pixels Tropics Histo", 61 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 62 32,"ave(X)", zstophy,zout) 63 63 c 64 64 c PAN 65 65 CALL histdef(nid_regdyn, "hw2", "North Pacific Histogram", "%", 66 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,67 &"ave(X)", zstophy,zout)66 kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 67 "ave(X)", zstophy,zout) 68 68 69 69 CALL histdef(nid_regdyn, "nh2", "Nb of pixels North Pacific", 70 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,71 &32,"ave(X)", zstophy,zout)70 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 71 32,"ave(X)", zstophy,zout) 72 72 c 73 73 74 74 CALL histdef(nid_regdyn, "nht2", 75 &"Total Nb pixels North Pacific Histo",76 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,77 &32,"ave(X)", zstophy,zout)75 "Total Nb pixels North Pacific Histo", 76 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 77 32,"ave(X)", zstophy,zout) 78 78 c CAL 79 79 CALL histdef(nid_regdyn, "hw3", "California Histogram", "%", 80 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,81 &"ave(X)", zstophy,zout)80 kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 81 "ave(X)", zstophy,zout) 82 82 83 83 CALL histdef(nid_regdyn, "nh3", 84 &"Nb of pixels California Histo",85 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,86 &32,"ave(X)", zstophy,zout)84 "Nb of pixels California Histo", 85 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 86 32,"ave(X)", zstophy,zout) 87 87 c 88 88 89 89 CALL histdef(nid_regdyn, "nht3", 90 &"Total Nb pixels California Histo",91 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,92 &32,"ave(X)", zstophy,zout)90 "Total Nb pixels California Histo", 91 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 92 32,"ave(X)", zstophy,zout) 93 93 c HAW 94 94 CALL histdef(nid_regdyn, "hw4", "Hawai Histogram", "%", 95 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,96 &"ave(X)", zstophy,zout)95 kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 96 "ave(X)", zstophy,zout) 97 97 98 98 CALL histdef(nid_regdyn, "nh4", "Nb of pixels Hawai Histo", 99 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,100 &32,"ave(X)", zstophy,zout)99 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 100 32,"ave(X)", zstophy,zout) 101 101 c 102 102 103 103 CALL histdef(nid_regdyn, "nht4", 104 &"Total Nb pixels Hawai Histo",105 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,106 &32,"ave(X)", zstophy,zout)104 "Total Nb pixels Hawai Histo", 105 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 106 32,"ave(X)", zstophy,zout) 107 107 c WAP 108 108 CALL histdef(nid_regdyn, "hw5", "Warm Pool Histogram", "%", 109 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,110 &"ave(X)", zstophy,zout)109 kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 110 "ave(X)", zstophy,zout) 111 111 112 112 CALL histdef(nid_regdyn, "nh5", "Nb of pixels Warm Pool Histo", 113 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,114 &32,"ave(X)", zstophy,zout)113 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 114 32,"ave(X)", zstophy,zout) 115 115 c 116 116 117 117 CALL histdef(nid_regdyn, "nht5", 118 &"Total Nb pixels Warm Pool Histo",119 &"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,120 &32,"ave(X)", zstophy,zout)118 "Total Nb pixels Warm Pool Histo", 119 "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 120 32,"ave(X)", zstophy,zout) 121 121 c 122 122 CALL histend(nid_regdyn) -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_qso.f90
r5117 r5128 533 533 ist = isotSV(ikl) ! Soil Type 534 534 SatRat = (eta_SV(ikl,isl)-etadSV(ist)) & ! OverSaturation Rate 535 *ro_Wat *dzAvSV(isl) & ! 536 *LSdzsv(ikl) & ! 537 /dt__SV ! 538 SoRnOF(ikl) = SoRnOF(ikl) & ! 539 + max(zero,SatRat) ! 540 RuofSV(ikl,3) = RuofSV(ikl,3) + & 541 + max(zero,SatRat) 535 *ro_Wat *dzAvSV(isl) & 536 *LSdzsv(ikl) & 537 /dt__SV 538 SoRnOF(ikl) = SoRnOF(ikl) + max(zero,SatRat) 539 RuofSV(ikl,3) = RuofSV(ikl,3) + max(zero,SatRat) 542 540 eta_SV(ikl,isl) = max(epsi & ! 543 541 ! #ED. +etamSV(isotSV(ikl))! -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/surf_inlandsis_mod.F90
r5117 r5128 783 783 min_period = 1800. ! en secondes 784 784 dalph_soil = 2. ! rapport entre les epaisseurs de 2 couches succ. 785 ! $OMP MASTER785 !!! !$OMP MASTER 786 786 ! IF (is_mpi_root) THEN 787 787 ! OPEN(99,file='soil.def',status='old',form='formatted',iostat=ierr) … … 795 795 ! END IF 796 796 ! ENDIF 797 ! $OMP END MASTER797 !!! !$OMP END MASTER 798 798 ! CALL bcast(min_period) 799 799 ! CALL bcast(dalph_soil) -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_simu_airs.f90
r5127 r5128 1 module m_simu_airs1 module lmdz_simu_airs 2 2 3 3 USE lmdz_print_control, ONLY: prt_level, lunout … … 1097 1097 END SUBROUTINE test_bornes 1098 1098 1099 END MODULE m_simu_airs 1100 1101 1102 SUBROUTINE simu_airs & 1103 (itap, rneb_airs, temp_airs, cldemi_airs, iwcon0_airs, rad_airs, & 1104 geop_airs, pplay_airs, paprs_airs, & 1105 map_prop_hc, map_prop_hist, & 1106 map_emis_hc, map_iwp_hc, map_deltaz_hc, map_pcld_hc, map_tcld_hc, & 1107 map_emis_Cb, map_pcld_Cb, map_tcld_Cb, & 1108 map_emis_ThCi, map_pcld_ThCi, map_tcld_ThCi, & 1109 map_emis_Anv, map_pcld_Anv, map_tcld_Anv, & 1110 map_emis_hist, map_iwp_hist, map_deltaz_hist, map_rad_hist, & 1111 map_ntot, map_hc, map_hist, & 1112 map_Cb, map_ThCi, map_Anv, alt_tropo) 1113 1114 USE dimphy 1115 USE m_simu_airs 1116 1117 IMPLICIT NONE 1118 1119 include "YOMCST.h" 1120 1121 INTEGER, INTENT(IN) :: itap 1122 1123 REAL, DIMENSION(klon, klev), INTENT(IN) :: & 1124 rneb_airs, temp_airs, cldemi_airs, iwcon0_airs, & 1125 rad_airs, geop_airs, pplay_airs, paprs_airs 1126 1127 REAL, DIMENSION(klon, klev) :: & 1128 rhodz_airs, rho_airs, iwcon_airs 1129 1130 REAL, DIMENSION(klon), INTENT(OUT) :: alt_tropo 1131 1132 REAL, DIMENSION(klev) :: rneb_1D, temp_1D, & 1133 emis_1D, rad_1D, pres_1D, alt_1D, & 1134 rhodz_1D, dz_1D, iwcon_1D 1135 1136 INTEGER :: i, j 1137 1138 REAL :: cc_tot_mesh, cc_hc_mesh, cc_hist_mesh 1139 REAL :: cc_Cb_mesh, cc_ThCi_mesh, cc_Anv_mesh 1140 REAL :: pcld_hc_mesh, tcld_hc_mesh, em_hc_mesh, iwp_hc_mesh 1141 REAL :: em_hist_mesh, iwp_hist_mesh 1142 REAL :: deltaz_hc_mesh, deltaz_hist_mesh, rad_hist_mesh 1143 REAL :: pcld_Cb_mesh, tcld_Cb_mesh, em_Cb_mesh 1144 REAL :: pcld_ThCi_mesh, tcld_ThCi_mesh, em_ThCi_mesh 1145 REAL :: pcld_Anv_mesh, tcld_Anv_mesh, em_Anv_mesh 1146 1147 REAL, DIMENSION(klon), INTENT(OUT) :: map_prop_hc, map_prop_hist 1148 REAL, DIMENSION(klon), INTENT(OUT) :: map_emis_hc, map_iwp_hc 1149 REAL, DIMENSION(klon), INTENT(OUT) :: map_deltaz_hc, map_pcld_hc 1150 REAL, DIMENSION(klon), INTENT(OUT) :: map_tcld_hc 1151 REAL, DIMENSION(klon), INTENT(OUT) :: map_emis_Cb, map_pcld_Cb, map_tcld_Cb 1152 REAL, DIMENSION(klon), INTENT(OUT) :: & 1153 map_emis_ThCi, map_pcld_ThCi, map_tcld_ThCi 1154 REAL, DIMENSION(klon), INTENT(OUT) :: & 1155 map_emis_Anv, map_pcld_Anv, map_tcld_Anv 1156 REAL, DIMENSION(klon), INTENT(OUT) :: & 1157 map_emis_hist, map_iwp_hist, map_deltaz_hist, & 1158 map_rad_hist 1159 REAL, DIMENSION(klon), INTENT(OUT) :: map_ntot, map_hc, map_hist 1160 REAL, DIMENSION(klon), INTENT(OUT) :: map_Cb, map_ThCi, map_Anv 1161 1162 WRITE(*, *) 'simu_airs' 1163 WRITE(*, *) 'itap, klon, klev', itap, klon, klev 1164 WRITE(*, *) 'RG, RD =', RG, RD 1165 1166 1167 ! Definition des variables 1D 1168 1169 do i = 1, klon 1170 do j = 1, klev - 1 1171 rhodz_airs(i, j) = & 1172 (paprs_airs(i, j) - paprs_airs(i, j + 1)) / RG 1173 enddo 1174 rhodz_airs(i, klev) = 0. 1175 enddo 1176 1177 do i = 1, klon 1178 do j = 1, klev 1179 rho_airs(i, j) = & 1180 pplay_airs(i, j) / (temp_airs(i, j) * RD) 1181 1182 IF (rneb_airs(i, j) > 0.001) THEN 1183 iwcon_airs(i, j) = iwcon0_airs(i, j) / rneb_airs(i, j) 1184 else 1185 iwcon_airs(i, j) = 0. 1186 endif 1187 1188 enddo 1189 enddo 1190 1191 !============================================================================= 1192 1193 do i = 1, klon ! boucle sur les points de grille 1099 1100 SUBROUTINE simu_airs & 1101 (itap, rneb_airs, temp_airs, cldemi_airs, iwcon0_airs, rad_airs, & 1102 geop_airs, pplay_airs, paprs_airs, & 1103 map_prop_hc, map_prop_hist, & 1104 map_emis_hc, map_iwp_hc, map_deltaz_hc, map_pcld_hc, map_tcld_hc, & 1105 map_emis_Cb, map_pcld_Cb, map_tcld_Cb, & 1106 map_emis_ThCi, map_pcld_ThCi, map_tcld_ThCi, & 1107 map_emis_Anv, map_pcld_Anv, map_tcld_Anv, & 1108 map_emis_hist, map_iwp_hist, map_deltaz_hist, map_rad_hist, & 1109 map_ntot, map_hc, map_hist, & 1110 map_Cb, map_ThCi, map_Anv, alt_tropo) 1111 1112 USE dimphy 1113 1114 IMPLICIT NONE 1115 1116 include "YOMCST.h" 1117 1118 INTEGER, INTENT(IN) :: itap 1119 1120 REAL, DIMENSION(klon, klev), INTENT(IN) :: & 1121 rneb_airs, temp_airs, cldemi_airs, iwcon0_airs, & 1122 rad_airs, geop_airs, pplay_airs, paprs_airs 1123 1124 REAL, DIMENSION(klon, klev) :: & 1125 rhodz_airs, rho_airs, iwcon_airs 1126 1127 REAL, DIMENSION(klon), INTENT(OUT) :: alt_tropo 1128 1129 REAL, DIMENSION(klev) :: rneb_1D, temp_1D, & 1130 emis_1D, rad_1D, pres_1D, alt_1D, & 1131 rhodz_1D, dz_1D, iwcon_1D 1132 1133 INTEGER :: i, j 1134 1135 REAL :: cc_tot_mesh, cc_hc_mesh, cc_hist_mesh 1136 REAL :: cc_Cb_mesh, cc_ThCi_mesh, cc_Anv_mesh 1137 REAL :: pcld_hc_mesh, tcld_hc_mesh, em_hc_mesh, iwp_hc_mesh 1138 REAL :: em_hist_mesh, iwp_hist_mesh 1139 REAL :: deltaz_hc_mesh, deltaz_hist_mesh, rad_hist_mesh 1140 REAL :: pcld_Cb_mesh, tcld_Cb_mesh, em_Cb_mesh 1141 REAL :: pcld_ThCi_mesh, tcld_ThCi_mesh, em_ThCi_mesh 1142 REAL :: pcld_Anv_mesh, tcld_Anv_mesh, em_Anv_mesh 1143 1144 REAL, DIMENSION(klon), INTENT(OUT) :: map_prop_hc, map_prop_hist 1145 REAL, DIMENSION(klon), INTENT(OUT) :: map_emis_hc, map_iwp_hc 1146 REAL, DIMENSION(klon), INTENT(OUT) :: map_deltaz_hc, map_pcld_hc 1147 REAL, DIMENSION(klon), INTENT(OUT) :: map_tcld_hc 1148 REAL, DIMENSION(klon), INTENT(OUT) :: map_emis_Cb, map_pcld_Cb, map_tcld_Cb 1149 REAL, DIMENSION(klon), INTENT(OUT) :: & 1150 map_emis_ThCi, map_pcld_ThCi, map_tcld_ThCi 1151 REAL, DIMENSION(klon), INTENT(OUT) :: & 1152 map_emis_Anv, map_pcld_Anv, map_tcld_Anv 1153 REAL, DIMENSION(klon), INTENT(OUT) :: & 1154 map_emis_hist, map_iwp_hist, map_deltaz_hist, & 1155 map_rad_hist 1156 REAL, DIMENSION(klon), INTENT(OUT) :: map_ntot, map_hc, map_hist 1157 REAL, DIMENSION(klon), INTENT(OUT) :: map_Cb, map_ThCi, map_Anv 1158 1159 WRITE(*, *) 'simu_airs' 1160 WRITE(*, *) 'itap, klon, klev', itap, klon, klev 1161 WRITE(*, *) 'RG, RD =', RG, RD 1162 1163 1164 ! Definition des variables 1D 1165 1166 do i = 1, klon 1167 do j = 1, klev - 1 1168 rhodz_airs(i, j) = & 1169 (paprs_airs(i, j) - paprs_airs(i, j + 1)) / RG 1170 enddo 1171 rhodz_airs(i, klev) = 0. 1172 enddo 1173 1174 do i = 1, klon 1175 do j = 1, klev 1176 rho_airs(i, j) = & 1177 pplay_airs(i, j) / (temp_airs(i, j) * RD) 1178 1179 IF (rneb_airs(i, j) > 0.001) THEN 1180 iwcon_airs(i, j) = iwcon0_airs(i, j) / rneb_airs(i, j) 1181 else 1182 iwcon_airs(i, j) = 0. 1183 endif 1184 1185 enddo 1186 enddo 1194 1187 1195 1188 !============================================================================= 1196 1189 1197 do j = 1, klev 1198 1199 rneb_1D(j) = rneb_airs(i, j) 1200 temp_1D(j) = temp_airs(i, j) 1201 emis_1D(j) = cldemi_airs(i, j) 1202 iwcon_1D(j) = iwcon_airs(i, j) 1203 rad_1D(j) = rad_airs(i, j) 1204 pres_1D(j) = pplay_airs(i, j) 1205 alt_1D(j) = geop_airs(i, j) / RG 1206 rhodz_1D(j) = rhodz_airs(i, j) 1207 dz_1D(j) = rhodz_airs(i, j) / rho_airs(i, j) 1208 1209 enddo 1210 1211 alt_tropo(i) = & 1212 search_tropopause(pres_1D / 100., temp_1D, alt_1D, klev) 1213 1214 1215 ! Appel du ss-programme sim_mesh 1216 1217 ! if (itap .EQ. 1 ) THEN 1218 CALL sim_mesh(rneb_1D, temp_1D, emis_1D, iwcon_1D, rad_1D, & 1219 pres_1D, dz_1D, rhodz_1D, & 1220 cc_tot_mesh, cc_hc_mesh, cc_hist_mesh, & 1221 pcld_hc_mesh, tcld_hc_mesh, em_hc_mesh, iwp_hc_mesh, & 1222 deltaz_hc_mesh, & 1223 cc_Cb_mesh, cc_ThCi_mesh, cc_Anv_mesh, & 1224 pcld_Cb_mesh, tcld_Cb_mesh, em_Cb_mesh, & 1225 pcld_ThCi_mesh, tcld_ThCi_mesh, em_ThCi_mesh, & 1226 pcld_Anv_mesh, tcld_Anv_mesh, em_Anv_mesh, & 1227 em_hist_mesh, iwp_hist_mesh, deltaz_hist_mesh, rad_hist_mesh) 1228 1229 WRITE(*, *) '====================================' 1230 WRITE(*, *) 'itap, i:', itap, i 1231 WRITE(*, *) 'cc_tot, cc_hc, cc_hist, pcld_hc, tcld_hc, em_hc, & 1232 iwp_hc, em_hist, iwp_hist =' 1233 WRITE(*, *) cc_tot_mesh, cc_hc_mesh, cc_hist_mesh 1234 WRITE(*, *) pcld_hc_mesh, tcld_hc_mesh, em_hc_mesh, iwp_hc_mesh 1235 WRITE(*, *) em_hist_mesh, iwp_hist_mesh 1236 1237 ! endif 1238 1239 ! Definition des variables a ecrire dans le fichier de sortie 1240 1241 CALL normal2_undef(map_prop_hc(i), cc_hc_mesh, & 1242 cc_tot_mesh) 1243 CALL normal2_undef(map_prop_hist(i), cc_hist_mesh, & 1244 cc_tot_mesh) 1245 1246 map_emis_hc(i) = em_hc_mesh 1247 map_iwp_hc(i) = iwp_hc_mesh 1248 map_deltaz_hc(i) = deltaz_hc_mesh 1249 map_pcld_hc(i) = pcld_hc_mesh 1250 map_tcld_hc(i) = tcld_hc_mesh 1251 1252 map_emis_Cb(i) = em_Cb_mesh 1253 map_pcld_Cb(i) = pcld_Cb_mesh 1254 map_tcld_Cb(i) = tcld_Cb_mesh 1255 1256 map_emis_ThCi(i) = em_ThCi_mesh 1257 map_pcld_ThCi(i) = pcld_ThCi_mesh 1258 map_tcld_ThCi(i) = tcld_ThCi_mesh 1259 1260 map_emis_Anv(i) = em_Anv_mesh 1261 map_pcld_Anv(i) = pcld_Anv_mesh 1262 map_tcld_Anv(i) = tcld_Anv_mesh 1263 1264 map_emis_hist(i) = em_hist_mesh 1265 map_iwp_hist(i) = iwp_hist_mesh 1266 map_deltaz_hist(i) = deltaz_hist_mesh 1267 map_rad_hist(i) = rad_hist_mesh 1268 1269 map_ntot(i) = cc_tot_mesh 1270 map_hc(i) = cc_hc_mesh 1271 map_hist(i) = cc_hist_mesh 1272 1273 map_Cb(i) = cc_Cb_mesh 1274 map_ThCi(i) = cc_ThCi_mesh 1275 map_Anv(i) = cc_Anv_mesh 1276 1277 enddo ! fin boucle sur les points de grille 1278 1279 END SUBROUTINE simu_airs 1280 1190 do i = 1, klon ! boucle sur les points de grille 1191 1192 !============================================================================= 1193 1194 do j = 1, klev 1195 1196 rneb_1D(j) = rneb_airs(i, j) 1197 temp_1D(j) = temp_airs(i, j) 1198 emis_1D(j) = cldemi_airs(i, j) 1199 iwcon_1D(j) = iwcon_airs(i, j) 1200 rad_1D(j) = rad_airs(i, j) 1201 pres_1D(j) = pplay_airs(i, j) 1202 alt_1D(j) = geop_airs(i, j) / RG 1203 rhodz_1D(j) = rhodz_airs(i, j) 1204 dz_1D(j) = rhodz_airs(i, j) / rho_airs(i, j) 1205 1206 enddo 1207 1208 alt_tropo(i) = & 1209 search_tropopause(pres_1D / 100., temp_1D, alt_1D, klev) 1210 1211 1212 ! Appel du ss-programme sim_mesh 1213 1214 ! if (itap .EQ. 1 ) THEN 1215 CALL sim_mesh(rneb_1D, temp_1D, emis_1D, iwcon_1D, rad_1D, & 1216 pres_1D, dz_1D, rhodz_1D, & 1217 cc_tot_mesh, cc_hc_mesh, cc_hist_mesh, & 1218 pcld_hc_mesh, tcld_hc_mesh, em_hc_mesh, iwp_hc_mesh, & 1219 deltaz_hc_mesh, & 1220 cc_Cb_mesh, cc_ThCi_mesh, cc_Anv_mesh, & 1221 pcld_Cb_mesh, tcld_Cb_mesh, em_Cb_mesh, & 1222 pcld_ThCi_mesh, tcld_ThCi_mesh, em_ThCi_mesh, & 1223 pcld_Anv_mesh, tcld_Anv_mesh, em_Anv_mesh, & 1224 em_hist_mesh, iwp_hist_mesh, deltaz_hist_mesh, rad_hist_mesh) 1225 1226 WRITE(*, *) '====================================' 1227 WRITE(*, *) 'itap, i:', itap, i 1228 WRITE(*, *) 'cc_tot, cc_hc, cc_hist, pcld_hc, tcld_hc, em_hc, & 1229 iwp_hc, em_hist, iwp_hist =' 1230 WRITE(*, *) cc_tot_mesh, cc_hc_mesh, cc_hist_mesh 1231 WRITE(*, *) pcld_hc_mesh, tcld_hc_mesh, em_hc_mesh, iwp_hc_mesh 1232 WRITE(*, *) em_hist_mesh, iwp_hist_mesh 1233 1234 ! endif 1235 1236 ! Definition des variables a ecrire dans le fichier de sortie 1237 1238 CALL normal2_undef(map_prop_hc(i), cc_hc_mesh, & 1239 cc_tot_mesh) 1240 CALL normal2_undef(map_prop_hist(i), cc_hist_mesh, & 1241 cc_tot_mesh) 1242 1243 map_emis_hc(i) = em_hc_mesh 1244 map_iwp_hc(i) = iwp_hc_mesh 1245 map_deltaz_hc(i) = deltaz_hc_mesh 1246 map_pcld_hc(i) = pcld_hc_mesh 1247 map_tcld_hc(i) = tcld_hc_mesh 1248 1249 map_emis_Cb(i) = em_Cb_mesh 1250 map_pcld_Cb(i) = pcld_Cb_mesh 1251 map_tcld_Cb(i) = tcld_Cb_mesh 1252 1253 map_emis_ThCi(i) = em_ThCi_mesh 1254 map_pcld_ThCi(i) = pcld_ThCi_mesh 1255 map_tcld_ThCi(i) = tcld_ThCi_mesh 1256 1257 map_emis_Anv(i) = em_Anv_mesh 1258 map_pcld_Anv(i) = pcld_Anv_mesh 1259 map_tcld_Anv(i) = tcld_Anv_mesh 1260 1261 map_emis_hist(i) = em_hist_mesh 1262 map_iwp_hist(i) = iwp_hist_mesh 1263 map_deltaz_hist(i) = deltaz_hist_mesh 1264 map_rad_hist(i) = rad_hist_mesh 1265 1266 map_ntot(i) = cc_tot_mesh 1267 map_hc(i) = cc_hc_mesh 1268 map_hist(i) = cc_hist_mesh 1269 1270 map_Cb(i) = cc_Cb_mesh 1271 map_ThCi(i) = cc_ThCi_mesh 1272 map_Anv(i) = cc_Anv_mesh 1273 1274 enddo ! fin boucle sur les points de grille 1275 1276 END SUBROUTINE simu_airs 1277 1278 1279 END MODULE lmdz_simu_airs 1280 -
LMDZ6/branches/Amaury_dev/libf/phylmd/mod_synchro_omp.F90
r5111 r5128 9 9 SUBROUTINE Init_synchro_omp 10 10 USE lmdz_phys_para 11 USE lmdz_abort_physic, ONLY: abort_physic12 11 IMPLICIT NONE 13 12 … … 22 21 SUBROUTINE Synchro_omp 23 22 USE lmdz_phys_para 23 USE lmdz_abort_physic, ONLY: abort_physic 24 24 IMPLICIT NONE 25 25 LOGICAL :: out -
LMDZ6/branches/Amaury_dev/libf/phylmd/nuage.h
r5099 r5128 9 9 10 10 common /nuagecom/ rad_froid,rad_chau1, rad_chau2, & 11 &tau_cld_cv,coefw_cld_cv, &12 &tmax_fonte_cv,iflag_ratqs, &13 &iflag_cld_cv, &14 & ok_icefra_lscp11 tau_cld_cv,coefw_cld_cv, & 12 tmax_fonte_cv,iflag_ratqs, & 13 iflag_cld_cv, & 14 ok_icefra_lscp 15 15 !$OMP THREADPRIVATE(/nuagecom/) -
LMDZ6/branches/Amaury_dev/libf/phylmd/pbl_surface_mod.F90
r5123 r5128 32 32 USE config_ocean_skin_m, ONLY: activate_ocean_skin 33 33 USE lmdz_abort_physic, ONLY: abort_physic 34 34 35 #ifdef ISO 35 36 USE infotrac_phy, ONLY: niso,ntraciso=>ntiso -
LMDZ6/branches/Amaury_dev/libf/phylmd/physiq_mod.F90
r5117 r5128 349 349 reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra 350 350 USE output_physiqex_mod, ONLY: output_physiqex 351 USE lmdz_simu_airs, ONLY: simu_airs 351 352 352 353 IMPLICIT NONE … … 600 601 601 602 ! REAL,ALLOCATABLE,save :: run_off_lic_0(:) 602 ! $OMP THREADPRIVATE(run_off_lic_0)603 !!! !$OMP THREADPRIVATE(run_off_lic_0) 603 604 !ym SAVE run_off_lic_0 604 605 !KE43 -
LMDZ6/branches/Amaury_dev/libf/phylmd/surf_landice_mod.F90
r5123 r5128 1 1 MODULE surf_landice_mod 2 2 3 3 4 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/phylmd/tsoilnudge.h
r5117 r5128 4 4 5 5 common /tsoilnudge/ nudge_tsoil, isoil_nudge, Tsoil_nudge, & 6 &tau_soil_nudge6 tau_soil_nudge 7 7 -
LMDZ6/branches/Amaury_dev/libf/phylmd/write_histREGDYN.h
r5117 r5128 2 2 ! $Header$ 3 3 4 5 6 7 8 c 9 CALL histwrite(nid_regdyn,"hw1",itau_w,histoW(:,:,:,1),10 &kmaxm1*lmaxm1*iwmax,ndex3d)11 c 12 CALL histwrite(nid_regdyn,"nh1",itau_w,nhistoW(:,:,:,1),13 &kmaxm1*lmaxm1*iwmax,ndex3d)14 c 15 CALL histwrite(nid_regdyn,"nht1",itau_w,nhistoWt(:,:,:,1),16 &kmaxm1*lmaxm1*iwmax,ndex3d)17 c 18 CALL histwrite(nid_regdyn,"hw2",itau_w,histoW(:,:,:,2),19 &kmaxm1*lmaxm1*iwmax,ndex3d)20 c 21 CALL histwrite(nid_regdyn,"nh2",itau_w,nhistoW(:,:,:,2),22 &kmaxm1*lmaxm1*iwmax,ndex3d)23 c 24 CALL histwrite(nid_regdyn,"nht2",itau_w,nhistoWt(:,:,:,2),25 &kmaxm1*lmaxm1*iwmax,ndex3d)26 c 27 CALL histwrite(nid_regdyn,"hw3",itau_w,histoW(:,:,:,3),28 &kmaxm1*lmaxm1*iwmax,ndex3d)29 c 30 CALL histwrite(nid_regdyn,"nh3",itau_w,nhistoW(:,:,:,3),31 &kmaxm1*lmaxm1*iwmax,ndex3d)32 c 33 CALL histwrite(nid_regdyn,"nht3",itau_w,nhistoWt(:,:,:,3),34 &kmaxm1*lmaxm1*iwmax,ndex3d)35 c 36 CALL histwrite(nid_regdyn,"hw4",itau_w,histoW(:,:,:,4),37 &kmaxm1*lmaxm1*iwmax,ndex3d)38 c 39 CALL histwrite(nid_regdyn,"nh4",itau_w,nhistoW(:,:,:,4),40 &kmaxm1*lmaxm1*iwmax,ndex3d)41 c 42 CALL histwrite(nid_regdyn,"nht4",itau_w,nhistoWt(:,:,:,4),43 &kmaxm1*lmaxm1*iwmax,ndex3d)44 c 45 CALL histwrite(nid_regdyn,"hw5",itau_w,histoW(:,:,:,5),46 &kmaxm1*lmaxm1*iwmax,ndex3d)47 c 48 CALL histwrite(nid_regdyn,"nh5",itau_w,nhistoW(:,:,:,5),49 &kmaxm1*lmaxm1*iwmax,ndex3d)50 c 51 CALL histwrite(nid_regdyn,"nht5",itau_w,nhistoWt(:,:,:,5),52 &kmaxm1*lmaxm1*iwmax,ndex3d)4 IF (ok_regdyn) THEN 5 IF (is_sequential) THEN 6 ndex3d = 0 7 itau_w = itau_phy + itap + start_time * day_step / iphysiq 8 ! 9 CALL histwrite(nid_regdyn,"hw1",itau_w,histoW(:,:,:,1), & 10 kmaxm1*lmaxm1*iwmax,ndex3d) 11 ! 12 CALL histwrite(nid_regdyn,"nh1",itau_w,nhistoW(:,:,:,1), & 13 kmaxm1*lmaxm1*iwmax,ndex3d) 14 ! 15 CALL histwrite(nid_regdyn,"nht1",itau_w,nhistoWt(:,:,:,1), & 16 kmaxm1*lmaxm1*iwmax,ndex3d) 17 ! 18 CALL histwrite(nid_regdyn,"hw2",itau_w,histoW(:,:,:,2), & 19 kmaxm1*lmaxm1*iwmax,ndex3d) 20 ! 21 CALL histwrite(nid_regdyn,"nh2",itau_w,nhistoW(:,:,:,2), & 22 kmaxm1*lmaxm1*iwmax,ndex3d) 23 ! 24 CALL histwrite(nid_regdyn,"nht2",itau_w,nhistoWt(:,:,:,2), & 25 kmaxm1*lmaxm1*iwmax,ndex3d) 26 ! 27 CALL histwrite(nid_regdyn,"hw3",itau_w,histoW(:,:,:,3), & 28 kmaxm1*lmaxm1*iwmax,ndex3d) 29 ! 30 CALL histwrite(nid_regdyn,"nh3",itau_w,nhistoW(:,:,:,3), & 31 kmaxm1*lmaxm1*iwmax,ndex3d) 32 ! 33 CALL histwrite(nid_regdyn,"nht3",itau_w,nhistoWt(:,:,:,3), & 34 kmaxm1*lmaxm1*iwmax,ndex3d) 35 ! 36 CALL histwrite(nid_regdyn,"hw4",itau_w,histoW(:,:,:,4), & 37 kmaxm1*lmaxm1*iwmax,ndex3d) 38 ! 39 CALL histwrite(nid_regdyn,"nh4",itau_w,nhistoW(:,:,:,4), & 40 kmaxm1*lmaxm1*iwmax,ndex3d) 41 ! 42 CALL histwrite(nid_regdyn,"nht4",itau_w,nhistoWt(:,:,:,4), & 43 kmaxm1*lmaxm1*iwmax,ndex3d) 44 ! 45 CALL histwrite(nid_regdyn,"hw5",itau_w,histoW(:,:,:,5), & 46 kmaxm1*lmaxm1*iwmax,ndex3d) 47 ! 48 CALL histwrite(nid_regdyn,"nh5",itau_w,nhistoW(:,:,:,5), & 49 kmaxm1*lmaxm1*iwmax,ndex3d) 50 ! 51 CALL histwrite(nid_regdyn,"nht5",itau_w,nhistoWt(:,:,:,5), & 52 kmaxm1*lmaxm1*iwmax,ndex3d) 53 53 54 55 56 54 IF (ok_sync) THEN 55 CALL histsync(nid_regdyn) 56 endif 57 57 58 58 endif ! is_sequential 59 59 60 60 endif
Note: See TracChangeset
for help on using the changeset viewer.