/[MITgcm]/MITgcm_contrib/jscott/igsm/src/atmosphere.F
ViewVC logotype

Diff of /MITgcm_contrib/jscott/igsm/src/atmosphere.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.4 by jscott, Mon Apr 23 21:20:17 2007 UTC revision 1.11 by jscott, Tue Sep 1 21:56:40 2009 UTC
# Line 1  Line 1 
1  c source sokolov users  76203 Apr  7 12:46 atmosphere.F  C $Header$
2    C $Name$
3    
4  #include "ctrparam.h"  #include "ctrparam.h"
5    
# Line 117  C  For TEM Line 118  C  For TEM
118  #endif  #endif
119    
120  #if ( defined  CPL_OCEANCO2 )  #if ( defined  CPL_OCEANCO2 )
121  #include "OCM.COM"  #include "OCM.h"
122        common /Garyflux/pC_atm(jm0),wind_amp,fluxco2(jm0)        common /Garyflux/pC_atm(jm0),wind_amp,fluxco2(jm0)
123  #  if ( defined ML_2D )  #  if ( defined ML_2D )
124        common/Garyclim/tggary(jm0),wsgary(jm0),areaml(jm0),arsrf(jm0)        common/Garyclim/tggary(jm0),wsgary(jm0),areaml(jm0),arsrf(jm0)
# Line 335  C*** Line 336  C***
336            READ (546)              READ (546)  
337    245    continue    245    continue
338        endif        endif
       WRITE(503) OFFSSW                                                   17.1    
       REWIND 503                                                          17.2    
339  c     CALL FRTR0(IO)                                                      18.    c     CALL FRTR0(IO)                                                      18.  
340        KBGN=KINC+1                                                         18.5          KBGN=KINC+1                                                         18.5  
341        KM2=KM*2-1                                                          18.51        KM2=KM*2-1                                                          18.51
# Line 365  C**** INITIALIZE TIME PARAMETERS Line 364  C**** INITIALIZE TIME PARAMETERS
364        NSTEP2=NSTEP                                                        29.6          NSTEP2=NSTEP                                                        29.6  
365        MRCHT=0.                                                            29.7          MRCHT=0.                                                            29.7  
366        ITAU=(NSTEP+NSTEP0)*IDTHR                                           30.          ITAU=(NSTEP+NSTEP0)*IDTHR                                           30.  
367        TAU=FLOAT(ITAU)/XINT                                                31.    cjrs changed to dfloat 8/2/07
368          TAU=DFLOAT(ITAU)/XINT                                               31.  
369        IDAY=1+ITAU/I24                                                     32.          IDAY=1+ITAU/I24                                                     32.  
370        TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                     33.          TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                     33.  
371  !     if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then  !     if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then
# Line 451  C  For TEM Line 451  C  For TEM
451  c      New run  c      New run
452  c      Reading from flin_nep  c      Reading from flin_nep
453          read(537)adupt,temco2          read(537)adupt,temco2
454         else        else
455  c      Restart of the run  c      Restart of the run
456  c      Reading from last_nep  c      Reading from last_nep
457          read(367)adupt,temco2  cjrs   file previously opened in input.F
458  !    &          ,temch4,temn2o         read(876)adupt,temco2
459          rewind 367  C       CLOSE(876)
460         endif         rewind 876
461  !        endif
462  !      adupt= 1.459814341652516  
463  !      adupt= 0.9078891180588442  cjrs next line per Andrei instruction 10/12/07
464  !      adupt= 0.25        adupt= 0.0
 !      adupt= -0.1123070421398009  
 !  
 !      adupt= adupt+0.9 ! for vs23  
465    
466         aduptd=adupt/(365.*JM)         aduptd=adupt/(365.*JM)
467         temnepgl=0.0         temnepgl=0.0
# Line 544  CJRS removed below from ocean_3d Line 541  CJRS removed below from ocean_3d
541  #if ( defined CLM )  #if ( defined CLM )
542        NOCLM=.false.        NOCLM=.false.
543  #endif  #endif
       co2mmavd=0.0  
