Changeset 2126 for LMDZ5/trunk/libf/phylmd/1D_interp_cases.h
- Timestamp:
- Oct 15, 2014, 2:03:57 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/1D_interp_cases.h
r2019 r2126 78 78 79 79 endif ! forcing_toga 80 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 81 ! Interpolation DICE forcing 82 !--------------------------------------------------------------------- 83 if (forcing_dice) then 84 85 if (prt_level.ge.1) then 86 print*,'#### ITAP,day,day1,(day-day1)*86400,(day-day1)*86400/dt_dice=',& 87 & day,day1,(day-day1)*86400.,(day-day1)*86400/dt_dice 88 endif 89 90 ! time interpolation: 91 CALL interp_dice_time(daytime,day1,annee_ref & 92 & ,year_ini_dice,day_ju_ini_dice,nt_dice,dt_dice & 93 & ,nlev_dice,shf_dice,lhf_dice,lwup_dice,swup_dice & 94 & ,tg_dice,ustar_dice,psurf_dice,ug_dice,vg_dice & 95 & ,ht_dice,hq_dice,hu_dice,hv_dice,w_dice,omega_dice & 96 & ,shf_prof,lhf_prof,lwup_prof,swup_prof,tg_prof & 97 & ,ustar_prof,psurf_prof,ug_profd,vg_profd & 98 & ,ht_profd,hq_profd,hu_profd,hv_profd,w_profd & 99 & ,omega_profd) 100 ! do l = 1, llm 101 ! print *,'llm l omega_profd',llm,l,omega_profd(l) 102 ! enddo 103 104 if (type_ts_forcing.eq.1) ts_cur = tg_prof ! SST used in read_tsurf1d 105 106 ! vertical interpolation: 107 CALL interp_dice_vertical(play,nlev_dice,nt_dice,plev_dice & 108 & ,th_dice,qv_dice,u_dice,v_dice,o3_dice & 109 & ,ht_profd,hq_profd,hu_profd,hv_profd,w_profd,omega_profd & 110 & ,th_mod,qv_mod,u_mod,v_mod,o3_mod & 111 & ,ht_mod,hq_mod,hu_mod,hv_mod,w_mod,omega_mod,mxcalc) 112 ! do l = 1, llm 113 ! print *,'llm l omega_mod',llm,l,omega_mod(l) 114 ! enddo 115 116 ! Les forcages DICE sont donnes /jour et non /seconde ! 117 ht_mod(:)=ht_mod(:)/86400. 118 hq_mod(:)=hq_mod(:)/86400. 119 hu_mod(:)=hu_mod(:)/86400. 120 hv_mod(:)=hv_mod(:)/86400. 121 122 !calcul de l'advection verticale a partir du omega (repris cas TWPICE, MPL 05082013) 123 !Calcul des gradients verticaux 124 !initialisation 125 d_t_z(:)=0. 126 d_q_z(:)=0. 127 d_u_z(:)=0. 128 d_v_z(:)=0. 129 DO l=2,llm-1 130 d_t_z(l)=(temp(l+1)-temp(l-1))/(play(l+1)-play(l-1)) 131 d_q_z(l)=(q(l+1,1)-q(l-1,1)) /(play(l+1)-play(l-1)) 132 d_u_z(l)=(u(l+1)-u(l-1))/(play(l+1)-play(l-1)) 133 d_v_z(l)=(v(l+1)-v(l-1))/(play(l+1)-play(l-1)) 134 ENDDO 135 d_t_z(1)=d_t_z(2) 136 d_q_z(1)=d_q_z(2) 137 ! d_u_z(1)=u(2)/(play(2)-psurf)/5. 138 ! d_v_z(1)=v(2)/(play(2)-psurf)/5. 139 d_u_z(1)=0. 140 d_v_z(1)=0. 141 d_t_z(llm)=d_t_z(llm-1) 142 d_q_z(llm)=d_q_z(llm-1) 143 d_u_z(llm)=d_u_z(llm-1) 144 d_v_z(llm)=d_v_z(llm-1) 145 146 !Calcul de l advection verticale: 147 ! utiliser omega (Pa/s) et non w (m/s) !! MP 20131108 148 d_t_dyn_z(:)=omega_mod(:)*d_t_z(:) 149 d_q_dyn_z(:)=omega_mod(:)*d_q_z(:) 150 d_u_dyn_z(:)=omega_mod(:)*d_u_z(:) 151 d_v_dyn_z(:)=omega_mod(:)*d_v_z(:) 152 153 ! large-scale forcing : 154 ! tsurf = tg_prof MPL 20130925 commente 155 psurf = psurf_prof 156 ! For this case, fluxes are imposed 157 fsens=-1*shf_prof 158 flat=-1*lhf_prof 159 ust=ustar_prof 160 tg=tg_prof 161 print *,'ust= ',ust 162 do l = 1, llm 163 ug(l)= ug_profd 164 vg(l)= vg_profd 165 ! omega(l) = w_prof(l) 166 ! rho(l) = play(l)/(rd*temp(l)*(1.+(rv/rd-1.)*q(l,1))) 167 ! omega2(l)=-rho(l)*omega(l) 168 ! omega(l) = w_mod(l)*(-rg*rho(l)) 169 omega(l) = omega_mod(l) 170 omega2(l)= omega(l)/rg*airefi ! flxmass_w calcule comme ds physiq 171 172 alpha = rd*temp(l)*(1.+(rv/rd-1.)*q(l,1))/play(l) 173 d_th_adv(l) = alpha*omega(l)/rcpd+ht_mod(l)-d_t_dyn_z(l) 174 d_q_adv(l,1) = hq_mod(l)-d_q_dyn_z(l) 175 d_u_adv(l) = hu_mod(l)-d_u_dyn_z(l) 176 d_v_adv(l) = hv_mod(l)-d_v_dyn_z(l) 177 dt_cooling(l) = 0.0 178 enddo 179 180 endif ! forcing_dice 181 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 182 !--------------------------------------------------------------------- 80 183 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 81 184 !---------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.