updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / da / da_ssmi / da_effht_adj.inc
blob5f94d98065018a8bd2e27e62c656d13c43c97fb6
1 subroutine da_effht_adj(ho,hv,sigo,sigv,mu,zcld,hdn,hup,hdninf,hupinf, &
2    ADJ_ho,ADJ_hv,ADJ_sigo,ADJ_sigv,ADJ_mu,        &
3    ADJ_zcld,ADJ_hdn,ADJ_hup,ADJ_hdninf,ADJ_hupinf )
5    implicit none
7    !--------------------------------------------------------------------
8    ! Purpose: TBD
9    ! Output  : ADJ_ho, ADJ_hv, ADJ_sigo, ADJ_sigv, ADJ_zcld, ADJ_mu
10    ! Input   : ADJ_hdn, ADJ_hup, ADJ_hdninf, ADJ_hupinf
11    !--------------------------------------------------------------------
13    real, intent(in)    :: ho,hv,sigo,sigv,mu,zcld
14    real, intent(inout) :: ADJ_ho,ADJ_hv,ADJ_sigo,ADJ_sigv,ADJ_zcld, ADJ_mu
15    real, intent(inout) :: hdn,hup,hdninf,hupinf
16    real, intent(in)    :: ADJ_hdn,ADJ_hup,ADJ_hdninf,ADJ_hupinf
18    real :: gint,zgint,hint,zhint
19    real :: ginf,zginf,hinf,zhinf
20    real :: ADJ_gint,ADJ_zgint,ADJ_hint,ADJ_zhint
21    real :: ADJ_ginf,ADJ_zginf,ADJ_hinf,ADJ_zhinf
22    real :: ADJ_mu2,ADJ_halfmu,ADJ_sixthmu2,ADJ_etnthmu2
23    real :: ADJ_quartmu,ADJ_halfmu2
25    real :: hoinv,hvinv,chio,chiv,ezho,ezhv,alpha,alph2,alph3
26    real :: chio_save,chiv_save,dplus_save,dmin_save
27    real :: beta,beta2,beta3,mu2,mualph,cplus,cmin,dplus,dmin
28    real :: chiov,chivv,chioo,chioov,chiovv,chiooo,chivvv
29    real :: h11,h21,h12,newh11
30    real :: sigoo,sigov,sigvv,sigooo,sigoov,sigovv,sigvvv
31    real :: ezhoo,ezhov,ezhvv,ezhooo,ezhoov,ezhovv,ezhvvv
32    real :: s,sprim,t,tprim,u,uprim,term1,term2,term3
33    real :: halfmu,halfmu2,sixthmu2,etnthmu2,quartmu
35    real :: ADJ_hoinv,ADJ_hvinv,ADJ_chio,ADJ_chiv,ADJ_ezho
36    real :: ADJ_ezhv,ADJ_alpha,ADJ_alph2,ADJ_alph3
37    real :: ADJ_beta,ADJ_beta2,ADJ_beta3,ADJ_mualph
38    real :: ADJ_cplus,ADJ_cmin,ADJ_dplus,ADJ_dmin
39    real :: ADJ_chiov,ADJ_chivv,ADJ_chioo,ADJ_chioov
40    real :: ADJ_chiovv,ADJ_chiooo,ADJ_chivvv
41    real :: ADJ_h11,ADJ_h21,ADJ_h12,ADJ_newh11
42    real :: ADJ_sigoo,ADJ_sigov,ADJ_sigvv,ADJ_sigooo
43    real :: ADJ_sigoov,ADJ_sigovv,ADJ_sigvvv
44    real :: ADJ_ezhoo,ADJ_ezhov,ADJ_ezhvv,ADJ_ezhooo
45    real :: ADJ_ezhoov,ADJ_ezhovv,ADJ_ezhvvv
46    real :: ADJ_s,ADJ_sprim,ADJ_t,ADJ_tprim
47    real :: ADJ_u,ADJ_uprim,ADJ_term1,ADJ_term2,ADJ_term3
49    if (trace_use) call da_trace_entry("da_effht_adj")
51     ! initial zero
52    gint=0.0
53    zgint=0.0
54    hint=0.0
55    zhint=0.0
56    ginf=0.0
57    zginf=0.0
58    hinf=0.0
59    zhinf=0.0
60    hoinv=0.0
61    hvinv=0.0
62    chio=0.0
63    chiv=0.0
64    ezho=0.0
65    ezhv=0.0
66    alpha=0.0
67    alph2=0.0
68    alph3=0.0
69    chio_save=0.0
70    chiv_save=0.0
71    dplus_save=0.0
72    dmin_save=0.0
73    beta=0.0
74    beta2=0.0
75    beta3=0.0
76    mu2=0.0
77    mualph=0.0
78    cplus=0.0
79    cmin=0.0
80    dplus=0.0
81    dmin=0.0
82    chiov=0.0
83    chivv=0.0
84    chioo=0.0
85    chioov=0.0
86    chiovv=0.0
87    chiooo=0.0
88    chivvv=0.0
89    h11=0.0
90    h21=0.0
91    h12=0.0
92    newh11=0.0
93    sigoo=0.0
94    sigov=0.0
95    sigvv=0.0
96    sigooo=0.0
97    sigoov=0.0
98    sigovv=0.0
99    sigvvv=0.0
100    ezhoo=0.0
101    ezhov=0.0
102    ezhvv=0.0
103    ezhooo=0.0
104    ezhoov=0.0
105    ezhovv=0.0
106    ezhvvv=0.0
107    s=0.0
108    sprim=0.0
109    t=0.0
110    tprim=0.0
111    u=0.0
112    uprim=0.0
113    term1=0.0
114    term2=0.0
115    term3=0.0
116    halfmu=0.0
117    halfmu2=0.0
118    sixthmu2=0.0
119    etnthmu2=0.0
120    quartmu=0.0
122    ! WHY?
123    ! ADJ_ho=0.0
124    ! ADJ_hv=0.0
125    ! ADJ_sigo=0.0
126    ! ADJ_sigv=0.0
127    ! ADJ_zcld=0.0
128    ! ADJ_mu=0.0
130    ADJ_gint=0.0
131    ADJ_zgint=0.0
132    ADJ_hint=0.0
133    ADJ_zhint=0.0
134    ADJ_ginf=0.0
135    ADJ_zginf=0.0
136    ADJ_hinf=0.0
137    ADJ_zhinf=0.0
138    ADJ_mu2=0.0
139    ADJ_halfmu=0.0
140    ADJ_sixthmu2=0.0
141    ADJ_etnthmu2=0.0
142    ADJ_quartmu=0.0
143    ADJ_halfmu2=0.0
144    ADJ_hoinv=0.0
145    ADJ_hvinv=0.0
146    ADJ_chio=0.0
147    ADJ_chiv=0.0
148    ADJ_ezho=0.0
149    ADJ_ezhv=0.0
150    ADJ_alpha=0.0
151    ADJ_alph2=0.0
152    ADJ_alph3=0.0
153    ADJ_beta=0.0
154    ADJ_beta2=0.0
155    ADJ_beta3=0.0
156    ADJ_mualph=0.0
157    ADJ_cplus=0.0
158    ADJ_cmin=0.0
159    ADJ_dplus=0.0
160    ADJ_dmin=0.0
161    ADJ_chiov=0.0
162    ADJ_chivv=0.0
163    ADJ_chioo=0.0
164    ADJ_chioov=0.0
165    ADJ_chiovv=0.0
166    ADJ_chiooo=0.0
167    ADJ_chivvv=0.0
168    ADJ_h11=0.0
169    ADJ_h21=0.0
170    ADJ_h12=0.0
171    ADJ_newh11=0.0
172    ADJ_sigoo=0.0
173    ADJ_sigov=0.0
174    ADJ_sigvv=0.0
175    ADJ_sigooo=0.0
176    ADJ_sigoov=0.0
177    ADJ_sigovv=0.0
178    ADJ_sigvvv=0.0
179    ADJ_ezhoo=0.0
180    ADJ_ezhov=0.0
181    ADJ_ezhvv=0.0
182    ADJ_ezhooo=0.0
183    ADJ_ezhoov=0.0
184    ADJ_ezhovv=0.0
185    ADJ_ezhvvv=0.0
186    ADJ_s=0.0
187    ADJ_sprim=0.0
188    ADJ_t=0.0
189    ADJ_tprim=0.0
190    ADJ_u=0.0
191    ADJ_uprim=0.0
192    ADJ_term1=0.0
193    ADJ_term2=0.0
194    ADJ_term3=0.0
196    ! base fields
198    hoinv =  1.0d0/ho
199    hvinv =  1.0d0/hv
200    chio = zcld*hoinv
201    chiv = zcld*hvinv
202    ezho = sigo*exp(-chio)
203    ezhv = sigv*exp(-chiv)
204    alpha = sigo + sigv
205    alph2 = alpha*alpha
206    alph3 = alpha*alph2
207    beta = ezho + ezhv
208    beta2 = beta*beta
209    beta3 = beta*beta2
211    mu2        = mu*mu
212    halfmu     = 0.5d0*    mu
213    sixthmu2   =     mu2/6.0d0
214    etnthmu2   =     mu2/18.0d0
215    quartmu    = 0.25d0*    mu
216    halfmu2    = 0.5d0*    mu2
218    mualph = mu*alpha
219    cplus  = 1.0d0 +     mualph
220    cmin   = 1.0d0 -     mualph
221    dplus  = halfmu2*alph2
222    dmin   =     dplus
223   
224    dplus_save = dplus
225    dplus  =     cplus +     dplus
226   
227    dmin_save  = dmin
228    dmin   =     cmin  +     dmin
230    h11    =     hoinv +     hvinv
231    h21    =  1.0d0/(h11 + hvinv)
232    h12    =  1.0d0/(h11 + hoinv)
233    newh11 =  1.0d0/h11
234   
235    chiov  = 1.0d0 +     chio +     chiv
236    chioo  = 1.0d0 +     chio +     chio
237    chivv  = 1.0d0 +     chiv +     chiv
238    chioov =     chioo +     chiv
239    chiovv =     chio  +     chivv
240    chiooo =     chioo +     chio
241    chivvv =     chivv +     chiv
242    chio_save = chio
243    chio   = 1.0d0 +     chio
244    chiv_save = chiv
245    chiv   = 1.0d0 +     chiv
246    sigov  = sigo*sigv
247    sigoo  = sigo*sigo
248    sigvv  = sigv*sigv
249    sigooo = sigoo*sigo
250    sigoov = sigoo*sigv
251    sigovv = sigo*sigvv
252    sigvvv = sigvv*sigv
253    ezhoo  = ezho*ezho
254    ezhov  = ezho*ezhv
255    ezhvv  = ezhv*ezhv
256    ezhovv = ezho*ezhvv
257    ezhoov = ezhoo*ezhv
258    ezhooo = ezhoo*ezho
259    ezhvvv = ezhvv*ezhv
260    s      = sigo*ho + sigv*hv
262    sprim  = ezho*ho*chio + ezhv*hv*chiv
263    t      = sigoo*ho + 4.0d0*sigov*newh11 + sigvv*hv
265    tprim  = ezhoo*ho*chioo + 4.0d0*ezhov*newh11*chiov + ezhvv*hv*chivv
266    u      = sigooo*ho + 9.0d0*(sigovv*h21+sigoov*h12) + sigvvv*hv
268    uprim  = ezhvvv*hv*chivvv +  &
269             9.0d0*(ezhovv*h21*chiovv + ezhoov*h12*chioov) + &
270             ezhooo*ho*chiooo
272    term1  =     s -     sprim
273    term2  = quartmu*(t - tprim)
274    term3  = etnthmu2*(    u -     uprim)
275    zgint  = dmin*term1 +  cmin*term2 + term3
276    zhint  = -dplus*term1 + cplus*term2 - term3
277    term2  = quartmu * t
278    term3  = etnthmu2*u
279    zginf  = dmin*s +  cmin*term2 + term3
280    zhinf  = -dplus*s + cplus*term2 - term3
282    term1  =     alpha -     beta
283    term2  = halfmu*(    alph2 -     beta2)
284    term3  = sixthmu2*(    alph3 -     beta3)
285    gint   = dmin*term1 +  cmin*term2 + term3
286    hint   = -dplus*term1 + cplus*term2 - term3
287    term2  = halfmu*alph2
288    term3  = sixthmu2*alph3
289    ginf   = dmin*alpha +  cmin*term2 + term3
290    hinf   = -dplus*alpha + cplus*term2 - term3
291    hdn    = zgint/gint
292    hup    = zhint/hint
293    hdninf = zginf/ginf
294    hupinf = zhinf/hinf
296    ! start
298    ADJ_zhinf  =   ADJ_hupinf/hinf        + ADJ_zhinf
299    ADJ_hinf   = - hupinf*ADJ_hupinf/hinf + ADJ_hinf
301    ADJ_zginf  =   ADJ_hdninf/ginf        + ADJ_zginf
302    ADJ_ginf   = - hdninf*ADJ_hdninf/ginf + ADJ_ginf
304    ADJ_zhint  =   ADJ_hup/hint     + ADJ_zhint
305    ADJ_hint   = - hup*ADJ_hup/hint + ADJ_hint
307    ADJ_zgint  =   ADJ_hdn/gint       + ADJ_zgint
308    ADJ_gint   = - hdn * ADJ_hdn/gint + ADJ_gint
310    ADJ_dplus  = - ADJ_hinf*alpha  + ADJ_dplus 
311    ADJ_alpha = - dplus*ADJ_hinf   + ADJ_alpha
312    ADJ_cplus =   ADJ_hinf*term2   + ADJ_cplus
313    ADJ_term2 =   cplus*ADJ_hinf 
314    ADJ_term3 = - ADJ_hinf         
316    ADJ_dmin   =   ADJ_ginf*alpha + ADJ_dmin
317    ADJ_alpha  =   dmin*ADJ_ginf  + ADJ_alpha
318    ADJ_cmin   =   ADJ_ginf*term2 + ADJ_cmin
319    ADJ_term2  =   cmin*ADJ_ginf  + ADJ_term2
320    ADJ_term3  =   ADJ_ginf       + ADJ_term3
322    ADJ_sixthmu2 = ADJ_term3*alph3    + ADJ_sixthmu2
323    ADJ_alph3    = sixthmu2*ADJ_term3 + ADJ_alph3
325    ADJ_halfmu =  ADJ_term2*alph2  + ADJ_halfmu
326    ADJ_alph2  =  halfmu*ADJ_term2 + ADJ_alph2
328    ! new term2,3
330    term2 = halfmu*(alph2 - beta2)
331    term3 = sixthmu2*(alph3 - beta3)
333    ADJ_dplus  = - ADJ_hint*term1 + ADJ_dplus
334    ADJ_term1  = - dplus*ADJ_hint 
335    ADJ_cplus  =   ADJ_hint*term2 + ADJ_cplus
336    ADJ_term2  =   cplus*ADJ_hint 
337    ADJ_term3  = - ADJ_hint
339    ADJ_dmin   = ADJ_gint*term1 + ADJ_dmin
340    ADJ_term1  = dmin*ADJ_gint  + ADJ_term1
341    ADJ_cmin   = ADJ_gint*term2 + ADJ_cmin
342    ADJ_term2  = cmin*ADJ_gint  + ADJ_term2
343    ADJ_term3  = ADJ_gint       + ADJ_term3
345    ADJ_sixthmu2 =    ADJ_term3*(alph3 - beta3) + ADJ_sixthmu2
346    ADJ_alph3    =    sixthmu2*ADJ_term3        + ADJ_alph3
347    ADJ_beta3    =  - sixthmu2*ADJ_term3        + ADJ_beta3
348     
349    ADJ_halfmu =   ADJ_term2*(alph2 - beta2) + ADJ_halfmu
350    ADJ_alph2  =   halfmu*ADJ_term2          + ADJ_alph2
351    ADJ_beta2  = - halfmu*ADJ_term2          + ADJ_beta2
353    ADJ_alpha  =   ADJ_term1 + ADJ_alpha
354    ADJ_beta   = - ADJ_term1 + ADJ_beta
356    ! new term2,3
358    term2 = quartmu*t
359    term3 = etnthmu2*u
361    ADJ_dplus = - ADJ_zhinf*s     + ADJ_dplus
362    ADJ_s = - dplus*ADJ_zhinf + ADJ_s
363    ADJ_cplus =   ADJ_zhinf*term2 + ADJ_cplus
364    ADJ_term2 =   cplus*ADJ_zhinf
365    ADJ_term3 = - ADJ_zhinf 
367    ADJ_dmin   = ADJ_zginf*s     + ADJ_dmin
368    ADJ_s      = dmin*ADJ_zginf  + ADJ_s
369    ADJ_cmin   = ADJ_zginf*term2 + ADJ_cmin
370    ADJ_term2  = cmin*ADJ_zginf  + ADJ_term2
371    ADJ_term3  = ADJ_zginf       + ADJ_term3
372    
373    ADJ_etnthmu2 = ADJ_term3*u        + ADJ_etnthmu2
374    ADJ_u        = etnthmu2*ADJ_term3 + ADJ_u
375    ADJ_quartmu = ADJ_term2*t         + ADJ_quartmu   
376    ADJ_t       = quartmu*ADJ_term2   + ADJ_t
378    ! new term1,2,3
380    term1 = s - sprim
381    term2 = quartmu*(t - tprim)
382    term3 = etnthmu2*(u - uprim)
384    ADJ_dplus = - ADJ_zhint*term1 + ADJ_dplus
385    ADJ_term1 = - dplus*ADJ_zhint
386    ADJ_cplus =   ADJ_zhint*term2 + ADJ_cplus
387    ADJ_term2 =   cplus*ADJ_zhint
388    ADJ_term3 = - ADJ_zhint
390    ADJ_dmin  = ADJ_zgint*term1 + ADJ_dmin
391    ADJ_term1  = dmin*ADJ_zgint  + ADJ_term1
392    ADJ_cmin  = ADJ_zgint*term2 + ADJ_cmin
393    ADJ_term2  = cmin*ADJ_zgint  + ADJ_term2
394    ADJ_term3  = ADJ_zgint       + ADJ_term3
396    ADJ_etnthmu2 =   ADJ_term3*(u - uprim) + ADJ_etnthmu2
397    ADJ_u        =   etnthmu2*ADJ_term3    + ADJ_u
398    ADJ_uprim    = - etnthmu2*ADJ_term3    + ADJ_uprim
400    ADJ_quartmu =   ADJ_term2*(t - tprim) + ADJ_quartmu
401    ADJ_t       =   quartmu*ADJ_term2     + ADJ_t
402    ADJ_tprim   = - quartmu*ADJ_term2     + ADJ_tprim 
404    ADJ_s      =   ADJ_term1 + ADJ_s
405    ADJ_sprim  = - ADJ_term1 + ADJ_sprim
408    ADJ_ezhvvv = ADJ_uprim*hv*chivvv            + ADJ_ezhvvv
409    ADJ_hv     = ezhvvv*ADJ_uprim*chivvv        + ADJ_hv
410    ADJ_chivvv = ezhvvv*hv*ADJ_uprim            + ADJ_chivvv
411    ADJ_ezhovv = 9.0d0*ADJ_uprim*h21*chiovv     + ADJ_ezhovv
412    ADJ_h21    = 9.0d0*ezhovv*ADJ_uprim*chiovv  + ADJ_h21
413    ADJ_chiovv = 9.0d0*ezhovv*h21*ADJ_uprim     + ADJ_chiovv
414    ADJ_ezhoov = 9.0d0*ADJ_uprim*h12*chioov     + ADJ_ezhoov
415    ADJ_h12    = 9.0d0*ezhoov*ADJ_uprim*chioov  + ADJ_h12
416    ADJ_chioov = 9.0d0*ezhoov*h12*ADJ_uprim     + ADJ_chioov
417    ADJ_ezhooo = ADJ_uprim*ho*chiooo            + ADJ_ezhooo
418    ADJ_ho     = ezhooo*ADJ_uprim*chiooo        + ADJ_ho
419    ADJ_chiooo = ezhooo*ho*ADJ_uprim            + ADJ_chiooo
421    ADJ_sigooo = ADJ_u*ho                       + ADJ_sigooo
422    ADJ_ho     = sigooo*ADJ_u                   + ADJ_ho 
423    ADJ_sigovv = 9.0d0*ADJ_u*h21                + ADJ_sigovv
424    ADJ_h21    = 9.0d0*sigovv*ADJ_u             + ADJ_h21
425    ADJ_sigoov = 9.0d0*ADJ_u*h12                + ADJ_sigoov
426    ADJ_h12    = 9.0d0*sigoov*ADJ_u             + ADJ_h12
427    ADJ_sigvvv = ADJ_u*hv                       + ADJ_sigvvv
428    ADJ_hv     = sigvvv*ADJ_u                   + ADJ_hv
430    ADJ_ezhoo  = ADJ_tprim*ho*chioo             + ADJ_ezhoo
431    ADJ_ho     = ezhoo*ADJ_tprim*chioo          + ADJ_ho
432    ADJ_chioo  = ezhoo*ho*ADJ_tprim             + ADJ_chioo
433    ADJ_ezhov  = 4.0d0*ADJ_tprim*newh11*chiov   + ADJ_ezhov
434    ADJ_newh11 = 4.0d0*ezhov*ADJ_tprim*chiov    + ADJ_newh11
435    ADJ_chiov  = 4.0d0*ezhov*newh11*ADJ_tprim   + ADJ_chiov
436    ADJ_ezhvv  = ADJ_tprim*hv*chivv             + ADJ_ezhvv
437    ADJ_hv     = ezhvv*ADJ_tprim*chivv          + ADJ_hv
438    ADJ_chivv  = ezhvv*hv*ADJ_tprim             + ADJ_chivv
440    ADJ_sigoo  = ADJ_t*ho           + ADJ_sigoo
441    ADJ_ho     = sigoo*ADJ_t        + ADJ_ho
442    ADJ_sigov  = 4.0d0*ADJ_t*newh11 + ADJ_sigov
443    ADJ_newh11 = 4.0d0*sigov*ADJ_t  + ADJ_newh11
444    ADJ_sigvv  = ADJ_t*hv           + ADJ_sigvv
445    ADJ_hv     = sigvv*ADJ_t        + ADJ_hv
447    ADJ_ezho   = ADJ_sprim*ho*chio   + ADJ_ezho
448    ADJ_ho     = ezho*ADJ_sprim*chio + ADJ_ho
449    ADJ_chio   = ezho*ho*ADJ_sprim   + ADJ_chio
450    ADJ_ezhv   = ADJ_sprim*hv*chiv   + ADJ_ezhv
451    ADJ_hv     = ezhv*ADJ_sprim*chiv + ADJ_hv
452    ADJ_chiv   = ezhv*hv*ADJ_sprim   + ADJ_chiv
454    ADJ_sigo   = ADJ_s*ho     + ADJ_sigo
455    ADJ_ho     = sigo*ADJ_s   + ADJ_ho
456    ADJ_sigv   = ADJ_s*hv     + ADJ_sigv
457    ADJ_hv     = sigv*ADJ_s   + ADJ_hv
459    ADJ_ezhvv  = ADJ_ezhvvv*ezhv   + ADJ_ezhvv
460    ADJ_ezhv   = ezhvv*ADJ_ezhvvv  + ADJ_ezhv
461    ADJ_ezhoo  = ADJ_ezhooo*ezho   + ADJ_ezhoo
462    ADJ_ezho   = ezhoo*ADJ_ezhooo  + ADJ_ezho
463    ADJ_ezhoo  = ADJ_ezhoov*ezhv   + ADJ_ezhoo 
464    ADJ_ezhv   = ezhoo*ADJ_ezhoov  + ADJ_ezhv
465    ADJ_ezho   = ADJ_ezhovv*ezhvv  + ADJ_ezho
466    ADJ_ezhvv  = ezho*ADJ_ezhovv   + ADJ_ezhvv
467    ADJ_ezhv   = 2.0*ezhv*ADJ_ezhvv + ADJ_ezhv
468    ADJ_ezho   = ADJ_ezhov*ezhv    + ADJ_ezho
469    ADJ_ezhv   = ezho*ADJ_ezhov    + ADJ_ezhv
470    ADJ_ezho   = 2.0*ezho*ADJ_ezhoo + ADJ_ezho
471    ADJ_sigvv  = ADJ_sigvvv*sigv   + ADJ_sigvv
472    ADJ_sigv   = sigvv*ADJ_sigvvv  + ADJ_sigv
473    ADJ_sigo   = ADJ_sigovv*sigvv  + ADJ_sigo
474    ADJ_sigvv  = sigo*ADJ_sigovv   + ADJ_sigvv
475    ADJ_sigoo  = ADJ_sigoov*sigv   + ADJ_sigoo
476    ADJ_sigv   = sigoo*ADJ_sigoov  + ADJ_sigv
477    ADJ_sigoo  = ADJ_sigooo*sigo   + ADJ_sigoo
478    ADJ_sigo   = sigoo*ADJ_sigooo  + ADJ_sigo
479    ADJ_sigv   = 2.0*sigv*ADJ_sigvv + ADJ_sigv
480    ADJ_sigo   = 2.0*sigo*ADJ_sigoo + ADJ_sigo
481    ADJ_sigo   = ADJ_sigov*sigv    + ADJ_sigo
482    ADJ_sigv   = sigo*ADJ_sigov    + ADJ_sigv
484    ! WHY?
485    !  ADJ_chiv   =         ADJ_chiv 
486    ! ADJ_chio   =         ADJ_chio 
488    ! new chio chiv
490    chio   = chio_save
491    chiv   = chiv_save
493    ADJ_chivv  = ADJ_chivvv + ADJ_chivv
494    ADJ_chiv   = ADJ_chivvv + ADJ_chiv
496    ADJ_chioo  = ADJ_chiooo + ADJ_chioo
497    ADJ_chio   = ADJ_chiooo + ADJ_chio
499    ADJ_chio   = ADJ_chiovv + ADJ_chio
500    ADJ_chivv  = ADJ_chiovv + ADJ_chivv
502    ADJ_chioo  = ADJ_chioov + ADJ_chioo
503    ADJ_chiv   = ADJ_chioov + ADJ_chiv
505    ADJ_chiv   = ADJ_chivv + ADJ_chiv
506    ADJ_chiv   = ADJ_chivv + ADJ_chiv
508    ADJ_chio   = ADJ_chioo + ADJ_chio
509    ADJ_chio   = ADJ_chioo + ADJ_chio
511    ADJ_chio   =  ADJ_chiov + ADJ_chio
512    ADJ_chiv   =  ADJ_chiov + ADJ_chiv
514    ADJ_h11    = -1.0d0*newh11*newh11*ADJ_newh11 + ADJ_h11
516    ADJ_h11    = -1.0d0*h12*h12*ADJ_h12 + ADJ_h11
517    ADJ_hoinv  = -1.0d0*h12*h12*ADJ_h12 + ADJ_hoinv
519    ADJ_h11    = -1.0d0*h21*h21*ADJ_h21 + ADJ_h11
520    ADJ_hvinv  = -1.0d0*h21*h21*ADJ_h21 + ADJ_hvinv
522    ADJ_hoinv  = ADJ_h11 + ADJ_hoinv
523    ADJ_hvinv  = ADJ_h11 + ADJ_hvinv
525    ADJ_cmin   = ADJ_dmin  + ADJ_cmin
526    ! ADJ_dmin   = ADJ_dmin
527    dmin   = dmin_save
529    ADJ_cplus  = ADJ_dplus + ADJ_cplus
530    ! ADJ_dplus  = ADJ_dplus
531    dplus      = dplus_save
533    ADJ_dplus  = ADJ_dmin           + ADJ_dplus
534    ADJ_halfmu2 = ADJ_dplus*alph2   + ADJ_halfmu2
535    ADJ_alph2   = halfmu2*ADJ_dplus + ADJ_alph2
536    ADJ_mualph = - ADJ_cmin         + ADJ_mualph
537    ADJ_mualph = ADJ_cplus          + ADJ_mualph
538    ADJ_mu     = ADJ_mualph*alpha   + ADJ_mu
539    ADJ_alpha  = mu*ADJ_mualph      + ADJ_alpha
541    ADJ_mu2  = 0.5d0*ADJ_halfmu2   + ADJ_mu2
542    ADJ_mu   = 0.25d0*ADJ_quartmu  + ADJ_mu
543    ADJ_mu2  = ADJ_etnthmu2/18.0d0 + ADJ_mu2
544    ADJ_mu2  = ADJ_sixthmu2/6.0d0  + ADJ_mu2
545    ADJ_mu   = 0.5d0*ADJ_halfmu    + ADJ_mu
546    ADJ_mu   = 2.0*mu*ADJ_mu2       + ADJ_mu
548    ADJ_beta = ADJ_beta3*beta2               + ADJ_beta
549    ADJ_beta2 = beta*ADJ_beta3               + ADJ_beta2
550    ADJ_beta = 2.0*beta*ADJ_beta2             + ADJ_beta
551    ADJ_ezho = ADJ_beta                      + ADJ_ezho
552    ADJ_ezhv = ADJ_beta                      + ADJ_ezhv
553    ADJ_alpha = ADJ_alph3*alph2              + ADJ_alpha
554    ADJ_alph2 = alpha*ADJ_alph3              + ADJ_alph2
555    ADJ_alpha = 2.0*alpha*ADJ_alph2           + ADJ_alpha
556    ADJ_sigo = ADJ_alpha                     + ADJ_sigo
557    ADJ_sigv = ADJ_alpha                     + ADJ_sigv
558    ADJ_sigv =  ADJ_ezhv*exp(-chiv)          + ADJ_sigv
559    ADJ_chiv = -ADJ_ezhv*ezhv                + ADJ_chiv
560    ADJ_sigo =  ADJ_ezho*exp(-chio)          + ADJ_sigo
561    ADJ_chio = -ADJ_ezho*ezho                + ADJ_chio
562    ADJ_zcld = ADJ_chiv*hvinv                + ADJ_zcld
563    ADJ_hvinv= zcld*ADJ_chiv                 + ADJ_hvinv
564    ADJ_zcld  = ADJ_chio*hoinv               + ADJ_zcld
565    ADJ_hoinv = zcld*ADJ_chio                + ADJ_hoinv
566    ADJ_hv    = -1.0d0*hvinv*hvinv*ADJ_hvinv + ADJ_hv
567    ADJ_ho    = -1.0d0*hoinv*hoinv*ADJ_hoinv + ADJ_ho
569    if (trace_use) call da_trace_exit("da_effht_adj")
571 end subroutine da_effht_adj