| 1 | subroutine cooling_hcn_c2h2(ngrid,nlayer,pplay,pt,dtlw) |
|---|
| 2 | |
|---|
| 3 | implicit none |
|---|
| 4 | |
|---|
| 5 | !================================================================== |
|---|
| 6 | ! Purpose |
|---|
| 7 | ! ------- |
|---|
| 8 | ! Calculation of cooling rate for C2H2-HCN |
|---|
| 9 | ! = f(pplay) * B(lambda,T) |
|---|
| 10 | ! |
|---|
| 11 | ! Inputs |
|---|
| 12 | ! ------ |
|---|
| 13 | ! ngrid Number of vertical columns |
|---|
| 14 | ! nlayer Number of layers |
|---|
| 15 | ! pt |
|---|
| 16 | ! |
|---|
| 17 | ! Outputs |
|---|
| 18 | ! ------- |
|---|
| 19 | ! |
|---|
| 20 | ! dtlw ! cooling rate |
|---|
| 21 | ! |
|---|
| 22 | ! Authors |
|---|
| 23 | ! ------- |
|---|
| 24 | ! Tanguy Bertrand (2016) |
|---|
| 25 | ! FF (2016) |
|---|
| 26 | !================================================================== |
|---|
| 27 | |
|---|
| 28 | !----------------------------------------------------------------------- |
|---|
| 29 | |
|---|
| 30 | ! Arguments |
|---|
| 31 | |
|---|
| 32 | INTEGER ngrid, nlayer |
|---|
| 33 | REAL pplay(ngrid,nlayer) ! pres. level in GCM mid of layer |
|---|
| 34 | REAL pt(ngrid,nlayer) |
|---|
| 35 | REAL dtlw(ngrid,nlayer) |
|---|
| 36 | |
|---|
| 37 | !----------------------------------------------------------------------- |
|---|
| 38 | ! Local variables |
|---|
| 39 | |
|---|
| 40 | INTEGER l,ig |
|---|
| 41 | REAL lonw |
|---|
| 42 | REAL alpha, alpha_top |
|---|
| 43 | REAL pref, deltap |
|---|
| 44 | REAL transition |
|---|
| 45 | REAL BB |
|---|
| 46 | REAL coeftan |
|---|
| 47 | !----------------------------------------------------------------------- |
|---|
| 48 | |
|---|
| 49 | |
|---|
| 50 | !alpha=(/0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,1.e-13,1.e-13,1.e-13,1.e-13,1.e-13,1.e-13,1.e-13/) |
|---|
| 51 | ! alpha=(/0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,1.e-14,8.e-14,5.e-13,7.e-13,7.e-13,7.e-13,7.e-13,7.e-13,7.e-13,7.e-13,7.e-13/) |
|---|
| 52 | |
|---|
| 53 | lonw = 14.e-6 ! 14um |
|---|
| 54 | alpha_top=1.e-9 ! 1.e-13 ! cooling constant at top of atmosphere |
|---|
| 55 | pref = 0.10 ! pressure at mid transition fo alpha_top (Pa) |
|---|
| 56 | deltap = 1.0 ! width of transition to alpha_top (Pa) |
|---|
| 57 | coeftan= 5. |
|---|
| 58 | |
|---|
| 59 | c transition = 0 if p>pref+deltap/2 and 1 if p< pref-deltap/2 |
|---|
| 60 | DO l = 1, nlayer |
|---|
| 61 | DO ig = 1, ngrid |
|---|
| 62 | transition = 0.5*(1-tanh(coeftan*(pplay(ig,l)-pref)/deltap)) |
|---|
| 63 | dtlw(ig,l)=-transition*alpha_top*BB(lonw,pt(ig,l)) |
|---|
| 64 | ENDDO |
|---|
| 65 | c write(*,*) pplay(1,l),transition,dtlw(1,l) |
|---|
| 66 | ENDDO |
|---|
| 67 | end |
|---|
| 68 | |
|---|
| 69 | c****************************************************** |
|---|
| 70 | c FUNCTION Blackbody (Planck) |
|---|
| 71 | c********************************************************** |
|---|
| 72 | |
|---|
| 73 | function BB (lw, T) |
|---|
| 74 | |
|---|
| 75 | |
|---|
| 76 | c Variable declaration |
|---|
| 77 | c -------------------- |
|---|
| 78 | c wavelenght (m), Temperature (K) |
|---|
| 79 | real lw,T |
|---|
| 80 | c constant |
|---|
| 81 | real c1,c2 |
|---|
| 82 | parameter ( c1=1.19103E-16 ) |
|---|
| 83 | parameter (c2=1.43887E-2 ) |
|---|
| 84 | |
|---|
| 85 | |
|---|
| 86 | c function |
|---|
| 87 | c--------- |
|---|
| 88 | BB= (c1/lw**5)/(-1.+exp(c2/(lw*T))) |
|---|
| 89 | return |
|---|
| 90 | end |
|---|
| 91 | |
|---|
| 92 | |
|---|
| 93 | |
|---|