File indexing completed on 2018-03-02 18:39:14 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6d54cf9ca1 Ed H*0001 #include "DIC_OPTIONS.h"
daab022f42 Step*0002
08536d17ba Step*0003
0004
0005
0006
5625485478 Jean*0007 SUBROUTINE insol(Time,sfac,bi,bj,myThid)
08536d17ba Step*0008
0009
0010
a8a6e9b6c6 Jean*0011
08536d17ba Step*0012
0013
0014
daab022f42 Step*0015 IMPLICIT NONE
0016
0017 #include "SIZE.h"
0018 #include "EEPARAMS.h"
0019 #include "PARAMS.h"
0020 #include "FFIELDS.h"
0021 #include "GRID.h"
0022 #include "DYNVARS.h"
2ef8966791 Davi*0023 #include "DIC_VARS.h"
08536d17ba Step*0024
0025
22ffeb40e4 Davi*0026
0027 _RL Time
5625485478 Jean*0028 INTEGER bi,bj
0029 INTEGER myThid
08536d17ba Step*0030
0031
0032 _RL sfac(1-OLy:sNy+OLy)
0033
df43453050 Davi*0034 #ifdef DIC_BIOTIC
0035
08536d17ba Step*0036
bbf97a7930 Step*0037 _RL solar, albedo
daab022f42 Step*0038 _RL dayfrac, yday, delta
0039 _RL lat, sun1, dayhrs
0040 _RL cosz, frac, fluxi
0041 integer j
08536d17ba Step*0042
0043
22ffeb40e4 Davi*0044 solar = 1360. _d 0
0045 albedo= 0.6 _d 0
7e0ea1c751 Mart*0046
a8a6e9b6c6 Jean*0047
0048 IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
0049 STOP 'ABNORMAL END: S/R INSOL: 2-D output not implemented'
7e0ea1c751 Mart*0050 ENDIF
0051
a8a6e9b6c6 Jean*0052
22ffeb40e4 Davi*0053 dayfrac=mod(Time,360. _d 0*86400. _d 0)
0054 & /(360. _d 0*86400. _d 0)
0055 yday = 2. _d 0*PI*dayfrac
a8a6e9b6c6 Jean*0056 delta = (0.006918 _d 0
22ffeb40e4 Davi*0057 & -(0.399912 _d 0*cos(yday))
0058 & +(0.070257 _d 0*sin(yday))
0059 & -(0.006758 _d 0*cos(2. _d 0*yday))
0060 & +(0.000907 _d 0*sin(2. _d 0*yday))
0061 & -(0.002697 _d 0*cos(3. _d 0*yday))
0062 & +(0.001480 _d 0*sin(3. _d 0*yday)) )
0063 DO j=1-OLy,sNy+OLy
a8a6e9b6c6 Jean*0064
22ffeb40e4 Davi*0065 lat=YC(1,j,1,bj)*deg2rad
7e0ea1c751 Mart*0066
0067
a8a6e9b6c6 Jean*0068 IF ( usingCartesianGrid .OR. usingCylindricalGrid )
9496766f6a Mart*0069 & lat = asin( fCori(1,j,1,bj)/(2. _d 0*omega) )
daab022f42 Step*0070 sun1 = -sin(delta)/cos(delta) * sin(lat)/cos(lat)
22ffeb40e4 Davi*0071 IF (sun1.LE.-0.999 _d 0) sun1=-0.999 _d 0
0072 IF (sun1.GE. 0.999 _d 0) sun1= 0.999 _d 0
daab022f42 Step*0073 dayhrs = abs(acos(sun1))
0074 cosz = ( sin(delta)*sin(lat)+
0075 & (cos(delta)*cos(lat)*sin(dayhrs)/dayhrs) )
22ffeb40e4 Davi*0076 IF (cosz.LE.5. _d -3) cosz= 5. _d -3
0077 frac = dayhrs/PI
a8a6e9b6c6 Jean*0078
22ffeb40e4 Davi*0079 fluxi = solar*(1. _d 0-albedo)*cosz*frac*parfrac
a8a6e9b6c6 Jean*0080
0081
22ffeb40e4 Davi*0082 sfac(j) = MAX(1. _d -5,fluxi)
0083 ENDDO
df43453050 Davi*0084
0085 #endif /* DIC_BIOTIC */
0086
a8a6e9b6c6 Jean*0087 RETURN
0088 END