** Warning **
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.
Last-Modified: Tue, 27 Oct 2025 05:09:23 GMT
Content-Type: text/html; charset=utf-8
MITgcm/MITgcm/pkg/dic/insol.F
File indexing completed on 2018-03-02 18:39:14 UTC
view on github raw 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