Changeset 1364 for trunk/LMDZ.GENERIC


Ignore:
Timestamp:
Nov 6, 2014, 1:02:18 AM (10 years ago)
Author:
bclmd
Message:

Bug fix for calculating cpp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/calc_cpp_mugaz.F90

    r1308 r1364  
    2020      implicit none
    2121
    22 !#include "dimensions.h"
    23 !#include "dimphys.h"
     22#include "dimensions.h"
     23#include "dimphys.h"
    2424#include "comcstfi.h"
    2525#include "callkeys.h"
     
    3333      mugaz_c = 0.0
    3434
     35
     36! compute mugaz
    3537      do igas=1,ngasmx
    3638
     
    4042            ! all values at 300 K from Engineering Toolbox
    4143            if(igas.eq.igas_CO2)then
    42                !cpp_c   = cpp_c   + 0.744*gfrac(igas) ! @ ~210 K (better for Mars conditions)
    43                cpp_c   = cpp_c   + 0.846*gfrac(igas)
    4444               mugaz_c = mugaz_c + 44.01*gfrac(igas)
    4545            elseif(igas.eq.igas_N2)then
    46                cpp_c   = cpp_c   + 1.040*gfrac(igas)
    4746               mugaz_c = mugaz_c + 28.01*gfrac(igas)
    4847            elseif(igas.eq.igas_H2)then
    49                cpp_c   = cpp_c   + 14.31*gfrac(igas)
    5048               mugaz_c = mugaz_c + 2.01*gfrac(igas)
    5149            elseif(igas.eq.igas_He)then
    52                cpp_c   = cpp_c   + 5.19*gfrac(igas)
    5350               mugaz_c = mugaz_c + 4.003*gfrac(igas)
    5451            elseif(igas.eq.igas_H2O)then
    55                cpp_c   = cpp_c   + 1.864*gfrac(igas)
    5652               mugaz_c = mugaz_c + 18.02*gfrac(igas)
    5753            elseif(igas.eq.igas_SO2)then
    58                cpp_c   = cpp_c   + 0.64*gfrac(igas)
    5954               mugaz_c = mugaz_c + 64.066*gfrac(igas)
    6055            elseif(igas.eq.igas_H2S)then
    61                cpp_c   = cpp_c   + 1.003*gfrac(igas) ! from wikipedia...
    6256               mugaz_c = mugaz_c + 34.08*gfrac(igas)
    6357            elseif(igas.eq.igas_CH4)then
    64                cpp_c   = cpp_c   + 2.226*gfrac(igas)
    6558               mugaz_c = mugaz_c + 16.04*gfrac(igas)
    6659            elseif(igas.eq.igas_NH3)then
    67                cpp_c   = cpp_c   + 2.175*gfrac(igas)
    6860               mugaz_c = mugaz_c + 17.03*gfrac(igas)
    69                print*,'WARNING, cpp for NH3 may be for liquid'
    7061            elseif(igas.eq.igas_C2H6)then
    7162               ! C2H6 http://encyclopedia.airliquide.com/Encyclopedia.asp?GasID=28
    72                cpp_c   = cpp_c   + 1.763*gfrac(igas)
    7363               mugaz_c = mugaz_c + 30.07*gfrac(igas)
    7464            elseif(igas.eq.igas_C2H2)then
    7565               ! C2H2 http://encyclopedia.airliquide.com/Encyclopedia.asp?GasID=1
    76                cpp_c   = cpp_c   + 1.575*gfrac(igas)
    7766               mugaz_c = mugaz_c + 26.04*gfrac(igas)
    7867            else
     
    8372
    8473      enddo
     74
     75!compute cpp
     76      do igas=1,ngasmx
     77
     78         if(igas.eq.vgas)then
     79            ! ignore variable gas in cpp calculation
     80         else
     81            ! all values at 300 K from Engineering Toolbox
     82            if(igas.eq.igas_CO2)then
     83               !cpp_c   = cpp_c   + 0.744*gfrac(igas) ! @ ~210 K (better for
     84               !Mars conditions)
     85               cpp_c   = cpp_c   + 0.846*gfrac(igas)*44.01/mugaz_c
     86            elseif(igas.eq.igas_N2)then
     87               cpp_c   = cpp_c   + 1.040*gfrac(igas)*28.01/mugaz_c
     88            elseif(igas.eq.igas_H2)then
     89               cpp_c   = cpp_c   + 14.31*gfrac(igas)*2.01/mugaz_c
     90            elseif(igas.eq.igas_He)then
     91               cpp_c   = cpp_c   + 5.19*gfrac(igas)*4.003/mugaz_c
     92            elseif(igas.eq.igas_H2O)then
     93               cpp_c   = cpp_c   + 1.864*gfrac(igas)*18.02/mugaz_c
     94            elseif(igas.eq.igas_SO2)then
     95               cpp_c   = cpp_c   + 0.64*gfrac(igas)*64.066/mugaz_c
     96            elseif(igas.eq.igas_H2S)then
     97               cpp_c   = cpp_c   + 1.003*gfrac(igas)*34.08/mugaz_c ! from wikipedia...
     98            elseif(igas.eq.igas_CH4)then
     99               cpp_c   = cpp_c   + 2.226*gfrac(igas)*16.04/mugaz_c
     100            elseif(igas.eq.igas_NH3)then
     101               cpp_c   = cpp_c   + 2.175*gfrac(igas)*17.03/mugaz_c
     102               print*,'WARNING, cpp for NH3 may be for liquid'
     103            elseif(igas.eq.igas_C2H6)then
     104               ! C2H6
     105               ! http://encyclopedia.airliquide.com/Encyclopedia.asp?GasID=28
     106               cpp_c   = cpp_c   + 1.763*gfrac(igas)*30.07/mugaz_c
     107            elseif(igas.eq.igas_C2H2)then
     108               ! C2H2
     109               ! http://encyclopedia.airliquide.com/Encyclopedia.asp?GasID=1
     110               cpp_c   = cpp_c   + 1.575*gfrac(igas)*26.04/mugaz_c
     111            else
     112               print*,'Error in calc_cpp_mugaz: Gas species not recognised!'
     113               call abort
     114            endif
     115         endif
     116
     117      enddo
     118
     119
     120
     121
    85122
    86123      cpp_c = 1000.0*cpp_c
Note: See TracChangeset for help on using the changeset viewer.