--- MITgcm_contrib/jscott/igsm/src/input.F 2006/08/22 20:25:52 1.2 +++ MITgcm_contrib/jscott/igsm/src/input.F 2007/10/15 15:03:55 1.5 @@ -44,9 +44,9 @@ #include "AGRID.h" #endif -#if ( defined CPL_TEM ) -#include "TEM.COM" -#endif +cjrs done in driver.h #if ( defined CPL_TEM ) +cjrs#include "TEM.h" +cjrs#endif ! ! === Chien Wang 062904 ! @@ -77,16 +77,19 @@ character *120 file1,file2,plotfl,nwrfl character * 120 t3file,tsfile,zmfile,qffile,clfile,wrcldf & ,ochemfile,deepco2in - & ,oco2file,co2rfile,caruptfile,flrco2av +cjrs DRIVER.h caruptfile & ,oco2file,co2rfile,caruptfile,flrco2av + & ,oco2file,co2rfile,flrco2av & ,ghg_monthly,ghg_monthly2,co2_data,o3_data & ,bgrghg_data character * 120 sulf1986,sulf2050,sulfamp,SO2_EM, & S0C_data, & dirdat1,dirdat2 & ,bc_data - character * 120 chemdata,chemout,last_nep,init_4nem,pov_deepo + character * 120 chemdata,chemout,init_4nem,pov_deepo +cjrs DRIVER.h last_nep character * 120 chemdata,chemout,last_nep,init_4nem,pov_deepo & ,flin_nep,last_clm,emiss_data,SO2ERATIO,SEN_dat - & ,fl_init_alkt,fl_init_salt,fnememiss, +cjrs DRIVER.h fnememiss & ,fl_init_alkt,fl_init_salt,fl_dic_eq,fnememiss, + & ,fl_init_alkt,fl_init_salt,fl_dic_eq, & chem_init,chem_init2,chemrstfl common/files/file1,file2,plotfl,nwrfl,qffile,clfile,wrcldf *,t3file,tsfile,zmfile,ochemfile,deepco2in @@ -116,14 +119,14 @@ * READGHG,wr25,LFR,ISTRT1,PCLOUD,QFCOR,TRANSR,WRCLD,NWRCLD,CONTRR, * ISTWRC,CLDFEED,OBSFOR,ALFFOR,YEARGT,CO2IN,ISTRTCHEM, & LYEAREM, - * AERFOR, + * AERFOR,AERF4BC, * S0RATE,CFS0X, * CFAEROSOL,CFBC, - & cfocdif,rkv,diffcar0, + & cfocdif,rkv,diffcar0,ocarcont,ocarindata, ! Kvc=diffcar0+cfocdif*Kvh * file1,file2,plotfl,nwrfl,qffile,clfile,wrcldf,clmsen,cfdif0, * t3file,tsfile,zmfile,ochemfile,deepco2in, - & fl_init_alkt,fl_init_salt, + & fl_init_alkt,fl_init_salt,fl_dic_eq, * ghg_monthly,ghg_monthly2,co2_data,o3_data, & bgrghg_data, * sulf1986,sulf2050,sulfamp,SO2_EM, @@ -148,7 +151,7 @@ character * 120 vegfile & ,fclmlice,fbaresoil,fwmax,fprratio,o3datadir common/wrcom/wr25,TRANSR,CONTRR,OBSFOR -c jrs common/TIMESTEPS/dtatm,dtocn +c jrs common/TIMESTEPS/dtatm,dtocn LOGICAL LFR,NLFR,wr25,TRANSR,WRCLD,CONTRR,CLDFEED,OBSFOR &,GHSF,VEGCH,TRVEG,GSOEQ,OCNGEOM,GHSFALB,STRARFOR,CO2FOR & ,FORSULF,FORBC,S0FOR,FORVOL @@ -171,18 +174,22 @@ common/atmos_lo/fland_atm(jm0) !jrs not sure this does anything #if ( defined CLM ) -#include "CLM.COM" +cjrs alreadyin DRIVER.h#include "CLM.COM" dimension clmlice(jm0),baresoil(jm0), & w1maxclm(jm0),w2maxclm(jm0),vmaskclm(jm0) character * 120 lineclm #endif #if ( defined CPL_OCEANCO2 && defined ML_2D ) common/Garyclim/tggary(jm0),wsgary(jm0),areaml(jm0),arsrf(jm0) +! common/Garydiff/depthml(jm0),edzon(jm0,lmo),dzg(lmo),dzog(lmo-1), +! &Rco2(jm0,lmo),edohd(lmo),zg(lmo),focean(jm0) common/Garydiff/depthml(jm0),edzon(jm0),dzg(lmo),dzog(lmo-1), &Rco2(jm0,lmo),edohd(lmo),zg(lmo),focean(jm0) common /Garychem/Hg(jm0) common /Garyvdif/iyearocm,vdfocm,acvdfc,cfocdif,diffcar0 + common /Garyvlog/odifcarbon,ocarcont real Rco2in(jm0,lmo),Hgin(jm0) + logical odifcarbon,ocarcont,ocarindata #endif #if (!defined PREDICTED_GASES) @@ -192,7 +199,9 @@ #endif integer PCLOUD - common/TSUR/TSURFC(JM0,0:13),TSURFT(JM0),TSURFD(JM0),DTSURF(JM0) +! common/TSUR/TSURFC(JM0,0:13),TLANDD(JM0),TSURFD(JM0),DTSURF(JM0) +! common/TSLD/TLANDC(JM0,0:13),TLANDT(JM0),TLANDD(JM0),DTLAND(JM0) +#include "TSRF.COM" DATA DISK/'DISK'/,ANDEND/' &END '/ 1520. DATA IDAYS0/0,1,32,60,91,121,152,182,213,244,274,305,335/ 1521. DATA NAMD60/'AUSD','MWST','SAHL','EPAC'/ 1522. @@ -277,8 +286,11 @@ cfocdif=0.42 cfocdif=1.375 cfocdif=0.6 + cfocdif=3.0 diffcar0=2.85 + diffcar0=1.00 cc ALFA = 8.0*1.e3 + AERF4BC=-0.35 TRANSR=.false. WRCLD=.FALSE. clfile = 'undefined' @@ -301,8 +313,8 @@ ISTWRC=0 QFCOR=.FALSE. READGHG=0. -C dtatm=1 -C dtocn=1 +cjrs dtatm=1 +cjrs dtocn=1 ghg_monthly = 'undefined' ghg_monthly2 = 'undefined' co2_data = 'undefined' @@ -314,6 +326,9 @@ deepco2in = 'undefined' fl_init_alkt = 'undefined' fl_init_salt = 'undefined' + fl_dic_eq = 'undefined' + ocarcont=.true. + ocarindata=.false. vegfile = 'undefined' fclmlice = 'undefined' fprratio = 'undefined' @@ -454,7 +469,7 @@ IF(RECORD(1).NE.ANDEND) GO TO 60 1603. rewind 514 read (UNIT=514,NML=INPUTZ) - REWIND 514 1606. + REWIND 514 1606. C JRS ignore name.dat values, start Jan 1. with couple.nml years inyear = startYear lyear = endYear +1 @@ -462,9 +477,8 @@ IMONTH = 1 LDAY = 1 LMONTH = 1 - Cjrs dtatmo=dtatm -C dtocno=dtocn +cjrs dtocno=dtocn cb open statments c c File which depend on resolution @@ -516,9 +530,12 @@ endif #if ( !defined CPL_CHEM ) #if ( defined PREDICTED_BC) + if(READGHG.eq.0)then +! data for BC only print *,'Data for black carbon' - open(769,file=bc_data, + open(769,file=bc_data, & status='old',form='unformatted') + endif #endif #endif @@ -542,7 +559,8 @@ c open file for carbon uptake #if ( defined CPL_TEM || defined CPL_OCEANCO2 ) c open(333,file=caruptfile,status='new',form='formatted') - open(333,file=caruptfile,form='formatted') + open(333,file=caruptfile,status='replace',form='formatted') + close(333) #endif #if ( defined CPL_OCEANCO2 && defined ML_2D) @@ -550,85 +568,25 @@ & form='unformatted',status='old') open(669,file=fl_init_salt, & form='unformatted',status='old') +! open(670,file=fl_dic_eq, +! & form='unformatted',status='old') open(602,file=flrco2av,status='new',form='unformatted') #endif ce open statments -!#if ( defined CPL_CHEM ) -! YEARGT=1977. -!#endif -! if(YEARGT.eq.1860)then -! GHGBGR(1)=GHGBGR1860(1) -! GHGBGR(2)=GHGBGR1860(2) -! GHGBGR(3)=GHGBGR1860(3) -! GHGBGR(4)=GHGBGR1860(4) -! GHGBGR(5)=GHGBGR1860(5) -! else if (YEARGT.eq.1958)then -! GHGBGR(1)=GHGBGR1958(1) -! GHGBGR(2)=GHGBGR1958(2) -! GHGBGR(3)=GHGBGR1958(3) -! GHGBGR(4)=GHGBGR1958(4) -! GHGBGR(5)=GHGBGR1958(5) -! else if (YEARGT.eq.1977)then -! GHGBGR(1)=GHGBGR1977(1) -! GHGBGR(2)=GHGBGR1977(2) -! GHGBGR(3)=GHGBGR1977(3) -! GHGBGR(4)=GHGBGR1977(4) -! GHGBGR(5)=GHGBGR1977(5) -! else if (YEARGT.eq.1980)then -! GHGBGR(1)=GHGBGR1980(1) -! GHGBGR(2)=GHGBGR1980(2) -! GHGBGR(3)=GHGBGR1980(3) -! GHGBGR(4)=GHGBGR1980(4) -! GHGBGR(5)=GHGBGR1980(5) -! else if (YEARGT.eq.1990)then -! GHGBGR(1)=GHGBGR1990(1) -! GHGBGR(2)=GHGBGR1990(2) -! GHGBGR(3)=GHGBGR1990(3) -! GHGBGR(4)=GHGBGR1990(4) -! GHGBGR(5)=GHGBGR1990(5) -! else if (YEARGT.eq.1991)then -! GHGBGR(1)=GHGBGR1991(1) -! GHGBGR(2)=GHGBGR1991(2) -! GHGBGR(3)=GHGBGR1991(3) -! GHGBGR(4)=GHGBGR1991(4) -! GHGBGR(5)=GHGBGR1991(5) -! else if (YEARGT.eq.2000)then -! GHGBGR(1)=GHGBGR2000(1) -! GHGBGR(2)=GHGBGR2000(2) -! GHGBGR(3)=GHGBGR2000(3) -! GHGBGR(4)=GHGBGR2000(4) -! GHGBGR(5)=GHGBGR2000(5) -! else if (YEARGT.eq.1765)then -! GHGBGR(1)=GHGBGR1765(1) -! if (CO2.le.-20.0) GHGBGR(1)=277.6 -! GHGBGR(2)=GHGBGR1765(2) -! GHGBGR(3)=GHGBGR1765(3) -! GHGBGR(4)=GHGBGR1765(4) -! GHGBGR(5)=GHGBGR1765(5) -! else if (YEARGT.eq.-1765.)then -! GHGBGR(1)=4.*GHGBGR1765(1) -! GHGBGR(2)=GHGBGR1765(2) -! GHGBGR(3)=GHGBGR1765(3) -! GHGBGR(4)=GHGBGR1765(4) -! GHGBGR(5)=GHGBGR1765(5) -! else -! print *,' Wrong YEARGT ', YEARGT -! stop -! endif call bgrghg(YEARGT) #if ( defined IPCC_EMI ) - if(YEARGT.eq.1765)then - GHGBGR(1)=277.6 +! if(YEARGT.eq.1765)then +! GHGBGR(1)=277.6 open (unit=861,file=init_co2, & status='OLD',form='formatted') read (861,*)xco2init CO2=xco2init/GHGBGR(1) print *,'IPCC EMI CO2=',CO2 - else - print *,' Wrong YEARGT ', YEARGT - stop - endif +! else +! print *,' Wrong YEARGT ', YEARGT +! stop +! endif #endif print *,'Background GHGs for year ',YEARGT print '(5E12.4)',GHGBGR @@ -660,7 +618,8 @@ else print *,'No diffusion into deep ocean' endif -#if ( defined PREDICTED_AEROSOL ) +!#if ( defined PREDICTED_AEROSOL ) +#if ( defined CPL_CHEM ) Cold AFBYCF=0.6725 Cold SO2EREF=123.57 Cigsm1AFBYCF=0.6054 @@ -674,20 +633,27 @@ ! CFAEROSOL=(-AERFOR/AFBYCF)**1.035/(SO2ER**1.0391) - SO2EREF=149.07 + SO2EREF=147.375 open(664,file=SO2ERATIO, & form='formatted', & status='old') read(664,'(f10.6)')SO2EM SO2ER=SO2EM/SO2EREF - F90BYF80=0.948 - AERFOR90=AERFOR*F90BYF80 - AFBYCF90=1.043 +! F90BYF80=0.948 +! AERFOR90=AERFOR*F90BYF80 +! AFBYCF90=1.04 +! print *,'AFBYCF90=',AFBYCF90 +! 12/21/2006 (from runs 265x.06) +! Adjustment for BC forcing + print *,' AERF4BC=',AERF4BC + AERFOR=AERFOR+AERF4BC +! Adjustment for BC forcing + AFBYCF=1.05 print *,'SO2ER=',SO2ER - print *,'AFBYCF90=',AFBYCF90 - CFAEROSOL=(-AERFOR90/AFBYCF90)**1.119 - CFAEROSOL=CFAEROSOL/(SO2ER**1.0391) - print *,'AERFOR90=',AERFOR90,'CFAEROSOL=',CFAEROSOL + print *,'AFBYCF=',AFBYCF + CFAEROSOL=(-AERFOR/AFBYCF)**1.21 + CFAEROSOL=CFAEROSOL/(SO2ER**1.01) + print *,'AERFOR=',AERFOR,'CFAEROSOL=',CFAEROSOL #if ( defined OCEAN_3D ) CFAEROSOL=CFAEROSOL/1.35 print *,'CFAEROSOL_3D=',CFAEROSOL @@ -758,7 +724,7 @@ * status='OLD',form='unformatted') #endif #if ( defined CPL_TEM ) - open (367,file=last_nep,form='unformatted',status='new') +cjrs open (367,file=last_nep,form='unformatted',status='new') open (877,file=last_clm,form='unformatted',status='new') c file last_clm contains data for posible restart of NEM c this file is writen at the end of the run @@ -766,7 +732,8 @@ open (368,file=init_4nem,form='unformatted',status='old') c file init_4nem contains data for the restart of NEM c from the results of a previous run - open (277,file=fnememiss,form='unformatted',status='new') + open (277,file=fnememiss,form='unformatted',status='replace') + close(277) #endif #endif #if ( defined CPL_OCEANCO2 && defined ML_2D ) @@ -785,7 +752,8 @@ open (368,file=init_4nem,form='unformatted',status='old') c file init_4nem contains data for the restart of NEM c from the results of a previous run - open (277,file=fnememiss,form='unformatted',status='new') + open (277,file=fnememiss,form='unformatted',status='replace') + close(277) #endif #endif #if ( defined CPL_OCEANCO2 && defined ML_2D ) @@ -824,13 +792,13 @@ READ (KDISK0,ERR=840)AEXPX,TAUX,JC1,C1,RC1,KEYNR,U,V,T,P,Q, & ODATA, * GDATA,BLDATA,RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAUY,TSSFC,CKS, 1739. - * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TSURFT,TSURFD,DWAV0 + * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TLANDD,TSURFD,DWAV0 else ! READ (KDISK0,ERR=840)AEXPX,TAUX,JC1,C1,RC1,KEYNR,U,V,T,P,Q, READ (KDISK0,ERR=840)AEXPX,TAUX,JC,C,RC,KEYNR,U,V,T,P,Q, & ODATA, * GDATA,BLDATA,RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAUY,TSSFC,CKS, 1739. - * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TSURFT,TSURFD,DWAV0, + * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TLANDD,TSURFD,DWAV0, * TG3M,RTGO,STG3,DTG3 endif if(.not.CONTRR)then @@ -879,8 +847,14 @@ #endif #if ( defined CPL_OCEANCO2 && defined ML_2D ) + if(ocarcont) then + if(ocarindata)then + print *,'Wrong setting of ocarcont and ocarindata' + print *,ocarcont,ocarindata + stop + endif open(116,file=deepco2in, - * status='old',form='unformatted') + * status='old',form='unformatted') print *,' AFTER OPEN INIT. data for ocean chem.' print *,deepco2in read(116)iyearocm,vdfocm @@ -900,6 +874,32 @@ Rco2(j,k)=Rco2in(j,k) end do end do + else + if(ocarindata)then + print *,' Reading initial data for ocean carbon' + open(116,file=deepco2in, + * status='old',form='unformatted') + read(116) + read(116)Hgin + read(116)Rco2in + print *,(Rco2in(j,1),j=1,jm) + do k=1,lmo + do j=1,jm0 +! if(k.eq.1)Hg(j)=Hgin(j) + if(k.eq.1)Hg(j)=1.0e-8 + Rco2(j,k)=Rco2in(j,k) + end do + end do + close(116) + else + do k=1,lmo + do j=1,jm0 + if(k.eq.1)Hg(j)=1.0e-8 + Rco2(j,k)=0.0 + end do + end do + endif + endif #endif else @@ -909,12 +909,12 @@ if(TRANSR)then READ (KDISK0,ERR=840)AEXPX,TAUX,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA, 1738. * GDATA,BLDATA,RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAUY,TSSFC,CKS, 1739. - * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TSURFT,TSURFD,DWAV0, + * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TLANDD,TSURFD,DWAV0, * TG3M,RTGO,STG3,DTG3 else READ (KDISK0,ERR=840)AEXPX,TAUX,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA, 1738. * GDATA,BLDATA,RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAUY,TSSFC,CKS, 1739. - * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TSURFT,TSURFD,DWAV0 + * CKN,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TLANDD,TSURFD,DWAV0 endif C if(abs(AEXPX-AEXP).gt.0.05)then @@ -943,6 +943,7 @@ endif read(369)Hgin read(369)Rco2in + print *,(Rco2in(j,1),j=1,jm) do k=1,lmo do j=1,jm0 if(k.eq.1)Hg(j)=Hgin(j) @@ -952,6 +953,11 @@ #endif endif ! endif for ISTRT1 +#if ( defined CPL_OCEANCO2 && defined ML_2D ) + print *,'Rco2 from input' +! print *,(Rco2(j,1),j=1,jm) + print *,Rco2 +#endif if(KOCEAN.eq.1) then print *,' T1 ocean' @@ -980,6 +986,7 @@ TAUP=TAUX 1746. C**** UPDATE C ARRAY FROM INPUTZ 1747. 500 READ (514,INPUTZ) 1748. +! nrad=NDYN #if ( defined IPCC_EMI ) CO2=xco2init/GHGBGR(1) #endif @@ -1020,7 +1027,8 @@ print *,TSCNTR,' form EXP=',EXPTSF ! read(576)EXPTSF ! print *,' TSURF form EXP=',EXPTSF - read(576)TSURFC + read(576)TSURFC,TLANDC +! read(576)TLANDC endif CORSR=1.0 if(KOCEAN.eq.0)then @@ -1063,14 +1071,14 @@ if(READGHG.eq.2)then open( unit=569,file=ghg_monthly, * status='OLD',form='unformatted') - open( unit=669,file=ghg_monthly2, + open( unit=679,file=ghg_monthly2, * status='OLD',form='unformatted') print *,' GHGs from ',ghg_monthly if(ISTRT1.eq.1)then do 369 i=1,NWRGHG do 369 ii=1,13 read(569) - if(ii.le.3)read(669) + if(ii.le.3)read(679) 369 continue endif endif @@ -1079,7 +1087,7 @@ c * status='OLD',form='unformatted') open( unit=569,file=ghg_monthly, * status='OLD',form='unformatted') - open( unit=669,file=ghg_monthly2, + open( unit=679,file=ghg_monthly2, * status='OLD',form='unformatted') print *,' GHGs from ',ghg_monthly endif @@ -1287,7 +1295,7 @@ fland_temp(j)=FDATA(1,J,2) 284 continue #if( defined OCEAN_3D) -Cjrs if(jmocean.ne.jm0-2)then +Cjrs if(jmocean.ne.jm0-2)then C print *,"Wrong jm or jmocean" C stop C endif