Changeset 888 for LMDZ4/trunk/libf/phylmd/surf_ocean_mod.F90
- Timestamp:
- Feb 4, 2008, 5:24:28 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/surf_ocean_mod.F90
r793 r888 16 16 !**************************************************************************************** 17 17 ! 18 SUBROUTINE surf_ocean(rlon, rlat, sollw, albedo, & 19 rugos, windsp, rmu0, & 20 fder, & 18 SUBROUTINE surf_ocean(rlon, rlat, swnet, lwnet, alb1, & 19 rugos, windsp, rmu0, fder, & 21 20 itime, dtime, jour, knon, knindex, & 22 debut, swdown,&21 debut, & 23 22 p1lay, tq_cdrag, coefm, precip_rain, precip_snow, temp_air, spechum, & 24 23 petAcoef, peqAcoef, petBcoef, peqBcoef, & 25 24 ps, u1_lay, v1_lay, rugoro, pctsrf, & 26 radsol,snow, qsurf, agesno, &27 z0_new, alb lw, evap, fluxsens, fluxlat, &28 tsurf_new, alb_new,dflux_s, dflux_l, pctsrf_oce)25 snow, qsurf, agesno, & 26 z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, & 27 tsurf_new, dflux_s, dflux_l, pctsrf_oce) 29 28 ! 30 29 ! This subroutine will make a call to ocean_XXX_noice according to the ocean mode (force, … … 41 40 REAL, INTENT(IN) :: dtime 42 41 REAL, DIMENSION(klon), INTENT(IN) :: rlon, rlat 43 REAL, DIMENSION(klon), INTENT(IN) :: sollw 44 REAL, DIMENSION(klon), INTENT(IN) :: albedo 42 REAL, DIMENSION(klon), INTENT(IN) :: swnet ! net shortwave radiation at surface 43 REAL, DIMENSION(klon), INTENT(IN) :: lwnet ! net longwave radiation at surface 44 REAL, DIMENSION(klon), INTENT(IN) :: alb1 ! albedo in visible SW interval 45 45 REAL, DIMENSION(klon), INTENT(IN) :: rugos 46 46 REAL, DIMENSION(klon), INTENT(IN) :: windsp 47 47 REAL, DIMENSION(klon), INTENT(IN) :: rmu0 48 48 REAL, DIMENSION(klon), INTENT(IN) :: fder 49 REAL, DIMENSION(klon), INTENT(IN) :: swdown50 49 REAL, DIMENSION(klon), INTENT(IN) :: p1lay 51 50 REAL, DIMENSION(klon), INTENT(IN) :: tq_cdrag … … 63 62 ! In/Output variables 64 63 !**************************************************************************************** 65 REAL, DIMENSION(klon), INTENT(INOUT) :: radsol66 REAL, DIMENSION(klon), INTENT(INOUT) :: snow,qsurf64 REAL, DIMENSION(klon), INTENT(INOUT) :: snow 65 REAL, DIMENSION(klon), INTENT(INOUT) :: qsurf 67 66 REAL, DIMENSION(klon), INTENT(INOUT) :: agesno 68 67 … … 70 69 !**************************************************************************************** 71 70 REAL, DIMENSION(klon), INTENT(OUT) :: z0_new 72 REAL, DIMENSION(klon), INTENT(OUT) :: alblw 71 REAL, DIMENSION(klon), INTENT(OUT) :: alb1_new ! new albedo in visible SW interval 72 REAL, DIMENSION(klon), INTENT(OUT) :: alb2_new ! new albedo in near IR interval 73 73 REAL, DIMENSION(klon), INTENT(OUT) :: evap, fluxsens, fluxlat 74 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new , alb_new74 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new 75 75 REAL, DIMENSION(klon), INTENT(OUT) :: dflux_s, dflux_l 76 76 REAL, DIMENSION(klon), INTENT(OUT) :: pctsrf_oce … … 81 81 INTEGER :: i 82 82 REAL, DIMENSION(klon) :: alb_eau 83 REAL, DIMENSION(klon) :: radsol 83 84 84 85 ! End definition 85 86 !**************************************************************************************** 86 ! 87 88 89 !**************************************************************************************** 90 ! Calculate total net radiance at surface 91 ! 92 !**************************************************************************************** 93 radsol(:) = 0.0 94 radsol(1:knon) = swnet(1:knon) + lwnet(1:knon) 95 96 !**************************************************************************************** 87 97 ! Switch according to type of ocean (couple, slab or forced) 88 98 !**************************************************************************************** 89 99 SELECT CASE(ocean) 90 100 CASE('couple') 91 CALL ocean_cpl_noice( &92 s ollw, albedo, &101 CALL ocean_cpl_noice( & 102 swnet, lwnet, alb1, & 93 103 windsp, & 94 104 fder, & 95 105 itime, dtime, knon, knindex, & 96 swdown, &97 106 p1lay, tq_cdrag, precip_rain, precip_snow,temp_air,spechum,& 98 107 petAcoef, peqAcoef, petBcoef, peqBcoef, & 99 108 ps, u1_lay, v1_lay, pctsrf, & 100 radsol, snow, qsurf,agesno, &101 evap, fluxsens, fluxlat, &109 radsol, snow, agesno, & 110 qsurf, evap, fluxsens, fluxlat, & 102 111 tsurf_new, dflux_s, dflux_l, pctsrf_oce) 103 112 104 113 CASE('slab') 105 CALL ocean_slab_noice( &114 CALL ocean_slab_noice( & 106 115 dtime, knon, knindex, & 107 116 p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, spechum,& 108 117 petAcoef, peqAcoef, petBcoef, peqBcoef, & 109 118 ps, u1_lay, v1_lay, & 110 radsol, snow, qsurf, agesno, & 111 evap, fluxsens, fluxlat, & 112 tsurf_new, & 113 dflux_s, dflux_l, pctsrf_oce) 119 radsol, snow, agesno, & 120 qsurf, evap, fluxsens, fluxlat, & 121 tsurf_new, dflux_s, dflux_l, pctsrf_oce) 114 122 115 123 CASE('force') 116 CALL ocean_forced_noice(itime, dtime, jour, knon, knindex, & 124 CALL ocean_forced_noice( & 125 itime, dtime, jour, knon, knindex, & 117 126 debut, & 118 127 p1lay, tq_cdrag, precip_rain, precip_snow, & … … 120 129 petAcoef, peqAcoef, petBcoef, peqBcoef, & 121 130 ps, u1_lay, v1_lay, & 122 radsol, snow, qsurf, & 123 agesno, & 124 evap, fluxsens, fluxlat, & 131 radsol, snow, agesno, & 132 qsurf, evap, fluxsens, fluxlat, & 125 133 tsurf_new, dflux_s, dflux_l, pctsrf_oce) 126 134 END SELECT … … 137 145 138 146 DO i =1, knon 139 alb _new(i) = alb_eau(knindex(i))147 alb1_new(i) = alb_eau(knindex(i)) 140 148 ENDDO 149 alb2_new(1:knon) = alb1_new(1:knon) 141 150 142 151 !**************************************************************************************** … … 154 163 ENDDO 155 164 156 alblw(1:knon) = alb_new(1:knon)157 165 ! 158 166 !****************************************************************************************
Note: See TracChangeset
for help on using the changeset viewer.