Changeset 3593 for LMDZ6/trunk/libf/phylmd
- Timestamp:
- Oct 28, 2019, 5:35:54 PM (5 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd/dyn1d
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/dyn1d/1DUTILS.h
r3541 r3593 540 540 CALL getin('nudging_w',nudging_w) 541 541 542 ! RELIQUE ANCIENS FORMAT. ECRASE PAR LE SUIVANT 542 543 !Config Key = nudging_q 543 544 !Config Desc = forcage ou non par nudging sur q 544 545 !Config Def = false 545 546 !Config Help = forcage ou non par nudging sur q 546 nudging_q =0 547 CALL getin('nudging_q',nudging_q) 547 nudging_qv =0 548 CALL getin('nudging_q',nudging_qv) 549 CALL getin('nudging_qv',nudging_qv) 550 548 551 549 552 !Config Key = nudging_t … … 599 602 write(lunout,*)' nudging_v = ', nudging_v 600 603 write(lunout,*)' nudging_t = ', nudging_t 601 write(lunout,*)' nudging_q = ', nudging_q604 write(lunout,*)' nudging_qv = ', nudging_qv 602 605 IF (forcing_type .eq.40) THEN 603 606 write(lunout,*) '--- Forcing type GCSS Old --- with:' -
LMDZ6/trunk/libf/phylmd/dyn1d/1D_decl_cases.h
r3223 r3593 34 34 real w_mod(llm), t_mod(llm),q_mod(llm) 35 35 real u_mod(llm),v_mod(llm), ht_mod(llm),vt_mod(llm),ug_mod(llm),vg_mod(llm) 36 real temp_nudg_mod(llm),qv_nudg_mod(llm),u_nudg_mod(llm),v_nudg_mod(llm) 36 37 real hq_mod(llm),vq_mod(llm),qv_mod(llm),ql_mod(llm),qt_mod(llm) 37 38 real th_mod(llm) … … 95 96 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 96 97 !Declarations specifiques au cas GABLS4 (MPL 20141023) 97 character*80 :: fich_gabls4 98 integer nlev_gabls4, nt_gabls4, nsol_gabls4 99 parameter (nlev_gabls4=90, nt_gabls4=37, nsol_gabls4=19) 100 integer year_ini_gabls4, day_ini_gabls4, mth_ini_gabls4 101 real heure_ini_gabls4 102 real day_ju_ini_gabls4 ! Julian day of gabls4 first day 103 parameter (year_ini_gabls4=2009) 104 parameter (mth_ini_gabls4=12) 105 parameter (day_ini_gabls4=11) ! 11 = 11 decembre 2009 106 parameter (heure_ini_gabls4=0.) !0UTC en secondes 107 real dt_gabls4 108 parameter (dt_gabls4=3600.) ! 1 forcage ttes les heures 109 98 !FHADETRUIRE 99 ! character*80 :: fich_gabls4 100 ! integer nlev_gabls4, nt_gabls4, nsol_gabls4 101 ! parameter (nlev_gabls4=90, nt_gabls4=37, nsol_gabls4=19) 102 ! integer year_ini_gabls4, day_ini_gabls4, mth_ini_gabls4 103 ! real heure_ini_gabls4 104 ! real day_ju_ini_gabls4 ! Julian day of gabls4 first day 105 ! parameter (year_ini_gabls4=2009) 106 ! parameter (mth_ini_gabls4=12) 107 ! parameter (day_ini_gabls4=11) ! 11 = 11 decembre 2009 108 ! parameter (heure_ini_gabls4=0.) !0UTC en secondes 109 ! real dt_gabls4 110 ! parameter (dt_gabls4=3600.) ! 1 forcage ttes les heures 111 ! 110 112 !profils initiaux: 111 112 113 114 115 116 117 118 119 113 ! real plev_gabls4(nlev_gabls4) 114 ! real zz_gabls4(nlev_gabls4) 115 ! real th_gabls4(nlev_gabls4),t_gabls4(nlev_gabls4),qv_gabls4(nlev_gabls4) 116 ! real u_gabls4(nlev_gabls4), v_gabls4(nlev_gabls4) 117 ! real depth_sn_gabls4(nsol_gabls4),tsnow_gabls4(nsol_gabls4),snow_dens_gabls4(nsol_gabls4) 118 ! real t_gabi(nlev_gabls4),qv_gabi(nlev_gabls4) 119 ! real u_gabi(nlev_gabls4), v_gabi(nlev_gabls4),ug_gabi(nlev_gabls4), vg_gabi(nlev_gabls4) 120 ! real ht_gabi(nlev_gabls4),hq_gabi(nlev_gabls4),poub(nlev_gabls4) 121 ! 120 122 !forcings 121 real ht_gabls4(nlev_gabls4,nt_gabls4),hq_gabls4(nlev_gabls4,nt_gabls4) 122 real ug_gabls4(nlev_gabls4,nt_gabls4),vg_gabls4(nlev_gabls4,nt_gabls4) 123 real tg_gabls4(nt_gabls4) 124 real ht_profg(nlev_gabls4),hq_profg(nlev_gabls4) 125 real ug_profg(nlev_gabls4),vg_profg(nlev_gabls4) 126 real tg_profg 127 123 ! Lignes a detruire ... 124 ! real ht_gabls4(nlev_gabls4,nt_gabls4),hq_gabls4(nlev_gabls4,nt_gabls4) 125 ! real ug_gabls4(nlev_gabls4,nt_gabls4),vg_gabls4(nlev_gabls4,nt_gabls4) 126 ! real tg_gabls4(nt_gabls4) 127 ! real ht_profg(nlev_gabls4),hq_profg(nlev_gabls4) 128 ! real ug_profg(nlev_gabls4),vg_profg(nlev_gabls4) 129 ! real tg_profg 130 ! 128 131 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 129 132 … … 281 284 real qv_mod_cas(llm),ql_mod_cas(llm),qi_mod_cas(llm) 282 285 real ug_mod_cas(llm),vg_mod_cas(llm) 286 real temp_nudg_mod_cas(llm),qv_nudg_mod_cas(llm),v_nudg_mod_cas(llm),u_nudg_mod_cas(llm) 283 287 real u_mod_cas(llm),v_mod_cas(llm) 284 288 real omega_mod_cas(llm) -
LMDZ6/trunk/libf/phylmd/dyn1d/1D_interp_cases.h
r3592 r3593 11 11 & ,nt_cas,nlev_cas & 12 12 & ,ts_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,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 13 & ,u_cas,v_cas,ug_cas,vg_cas & 14 & ,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 15 & ,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 14 16 & ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 15 17 & ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas & … … 18 20 & ,ts_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas & 19 21 & ,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 20 & ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas,vitw_prof_cas,omega_prof_cas & 22 & ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 23 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 24 & ,vitw_prof_cas,omega_prof_cas & 21 25 & ,du_prof_cas,hu_prof_cas,vu_prof_cas & 22 26 & ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & … … 30 34 31 35 ! vertical interpolation: 32 CALL interp2_case_vertical (play,nlev_cas,plev_prof_cas &33 & ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas 36 CALL interp2_case_vertical_std(play,nlev_cas,plev_prof_cas & 37 & ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 34 38 & ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 35 & ,ug_prof_cas,vg_prof_cas,vitw_prof_cas,omega_prof_cas & 39 & ,ug_prof_cas,vg_prof_cas & 40 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 41 & ,vitw_prof_cas,omega_prof_cas & 36 42 & ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 37 43 & ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & … … 39 45 ! 40 46 & ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 41 & ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas,w_mod_cas,omega_mod_cas & 47 & ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 48 & ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 49 & ,w_mod_cas,omega_mod_cas & 42 50 & ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 43 51 & ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & … … 119 127 enddo 120 128 endif 121 !wind nudging122 if (nudging_u.gt.0.) then123 do l=1,llm124 u(l)=u(l)+timestep*(u_mod_cas(l)-u(l))/(nudge_u)125 enddo126 ! else127 ! do l=1,llm128 ! u(l) = u_mod_cas(l)129 ! enddo130 endif131 132 if (nudging_v.gt.0.) then133 do l=1,llm134 v(l)=v(l)+timestep*(v_mod_cas(l)-v(l))/(nudge_v)135 enddo136 ! else137 ! do l=1,llm138 ! v(l) = v_mod_cas(l)139 ! enddo140 endif141 142 if (nudging_w.gt.0.) then143 do l=1,llm144 w(l)=w(l)+timestep*(w_mod_cas(l)-w(l))/(nudge_w)145 enddo146 ! else147 ! do l=1,llm148 ! w(l) = w_mod_cas(l)149 ! enddo150 endif151 152 !nudging of q and temp153 if (nudging_t.gt.0.) then154 do l=1,llm155 temp(l)=temp(l)+timestep*(t_mod_cas(l)-temp(l))/(nudge_t)156 enddo157 endif158 if (nudging_q.gt.0.) then159 do l=1,llm160 q(l,1)=q(l,1)+timestep*(q_mod_cas(l)-q(l,1))/(nudge_q)161 enddo162 endif163 129 164 130 do l = 1, llm … … 170 136 omega2(l)= omega_mod_cas(l)/rg*airefi ! flxmass_w calcule comme ds physiq 171 137 172 alpha = rd*temp(l)*(1.+(rv/rd-1.)*q(l,1))/play(l) 138 ! On effectue la somme du forcage total et de la decomposition 139 ! horizontal/vertical en supposant que soit l'un soit l'autre 140 ! sont remplis mais jamais les deux 173 141 174 !calcul advections 175 d_u_adv(l)=du_mod_cas(l) 176 d_v_adv(l)=dv_mod_cas(l) 177 !!! d_t_adv(l)=alpha*omega(l)/rcpd+dt_mod_cas(l) 178 !d_t_adv(l)=alpha*omega_mod_cas(l)/rcpd+dt_mod_cas(l) 179 d_t_adv(l)=dt_mod_cas(l) 180 !print*,'d_t_adv(l) ', alpha,omega_mod_cas(l),rcpd,dt_mod_cas(l)*86400,d_t_adv(l)*86400 181 d_q_adv(l,1)=dq_mod_cas(l) 142 d_t_adv(l) = dt_mod_cas(l)+ht_mod_cas(l)+vt_mod_cas(l) 143 d_q_adv(l,1) = dq_mod_cas(l)+hq_mod_cas(l)+vq_mod_cas(l) 144 d_q_adv(l,2) = 0.0 145 d_u_adv(l) = du_mod_cas(l)+hu_mod_cas(l)+vu_mod_cas(l) 146 d_v_adv(l) = dv_mod_cas(l)+hv_mod_cas(l)+vv_mod_cas(l) 182 147 183 148 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -
LMDZ6/trunk/libf/phylmd/dyn1d/1D_read_forc_cases.h
r3592 r3593 25 25 & ,nt_cas,nlev_cas & 26 26 & ,ts_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas & 27 & ,u_cas,v_cas,ug_cas,vg_cas,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 27 & ,u_cas,v_cas,ug_cas,vg_cas & 28 & ,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 29 & ,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 28 30 & ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 29 31 & ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas & … … 32 34 & ,ts_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas & 33 35 & ,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 34 & ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas,vitw_prof_cas,omega_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 & ,vitw_prof_cas,omega_prof_cas & 35 39 & ,du_prof_cas,hu_prof_cas,vu_prof_cas & 36 40 & ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & … … 45 49 ! vertical interpolation using interpolation routine: 46 50 ! write(*,*)'avant interp vert', t_prof 47 CALL interp2_case_vertical (play,nlev_cas,plev_prof_cas &51 CALL interp2_case_vertical_std(play,nlev_cas,plev_prof_cas & 48 52 & ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 49 53 & ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 50 & ,ug_prof_cas,vg_prof_cas,vitw_prof_cas,omega_prof_cas & 54 & ,ug_prof_cas,vg_prof_cas & 55 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 56 57 & ,vitw_prof_cas,omega_prof_cas & 51 58 & ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 52 59 & ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & … … 54 61 ! 55 62 & ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 56 & ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas,w_mod_cas,omega_mod_cas & 63 & ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 64 & ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 65 & ,w_mod_cas,omega_mod_cas & 57 66 & ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 58 67 & ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & … … 76 85 omega2(l)=omega(l)/rg*airefi ! flxmass_w calcule comme ds physiq 77 86 78 alpha = rd*temp(l)*(1.+(rv/rd-1.)*q(l,1))/play(l) 79 !on applique le forcage total au premier pas de temps 80 !attention: signe different de toga 81 !d_t_adv(l) = alpha*omega(l)/rcpd+(ht_mod_cas(l)+vt_mod_cas(l)) 82 d_t_adv(l) = ht_mod_cas(l)+vt_mod_cas(l) 83 print*,'DTADV MODIFIE ' 87 88 ! On effectue la somme du forcage total et de la decomposition 89 ! horizontal/vertical en supposant que soit l'un soit l'autre 90 ! sont remplis mais jamais les deux 91 92 d_t_adv(l) = dt_mod_cas(l)+ht_mod_cas(l)+vt_mod_cas(l) 93 d_q_adv(l,1) = dq_mod_cas(l)+hq_mod_cas(l)+vq_mod_cas(l) 94 d_q_adv(l,2) = 0.0 95 d_u_adv(l) = du_mod_cas(l)+hu_mod_cas(l)+vu_mod_cas(l) 96 d_v_adv(l) = dv_mod_cas(l)+hv_mod_cas(l)+vv_mod_cas(l) 97 84 98 !print*,'d_t_adv ',d_t_adv(1:20)*86400 85 ! d_q_adv(l,1) = (hq_mod_cas(l)+vq_mod_cas(l)) 86 d_q_adv(l,1) = dq_mod_cas(l) 87 d_q_adv(l,2) = 0.0 88 ! d_u_adv(l) = (hu_mod_cas(l)+vu_mod_cas(l)) 89 d_u_adv(l) = du_mod_cas(l) 90 ! d_v_adv(l) = (hv_mod_cas(l)+vv_mod_cas(l)) 91 ! correction bug d_u -> d_v (MM+MPL 20170310) 92 d_v_adv(l) = dv_mod_cas(l) 99 93 100 enddo 94 101 -
LMDZ6/trunk/libf/phylmd/dyn1d/compar1d.h
r3575 r3593 42 42 integer :: tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, trad 43 43 integer :: forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar 44 real :: nudging_u, nudging_v, nudging_w, nudging_t, nudging_q 44 real :: nudging_u, nudging_v, nudging_w, nudging_t, nudging_qv 45 45 common/com_par1d/ & 46 46 & nat_surf,tsurf,rugos,rugosh, & … … 53 53 & tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, & 54 54 & trad, forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar, & 55 & nudging_u, nudging_v, nudging_t, nudging_q , nudging_w55 & nudging_u, nudging_v, nudging_t, nudging_qv, nudging_w 56 56 57 57 !$OMP THREADPRIVATE(/com_par1d/) -
LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read_std.F90
r3592 r3593 28 28 real, allocatable:: hv_cas(:,:),vv_cas(:,:),dv_cas(:,:) 29 29 real, allocatable:: ug_cas(:,:),vg_cas(:,:) 30 real, allocatable:: temp_nudg_cas(:,:),qv_nudg_cas(:,:),u_nudg_cas(:,:),v_nudg_cas(:,:) 30 31 real, allocatable:: lat_cas(:),sens_cas(:),ts_cas(:),ps_cas(:),ustar_cas(:) 31 32 real, allocatable:: uw_cas(:,:),vw_cas(:,:),q1_cas(:,:),q2_cas(:,:),tke_cas(:) … … 49 50 real, allocatable:: ug_prof_cas(:) 50 51 real, allocatable:: vg_prof_cas(:) 52 real, allocatable:: temp_nudg_prof_cas(:),qv_nudg_prof_cas(:),u_nudg_prof_cas(:),v_nudg_prof_cas(:) 51 53 real, allocatable:: ht_prof_cas(:) 52 54 real, allocatable:: hth_prof_cas(:) … … 174 176 allocate(hu_cas(nlev_cas,nt_cas),vu_cas(nlev_cas,nt_cas),du_cas(nlev_cas,nt_cas)) 175 177 allocate(hv_cas(nlev_cas,nt_cas),vv_cas(nlev_cas,nt_cas),dv_cas(nlev_cas,nt_cas)) 176 allocate(ug_cas(nlev_cas,nt_cas)) 177 allocate(vg_cas(nlev_cas,nt_cas)) 178 allocate(ug_cas(nlev_cas,nt_cas),vg_cas(nlev_cas,nt_cas)) 179 allocate(temp_nudg_cas(nlev_cas,nt_cas),qv_nudg_cas(nlev_cas,nt_cas)) 180 allocate(u_nudg_cas(nlev_cas,nt_cas),v_nudg_cas(nlev_cas,nt_cas)) 178 181 allocate(lat_cas(nt_cas),sens_cas(nt_cas),ts_cas(nt_cas),ps_cas(nt_cas),ustar_cas(nt_cas),tke_cas(nt_cas)) 179 182 allocate(uw_cas(nlev_cas,nt_cas),vw_cas(nlev_cas,nt_cas),q1_cas(nlev_cas,nt_cas),q2_cas(nlev_cas,nt_cas)) … … 199 202 allocate(ug_prof_cas(nlev_cas)) 200 203 allocate(vg_prof_cas(nlev_cas)) 204 allocate(temp_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas)) 205 allocate(u_nudg_prof_cas(nlev_cas),v_nudg_prof_cas(nlev_cas)) 201 206 allocate(ht_prof_cas(nlev_cas)) 202 207 allocate(hth_prof_cas(nlev_cas)) … … 222 227 print*,'Allocations OK' 223 228 CALL read_SCM (nid,nlev_cas,nt_cas, & 224 & ap_cas,bp_cas,z_cas,plev_cas,zh_cas,plevh_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas, & 225 & ql_cas,qi_cas,rh_cas,rv_cas,u_cas,v_cas,vitw_cas,omega_cas,ug_cas,vg_cas,du_cas,hu_cas,vu_cas, & 229 & ap_cas,bp_cas,z_cas,plev_cas,zh_cas,plevh_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas, & 230 & ql_cas,qi_cas,rh_cas,rv_cas,u_cas,v_cas,vitw_cas,omega_cas,ug_cas,vg_cas, & 231 & temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas, & 232 & du_cas,hu_cas,vu_cas, & 226 233 & dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas, & 227 234 & dr_cas,hr_cas,vr_cas,dtrad_cas,sens_cas,lat_cas,ts_cas,ps_cas,ustar_cas,tke_cas, & … … 278 285 deallocate(ug_prof_cas) 279 286 deallocate(vg_prof_cas) 287 deallocate(temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas) 280 288 deallocate(ht_prof_cas) 281 289 deallocate(hq_prof_cas) … … 303 311 304 312 !===================================================================== 305 SUBROUTINE read_cas2(nid,nlevel,ntime & 306 & ,zz,pp,temp,qv,rh,theta,rv,u,v,ug,vg,w, & 307 & du,hu,vu,dv,hv,vv,dt,dtrad,ht,vt,dq,hq,vq, & 308 & dth,hth,vth,dr,hr,vr,sens,flat,ts,ustar,uw,vw,q1,q2) 309 310 !program reading forcing of the case study 311 implicit none 312 #include "netcdf.inc" 313 314 integer ntime,nlevel 315 316 real zz(nlevel,ntime) 317 real pp(nlevel,ntime) 318 real temp(nlevel,ntime),qv(nlevel,ntime),rh(nlevel,ntime) 319 real theta(nlevel,ntime),rv(nlevel,ntime) 320 real u(nlevel,ntime) 321 real v(nlevel,ntime) 322 real ug(nlevel,ntime) 323 real vg(nlevel,ntime) 324 real w(nlevel,ntime) 325 real du(nlevel,ntime),hu(nlevel,ntime),vu(nlevel,ntime) 326 real dv(nlevel,ntime),hv(nlevel,ntime),vv(nlevel,ntime) 327 real dt(nlevel,ntime),ht(nlevel,ntime),vt(nlevel,ntime) 328 real dtrad(nlevel,ntime) 329 real dq(nlevel,ntime),hq(nlevel,ntime),vq(nlevel,ntime) 330 real dth(nlevel,ntime),hth(nlevel,ntime),vth(nlevel,ntime) 331 real dr(nlevel,ntime),hr(nlevel,ntime),vr(nlevel,ntime) 332 real flat(ntime),sens(ntime),ts(ntime),ustar(ntime) 333 real uw(nlevel,ntime),vw(nlevel,ntime),q1(nlevel,ntime),q2(nlevel,ntime),resul(nlevel,ntime),resul1(ntime) 334 335 336 integer nid, ierr, ierr1,ierr2,rid,i 337 integer nbvar3d 338 parameter(nbvar3d=39) 339 integer var3didin(nbvar3d) 340 character*5 name_var(1:nbvar3d) 341 data name_var/'zz','pp','temp','qv','rh','theta','rv','u','v','ug','vg','w','advu','hu','vu',& 342 &'advv','hv','vv','advT','hT','vT','advq','hq','vq','advth','hth','vth','advr','hr','vr',& 343 &'radT','uw','vw','q1','q2','sens','flat','ts','ustar'/ 344 345 do i=1,nbvar3d 346 print *,'Dans read_cas2, on va lire ',nid,i,name_var(i) 347 enddo 348 do i=1,nbvar3d 349 ierr=NF_INQ_VARID(nid,name_var(i),var3didin(i)) 350 print *,'ierr=',i,ierr,name_var(i),var3didin(i) 351 if(ierr/=NF_NOERR) then 352 print *,'Variable manquante dans cas.nc:',name_var(i) 353 endif 354 enddo 355 do i=1,nbvar3d 356 print *,'Dans read_cas2, on va lire ',var3didin(i),name_var(i) 357 if(i.LE.35) then 358 #ifdef NC_DOUBLE 359 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul) 360 #else 361 ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul) 362 #endif 363 print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i) 364 if(ierr/=NF_NOERR) then 365 print *,'Pb a la lecture de cas.nc: ',name_var(i) 366 stop "getvarup" 367 endif 368 else 369 #ifdef NC_DOUBLE 370 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul1) 371 #else 372 ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul1) 373 #endif 374 print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i) 375 if(ierr/=NF_NOERR) then 376 print *,'Pb a la lecture de cas.nc: ',name_var(i) 377 stop "getvarup" 378 endif 379 endif 380 select case(i) 381 case(1) ; zz=resul 382 case(2) ; pp=resul 383 case(3) ; temp=resul 384 case(4) ; qv=resul 385 case(5) ; rh=resul 386 case(6) ; theta=resul 387 case(7) ; rv=resul 388 case(8) ; u=resul 389 case(9) ; v=resul 390 case(10) ; ug=resul 391 case(11) ; vg=resul 392 case(12) ; w=resul 393 case(13) ; du=resul 394 case(14) ; hu=resul 395 case(15) ; vu=resul 396 case(16) ; dv=resul 397 case(17) ; hv=resul 398 case(18) ; vv=resul 399 case(19) ; dt=resul 400 case(20) ; ht=resul 401 case(21) ; vt=resul 402 case(22) ; dq=resul 403 case(23) ; hq=resul 404 case(24) ; vq=resul 405 case(25) ; dth=resul 406 case(26) ; hth=resul 407 case(27) ; vth=resul 408 case(28) ; dr=resul 409 case(29) ; hr=resul 410 case(30) ; vr=resul 411 case(31) ; dtrad=resul 412 case(32) ; uw=resul 413 case(33) ; vw=resul 414 case(34) ; q1=resul 415 case(35) ; q2=resul 416 case(36) ; sens=resul1 417 case(37) ; flat=resul1 418 case(38) ; ts=resul1 419 case(39) ; ustar=resul1 420 end select 421 enddo 422 423 return 424 END SUBROUTINE read_cas2 425 !====================================================================== 426 SUBROUTINE read2_cas(nid,nlevel,ntime, & 313 SUBROUTINE read_SCM(nid,nlevel,ntime, & 427 314 & ap,bp,zz,pp,zzh,pph,temp,theta,thv,thl,qv,ql,qi,rh,rv,u,v,vitw,omega,ug,vg,& 315 & temp_nudg,qv_nudg,u_nudg,v_nudg, & 428 316 & du,hu,vu,dv,hv,vv,dt,ht,vt,dq,hq,vq, & 429 317 & dth,hth,vth,dr,hr,vr,dtrad,sens,flat,ts,ps,ustar,tke,uw,vw,q1,q2, & … … 434 322 implicit none 435 323 #include "netcdf.inc" 436 437 integer ntime,nlevel 438 439 real ap(nlevel+1),bp(nlevel+1) 440 real zz(nlevel,ntime),zzh(nlevel+1) 441 real pp(nlevel,ntime),pph(nlevel+1) 442 real temp(nlevel,ntime),qv(nlevel,ntime),ql(nlevel,ntime),qi(nlevel,ntime),rh(nlevel,ntime) 443 real theta(nlevel,ntime),thv(nlevel,ntime),thl(nlevel,ntime),rv(nlevel,ntime) 444 real u(nlevel,ntime),v(nlevel,ntime) 445 real ug(nlevel,ntime),vg(nlevel,ntime) 446 real vitw(nlevel,ntime),omega(nlevel,ntime) 447 real du(nlevel,ntime),hu(nlevel,ntime),vu(nlevel,ntime) 448 real dv(nlevel,ntime),hv(nlevel,ntime),vv(nlevel,ntime) 449 real dt(nlevel,ntime),ht(nlevel,ntime),vt(nlevel,ntime) 450 real dtrad(nlevel,ntime) 451 real dq(nlevel,ntime),hq(nlevel,ntime),vq(nlevel,ntime) 452 real dth(nlevel,ntime),hth(nlevel,ntime),vth(nlevel,ntime),hthl(nlevel,ntime) 453 real dr(nlevel,ntime),hr(nlevel,ntime),vr(nlevel,ntime) 454 real flat(ntime),sens(ntime),ustar(ntime) 455 real uw(nlevel,ntime),vw(nlevel,ntime),q1(nlevel,ntime),q2(nlevel,ntime) 456 real ts(ntime),ps(ntime),tke(ntime) 457 real orog_cas,albedo_cas,emiss_cas,t_skin_cas,q_skin_cas,mom_rough,heat_rough,o3_cas,rugos_cas,clay_cas,sand_cas 458 real apbp(nlevel+1),resul(nlevel,ntime),resul1(nlevel),resul2(ntime),resul3 459 460 461 integer nid, ierr,ierr1,ierr2,rid,i 462 integer nbvar3d 463 parameter(nbvar3d=62) 464 integer var3didin(nbvar3d),missing_var(nbvar3d) 465 character*12 name_var(1:nbvar3d) 466 data name_var/'coor_par_a','coor_par_b','height_h','pressure_h',& 467 &'w','omega','ug','vg','uadv','uadvh','uadvv','vadv','vadvh','vadvv','tadv','tadvh','tadvv',& 468 &'qadv','qadvh','qadvv','thadv','thadvh','thadvv','thladvh','radv','radvh','radvv','radcool','q1','q2','ustress','vstress', & 469 'rh',& 470 &'height_f','pressure_f','temp','theta','thv','thl','qv','ql','qi','rv','u','v',& 471 &'sfc_sens_flx','sfc_lat_flx','ts','ps','ustar','tke',& 472 &'orog','albedo','emiss','t_skin','q_skin','mom_rough','heat_rough','o3','rugos','clay','sand'/ 473 do i=1,nbvar3d 474 missing_var(i)=0. 475 enddo 476 477 !----------------------------------------------------------------------- 478 do i=1,nbvar3d 479 ierr=NF_INQ_VARID(nid,name_var(i),var3didin(i)) 480 if(ierr/=NF_NOERR) then 481 print *,'Variable manquante dans cas.nc:',i,name_var(i) 482 ierr=NF_NOERR 483 missing_var(i)=1 484 else 485 !----------------------------------------------------------------------- 486 if(i.LE.4) then ! Lecture des coord pression en (nlevelp1,lat,lon) 487 #ifdef NC_DOUBLE 488 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),apbp) 489 #else 490 ierr = NF_GET_VAR_REAL(nid,var3didin(i),apbp) 491 #endif 492 print *,'read2_cas(apbp), on a lu ',i,name_var(i) 493 if(ierr/=NF_NOERR) then 494 print *,'Pb a la lecture de cas.nc: ',name_var(i) 495 stop "getvarup" 496 endif 497 !----------------------------------------------------------------------- 498 else if(i.gt.4.and.i.LE.45) then ! Lecture des variables en (time,nlevel,lat,lon) 499 #ifdef NC_DOUBLE 500 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul) 501 #else 502 ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul) 503 #endif 504 print *,'read2_cas(resul), on a lu ',i,name_var(i) 505 if(ierr/=NF_NOERR) then 506 print *,'Pb a la lecture de cas.nc: ',name_var(i) 507 stop "getvarup" 508 endif 509 !----------------------------------------------------------------------- 510 else if (i.gt.45.and.i.LE.51) then ! Lecture des variables en (time,lat,lon) 511 #ifdef NC_DOUBLE 512 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul2) 513 #else 514 ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul2) 515 #endif 516 print *,'read2_cas(resul2), on a lu ',i,name_var(i) 517 if(ierr/=NF_NOERR) then 518 print *,'Pb a la lecture de cas.nc: ',name_var(i) 519 stop "getvarup" 520 endif 521 !----------------------------------------------------------------------- 522 else ! Lecture des constantes (lat,lon) 523 #ifdef NC_DOUBLE 524 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul3) 525 #else 526 ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul3) 527 #endif 528 print *,'read2_cas(resul3), on a lu ',i,name_var(i) 529 if(ierr/=NF_NOERR) then 530 print *,'Pb a la lecture de cas.nc: ',name_var(i) 531 stop "getvarup" 532 endif 533 endif 534 endif 535 !----------------------------------------------------------------------- 536 select case(i) 537 case(1) ; ap=apbp ! donnees indexees en nlevel+1 538 case(2) ; bp=apbp 539 case(3) ; zzh=apbp 540 case(4) ; pph=apbp 541 case(5) ; vitw=resul ! donnees indexees en nlevel,time 542 case(6) ; omega=resul 543 case(7) ; ug=resul 544 case(8) ; vg=resul 545 case(9) ; du=resul 546 case(10) ; hu=resul 547 case(11) ; vu=resul 548 case(12) ; dv=resul 549 case(13) ; hv=resul 550 case(14) ; vv=resul 551 case(15) ; dt=resul 552 case(16) ; ht=resul 553 case(17) ; vt=resul 554 case(18) ; dq=resul 555 case(19) ; hq=resul 556 case(20) ; vq=resul 557 case(21) ; dth=resul 558 case(22) ; hth=resul 559 case(23) ; vth=resul 560 case(24) ; hthl=resul 561 case(25) ; dr=resul 562 case(26) ; hr=resul 563 case(27) ; vr=resul 564 case(28) ; dtrad=resul 565 case(29) ; q1=resul 566 case(30) ; q2=resul 567 case(31) ; uw=resul 568 case(32) ; vw=resul 569 case(33) ; rh=resul 570 case(34) ; zz=resul ! donnees en time,nlevel pour profil initial 571 case(35) ; pp=resul 572 case(36) ; temp=resul 573 case(37) ; theta=resul 574 case(38) ; thv=resul 575 case(39) ; thl=resul 576 case(40) ; qv=resul 577 case(41) ; ql=resul 578 case(42) ; qi=resul 579 case(43) ; rv=resul 580 case(44) ; u=resul 581 case(45) ; v=resul 582 case(46) ; sens=resul2 ! donnees indexees en time 583 case(47) ; flat=resul2 584 case(48) ; ts=resul2 585 case(49) ; ps=resul2 586 case(50) ; ustar=resul2 587 case(51) ; tke=resul2 588 case(52) ; orog_cas=resul3 ! constantes 589 case(53) ; albedo_cas=resul3 590 case(54) ; emiss_cas=resul3 591 case(55) ; t_skin_cas=resul3 592 case(56) ; q_skin_cas=resul3 593 case(57) ; mom_rough=resul3 594 case(58) ; heat_rough=resul3 595 case(59) ; o3_cas=resul3 596 case(60) ; rugos_cas=resul3 597 case(61) ; clay_cas=resul3 598 case(62) ; sand_cas=resul3 599 end select 600 resul=0. 601 resul1=0. 602 resul2=0. 603 resul3=0. 604 enddo 605 !----------------------------------------------------------------------- 606 607 print*,'omega STD ', omega 608 stop 609 return 610 END SUBROUTINE read2_cas 611 612 !====================================================================== 613 SUBROUTINE read_SCM(nid,nlevel,ntime, & 614 & ap,bp,zz,pp,zzh,pph,temp,theta,thv,thl,qv,ql,qi,rh,rv,u,v,vitw,omega,ug,vg,& 615 & du,hu,vu,dv,hv,vv,dt,ht,vt,dq,hq,vq, & 616 & dth,hth,vth,dr,hr,vr,dtrad,sens,flat,ts,ps,ustar,tke,uw,vw,q1,q2, & 617 & orog_cas,albedo_cas,emiss_cas,t_skin_cas,q_skin_cas,mom_rough, & 618 & heat_rough,o3_cas,rugos_cas,clay_cas,sand_cas) 619 620 !program reading forcing of the case study 621 implicit none 622 #include "netcdf.inc" 324 #include "compar1d.h" 623 325 624 326 integer ntime,nlevel,k,t … … 633 335 real theta(nlevel,ntime),thv(nlevel,ntime),thl(nlevel,ntime),rv(nlevel,ntime) 634 336 real u(nlevel,ntime),v(nlevel,ntime),tke(nlevel,ntime) 337 real temp_nudg(nlevel,ntime),qv_nudg(nlevel,ntime),u_nudg(nlevel,ntime),v_nudg(nlevel,ntime) 635 338 real ug(nlevel,ntime),vg(nlevel,ntime) 636 339 real vitw(nlevel,ntime),omega(nlevel,ntime) … … 651 354 integer nid, ierr,ierr1,ierr2,rid,i 652 355 integer nbvar3d 653 parameter(nbvar3d=7 0)356 parameter(nbvar3d=74) 654 357 integer var3didin(nbvar3d),missing_var(nbvar3d) 655 358 character*13 name_var(1:nbvar3d) 656 data name_var/'coor_par_a','coor_par_b','height_h','pressure_h',& 657 &'temp','qv','ql','qi','u','v','tke','pressure',& 658 &'w','omega','ug','vg','uadv','uadvh','uadvv','vadv','vadvh','vadvv','tadv','tadvh','tadvv',& 659 &'qvadv','qvadvh','qvadvv','thadv','thadvh','thadvv','thladvh','radv','radvh','radvv','radcool','q1','q2','ustress','vstress', & 660 'rh',& 359 360 361 data name_var/ & 362 ! coordonnees pression (n+1 niveaux) #4 363 & 'coor_par_a','coor_par_b','height_h','pressure_h',& ! #1-#4 364 ! coordonnees pression (n niveaux) #8 365 &'temp','qv','ql','qi','u','v','tke','pressure',& ! #5-#12 366 ! coordonnees pression + temps #42 367 &'w','omega','ug','vg','uadv','uadvh','uadvv','vadv','vadvh','vadvv','tadv','tadvh','tadvv',& ! #13 - #25 368 &'qvadv','qvadvh','qvadvv','thadv','thadvh','thadvv','thladvh', & ! #26 - #33 369 & 'radv','radvh','radvv','radcool','q1','q2','ustress','vstress', & ! #34 - #41 370 & 'rh','temp_nudg','qv_nudg','u_nudg','v_nudg',& 661 371 &'height_f','pressure_forc','tempt','theta','thv','thl','qvt','qlt','qit','rv','ut','vt','tket',& 372 ! coordonnees temps #12 662 373 &'sfc_sens_flx','sfc_lat_flx','ts','ps','ustar',& 663 &'orog','albedo','emiss','t_skin','q_skin','mom_rough','heat_rough','o3','rugos','clay','sand'/ 374 &'orog','albedo','emiss','t_skin','q_skin','mom_rough','heat_rough',& 375 ! scalaires #4 376 &'o3','rugos','clay','sand'/ 377 664 378 do i=1,nbvar3d 665 379 missing_var(i)=0. … … 675 389 missing_var(i)=1 676 390 else 391 392 !----------------------------------------------------------------------- 393 ! Activation de quelques cles en fonction des variables disponibles 394 !----------------------------------------------------------------------- 395 if ( name_var(i) == 'temp_nudg' .and. nint(nudging_t)==0) stop 'Nudging inconsistency temp' 396 if ( name_var(i) == 'qv_nudg' .and. nint(nudging_qv)==0) stop 'Nudging inconsistency qv' 397 if ( name_var(i) == 'u_nudg' .and. nint(nudging_u)==0) stop 'Nudging inconsistency u' 398 if ( name_var(i) == 'v_nudg' .and. nint(nudging_u)==0) stop 'Nudging inconsistency v' 399 677 400 !----------------------------------------------------------------------- 678 401 if(i.LE.4) then ! Lecture des coord pression en (nlevelp1,lat,lon) … … 712 435 stop "getvarup" 713 436 endif 437 714 438 print*,'Lecture de la variable #i ',i,name_var(i),minval(resul),maxval(resul) 715 439 !----------------------------------------------------------------------- … … 784 508 case(40) ; vw=resul 785 509 case(41) ; rh=resul 786 case(42) ; zz=resul ! donnees en time,nlevel pour profil initial 787 case(43) ; pp=resul 788 case(44) ; temp=resul 789 case(45) ; theta=resul 790 case(46) ; thv=resul 791 case(47) ; thl=resul 792 case(48) ; qv=resul 793 case(49) ; ql=resul 794 case(50) ; qi=resul 795 case(51) ; rv=resul 796 case(52) ; u=resul 797 case(53) ; v=resul 798 case(54) ; tke=resul 799 case(55) ; sens=resul2 ! donnees indexees en time 800 case(56) ; flat=resul2 801 case(57) ; ts=resul2 802 case(58) ; ps=resul2 803 case(59) ; ustar=resul2 804 case(60) ; orog_cas=resul3 ! constantes 805 case(61) ; albedo_cas=resul3 806 case(62) ; emiss_cas=resul3 807 case(63) ; t_skin_cas=resul3 808 case(64) ; q_skin_cas=resul3 809 case(65) ; mom_rough=resul3 810 case(66) ; heat_rough=resul3 811 case(67) ; o3_cas=resul3 812 case(68) ; rugos_cas=resul3 813 case(69) ; clay_cas=resul3 814 case(70) ; sand_cas=resul3 510 case(42) ; temp_nudg=resul 511 case(43) ; qv_nudg=resul 512 case(44) ; u_nudg=resul 513 case(45) ; v_nudg=resul 514 case(46) ; zz=resul ! donnees en time,nlevel pour profil initial 515 case(47) ; pp=resul 516 case(48) ; temp=resul 517 case(49) ; theta=resul 518 case(50) ; thv=resul 519 case(51) ; thl=resul 520 case(52) ; qv=resul 521 case(53) ; ql=resul 522 case(54) ; qi=resul 523 case(55) ; rv=resul 524 case(56) ; u=resul 525 case(57) ; v=resul 526 case(58) ; tke=resul 527 case(59) ; sens=resul2 ! donnees indexees en time 528 case(60) ; flat=resul2 529 case(61) ; ts=resul2 530 case(62) ; ps=resul2 531 case(63) ; ustar=resul2 532 case(64) ; orog_cas=resul3 ! constantes 533 case(65) ; albedo_cas=resul3 534 case(66) ; emiss_cas=resul3 535 case(67) ; t_skin_cas=resul3 536 case(68) ; q_skin_cas=resul3 537 case(69) ; mom_rough=resul3 538 case(70) ; heat_rough=resul3 539 case(71) ; o3_cas=resul3 540 case(72) ; rugos_cas=resul3 541 case(73) ; clay_cas=resul3 542 case(74) ; sand_cas=resul3 815 543 end select 816 544 resul=0. … … 850 578 & ,ts_cas,ps_cas,plev_cas,t_cas,theta_cas,thv_cas,thl_cas & 851 579 & ,qv_cas,ql_cas,qi_cas,u_cas,v_cas & 852 & ,ug_cas,vg_cas,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 580 & ,ug_cas,vg_cas,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 581 & ,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 853 582 & ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 854 583 & ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas & … … 859 588 & ,thv_prof_cas,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 860 589 & ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 590 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 861 591 & ,vitw_prof_cas,omega_prof_cas,du_prof_cas,hu_prof_cas,vu_prof_cas & 862 592 & ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas & … … 891 621 real u_cas(nlev_cas,nt_cas),v_cas(nlev_cas,nt_cas) 892 622 real ug_cas(nlev_cas,nt_cas),vg_cas(nlev_cas,nt_cas) 623 real temp_nudg_cas(nlev_cas,nt_cas),qv_nudg_cas(nlev_cas,nt_cas) 624 real u_nudg_cas(nlev_cas,nt_cas),v_nudg_cas(nlev_cas,nt_cas) 625 893 626 real vitw_cas(nlev_cas,nt_cas),omega_cas(nlev_cas,nt_cas) 894 627 real du_cas(nlev_cas,nt_cas),hu_cas(nlev_cas,nt_cas),vu_cas(nlev_cas,nt_cas) … … 908 641 real u_prof_cas(nlev_cas),v_prof_cas(nlev_cas) 909 642 real ug_prof_cas(nlev_cas),vg_prof_cas(nlev_cas) 643 real temp_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas) 644 real u_nudg_prof_cas(nlev_cas),v_nudg_prof_cas(nlev_cas) 645 910 646 real vitw_prof_cas(nlev_cas),omega_prof_cas(nlev_cas) 911 647 real du_prof_cas(nlev_cas),hu_prof_cas(nlev_cas),vu_prof_cas(nlev_cas) … … 1013 749 t_prof_cas(k) = t_cas(k,it_cas2) & 1014 750 & -frac*(t_cas(k,it_cas2)-t_cas(k,it_cas1)) 1015 print *,'k,frac,plev_cas1,plev_cas2=',k,frac,plev_cas(k,it_cas1),plev_cas(k,it_cas2)751 !print *,'k,frac,plev_cas1,plev_cas2=',k,frac,plev_cas(k,it_cas1),plev_cas(k,it_cas2) 1016 752 theta_prof_cas(k) = theta_cas(k,it_cas2) & 1017 753 & -frac*(theta_cas(k,it_cas2)-theta_cas(k,it_cas1)) … … 1034 770 vg_prof_cas(k) = vg_cas(k,it_cas2) & 1035 771 & -frac*(vg_cas(k,it_cas2)-vg_cas(k,it_cas1)) 772 temp_nudg_prof_cas(k) = temp_nudg_cas(k,it_cas2) & 773 & -frac*(temp_nudg_cas(k,it_cas2)-temp_nudg_cas(k,it_cas1)) 774 qv_nudg_prof_cas(k) = qv_nudg_cas(k,it_cas2) & 775 & -frac*(qv_nudg_cas(k,it_cas2)-qv_nudg_cas(k,it_cas1)) 776 u_nudg_prof_cas(k) = u_nudg_cas(k,it_cas2) & 777 & -frac*(u_nudg_cas(k,it_cas2)-u_nudg_cas(k,it_cas1)) 778 v_nudg_prof_cas(k) = v_nudg_cas(k,it_cas2) & 779 & -frac*(v_nudg_cas(k,it_cas2)-v_nudg_cas(k,it_cas1)) 1036 780 vitw_prof_cas(k) = vitw_cas(k,it_cas2) & 1037 781 & -frac*(vitw_cas(k,it_cas2)-vitw_cas(k,it_cas1)) … … 1084 828 1085 829 !********************************************************************************************** 830 !===================================================================== 831 SUBROUTINE interp2_case_vertical_std(play,nlev_cas,plev_prof_cas & 832 & ,t_prof_cas,th_prof_cas,thv_prof_cas,thl_prof_cas & 833 & ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 834 & ,ug_prof_cas,vg_prof_cas & 835 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 836 & ,vitw_prof_cas,omega_prof_cas & 837 & ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 838 & ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 839 & ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 840 ! 841 & ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas & 842 & ,qv_mod_cas,ql_mod_cas,qi_mod_cas,u_mod_cas,v_mod_cas & 843 & ,ug_mod_cas,vg_mod_cas & 844 & ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 845 & ,w_mod_cas,omega_mod_cas & 846 & ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 847 & ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 848 & ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 849 850 implicit none 851 852 #include "YOMCST.h" 853 #include "dimensions.h" 854 855 !------------------------------------------------------------------------- 856 ! Vertical interpolation of generic case forcing data onto mod_casel levels 857 !------------------------------------------------------------------------- 858 859 integer nlevmax 860 parameter (nlevmax=41) 861 integer nlev_cas,mxcalc 862 ! real play(llm), plev_prof(nlevmax) 863 ! real t_prof(nlevmax),q_prof(nlevmax) 864 ! real u_prof(nlevmax),v_prof(nlevmax), w_prof(nlevmax) 865 ! real ht_prof(nlevmax),vt_prof(nlevmax) 866 ! real hq_prof(nlevmax),vq_prof(nlevmax) 867 868 real play(llm), plev_prof_cas(nlev_cas) 869 real t_prof_cas(nlev_cas),th_prof_cas(nlev_cas),thv_prof_cas(nlev_cas),thl_prof_cas(nlev_cas) 870 real qv_prof_cas(nlev_cas),ql_prof_cas(nlev_cas),qi_prof_cas(nlev_cas) 871 real u_prof_cas(nlev_cas),v_prof_cas(nlev_cas) 872 real ug_prof_cas(nlev_cas),vg_prof_cas(nlev_cas), vitw_prof_cas(nlev_cas),omega_prof_cas(nlev_cas) 873 real temp_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas) 874 real u_nudg_prof_cas(nlev_cas),v_nudg_prof_cas(nlev_cas) 875 876 real du_prof_cas(nlev_cas),hu_prof_cas(nlev_cas),vu_prof_cas(nlev_cas) 877 real dv_prof_cas(nlev_cas),hv_prof_cas(nlev_cas),vv_prof_cas(nlev_cas) 878 real dt_prof_cas(nlev_cas),ht_prof_cas(nlev_cas),vt_prof_cas(nlev_cas),dtrad_prof_cas(nlev_cas) 879 real dth_prof_cas(nlev_cas),hth_prof_cas(nlev_cas),vth_prof_cas(nlev_cas) 880 real dq_prof_cas(nlev_cas),hq_prof_cas(nlev_cas),vq_prof_cas(nlev_cas) 881 882 real t_mod_cas(llm),theta_mod_cas(llm),thv_mod_cas(llm),thl_mod_cas(llm) 883 real qv_mod_cas(llm),ql_mod_cas(llm),qi_mod_cas(llm) 884 real u_mod_cas(llm),v_mod_cas(llm) 885 real ug_mod_cas(llm),vg_mod_cas(llm), w_mod_cas(llm),omega_mod_cas(llm) 886 real temp_nudg_mod_cas(llm),qv_nudg_mod_cas(llm) 887 real u_nudg_mod_cas(llm),v_nudg_mod_cas(llm) 888 real du_mod_cas(llm),hu_mod_cas(llm),vu_mod_cas(llm) 889 real dv_mod_cas(llm),hv_mod_cas(llm),vv_mod_cas(llm) 890 real dt_mod_cas(llm),ht_mod_cas(llm),vt_mod_cas(llm),dtrad_mod_cas(llm) 891 real dth_mod_cas(llm),hth_mod_cas(llm),vth_mod_cas(llm) 892 real dq_mod_cas(llm),hq_mod_cas(llm),vq_mod_cas(llm) 893 894 integer l,k,k1,k2 895 real frac,frac1,frac2,fact 896 897 ! do l = 1, llm 898 ! print *,'debut interp2, play=',l,play(l) 899 ! enddo 900 ! do l = 1, nlev_cas 901 ! print *,'debut interp2, plev_prof_cas=',l,play(l),plev_prof_cas(l) 902 ! enddo 903 904 do l = 1, llm 905 906 if (play(l).ge.plev_prof_cas(nlev_cas)) then 907 908 mxcalc=l 909 ! print *,'debut interp2, mxcalc=',mxcalc 910 k1=0 911 k2=0 912 913 if (play(l).le.plev_prof_cas(1)) then 914 915 do k = 1, nlev_cas-1 916 if (play(l).le.plev_prof_cas(k).and. play(l).gt.plev_prof_cas(k+1)) then 917 k1=k 918 k2=k+1 919 endif 920 enddo 921 922 if (k1.eq.0 .or. k2.eq.0) then 923 write(*,*) 'PB! k1, k2 = ',k1,k2 924 write(*,*) 'l,play(l) = ',l,play(l)/100 925 do k = 1, nlev_cas-1 926 write(*,*) 'k,plev_prof_cas(k) = ',k,plev_prof_cas(k)/100 927 enddo 928 endif 929 930 frac = (plev_prof_cas(k2)-play(l))/(plev_prof_cas(k2)-plev_prof_cas(k1)) 931 t_mod_cas(l)= t_prof_cas(k2) - frac*(t_prof_cas(k2)-t_prof_cas(k1)) 932 theta_mod_cas(l)= th_prof_cas(k2) - frac*(th_prof_cas(k2)-th_prof_cas(k1)) 933 if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 934 thv_mod_cas(l)= thv_prof_cas(k2) - frac*(thv_prof_cas(k2)-thv_prof_cas(k1)) 935 thl_mod_cas(l)= thl_prof_cas(k2) - frac*(thl_prof_cas(k2)-thl_prof_cas(k1)) 936 qv_mod_cas(l)= qv_prof_cas(k2) - frac*(qv_prof_cas(k2)-qv_prof_cas(k1)) 937 ql_mod_cas(l)= ql_prof_cas(k2) - frac*(ql_prof_cas(k2)-ql_prof_cas(k1)) 938 qi_mod_cas(l)= qi_prof_cas(k2) - frac*(qi_prof_cas(k2)-qi_prof_cas(k1)) 939 u_mod_cas(l)= u_prof_cas(k2) - frac*(u_prof_cas(k2)-u_prof_cas(k1)) 940 v_mod_cas(l)= v_prof_cas(k2) - frac*(v_prof_cas(k2)-v_prof_cas(k1)) 941 ug_mod_cas(l)= ug_prof_cas(k2) - frac*(ug_prof_cas(k2)-ug_prof_cas(k1)) 942 vg_mod_cas(l)= vg_prof_cas(k2) - frac*(vg_prof_cas(k2)-vg_prof_cas(k1)) 943 temp_nudg_mod_cas(l)= temp_nudg_prof_cas(k2) - frac*(temp_nudg_prof_cas(k2)-temp_nudg_prof_cas(k1)) 944 qv_nudg_mod_cas(l)= qv_nudg_prof_cas(k2) - frac*(qv_nudg_prof_cas(k2)-qv_nudg_prof_cas(k1)) 945 u_nudg_mod_cas(l)= u_nudg_prof_cas(k2) - frac*(u_nudg_prof_cas(k2)-u_nudg_prof_cas(k1)) 946 v_nudg_mod_cas(l)= v_nudg_prof_cas(k2) - frac*(v_nudg_prof_cas(k2)-v_nudg_prof_cas(k1)) 947 w_mod_cas(l)= vitw_prof_cas(k2) - frac*(vitw_prof_cas(k2)-vitw_prof_cas(k1)) 948 omega_mod_cas(l)= omega_prof_cas(k2) - frac*(omega_prof_cas(k2)-omega_prof_cas(k1)) 949 du_mod_cas(l)= du_prof_cas(k2) - frac*(du_prof_cas(k2)-du_prof_cas(k1)) 950 hu_mod_cas(l)= hu_prof_cas(k2) - frac*(hu_prof_cas(k2)-hu_prof_cas(k1)) 951 vu_mod_cas(l)= vu_prof_cas(k2) - frac*(vu_prof_cas(k2)-vu_prof_cas(k1)) 952 dv_mod_cas(l)= dv_prof_cas(k2) - frac*(dv_prof_cas(k2)-dv_prof_cas(k1)) 953 hv_mod_cas(l)= hv_prof_cas(k2) - frac*(hv_prof_cas(k2)-hv_prof_cas(k1)) 954 vv_mod_cas(l)= vv_prof_cas(k2) - frac*(vv_prof_cas(k2)-vv_prof_cas(k1)) 955 dt_mod_cas(l)= dt_prof_cas(k2) - frac*(dt_prof_cas(k2)-dt_prof_cas(k1)) 956 ht_mod_cas(l)= ht_prof_cas(k2) - frac*(ht_prof_cas(k2)-ht_prof_cas(k1)) 957 vt_mod_cas(l)= vt_prof_cas(k2) - frac*(vt_prof_cas(k2)-vt_prof_cas(k1)) 958 dth_mod_cas(l)= dth_prof_cas(k2) - frac*(dth_prof_cas(k2)-dth_prof_cas(k1)) 959 hth_mod_cas(l)= hth_prof_cas(k2) - frac*(hth_prof_cas(k2)-hth_prof_cas(k1)) 960 vth_mod_cas(l)= vth_prof_cas(k2) - frac*(vth_prof_cas(k2)-vth_prof_cas(k1)) 961 dq_mod_cas(l)= dq_prof_cas(k2) - frac*(dq_prof_cas(k2)-dq_prof_cas(k1)) 962 hq_mod_cas(l)= hq_prof_cas(k2) - frac*(hq_prof_cas(k2)-hq_prof_cas(k1)) 963 vq_mod_cas(l)= vq_prof_cas(k2) - frac*(vq_prof_cas(k2)-vq_prof_cas(k1)) 964 dtrad_mod_cas(l)= dtrad_prof_cas(k2) - frac*(dtrad_prof_cas(k2)-dtrad_prof_cas(k1)) 965 966 else !play>plev_prof_cas(1) 967 968 k1=1 969 k2=2 970 print *,'interp2_vert, k1,k2=',plev_prof_cas(k1),plev_prof_cas(k2) 971 frac1 = (play(l)-plev_prof_cas(k2))/(plev_prof_cas(k1)-plev_prof_cas(k2)) 972 frac2 = (play(l)-plev_prof_cas(k1))/(plev_prof_cas(k1)-plev_prof_cas(k2)) 973 t_mod_cas(l)= frac1*t_prof_cas(k1) - frac2*t_prof_cas(k2) 974 theta_mod_cas(l)= frac1*th_prof_cas(k1) - frac2*th_prof_cas(k2) 975 if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 976 thv_mod_cas(l)= frac1*thv_prof_cas(k1) - frac2*thv_prof_cas(k2) 977 thl_mod_cas(l)= frac1*thl_prof_cas(k1) - frac2*thl_prof_cas(k2) 978 qv_mod_cas(l)= frac1*qv_prof_cas(k1) - frac2*qv_prof_cas(k2) 979 ql_mod_cas(l)= frac1*ql_prof_cas(k1) - frac2*ql_prof_cas(k2) 980 qi_mod_cas(l)= frac1*qi_prof_cas(k1) - frac2*qi_prof_cas(k2) 981 u_mod_cas(l)= frac1*u_prof_cas(k1) - frac2*u_prof_cas(k2) 982 v_mod_cas(l)= frac1*v_prof_cas(k1) - frac2*v_prof_cas(k2) 983 ug_mod_cas(l)= frac1*ug_prof_cas(k1) - frac2*ug_prof_cas(k2) 984 vg_mod_cas(l)= frac1*vg_prof_cas(k1) - frac2*vg_prof_cas(k2) 985 temp_nudg_mod_cas(l)= frac1*temp_nudg_prof_cas(k1) - frac2*temp_nudg_prof_cas(k2) 986 qv_nudg_mod_cas(l)= frac1*qv_nudg_prof_cas(k1) - frac2*qv_nudg_prof_cas(k2) 987 u_nudg_mod_cas(l)= frac1*u_nudg_prof_cas(k1) - frac2*u_nudg_prof_cas(k2) 988 v_nudg_mod_cas(l)= frac1*v_nudg_prof_cas(k1) - frac2*v_nudg_prof_cas(k2) 989 w_mod_cas(l)= frac1*vitw_prof_cas(k1) - frac2*vitw_prof_cas(k2) 990 omega_mod_cas(l)= frac1*omega_prof_cas(k1) - frac2*omega_prof_cas(k2) 991 du_mod_cas(l)= frac1*du_prof_cas(k1) - frac2*du_prof_cas(k2) 992 hu_mod_cas(l)= frac1*hu_prof_cas(k1) - frac2*hu_prof_cas(k2) 993 vu_mod_cas(l)= frac1*vu_prof_cas(k1) - frac2*vu_prof_cas(k2) 994 dv_mod_cas(l)= frac1*dv_prof_cas(k1) - frac2*dv_prof_cas(k2) 995 hv_mod_cas(l)= frac1*hv_prof_cas(k1) - frac2*hv_prof_cas(k2) 996 vv_mod_cas(l)= frac1*vv_prof_cas(k1) - frac2*vv_prof_cas(k2) 997 dt_mod_cas(l)= frac1*dt_prof_cas(k1) - frac2*dt_prof_cas(k2) 998 ht_mod_cas(l)= frac1*ht_prof_cas(k1) - frac2*ht_prof_cas(k2) 999 vt_mod_cas(l)= frac1*vt_prof_cas(k1) - frac2*vt_prof_cas(k2) 1000 dth_mod_cas(l)= frac1*dth_prof_cas(k1) - frac2*dth_prof_cas(k2) 1001 hth_mod_cas(l)= frac1*hth_prof_cas(k1) - frac2*hth_prof_cas(k2) 1002 vth_mod_cas(l)= frac1*vth_prof_cas(k1) - frac2*vth_prof_cas(k2) 1003 dq_mod_cas(l)= frac1*dq_prof_cas(k1) - frac2*dq_prof_cas(k2) 1004 hq_mod_cas(l)= frac1*hq_prof_cas(k1) - frac2*hq_prof_cas(k2) 1005 vq_mod_cas(l)= frac1*vq_prof_cas(k1) - frac2*vq_prof_cas(k2) 1006 dtrad_mod_cas(l)= frac1*dtrad_prof_cas(k1) - frac2*dtrad_prof_cas(k2) 1007 1008 endif ! play.le.plev_prof_cas(1) 1009 1010 else ! above max altitude of forcing file 1011 1012 !jyg 1013 fact=20.*(plev_prof_cas(nlev_cas)-play(l))/plev_prof_cas(nlev_cas) !jyg 1014 fact = max(fact,0.) !jyg 1015 fact = exp(-fact) !jyg 1016 t_mod_cas(l)= t_prof_cas(nlev_cas) !jyg 1017 theta_mod_cas(l)= th_prof_cas(nlev_cas) !jyg 1018 thv_mod_cas(l)= thv_prof_cas(nlev_cas) !jyg 1019 thl_mod_cas(l)= thl_prof_cas(nlev_cas) !jyg 1020 qv_mod_cas(l)= qv_prof_cas(nlev_cas)*fact !jyg 1021 ql_mod_cas(l)= ql_prof_cas(nlev_cas)*fact !jyg 1022 qi_mod_cas(l)= qi_prof_cas(nlev_cas)*fact !jyg 1023 u_mod_cas(l)= u_prof_cas(nlev_cas)*fact !jyg 1024 v_mod_cas(l)= v_prof_cas(nlev_cas)*fact !jyg 1025 ug_mod_cas(l)= ug_prof_cas(nlev_cas) !jyg 1026 vg_mod_cas(l)= vg_prof_cas(nlev_cas) !jyg 1027 temp_nudg_mod_cas(l)= temp_nudg_prof_cas(nlev_cas) !jyg 1028 qv_nudg_mod_cas(l)= qv_nudg_prof_cas(nlev_cas) !jyg 1029 u_nudg_mod_cas(l)= u_nudg_prof_cas(nlev_cas) !jyg 1030 v_nudg_mod_cas(l)= v_nudg_prof_cas(nlev_cas) !jyg 1031 thv_mod_cas(l)= thv_prof_cas(nlev_cas) !jyg 1032 w_mod_cas(l)= 0.0 !jyg 1033 omega_mod_cas(l)= 0.0 !jyg 1034 du_mod_cas(l)= du_prof_cas(nlev_cas)*fact 1035 hu_mod_cas(l)= hu_prof_cas(nlev_cas)*fact !jyg 1036 vu_mod_cas(l)= vu_prof_cas(nlev_cas)*fact !jyg 1037 dv_mod_cas(l)= dv_prof_cas(nlev_cas)*fact 1038 hv_mod_cas(l)= hv_prof_cas(nlev_cas)*fact !jyg 1039 vv_mod_cas(l)= vv_prof_cas(nlev_cas)*fact !jyg 1040 dt_mod_cas(l)= dt_prof_cas(nlev_cas) 1041 ht_mod_cas(l)= ht_prof_cas(nlev_cas) !jyg 1042 vt_mod_cas(l)= vt_prof_cas(nlev_cas) !jyg 1043 dth_mod_cas(l)= dth_prof_cas(nlev_cas) 1044 hth_mod_cas(l)= hth_prof_cas(nlev_cas) !jyg 1045 vth_mod_cas(l)= vth_prof_cas(nlev_cas) !jyg 1046 dq_mod_cas(l)= dq_prof_cas(nlev_cas)*fact 1047 hq_mod_cas(l)= hq_prof_cas(nlev_cas)*fact !jyg 1048 vq_mod_cas(l)= vq_prof_cas(nlev_cas)*fact !jyg 1049 dtrad_mod_cas(l)= dtrad_prof_cas(nlev_cas)*fact !jyg 1050 1051 endif ! play 1052 1053 enddo ! l 1054 1055 return 1056 end 1057 !***************************************************************************** 1058 1059 1060 1061 1086 1062 1087 1063 END MODULE mod_1D_cases_read_std -
LMDZ6/trunk/libf/phylmd/dyn1d/old_1D_interp_cases.h
r3541 r3593 957 957 enddo 958 958 endif 959 if (nudging_q .gt.0.) then959 if (nudging_qv.gt.0.) then 960 960 do l=1,llm 961 961 q(l,1)=q(l,1)+timestep*(q_mod_cas(l)-q(l,1))/(nudge_q) -
LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90
r3575 r3593 162 162 !===================================================================== 163 163 ! 164 #include " 1D_decl_cases.h"164 #include "old_1D_decl_cases.h" 165 165 ! 166 166 !--------------------------------------------------------------------- -
LMDZ6/trunk/libf/phylmd/dyn1d/scm.F90
r3592 r3593 818 818 endif 819 819 ! 820 !---------------------------------------------------------------------821 ! Initialize target profile for RHT nudging if needed822 !---------------------------------------------------------------------823 if (nudge(inudge_RHT)) then824 call nudge_RHT_init(plev,play,temp,q(:,1),t_targ,rh_targ)825 endif826 if (nudge(inudge_UV)) then827 call nudge_UV_init(plev,play,u,v,u_targ,v_targ)828 endif829 !830 820 !===================================================================== 831 821 CALL iophys_ini … … 863 853 d_q_adv(:,1)=d_q_adv(:,1)+dq_dyn(:,1) 864 854 855 print*,'OMEGA ',omega_mod_cas(10),omega(10) 865 856 !--------------------------------------------------------------------- 866 857 ! Geopotential : … … 1017 1008 !!!!!!!!!!!!!!!!!!!!!!!! 1018 1009 d_t_nudge(:) = 0. 1019 d_q_nudge(:,:) = 0.1020 1010 d_u_nudge(:) = 0. 1021 1011 d_v_nudge(:) = 0. 1022 if (nudge(inudge_RHT)) then 1023 call nudge_RHT(timestep,plev,play,t_targ,rh_targ,temp,q(:,1), & 1024 & d_t_nudge,d_q_nudge(:,1)) 1025 endif 1026 if (nudge(inudge_UV)) then 1027 call nudge_UV(timestep,plev,play,u_targ,v_targ,u,v, & 1028 & d_u_nudge,d_v_nudge) 1029 endif 1012 d_q_nudge(:,:) = 0. 1013 print*,'GUIDAGE ABSURDE POUR SANDU ' 1014 nudging_t=0. 1015 nudging_qv=0. 1016 IF ( nint(nudging_t) /= 0 ) d_t_nudge(:)=(temp_nudg_mod_cas(:)-temp(:))/nudging_t 1017 IF ( nint(nudging_qv) /= 0 ) d_q_nudge(:,1) =(qv_nudg_mod_cas(:) -q(:,1) )/nudging_qv 1018 IF ( nint(nudging_u*nudging_v) /= 0 ) THEN 1019 d_u_nudge(:)=(u_nudg_mod_cas(:)-u(:))/nudging_u 1020 d_v_nudge(:)=(v_nudg_mod_cas(:)-v(:))/nudging_u 1021 ENDIF 1022 !CALL iophys_ecrit('qv',klev,'qv','g/kg',1000*q(:,1)) 1023 !CALL iophys_ecrit('qvnud',klev,'qvnud','g/kg',1000*u_nudg_mod_cas) 1024 !CALL iophys_ecrit('u',klev,'u','m/s',u) 1025 !CALL iophys_ecrit('unud',klev,'unud','m/s',u_nudg_mod_cas) 1026 !CALL iophys_ecrit('v',klev,'v','m/s',v) 1027 !CALL iophys_ecrit('vnud',klev,'vnud','m/s',v_nudg_mod_cas) 1028 1030 1029 ! 1031 1030 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Note: See TracChangeset
for help on using the changeset viewer.