544        print *,' atmosphere DTATM=',DTATM        print *,' atmosphere DTATM=',DTATM
545        print *,' It is running'        print *,' It is running'
546        print *,'End of atmospheric model initialization'        print *,'End of atmospheric model initialization'
# Line 587  cjrs change var name to arunoff Line 583  cjrs change var name to arunoff
583             solarnet_ice(j)=0.             solarnet_ice(j)=0.
584             solarinc_ocean(j)=0.             solarinc_ocean(j)=0.
585             solarnet_ocean(j)=0.             solarnet_ocean(j)=0.
586  Cjrs why?           surfpr(j)=0.  Cjrs not used anymore (?)           surfpr(j)=0.
587             naveo(j)=0.             naveo(j)=0.
588             navei(j)=0.             navei(j)=0.
589             navrad(j)=0.             navrad(j)=0.
# Line 601  c Line 597  c
597  c  c
598           enddo           enddo
599  #endif  #endif
600  #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )  #ifdef OCEAN_3D
601  !      SECDAY=24.*3600.  C get data from atm-ocean common block
602         SECDAY=DTATM*3600.         do j=1,jm0
603         co2mmav=0.0           ODATA(1,j,1)=mmsst(j)
604         do j=1,jmocean           ODATA(1,j,2)=mmfice(j)
605           co2mmav=co2mmav+mmco2flux(j)           GDATA(1,j,3)=mmtice(j)
606         enddo           GDATA(1,j,1)=mmsnowm(j)
607         print *,'CO2F form ocean TAU=',TAU,co2mmav*12.e-15           ODATA(1,j,3)=mmicem(j)
608  Cjrs *** this block needs attention?? ***           GDATA(1,j,7)=0.5*(mmtice2(j)+mmtice1(j))
609  Cjrs       fluxco2(1)=fluxco2(1)+SECDAY*mmco2flux(1)  #  ifdef CPL_OCEANCO2
610         fluxco2(1)=fluxco2(1) + SECDAY*mmco2flux(2)             fluxco2(j)=fluxco2(j) + dtatm*3600.*mmco2flux(j)
611         do j=2,jm-1  #  endif
         fluxco2(j)=fluxco2(j)+SECDAY*mmco2flux(j-1)  
612         enddo         enddo
613  Cjrs       fluxco2(JM)=fluxco2(JM)+SECDAY*mmco2flux(JMOCEAN)  #endif
        fluxco2(JM)=fluxco2(JM) + SECDAY*mmco2flux(JM-1)  
 # endif  
   
614        WLMMAX=0.0        WLMMAX=0.0
615  C  C
616    100 IF(.NOT.EVENT(TAUT)) GO TO 200                                      46.      100 IF(.NOT.EVENT(TAUT)) GO TO 200                                      46.  
# Line 667  C**** WRITE RESTART INFORMATION ONTO DIS Line 659  C**** WRITE RESTART INFORMATION ONTO DIS
659        PERCNT=100.*MELSE/(MSTART-MNOW+1.E-5)                               56.          PERCNT=100.*MELSE/(MSTART-MNOW+1.E-5)                               56.  
660        MLAST=MNOW                                                          59.          MLAST=MNOW                                                          59.  
661  C**** TEST FOR TERMINATION OF RUN                                         60.    C**** TEST FOR TERMINATION OF RUN                                         60.  
662    200 READ (503,END=210) LABSSW                                           61.      200 continue
663  c     HPRNT=TAU.gt.45.0.and.TAU.lt.60.0  c     HPRNT=TAU.gt.45.0.and.TAU.lt.60.0
664  c     HPRNT=TAU.gt.470.0.and.TAU.lt.550.0  c     HPRNT=TAU.gt.470.0.and.TAU.lt.550.0
665        NCOMP=0        NCOMP=0
   210 REWIND 503                                                          61.1    
       IF(LABSSW.EQ.LABEL1) KSS6=1                                         61.2    
       IF(KSS6.EQ.1) GO TO 800                                             62.    
666        IF(TAU+.06125.GE.TAUE) GO TO 820                                    63.          IF(TAU+.06125.GE.TAUE) GO TO 820                                    63.  
667        JDAY00=JDAY        JDAY00=JDAY
668  C**** IF TIME TO ZERO OUT DIAGNOSTIC ACCUMULATING ARRAYS, DO SO           64.    C**** IF TIME TO ZERO OUT DIAGNOSTIC ACCUMULATING ARRAYS, DO SO           64.  
# Line 932  C**** CONDENSTATION, SUPER SATURATION AN Line 921  C**** CONDENSTATION, SUPER SATURATION AN
921    
922          call chemmass66(1.0, 1.0,zco2,zco2mass)          call chemmass66(1.0, 1.0,zco2,zco2mass)
923    
924          call chemmass6(150.0,1.0,xn2o,xn2omass)  !call chemmass6(150.0,1.0,xn2o,xn2omass)
925            call chemmass6(120.0,1.0,xn2o,xn2omass)
926          call chemmass2(1.0,ch4, ch4mass )          call chemmass2(1.0,ch4, ch4mass )
927    
928          ! === if hfc, pfc, and sf6 are included:          ! === if hfc, pfc, and sf6 are included:
# Line 1093  C**** SURFACE INTERACTION AND GROUND CAL Line 1083  C**** SURFACE INTERACTION AND GROUND CAL
1083        i=1        i=1
1084        do j=1,jm        do j=1,jm
1085           pcpl4clm(i,j)=pcpl4clm(i,j)*prlnd2total(j,mndriver)           pcpl4clm(i,j)=pcpl4clm(i,j)*prlnd2total(j,mndriver)
1086         &     *3600./(NDYN*DT)
1087           pcpc4clm(i,j)=pcpc4clm(i,j)*prlnd2total(j,mndriver)           pcpc4clm(i,j)=pcpc4clm(i,j)*prlnd2total(j,mndriver)
1088         &     *3600./(NDYN*DT)
1089        enddo        enddo
1090  !     print *,' main after surf4clm',' TAU=',TAU  !     print *,' main after surf4clm',' TAU=',TAU
1091  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,
# Line 1261  C**** UPDATE MODEL TIME AND CALL DAILY I Line 1253  C**** UPDATE MODEL TIME AND CALL DAILY I
1253  C****                                                                    189.    C****                                                                    189.  
1254    500 NSTEP=NSTEP+NDYN                                                   190.      500 NSTEP=NSTEP+NDYN                                                   190.  
1255        ITAU=(NSTEP+NSTEP0)*IDTHR                                          191.          ITAU=(NSTEP+NSTEP0)*IDTHR                                          191.  
1256        TAU=FLOAT(ITAU)/XINT                                               192.    cJRS fix to DFLOAT 8/2/07
1257          TAU=DFLOAT(ITAU)/XINT                                               192.  
1258        IDAY=1+ITAU/I24                                                    193.          IDAY=1+ITAU/I24                                                    193.  
1259        TOFDAYPR=TOFDAY+1.00        TOFDAYPR=TOFDAY+1.00
1260        TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                    194.          TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                    194.  
# Line 1454  c  Annual oceanic CO2 uptake Line 1447  c  Annual oceanic CO2 uptake
1447         do j=1,jm         do j=1,jm
1448           OCUPT=OCUPT+fluxco2(j)           OCUPT=OCUPT+fluxco2(j)
1449         enddo         enddo
1450        print *,' OCUPT=',OCUPT*12.e-15  !      print *,' OCUPT=',OCUPT*12.e-15
1451    
1452  #if ( defined CPL_CHEM )  #if ( defined CPL_CHEM )
1453  !  !
# Line 1883  c 820 WRITE (6,905) TAU,IDAY,TOFDAY Line 1876  c 820 WRITE (6,905) TAU,IDAY,TOFDAY
1876  C     DTATM time step of atm model in hours  C     DTATM time step of atm model in hours
1877  C     precip and evap in mm/day or kg/m**2/day  C     precip and evap in mm/day or kg/m**2/day
1878           do j=1,jm0           do j=1,jm0
1879  #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )  Cjrs #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )
1880             ncallatm=ncallatm+1  #ifdef OCEAN_3D
1881    !jrs           ncallatm=ncallatm+1
1882  ! 020107  ! 020107
1883  !          co24ocean(j)=pC_atm(j)*1.e6  !          co24ocean(j)=pC_atm(j)*1.e6
1884    ! jrs give CO2 even if ocn carbon off
1885             co24ocean(j)=atm_co2(j)             co24ocean(j)=atm_co2(j)
1886  ! 020107  #  ifdef CPL_OCEANCO2
1887             co24ocnan(j)=co24ocnan(j)+co24ocean(j)             co24ocnan(j)=co24ocnan(j)+co24ocean(j)
1888    #  endif
1889  #endif  #endif
1890  #ifdef ML_2D  #ifdef ML_2D
1891  cjrs block only MD_2D  cjrs block only MD_2D
# Line 2082  c      stop Line 2078  c      stop
2078        return        return
2079  C     CALL ENQJOB                                                        309.    C     CALL ENQJOB                                                        309.  
2080  C     CALL ENQJOB                                                        310.    C     CALL ENQJOB                                                        310.  
       IF(KSS6.EQ.1) STOP 12                                              310.1    
2081        IF(IPFLAG.EQ.0) STOP 13                                            311.          IF(IPFLAG.EQ.0) STOP 13                                            311.  
2082        STOP 1                                                             312.          STOP 1                                                             312.  
2083  C****                                                                    313.    C****                                                                    313.  

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22